def buildMainMenu(self): self.mainMenu = NSMenu.alloc().init() self.mainMenu.addItemWithTitle_action_keyEquivalent_( 'Loading...', None, '').setTarget_(self) self.mainMenu.addItem_(NSMenuItem.separatorItem()) self.mainMenu.addItemWithTitle_action_keyEquivalent_( 'Manage Network Shares', self.manageNetworkShares_, '').setTarget_(self) self.mainMenu.addItemWithTitle_action_keyEquivalent_( 'Ticket Viewer', self.openTicketViewer_, '').setTarget_(self) self.mainMenu.addItemWithTitle_action_keyEquivalent_( 'Refresh Kerberos', self.refreshKerberosTicket_, '').setTarget_(self) self.mainMenu.addItem_(NSMenuItem.separatorItem()) self.mainMenu.addItemWithTitle_action_keyEquivalent_( 'Show Shares on Desktop', self.toggleShowDrivesOnDesktop_, '').setTarget_(self) if CoreFoundation.CFPreferencesCopyAppValue( 'ShowMountedServersOnDesktop', 'com.apple.finder'): self.mainMenu.itemWithTitle_('Show Shares on Desktop').setState_( True) self.mainMenu.addItemWithTitle_action_keyEquivalent_( 'Display Notifications', self.toggleNotifications_, '').setTarget_(self) if SMUtilities.read_pref('display_notifications'): self.mainMenu.itemWithTitle_('Display Notifications').setState_( True) self.mainMenu.addItem_(NSMenuItem.separatorItem()) self.mainMenu.addItemWithTitle_action_keyEquivalent_( 'Quit', self.quit_, '').setTarget_(self) self.statusBar.setMenu_(self.mainMenu)
def manualUpdate_(self, sender): self.ldap_reachable = SMUtilities.is_ldap_reachable(SMUtilities.read_pref('domain')) if self.ldap_reachable: self.updateConfig() else: d = PyDialog.AlertDialog('Unable to update Connect menu!', 'Domain cannot be reached...') d.display()
def updateConfig(self): self.config_manager.validate_kerberos() self.ldap_reachable = SMUtilities.is_ldap_reachable(SMUtilities.read_pref('domain')) if self.ldap_reachable: self.config_manager.update_managedshares() self.buildConnectMenu() SMUtilities.notify('Connect menu has been updated!', '')
def refreshKerberosTicket_(self, sender): self.ldap_reachable = SMUtilities.is_ldap_reachable(SMUtilities.read_pref('domain')) if self.ldap_reachable: self.config_manager.validate_kerberos() else: d = PyDialog.AlertDialog('Unable to refresh Kerberos Ticket!', 'Domain cannot be reached...') d.display()
def updateConfig(self): self.config_manager.validate_kerberos() self.ldap_reachable = SMUtilities.is_ldap_reachable( SMUtilities.read_pref('domain')) if self.ldap_reachable: self.config_manager.update_managedshares() self.buildConnectMenu() SMUtilities.notify('Connect menu has been updated!', '')
def manualUpdate_(self, sender): self.ldap_reachable = SMUtilities.is_ldap_reachable( SMUtilities.read_pref('domain')) if self.ldap_reachable: self.updateConfig() else: d = PyDialog.AlertDialog('Unable to update Connect menu!', 'Domain cannot be reached...') d.display()
def networkStateHasChanged(self, store, keys, info): NSLog('Network state has changed') self.ldap_reachable = SMUtilities.is_ldap_reachable( SMUtilities.read_pref('domain')) NSLog('Menu is updating: {0}'.format(self.menu_is_updating)) if self.menu_is_updating == False: self.menu_is_updating = True NSTimer.scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_( 3.5, self, self.updateConfig, None, objc.NO)
def refreshKerberosTicket_(self, sender): self.ldap_reachable = SMUtilities.is_ldap_reachable( SMUtilities.read_pref('domain')) if self.ldap_reachable: self.config_manager.validate_kerberos() else: d = PyDialog.AlertDialog('Unable to refresh Kerberos Ticket!', 'Domain cannot be reached...') d.display()
def runStartup(self): self.statusBar = NSStatusBar.systemStatusBar().statusItemWithLength_(-1.0) statusBarImage = NSImage.imageNamed_('DefaultStatusBarIcon') statusBarImage.setTemplate_(True) self.statusBar.button().setImage_(statusBarImage) self.buildMainMenu() self.updateConfig() self.ldap_reachable = SMUtilities.is_ldap_reachable(SMUtilities.read_pref('domain')) self.registerForWorkspaceNotifications() self.detect_network_changes()
def networkStateHasChanged(self, store, keys, info): NSLog('Network state has changed') self.ldap_reachable = SMUtilities.is_ldap_reachable(SMUtilities.read_pref('domain')) NSLog('Menu is updating: {0}'.format(self.menu_is_updating)) if self.menu_is_updating == False: self.menu_is_updating = True NSTimer.scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_(3.5, self, self.updateConfig, None, objc.NO)
def runStartup(self): self.statusBar = NSStatusBar.systemStatusBar().statusItemWithLength_( -1.0) statusBarImage = NSImage.imageNamed_('DefaultStatusBarIcon') statusBarImage.setTemplate_(True) self.statusBar.button().setImage_(statusBarImage) self.buildMainMenu() self.updateConfig() self.ldap_reachable = SMUtilities.is_ldap_reachable( SMUtilities.read_pref('domain')) self.registerForWorkspaceNotifications() self.detect_network_changes()
def buildMainMenu(self): self.mainMenu = NSMenu.alloc().init() self.mainMenu.addItemWithTitle_action_keyEquivalent_('Loading...', None, '').setTarget_(self) self.mainMenu.addItem_(NSMenuItem.separatorItem()) self.mainMenu.addItemWithTitle_action_keyEquivalent_('Manage Network Shares', self.manageNetworkShares_, '').setTarget_(self) self.mainMenu.addItemWithTitle_action_keyEquivalent_('Ticket Viewer', self.openTicketViewer_, '').setTarget_(self) self.mainMenu.addItemWithTitle_action_keyEquivalent_('Refresh Kerberos', self.refreshKerberosTicket_, '').setTarget_(self) self.mainMenu.addItem_(NSMenuItem.separatorItem()) self.mainMenu.addItemWithTitle_action_keyEquivalent_('Show Shares on Desktop', self.toggleShowDrivesOnDesktop_, '').setTarget_(self) if CoreFoundation.CFPreferencesCopyAppValue('ShowMountedServersOnDesktop', 'com.apple.finder'): self.mainMenu.itemWithTitle_('Show Shares on Desktop').setState_(True) self.mainMenu.addItemWithTitle_action_keyEquivalent_('Display Notifications', self.toggleNotifications_, '').setTarget_(self) if SMUtilities.read_pref('display_notifications'): self.mainMenu.itemWithTitle_('Display Notifications').setState_(True) self.mainMenu.addItem_(NSMenuItem.separatorItem()) self.mainMenu.addItemWithTitle_action_keyEquivalent_('Quit', self.quit_, '').setTarget_(self) self.statusBar.setMenu_(self.mainMenu)