class GrooveDl::Widgets::Search

Search section

Constants

COLUMN_SONG
TYPE_PLAYLIST_ID

Attributes

data[RW]
store[RW]

Public Instance Methods

on_search_button_clicked() click to toggle source
# File lib/groove-dl/widgets/search.rb, line 22
def on_search_button_clicked
  type = @app.get_object('search_type').active_id.to_i
  query = @app.get_object('search_entry').text
  return if query.empty?

  case type
  when TYPE_PLAYLISTS
    results = @client.search('Playlists', query)
  when TYPE_SONGS
    results = @client.search('Songs', query)
  when TYPE_PLAYLIST_ID
    playlist = Grooveshark::Playlist.new(@client, 'playlist_id' => query)
    results = playlist.load_songs
  end

  @data = {}
  @store = @app.get_object('search_list_store')
  @store.clear
  results.each do |element|
    iter = @store.append
    iter[COLUMN_CHECKBOX] = false
    if element.is_a?(Grooveshark::Song)
      @data[element.id.to_i] = element
      iter[COLUMN_ID] = element.id.to_i
      iter[COLUMN_NAME] = element.name
      iter[COLUMN_AUTHOR] = element.artist
      iter[COLUMN_SONG] = element.album
    else
      @data[element.id.to_i] = element
      iter[COLUMN_ID] = element.id.to_i.to_i
      iter[COLUMN_NAME] = element.name
      iter[COLUMN_AUTHOR] = element.username
      iter[COLUMN_SONG] = element.num_songs.to_s
    end
  end
end
on_search_entry_activate() click to toggle source
# File lib/groove-dl/widgets/search.rb, line 18
def on_search_entry_activate
  @app.get_object('search_button').signal_emit('clicked')
end
on_search_list_selected_clicked() click to toggle source
# File lib/groove-dl/widgets/search.rb, line 67
def on_search_list_selected_clicked
  @store.each do |_model, _path, iter|
    fixed = iter[COLUMN_CHECKBOX]
    fixed ^= 1
    iter[COLUMN_CHECKBOX] = fixed
  end
end
on_search_list_toggle_toggled(_cell, path_str) click to toggle source
# File lib/groove-dl/widgets/search.rb, line 59
def on_search_list_toggle_toggled(_cell, path_str)
  path = Gtk::TreePath.new(path_str)
  iter = @store.get_iter(path)
  fixed = iter[COLUMN_CHECKBOX]
  fixed ^= 1
  iter[COLUMN_CHECKBOX] = fixed
end