def processUserAddedShares(self): user_added_shares = SMUtilities.get_user_added_shares() self.connectMenu.addItem_(NSMenuItem.separatorItem()) if user_added_shares: no_available_shares = self.connectMenu.indexOfItemWithTitle_( 'No available shares...') if no_available_shares != -1: self.connectMenu.removeItemAtIndex_(no_available_shares) for share in user_added_shares: share_menu = self.buildShareMenu(share) self.connectMenu.addItem_(share_menu) if share.get('hide_from_menu'): share_menu.setHidden_(True) self.connectMenu.addItem_(NSMenuItem.separatorItem()) if self.ldap_reachable: hide_all = False self.connectMenu.addItemWithTitle_action_keyEquivalent_( 'Show Hidden', self.toggleShowHidden_, '').setTarget_(self) self.connectMenu.itemWithTitle_('Show Hidden').setHidden_(True) self.toggleShowHiddenButton() else: hide_all = True self.connectMenu.addItemWithTitle_action_keyEquivalent_( 'Check For Updates', self.manualUpdate_, '').setTarget_(self) for shareMenu in self.connectMenu.itemArray(): if shareMenu.submenu() and hide_all: shareMenu.setHidden_(True) self.connectMenu.addItem_(NSMenuItem.separatorItem()) if SMUtilities.get_mounted_network_volumes(): self.connectMenu.addItemWithTitle_action_keyEquivalent_( 'Unmount All', self.unmountShare_, '').setTarget_(self) else: self.connectMenu.addItemWithTitle_action_keyEquivalent_( 'Unmount All', None, '')
def buildShareMenu(self, share): user_added_shares = SMUtilities.get_user_added_shares() shareMenu = NSMenu.alloc().init() connectMenuItem = NSMenuItem.alloc( ).initWithTitle_action_keyEquivalent_(share.get('title'), None, '') if share.get( 'mount_point') in SMUtilities.get_mounted_network_volumes(): connectMenuItem.setState_(True) shareMenu.addItemWithTitle_action_keyEquivalent_( 'Unmount Share', self.unmountShare_, '').setTarget_(self) shareMenu.addItemWithTitle_action_keyEquivalent_( 'Open Folder', self.openFolderClicked_, '').setTarget_(self) else: connectMenuItem.setState_(False) shareMenu.addItemWithTitle_action_keyEquivalent_( 'Mount Share', self.connectToShare_, '').setTarget_(self) shareMenu.addItem_(NSMenuItem.separatorItem()) shareMenu.addItemWithTitle_action_keyEquivalent_( 'Connect Automatically', self.toggleAutoConnect_, '').setTarget_(self) if share.get('connect_automatically'): shareMenu.itemWithTitle_('Connect Automatically').setState_(True) shareMenu.addItemWithTitle_action_keyEquivalent_( 'Hide from Menu', self.toggleHideShare_, '').setTarget_(self) if share in user_added_shares: shareMenu.addItemWithTitle_action_keyEquivalent_( 'Remove from Menu', self.removeUserShare_, '').setTarget_(self) connectMenuItem.setSubmenu_(shareMenu) return connectMenuItem
def processUserAddedShares(self): user_added_shares = SMUtilities.get_user_added_shares() self.connectMenu.addItem_(NSMenuItem.separatorItem()) if user_added_shares: no_available_shares = self.connectMenu.indexOfItemWithTitle_('No available shares...') if no_available_shares != -1: self.connectMenu.removeItemAtIndex_(no_available_shares) for share in user_added_shares: share_menu = self.buildShareMenu(share) self.connectMenu.addItem_(share_menu) if share.get('hide_from_menu'): share_menu.setHidden_(True) self.connectMenu.addItem_(NSMenuItem.separatorItem()) if self.ldap_reachable: hide_all = False self.connectMenu.addItemWithTitle_action_keyEquivalent_('Show Hidden', self.toggleShowHidden_, '').setTarget_(self) self.connectMenu.itemWithTitle_('Show Hidden').setHidden_(True) self.toggleShowHiddenButton() else: hide_all = True self.connectMenu.addItemWithTitle_action_keyEquivalent_('Check For Updates', self.manualUpdate_, '').setTarget_(self) for shareMenu in self.connectMenu.itemArray(): if shareMenu.submenu() and hide_all: shareMenu.setHidden_(True) self.connectMenu.addItem_(NSMenuItem.separatorItem()) if SMUtilities.get_mounted_network_volumes(): self.connectMenu.addItemWithTitle_action_keyEquivalent_('Unmount All', self.unmountShare_, '').setTarget_(self) else: self.connectMenu.addItemWithTitle_action_keyEquivalent_('Unmount All', None, '')
def buildShareMenu(self, share): user_added_shares = SMUtilities.get_user_added_shares() shareMenu = NSMenu.alloc().init() connectMenuItem = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(share.get('title'), None, '') if share.get('mount_point') in SMUtilities.get_mounted_network_volumes(): connectMenuItem.setState_(True) shareMenu.addItemWithTitle_action_keyEquivalent_('Unmount Share', self.unmountShare_, '').setTarget_(self) shareMenu.addItemWithTitle_action_keyEquivalent_('Open Folder', self.openFolderClicked_, '').setTarget_(self) else: connectMenuItem.setState_(False) shareMenu.addItemWithTitle_action_keyEquivalent_('Mount Share', self.connectToShare_, '').setTarget_(self) shareMenu.addItem_(NSMenuItem.separatorItem()) shareMenu.addItemWithTitle_action_keyEquivalent_('Connect Automatically', self.toggleAutoConnect_, '').setTarget_(self) if share.get('connect_automatically'): shareMenu.itemWithTitle_('Connect Automatically').setState_(True) shareMenu.addItemWithTitle_action_keyEquivalent_('Hide from Menu', self.toggleHideShare_, '').setTarget_(self) if share in user_added_shares: shareMenu.addItemWithTitle_action_keyEquivalent_('Remove from Menu', self.removeUserShare_, '').setTarget_(self) connectMenuItem.setSubmenu_(shareMenu) return connectMenuItem
def getAvailableShares(self): available_shares = list() managed_shares = SMUtilities.get_managed_shares() user_added_shares = SMUtilities.get_user_added_shares() for share in managed_shares: share = dict(share) share['share_type'] = 'managed' available_shares.append(share) for share in user_added_shares: share = dict(share) share['share_type'] = 'user' available_shares.append(share) return available_shares
def autoMountShares(self): managed_shares = SMUtilities.get_managed_shares() user_added_shares = SMUtilities.get_user_added_shares() if self.ldap_reachable: for share in managed_shares: if (share.get('connect_automatically') and share.get('mount_point') not in SMUtilities.get_mounted_network_volumes()): NSLog('Automounting {0}'.format(share.get('share_url'))) SMUtilities.mount_share(share.get('share_url')) for share in user_added_shares: if (share.get('connect_automatically') and share.get('mount_point') not in SMUtilities.get_mounted_network_volumes()): SMUtilities.mount_share(share.get('share_url'))