class Alexandria::UI::IconViewManager

Constants

ICONS_SORTS
ICON_WIDTH

Public Class Methods

new(_iconview, parent) click to toggle source
# File lib/alexandria/ui/iconview.rb, line 32
def initialize(_iconview, parent)
  @parent = parent
  @iconview = @parent.iconview
  @tooltips = IconViewTooltips.new(@iconview)
  @iconview_model = @parent.iconview_model
  @filtered_model = @parent.filtered_model
  @actiongroup = @parent.actiongroup
  setup_books_iconview
end

Public Instance Methods

setup_books_iconview() click to toggle source
# File lib/alexandria/ui/iconview.rb, line 42
def setup_books_iconview
  log.info { "setup_books_iconview #{@iconview_model.inspect}" }
  @iconview.model = @iconview_model
  log.info { "now @iconview.model = #{@iconview.model.inspect}" }
  @iconview.selection_mode = :multiple
  @iconview.text_column = Columns::TITLE_REDUCED
  @iconview.pixbuf_column = Columns::COVER_ICON
  @iconview.item_orientation = :vertical
  @iconview.row_spacing = 4
  @iconview.column_spacing = 16
  @iconview.item_width = ICON_WIDTH + 16

  @iconview.signal_connect("selection-changed") do
    log.debug { "selection-changed" }
    @parent.on_books_selection_changed
  end

  @iconview.signal_connect("item-activated") do
    log.debug { "item-activated" }
    @actiongroup["Properties"].activate
    false
  end

  # DND support for Gtk::IconView is shipped since GTK+ 2.8.0.
  setup_view_source_dnd(@iconview) if @iconview.respond_to?(:enable_model_drag_source)
end
setup_books_iconview_sorting() click to toggle source
# File lib/alexandria/ui/iconview.rb, line 75
def setup_books_iconview_sorting
  mode = ICONS_SORTS[@prefs.arrange_icons_mode]
  sort = @prefs.reverse_icons ? Gtk::SORT_DESCENDING : Gtk::SORT_ASCENDING
  @iconview_model.set_sort_column_id(mode, sort)
  @filtered_model.refilter # force redraw
end