Class: Alexandria::UI::IconViewManager
  
  
  
  
  
    - Inherits:
 
    - 
      Object
      
        
          - Object
 
          
            - Alexandria::UI::IconViewManager
 
          
        
        show all
      
     
  
  
  
  
  
  
  
      - Includes:
 
      - Logging, DragAndDropable, GetText
 
  
  
  
  
  
  
    - Defined in:
 
    - lib/alexandria/ui/iconview.rb
 
  
  
 
  
    
      Constant Summary
      collapse
    
    
      
        - ICON_WIDTH =
          
        
 
        60
 
      
        - ICONS_SORTS =
          
        
 
        [
  Columns::TITLE, Columns::AUTHORS, Columns::ISBN,
  Columns::PUBLISHER, Columns::EDITION, Columns::RATING,
  Columns::REDD, Columns::OWN, Columns::WANT
].freeze
 
      
    
  
  
  
  
  DragAndDropable::BADGE_MARKUP
  
    
      Instance Method Summary
      collapse
    
    
  
  
  
  
  
  
  
  
  
  
  #setup_view_source_dnd
  
  
  
  
  
  
  
  
  
  Methods included from Logging
  included, #log
  Constructor Details
  
    
  
  
    #initialize(_iconview, parent)  ⇒ IconViewManager 
  
  
  
  
    
Returns a new instance of IconViewManager.
   
 
  
  
    
      
32
33
34
35
36
37
38
39
40 
     | 
    
      # 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 
     | 
  
 
  
 
  
    Instance Method Details
    
      
  
  
    #setup_books_iconview  ⇒ Object 
  
  
  
  
    
      
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 
     | 
    
      # 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
    setup_view_source_dnd(@iconview) if @iconview.respond_to?(:enable_model_drag_source)
end
     | 
  
 
    
      
  
  
    #setup_books_iconview_sorting  ⇒ Object 
  
  
  
  
    
      
75
76
77
78
79
80 
     | 
    
      # 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 end 
     |