def __init__(self): self.desktop_lyrics_win = DesktopLyrics() self.desktop_lyrics_win.connect("moved", self.adjust_toolbar_rect) self.desktop_lyrics_win.connect("resized", self.adjust_toolbar_rect) self.desktop_lyrics_win.connect("hide-bg", self.hide_toolbar) self.desktop_lyrics_win.connect("show-bg", self.show_toolbar) self.desktop_lyrics_win.connect("button-press-event", self.popup_desktop_right_menu) self.desktop_lyrics_win.connect("configure-event", self.lyrics_desktop_configure_event) self.scroll_lyrics = ScrollLyrics() self.scroll_lyrics.connect("configure-event", self.lyrcis_scroll_configure_event) self.scroll_lyrics.revert_button.connect( "clicked", lambda w: self.switch_to_desktop_lyrics()) self.scroll_lyrics.connect("seek", self.seek_cb) self.scroll_lyrics.connect("right-press", self.scroll_right_press_cb) Player.connect("instant-new-song", self.instant_update_lrc) Player.connect("played", self.play_time_source) Player.connect("paused", self.pause_time_source) Player.connect("play-end", self.pause_time_source) Dispatcher.connect("reload-lrc", self.update_lrc) Dispatcher.connect("unlock-lyrics", self.__unlock_lyrics) Dispatcher.connect("lock-lyrics", self.__lock_lyrics) Dispatcher.connect("show-lyrics", lambda w: self.run()) Dispatcher.connect("close-lyrics", lambda w: self.hide_all()) Dispatcher.connect("search-lyrics", lambda w: self.open_search_window(w)) Dispatcher.connect("dialog-run", self.on_dialog_run) Dispatcher.connect("dialog-close", self.on_dialog_close) config.connect("config-changed", self.on_config_changed) self.lrc_manager = LrcManager() self.lrc = LrcParser() self.search_ui = SearchUI() self.lrc_id = -1 self.lrc_next_id = -1 self.current_line = 0 self.message_source = None self.time_source = None self.song_duration = 0 self.__find_flag = False self.__lyrics_mode = config.getint("lyrics", "mode") self.__dialog_locked_flag = False self.init_toolbar() self.current_song = None self.next_lrc_to_download = None self.condition = threading.Condition() self.thread = threading.Thread(target=self.func_thread) self.thread.setDaemon(True) self.thread.start()
def __init__(self): DialogBox.__init__( self, _("Lyrics search"), 460, 300, DIALOG_MASK_MULTIPLE_PAGE, close_callback=self.hide_all, modal=False, window_hint=None, skip_taskbar_hint=False, window_pos=gtk.WIN_POS_CENTER) self.artist_entry = InputEntry() self.artist_entry.set_size(130, 23) self.title_entry = InputEntry() self.title_entry.set_size(130, 23) artist_label = Label(_("Artist:")) title_label = Label(_("Title:")) right_align = gtk.Alignment() right_align.set(0, 0, 0, 1) self.search_button = Button(_("Search")) self.search_button.connect("clicked", self.search_lyric_cb) self.process_id = 0 info_box = gtk.HBox(spacing=25) control_box = gtk.HBox(spacing=5) title_box = gtk.HBox(spacing=5) title_box.pack_start(title_label, False, False) title_box.pack_start(self.title_entry) artist_box = gtk.HBox(spacing=5) artist_box.pack_start(artist_label, False, False) artist_box.pack_start(self.artist_entry) control_box.pack_start(title_box, False, False) control_box.pack_start(artist_box, False, False) info_box.pack_start(control_box, False, False) info_box.pack_start(self.search_button, False, False) sort_items = [ lambda items, reverse : self.sort_by_key(items, reverse, "title"), lambda items, reverse : self.sort_by_key(items, reverse, "artist")] self.result_view = TreeView() self.result_view.set_expand_column(0) self.result_view.connect("double-click-item", self.double_click_cb) self.result_view.set_column_titles([_("Title"), _("Artist")], sort_items) self.result_view.draw_mask = self.draw_view_mask self.prompt_label = Label("") download_button = Button(_("Download")) download_button.connect("clicked", self.download_lyric_cb) cancel_button = Button(_("Close")) cancel_button.connect("clicked", lambda w: self.hide_all()) info_box_align = gtk.Alignment() info_box_align.set_padding(5, 0, 5, 0) info_box_align.add(info_box) self.body_box.set_spacing(5) self.body_box.pack_start(info_box_align, False, False) self.body_box.pack_start(self.result_view, True, True) self.left_button_box.set_buttons([self.prompt_label]) self.right_button_box.set_buttons([download_button, cancel_button]) self.lrc_manager = LrcManager()