def switch_to_listview(self, category, title): self.text_prompt.set_text(title) self.webcast_view.clear() songs = self.__db_query.get_songs(category, title) self.webcast_view.add_webcasts(songs) switch_tab(self.page_box, self.listview_page)
def completed_animation(self, source, widget): self.draw_animation = False self.active_alpha = 1.0 self.target_alpha = 0.0 self.in_animation = False self.queue_draw() switch_tab(self.body_box, widget)
def on_event_login_success(self, obj, data): if self.list_type == self.COLLECT_TYPE: self.song_view.load_collect_songs(clear=True) switch_tab(self.main_box, self.song_view) self.normal_pixbuf = gtk.gdk.pixbuf_new_from_file(get_image("collect_list.png")) self.emit_redraw_request()
def check_network_connection(self, auto=False): if is_network_connected(): switch_tab(self, self.body_paned) if not auto: self.start_fetch_channels() else: switch_tab(self, self.network_failed_box)
def update_preview_line_number(self, widget, label, allocated_data, index): if allocated_data == 1: switch_tab(self.line_align_hbox, self.single_align_combo_box) else: switch_tab(self.line_align_hbox, self.double_align_combo_box) config.set("lyrics", "line_count", str(allocated_data))
def start_search_songs(self, keyword): songs = self.song_view.get_search_songs(keyword) if songs: self.song_view.add_songs(songs) switch_tab(self, self.song_view) else: self.search_prompt.update_keyword(keyword) switch_tab(self, self.search_prompt)
def on_event_login_success(self, obj, data): if self.list_type == self.COLLECT_TYPE: self.song_view.load_collect_songs(clear=True) switch_tab(self.main_box, self.song_view) self.normal_pixbuf = gtk.gdk.pixbuf_new_from_file( get_image("collect_list.png")) self.emit_redraw_request()
def __init__(self, tag, padding_x=0, padding_y=0): gtk.VBox.__init__(self) self.radio_view, self.radio_view_sw = self.get_icon_view(tag=tag, padding_x=padding_x, padding_y=padding_y) self.network_connect_timeout = NetworkConnectTimeout(self.radio_view.start_fetch_channels) prompt_label = AutoLabel("正在加载数据...") self.radio_view.fetch_failed = lambda : switch_tab(self, self.network_connect_timeout) self.radio_view.fetch_successed = lambda : switch_tab(self, self.radio_view_sw) self.add(prompt_label)
def check_network_connection(self, auto=False): if is_network_connected(): self.network_connected_flag = True switch_tab(self, self.webview) if not auto: self.reload_browser() else: self.network_connected_flag = False switch_tab(self, self.network_failed_box)
def on_item_press(self, press_item): if press_item.index == self.current_index: return self.current_index = press_item.index for item in self.items: if item == press_item: continue item.clear_selected_status() switch_tab(self.__container, press_item.list_widget) self.emit("switch-tab", press_item)
def on_back_button_clicked(self, obj): # clear entry text. self.search_entry.entry.set_text("") widget = self.get_current_view_sw() if widget: switch_tab(self.switch_view_box, widget) # hide backhbox. self.back_hbox.hide_all() self.back_hbox.set_no_show_all(True)
def active_item(self, active_item): if active_item in self.items: if active_item.index == self.current_index: return for item in self.items: item.clear_selected_status() active_item.manual_select() self.current_index = active_item.index switch_tab(self.__container, active_item.list_widget)
def list_widget(self): switch_tab(self.main_box, self.song_view) if self.list_type == self.DEFAULT_TYPE: pass elif self.list_type == self.COLLECT_TYPE: if not bplayer.is_login: switch_tab(self.main_box, self.login_box) return self.main_box
def on_webcastbar_single_click_item(self, widget, item, column, x, y): if hasattr(item, "collect_flag"): switch_tab(self.page_box, self.collected_view_sw) else: widget = self.page_box.get_children()[0] if widget != self.metro_view_sw: switch_tab(self.page_box, self.metro_view_sw) if self.current_category != item.category: self.current_category = item.category self.load_view_data()
def on_webview_load_finished(self, *args): if not self.is_reload_flag: self.webview.reload() self.is_reload_flag = True elif self.is_reload_flag and self.update_progress_flag: self.update_progress_flag = False if self.network_connected_flag: switch_tab(self, self.webview) # inject object. self.injection_object()
def on_webview_load_finished(self, *args): if not self.is_reload_flag: self.webview.reload() self.is_reload_flag = True elif self.is_reload_flag and self.update_progress_flag: self.update_progress_flag = False if self.network_connected_flag: switch_tab(self, self.webview) # inject object. self.webview.injection_object()
def __init_radiobar(self): self.radiobar = TreeView(enable_drag_drop=False, enable_multiple_select=False) items = [] items.append(CategroyTreeItem(_("Home"), "home", lambda : switch_tab(self.page_box, self.home_page))) items.append(CategroyTreeItem(_("Hot MHz"), "hot", lambda : switch_tab(self.page_box, self.hot_page_sw))) items.append(CategroyTreeItem(_("Genres MHz"), "genre", lambda : switch_tab(self.page_box, self.genre_page))) items.append(CategroyTreeItem(_("Pop MHz"), "up", lambda : switch_tab(self.page_box, self.fast_page_sw))) self.radiobar.add_items(items) self.radiobar.select_items([self.radiobar.visible_items[0]]) self.radiobar.set_size_request(121, -1) self.radiobar.draw_mask = self.on_radiobar_draw_mask
def search(self, *kwargs): string = self.search_entry.get_text() index = self.search_combobox.get_active() if string: if index == 0: switch_tab(self.result_box, self.song_list) self.song_list.add_items([SearchSongItem(Song(song)) for song in nplayer.search(string)], clear_first=True) else: switch_tab(self.result_box, self.playlist_list) self.playlist_list.add_items([PlaylistItem(playlist) for playlist in nplayer.search(string, 1000)], clear_first=True)
def change_search_type(self, obj): string = self.search_entry.get_text() if not string: return index = self.search_combobox.get_active() if index == 0: switch_tab(self.result_box, self.song_list) self.song_list.add_items([SearchSongItem(Song(song)) for song in nplayer.search(string)], clear_first=True) elif index == 1: switch_tab(self.result_box, self.playlist_list) self.playlist_list.add_items([PlaylistItem(playlist) for playlist in nplayer.search(string, 1000)], clear_first=True)
def __on_double_click_item(self, widget, item, x, y): self.search_entry.entry.set_text("") songs = self.get_item_songs(item) self.songs_view.clear() self.songs_view.add_songs(songs) # todo: switch view mode fixed the back. switch_tab(self.switch_view_box, self.songs_view) # show back button. self.prompt_button.set_infos((item.pixbuf, item.name_label)) self.back_hbox.set_no_show_all(False) self.back_hbox.show_all()
def switch_filter_view(self, tag): # clear search entry self.search_entry.entry.set_text("") widget = None if tag == "artist": widget = self.artists_sw elif tag == "album": widget = self.albums_sw elif tag == "genre": widget = self.genres_sw elif tag == "folder": widget = self.folders_sw if widget: self.back_hbox.hide_all() self.back_hbox.set_no_show_all(True) switch_tab(self.switch_view_box, widget)
def switch_filter_view(self, tag): # clear search entry self.search_entry.entry.set_text("") widget = None if tag == "artist" : widget = self.artists_sw elif tag == "album": widget = self.albums_sw elif tag == "genre": widget = self.genres_sw elif tag == "folder" : widget = self.folders_sw if widget: self.back_hbox.hide_all() self.back_hbox.set_no_show_all(True) switch_tab(self.switch_view_box, widget)
def change_view(self, widget): if not widget.get_active(): Dispatcher.change_window_mode("simple") config.set("setting", "window_mode", "simple") switch_tab(self.header_box, self.simple_header_bar) self.browser_align.hide_all() self.browser_align.set_no_show_all(True) self.window.set_default_size(330, 625) self.window.set_geometry_hints(None, 330, 300, 330, 700, -1, -1, -1, -1, -1, -1) self.window.resize(330, 625) self.window.queue_draw() else: Dispatcher.change_window_mode("full") config.set("setting", "window_mode", "full") switch_tab(self.header_box, self.full_header_bar) self.browser_align.set_no_show_all(False) self.browser_align.show_all() self.window.set_default_size(816, 625) self.window.set_geometry_hints(None, 816, 625, -1, -1, -1, -1, -1, -1, -1, -1) self.window.resize(816, 625) Dispatcher.volume(float(config.get("player", "volume", "1.0")))
def __init_sourcebar(self): self.sourcebar = TreeView(enable_drag_drop=False, enable_multiple_select=False) items = [] for index, (key, value) in enumerate(self.source_data.items()): if index == 0: show_icon = True else: show_icon = False items.append(CategroyItem(value, key, self.sourcebar, index, show_icon)) items.append(CustomItem("我的收藏", lambda : switch_tab(self.switch_view_box, self.collect_sw))) self.sourcebar.add_items(items) self.sourcebar.set_size_request(121, -1) self.sourcebar.draw_mask = self.on_sourcebar_draw_mask self.sourcebar.draw_area.tag_by_poup_panel_grab_window = True popup_grab_window.focus_out_callback = self.handle_focus_out
def __init_radiobar(self): self.radiobar = TreeView(enable_drag_drop=False, enable_multiple_select=False) items = [] items.append( CategroyTreeItem( _("Home"), "home", lambda: switch_tab(self.page_box, self.home_page))) items.append( CategroyTreeItem( _("Hot MHz"), "hot", lambda: switch_tab(self.page_box, self.hot_page_sw))) items.append( CategroyTreeItem( _("Genres"), "genre", lambda: switch_tab(self.page_box, self.genre_page))) items.append( CategroyTreeItem( _("Pop MHz"), "up", lambda: switch_tab(self.page_box, self.fast_page_sw))) self.radiobar.add_items(items) self.radiobar.select_items([self.radiobar.visible_items[0]]) self.radiobar.set_size_request(121, -1) self.radiobar.draw_mask = self.on_radiobar_draw_mask
def __init_sourcebar(self): self.sourcebar = TreeView(enable_drag_drop=False, enable_multiple_select=False) items = [] for index, (key, value) in enumerate(self.source_data.items()): if index == 0: show_icon = True else: show_icon = False items.append( CategroyItem(value, key, self.sourcebar, index, show_icon)) items.append( CustomItem( "我的收藏", lambda: switch_tab(self.switch_view_box, self.collect_sw))) self.sourcebar.add_items(items) self.sourcebar.set_size_request(121, -1) self.sourcebar.draw_mask = self.on_sourcebar_draw_mask self.sourcebar.draw_area.tag_by_poup_panel_grab_window = True popup_grab_window.focus_out_callback = self.handle_focus_out
def switch_result_view(self, item): switch_tab(self.result_page, item.search_view)
def on_event_login_success(self, obj, data): self.song_view.load_online_playlists(clear=True) switch_tab(self.main_box, self.song_view) self.emit_redraw_request()
def on_radio_view_begin_add(self, widget): switch_tab(self, self.radio_view)
def on_dispatcher_switch_browser(self, obj, item, is_switched): self.last_browser = item.browser_widget if is_switched: search_entry.clear() switch_tab(self.bottom_box, item.browser_widget)
def list_widget(self): switch_tab(self.main_box, self.song_view) if not nplayer.is_login and self.list_type == MusicView.LOGIN_LIST_TYPE: switch_tab(self.main_box, self.login_box) return self.main_box
def switch_view(self, item): ''' switch view_box's content ''' self.category_list.set_highlight_item(item) switch_tab(self.view_box, item.list_widget)
def on_dispatcher_webcast_info(self, obj, parent, key): items = WebcastsDB.get_items(parent, key) self.source_view.clear() if items: self.source_view.add_items([WebcastListItem(tag) for tag in items]) switch_tab(self.switch_view_box, self.source_sw)
def on_backbutton_clicked(self, widget): switch_tab(self.page_box, self.metro_view_sw)
def switch_view(self, item): """ switch view_box's content """ self.category_list.set_highlight_item(item) switch_tab(self.view_box, item.list_widget)
def switch_to_radio_view(self): switch_tab(self, self.radio_view_sw)
def on_quell_button_clicked(self, widget): main_window = get_main_window() main_window.change_app_mode("normal") switch_tab(self.body_box, self.info_box)
def start_search_songs(self, keyword): self.radio_view.clear_items(add_more=False) switch_tab(self, self.radio_view_sw) self.radio_view.set_keyword(keyword) self.radio_view.start_fetch_channels() self.keyword = keyword
def on_searchbox_search(self, widget, keyword): # completion_grab_window.popup_grab_window_focus_out() if keyword: self.global_search.begin_search(keyword) switch_tab(self.bottom_box, self.global_search)
def switch_to_search_prompt(self): self.search_prompt.update_keyword(self.keyword) switch_tab(self, self.search_prompt)
def on_global_search_close(self, widget): search_entry.clear() switch_tab(self.bottom_box, self.last_browser)