⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callbackhandler.py

📁 属性sosuo算法
💻 PY
📖 第 1 页 / 共 2 页
字号:
    def on_video_time_scale_value_changed(self, videoTimeScale):        videoDisplay = self.mainApp.videoDisplay        renderer = videoDisplay.activeRenderer        if videoDisplay.isPlaying and renderer and videoTimeScale.buttonsDown:            renderer.playFromTime(videoTimeScale.get_value())        return True    def on_video_time_scale_format_value(self, scale, seconds):        videoLength = self.mainFrame.videoLength        if videoLength is None or videoLength <= 0:            return ""        def formatTime(seconds):            mins, secs = divmod(seconds, 60)            hours, mins = divmod(mins, 60)            if hours > 0:                return "%02d:%02d:%02d" % (hours, mins, secs)            else:                return "%02d:%02d" % (mins, secs)        return "%s / %s" % (formatTime(seconds), formatTime(videoLength))    def on_volume_scale_value_changed(self, scale):        self.mainApp.videoDisplay.setVolume(scale.get_value())    def on_open_video_activate(self, event = None):        chooser = gtk.FileChooserDialog("Open Files...",                self.mainFrame.widgetTree['main-window'],                gtk.FILE_CHOOSER_ACTION_OPEN,                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,                     gtk.STOCK_OPEN, gtk.RESPONSE_ACCEPT))        chooser.set_select_multiple(True)        if (CallbackHandler.current_folder):            chooser.set_current_folder(CallbackHandler.current_folder)        if chooser.run() == gtk.RESPONSE_ACCEPT:            files = chooser.get_filenames()            eventloop.addIdle(lambda:singleclick.parseCommandLineArgs (files), "Open Files")        CallbackHandler.current_folder = chooser.get_current_folder()        chooser.destroy()                def on_save_video_activate(self, event = None):        videoPath = self.mainFrame.currentVideoFilename        if videoPath is None:            return        self.mainApp.videoDisplay.pause()        chooser = gtk.FileChooserDialog("Save Video As...",                self.mainFrame.widgetTree['main-window'],                gtk.FILE_CHOOSER_ACTION_SAVE,                (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,                     gtk.STOCK_SAVE, gtk.RESPONSE_ACCEPT))        chooser.set_current_name(os.path.basename(videoPath))        if (CallbackHandler.current_folder):            chooser.set_current_folder(CallbackHandler.current_folder)        if chooser.run() == gtk.RESPONSE_ACCEPT:            savePath = chooser.get_filename()            def getExt(path):                return os.path.splitext(path)[1]            if getExt(savePath) == '':                savePath += getExt(videoPath)            print "saving %r to %r" % (videoPath, savePath)            shutil.copyfile(videoPath, savePath)        CallbackHandler.current_folder = chooser.get_current_folder()        chooser.destroy()    def on_play_activate(self, event):        currentDisplay = self.mainApp.playbackController.currentDisplay        if currentDisplay == self.mainApp.videoDisplay:            self.mainApp.videoDisplay.play()        else:            self.mainApp.playbackController.enterPlayback()    def on_stop_activate(self, event):        currentDisplay = self.mainApp.playbackController.currentDisplay        if currentDisplay == self.mainApp.videoDisplay:            self.mainApp.videoDisplay.pause()        else:            pass            # I think this will happen if we play an item externally.  Not            # sure what to do here.    def on_quit_activate(self, event):        app.controller.quit()    def on_fullscreen_activate(self, event):        self.mainFrame.setFullscreen(True)    def on_leave_fullscreen_activate(self, event):        self.mainFrame.setFullscreen(False)    def on_fullscreen_button_clicked(self, event = None):        if self.mainFrame.isFullscreen:            self.mainFrame.setFullscreen(False)        else:            self.mainFrame.setFullscreen(True)    def on_remove_channel_activate(self, event = None):        eventloop.addIdle (app.controller.removeCurrentFeed, "Remove Channel")    def on_rename_channel_activate(self, event = None):        eventloop.addIdle (app.controller.renameCurrentTab, "Rename Tab")    def on_remove_playlist_activate(self, event = None):        eventloop.addIdle (app.controller.removeCurrentPlaylist, "Remove Playlist")    def on_remove_video_activate(self, event = None):        eventloop.addIdle (app.controller.removeCurrentItems, "Remove Videos")    def on_rename_playlist_activate(self, event = None):        eventloop.addIdle (app.controller.renameCurrentTab, "Rename Tab")    def on_update_channel_activate(self, event = None):        eventloop.addIdle (app.controller.updateCurrentFeed, "Update Channel")    def on_update_all_channels_activate(self, event = None):        eventloop.addIdle (app.controller.updateAllFeeds, "Update All Channels")    def on_copy_channel_link_activate(self, event = None):        eventloop.addIdle (app.controller.copyCurrentFeedURL, "Copy feed URL")    def on_mail_channel_link_activate(self, event = None):        print "Mail Chanel Link unimplemented"    def on_copy_video_link_activate(self, event = None):        print "Copy Video Link unimplemented"    def on_add_channel_button_clicked(self, event = None):        eventloop.addIdle(lambda:app.controller.addAndSelectFeed(), "Add Channel")    def on_add_search_channel_button_clicked(self, event = None):        eventloop.addIdle(lambda:app.controller.addSearchFeed(), "Add SearchChannel")    def on_add_guide_button_clicked(self, event = None):        eventloop.addIdle(lambda:app.controller.addAndSelectGuide(), "Add Guide")    def on_new_playlist_activate(self, event=None):        playlist.createNewPlaylist()    def on_new_playlist_folder_activate(self, event=None):        folder.createNewPlaylistFolder()    def on_new_channel_folder_activate(self, event=None):        folder.createNewChannelFolder()    def on_preference(self, event = None):        import autodler        # get our add channel dialog        movie_dir = config.get(prefs.MOVIES_DIRECTORY)        if config.get(prefs.PRESERVE_DISK_SPACE):            old_disk = config.get(prefs.PRESERVE_X_GB_FREE)        else:            old_disk = 0        widgetTree = MainFrame.WidgetTree(resources.path('democracy.glade'), 'dialog-preferences', 'democracyplayer')        dialog = widgetTree['dialog-preferences']        mainWindow = self.mainFrame.widgetTree['main-window']        dialog.set_transient_for(mainWindow)        AttachBoolean (widgetTree['checkbutton-limit'], prefs.LIMIT_UPSTREAM, widgetTree['spinbutton-limit'])        AttachBoolean (widgetTree['checkbutton-padding'], prefs.PRESERVE_DISK_SPACE, widgetTree['spinbutton-padding'])        AttachBoolean (widgetTree['checkbutton-autorun'], prefs.RUN_DTV_AT_STARTUP)        AttachInteger (widgetTree['spinbutton-limit'], prefs.UPSTREAM_LIMIT_IN_KBS)        AttachInteger (widgetTree['spinbutton-bt-min-port'], prefs.BT_MIN_PORT)        AttachInteger (widgetTree['spinbutton-bt-max-port'], prefs.BT_MAX_PORT)        AttachInteger (widgetTree['spinbutton-max-manual'], prefs.MAX_MANUAL_DOWNLOADS)        AttachFloat(widgetTree['spinbutton-padding'], prefs.PRESERVE_X_GB_FREE)        AttachCombo (widgetTree['combobox-poll'], prefs.CHECK_CHANNELS_EVERY_X_MN, (30, 60, -1))        AttachCombo (widgetTree['combobox-expiration'], prefs.EXPIRE_AFTER_X_DAYS, (1, 3, 6, 10, 30, -1))        AttachBooleanRadio (widgetTree['radiobutton-playback-one'], widgetTree['radiobutton-playback-all'], prefs.SINGLE_VIDEO_PLAYBACK_MODE)        try:            os.makedirs (movie_dir)        except:            pass        chooser = widgetTree['filechooserbutton-movies-directory']        chooser.set_filename (movie_dir + "/")        # run the dialog        response = dialog.run()        autodler.updatePrefs()        new_movie_dir = widgetTree['filechooserbutton-movies-directory'].get_filename()        if (movie_dir != new_movie_dir):            print "NEW: %r" % new_movie_dir            migrate_widgetTree = MainFrame.WidgetTree(resources.path('democracy.glade'), 'dialog-migrate', 'democracyplater')            migrate_dialog = migrate_widgetTree['dialog-migrate']            response = migrate_dialog.run()            app.changeMoviesDirectory(new_movie_dir,                     response == gtk.RESPONSE_YES)            migrate_dialog.destroy()        dialog.destroy()        if config.get(prefs.BT_MAX_PORT) < config.get(prefs.BT_MIN_PORT):            config.set(prefs.BT_MAX_PORT, config.get(prefs.BT_MIN_PORT))        startup.updateAutostart()        if config.get(prefs.PRESERVE_DISK_SPACE):            new_disk = config.get(prefs.PRESERVE_X_GB_FREE)        else:            new_disk = 0    def on_about_clicked(self, event = None):        self.mainFrame.about()    def on_donate_clicked(self, event = None):        print "Donate unimplemented"    def on_delete(self, event = None):        eventloop.addUrgentCall(app.controller.removeCurrentSelection,                 "remove current selection")    def on_button_chrome_search_go_clicked (self, event=None):        widgetTree = self.mainFrame.widgetTree        term = widgetTree["entry-chrome-search-term"].get_text()        iter = widgetTree["combobox-chrome-search-engine"].get_active_iter()        (engine,) = widgetTree["combobox-chrome-search-engine"].get_model().get(iter, 0)        eventloop.addIdle (lambda:app.controller.performSearch (engine, term), "Search for %s on %s" % (term, engine))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -