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

📄 mainframe.py

📁 属性sosuo算法
💻 PY
📖 第 1 页 / 共 3 页
字号:
    def renameChannelFolder_(self, sender):        eventloop.addIdle(app.controller.renameCurrentTab, "Rename Channel Tab")    def removeChannel_(self, sender):        eventloop.addIdle(app.controller.removeCurrentFeed, "Remove channel")    def updateChannel_(self, sender):        eventloop.addIdle(app.controller.updateCurrentFeed, "Update current feed")    def updateAllChannels_(self, sender):        eventloop.addIdle(app.controller.updateAllFeeds, "Update all channels")    def tellAFriend_(self, sender):        print "NOT IMPLEMENTED" # $$$$$$$$$$$$$$    def copyChannelURL_(self, sender):        eventloop.addIdle(app.controller.copyCurrentFeedURL, "Copy channel URL")    # Playlists menu #     def createPlaylist_(self, sender):        playlist.createNewPlaylist()    def createPlaylistFolder_(self, sender):        folder.createNewPlaylistFolder()    def renamePlaylist_(self, sender):        eventloop.addIdle(app.controller.renameCurrentPlaylist, "Rename Playlist")    def removePlaylist_(self, sender):        eventloop.addIdle(app.controller.removeCurrentPlaylist, "Remove Playlist")    # Playback menu #    def playPause_(self, sender):        self.videoDisplayController.playPause_(sender)    def stopVideo_(self, sender):        self.videoDisplayController.stop_(sender)    def nextVideo_(self, sender):        eventloop.addIdle(lambda:app.controller.playbackController.skip(1), "Skip Video")    def previousVideo_(self, sender):        eventloop.addIdle(lambda:app.controller.playbackController.skip(-1, False), "Skip Video")    def toggleFullScreen_(self, sender):        self.videoDisplayController.playFullScreen_(sender)    # Help menu #    def showHelp_(self, sender):        helpURL = NSURL.URLWithString_(config.get(prefs.HELP_URL))        NSWorkspace.sharedWorkspace().openURL_(helpURL)    ### Menu items validation ###    def validateMenuItem_(self, item):        result = False        action = item.action()        display = self.frame.mainDisplay.hostedDisplay                if action == 'removeVideos:':            self.updateMenuItem(item, 'video_remove')            result = self.actionGroups['VideoSelected'] or self.actionGroups['VideosSelected']        elif action == 'saveVideoAs:':            result = False        elif action == 'copyVideoURL:':            result = self.actionGroups['VideoSelected']        elif action == 'deleteSelected:':            result = (self.actionGroups['ChannelLikeSelected'] or                      self.actionGroups['ChannelLikesSelected'] or                      self.actionGroups['PlaylistLikeSelected'] or                      self.actionGroups['PlaylistLikesSelected'] or                      self.actionGroups['VideoSelected'] or                      self.actionGroups['VideosSelected'])        elif action == 'addChannel:':            result = True        elif action == 'createSearchChannel:':            result = True        elif action == 'createChannelFolder:':            result = True        elif action == 'addGuide:':            result = True        elif action == 'renameChannelFolder:':            self.updateMenuItem(item, 'channel_rename')            result = self.actionGroups['ChannelLikeSelected']        elif action == 'removeChannel:':            self.updateMenuItem(item, 'channel_remove')            result = self.actionGroups['ChannelLikeSelected'] or self.actionGroups['ChannelLikesSelected']        elif action == 'updateChannel:':            self.updateMenuItem(item, 'channel_update')            result = self.actionGroups['ChannelLikeSelected'] or self.actionGroups['ChannelLikesSelected']        elif action == 'updateAllChannels:':            result = True        elif action == 'tellAFriend:':            result = self.actionGroups['ChannelSelected']        elif action == 'copyChannelURL:':            result = self.actionGroups['ChannelSelected']        elif action == 'createPlaylist:':            return True        elif action == 'createPlaylistFolder:':            return True        elif action == 'renamePlaylist:':            self.updateMenuItem(item, 'playlist_rename')            return self.actionGroups['PlaylistLikeSelected']        elif action == 'removePlaylist:':            self.updateMenuItem(item, 'playlist_remove')            return self.actionGroups['PlaylistLikeSelected'] or self.actionGroups['PlaylistLikesSelected']        elif action == 'playPause:':            return display is app.controller.videoDisplay        elif action == 'stopVideo:':            return display is app.controller.videoDisplay        elif action == 'nextVideo:':            return display is app.controller.videoDisplay        elif action == 'previousVideo:':            return display is app.controller.videoDisplay        elif action == 'toggleFullScreen:':            return display is app.controller.videoDisplay        elif action == 'showHelp:':            return True        return result    def updateMenuItem(self, item, key):        if key in self.menuStrings:            item.setTitle_(self.menuStrings[key].replace('_', ''))###############################################################################class DisplayHostView (NibClassBuilder.AutoBaseClass):        def initWithFrame_(self, frame):        self = super(DisplayHostView, self).initWithFrame_(frame)        self.scheduledDisplay = None        self.hostedDisplay = None        self.hostedView = nil        self.backgroundColor = NSColor.whiteColor()        return self    def drawRect_(self, rect):        self.backgroundColor.set()        NSRectFill(rect)    def setScheduledDisplay(self, display):        if self.scheduledDisplay is not None:            self.scheduledDisplay.cancel()        self.scheduledDisplay = display        def setDisplay(self, display, owner):        platformutils.warnIfNotOnMainThread('DisplayHostView.setDisplay')        self.scheduledDisplay = None        # Send notification to old display if any        if self.hostedDisplay is not None:            self.hostedDisplay.onDeselected_private(owner)            self.hostedDisplay.onDeselected(owner)        oldView = self.hostedView        # Switch to new display        self.hostedDisplay = display        if display is not None:            self.hostedView = display.getView()        else:            self.hostedView = nil        if display is None:            return        # Figure out where to put the content area        frame = self.bounds()        mask = self.autoresizingMask()        # Arrange to cover the template that marks the content area        self.hostedView.setFrame_(frame)        self.addSubview_(self.hostedView)        self.hostedView.setAutoresizingMask_(mask)        # Mark as needing display        self.setNeedsDisplayInRect_(frame)        self.hostedView.setNeedsDisplay_(YES)        # Wait until now to clean up the old view, to reduce flicker        # (doesn't actually work all that well, sadly -- possibly what        # we want to do is wait until notification comes from the new        # view that it's been fully loaded to even show it)        if oldView and (not (oldView is self.hostedView)):            oldView.removeFromSuperview()        # Send notification to new display        display.onSelected_private(owner)        display.onSelected(owner)###############################################################################class NullDisplay (app.Display):    "Represents an empty right-hand area."    def __init__(self):        app.Display.__init__(self)        self.view = NSView.alloc().init().retain()    def getView(self):        return self.view###############################################################################class DTVSplitView (NibClassBuilder.AutoBaseClass):        def awakeFromNib(self):        self.background = NSImage.imageNamed_('splitview_divider_background')        self.backgroundRect = ((0,0), self.background.size())        self.dimple = NSImage.imageNamed_('splitview_divider_dimple')            def dividerThickness(self):        return 10.0            def drawDividerInRect_(self, rect):        dividerOrigin = (rect.origin.x, 12)        dividerSize = (rect.size.width, rect.size.height - 58 - 12)        dividerRect = (dividerOrigin, dividerSize)        self.background.drawInRect_fromRect_operation_fraction_(dividerRect, self.backgroundRect, NSCompositeSourceOver, 1.0)        dimplePosition = (rect.origin.x, (dividerSize[1] - self.dimple.size().height) / 2)        self.dimple.compositeToPoint_operation_(dimplePosition, NSCompositeSourceOver)###############################################################################class ProgressDisplayView (NibClassBuilder.AutoBaseClass):    def awakeFromNib(self):        self.progressSlider.sliderWasClicked = self.progressSliderWasClicked        self.progressSlider.sliderWasDragged = self.progressSliderWasDragged        self.progressSlider.sliderWasReleased = self.progressSliderWasReleased        self.backgroundLeft = NSImage.imageNamed_( "display_left" )        self.backgroundLeftWidth = self.backgroundLeft.size().width        self.backgroundRight = NSImage.imageNamed_( "display_right" )        self.backgroundRightWidth = self.backgroundRight.size().width        self.backgroundCenter = NSImage.imageNamed_( "display_center" )        self.backgroundCenterWidth = self.backgroundCenter.size().width        self.renderer = None        self.updateTimer = nil        self.wasPlaying = False    @platformutils.onMainThread    def setup(self, renderer):        if self.renderer != renderer:            self.renderer = renderer            if renderer is not nil:                self.updateTimer = NSTimer.scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(1.0, self, 'refresh:', nil, YES)                NSRunLoop.currentRunLoop().addTimer_forMode_(self.updateTimer, NSEventTrackingRunLoopMode)            elif self.updateTimer is not nil:                self.updateTimer.invalidate()                self.updateTimer = nil        self.refresh_(nil)        self.setNeedsDisplay_(YES)    def teardown(self):        self.setup(None)    def refresh_(self, timer):        if self.renderer is not None:            self.progressSlider.setShowCursor_(True)            self.progressSlider.setFloatValue_(self.renderer.getProgress())            self.timeIndicator.setStringValue_(self.renderer.getDisplayTime())        else:            self.progressSlider.setShowCursor_(False)            self.progressSlider.setFloatValue_(0.0)            self.timeIndicator.setStringValue_(app.VideoRenderer.DEFAULT_DISPLAY_TIME)    def drawRect_(self, rect):        self.backgroundLeft.compositeToPoint_operation_( (0,0), NSCompositeSourceOver )        x = self.bounds().size.width - self.backgroundRightWidth        self.backgroundRight.compositeToPoint_operation_( (x, 0), NSCompositeSourceOver )        emptyWidth = self.bounds().size.width - (self.backgroundRightWidth + self.backgroundLeftWidth)        emptyRect = ((self.backgroundLeftWidth, 0), (emptyWidth, self.bounds().size.height))        NSGraphicsContext.currentContext().saveGraphicsState()        NSBezierPath.clipRect_(emptyRect)        tiles = math.ceil(emptyWidth / float(self.backgroundCenterWidth))

⌨️ 快捷键说明

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