def __init__(self, parent=None): QObject.__init__(self, parent) self.tray = KStatusNotifierItem("ksni-test-tool", self) self.tray.setCategory(KStatusNotifierItem.Communications) self.tray.setIconByName( QString( "/usr/share/icons/oxygen/16x16/categories/applications-internet.png" )) self.tray.setAttentionIconByName(QString("accessories-text-editor")) self.tray.setStatus(KStatusNotifierItem.Active) self.tray.setToolTipIconByName( QString( "/usr/share/icons/oxygen/16x16/categories/applications-internet.png" )) self.menu = KMenu("KSNI Test Tool") self.menu.addAction("Hello", self.onHelloClicked) self.menu.addAction("Change Status", self.toggleStatus) self.menu.addAction("Hide for some seconds", self.hideForAWhile) self.menu.addAction("Switch to pixmap icon", self.usePixmap) self.menu.addSeparator() self.menu.addAction("Set overlay pixmap", self.setOverlayPixmap) self.menu.addAction("Set overlay icon name", self.setOverlayName) self.menu.addAction("Remove overlay icon", self.removeOverlay) self.tray.setContextMenu(self.menu) self.tray.activateRequested.connect(self.onActivated) self.tray.scrollRequested.connect(self.onScroll)
def __init__(self): app_name = "magneto" catalog = "" prog_name = ki18n("Magneto") version = "1.0" description = ki18n("System Update Status") lic = KAboutData.License_GPL cright = ki18n("(c) 2013 Fabio Erculiani") text = ki18n("none") home_page = "www.sabayon.org" bug_mail = "*****@*****.**" self._kabout = KAboutData(app_name, catalog, prog_name, version, description, lic, cright, text, home_page, bug_mail) argv = [sys.argv[0]] KCmdLineArgs.init(argv, self._kabout) self._app = KApplication() from dbus.mainloop.qt import DBusQtMainLoop super(Magneto, self).__init__(main_loop_class=DBusQtMainLoop) self._window = KStatusNotifierItem() # do not show "Quit" and use quitSelected() signal self._window.setStandardActionsEnabled(False) icon_name = self.icons.get("okay") self._window.setIconByName(icon_name) self._window.setStatus(KStatusNotifierItem.Passive) self._window.connect(self._window, SIGNAL("activateRequested(bool,QPoint)"), self.applet_activated) self._menu = KMenu(_("Magneto Entropy Updates Applet")) self._window.setContextMenu(self._menu) self._menu_items = {} for item in self._menu_item_list: if item is None: self._menu.addSeparator() continue myid, _unused, mytxt, myslot_func = item name = self.get_menu_image(myid) action_icon = KIcon(name) w = KAction(action_icon, mytxt, self._menu) self._menu_items[myid] = w self._window.connect(w, SIGNAL("triggered()"), myslot_func) self._menu.addAction(w) self._menu.hide()
def __init__(self, parent, name, icon): object.__init__(self) self._app = None self._parent = parent self._gtk_running = False self._quit_added = False self.act_indexes = [] self.sep_indexes = [] self.menu_indexes = [] if TrayEngine == "KDE": self.menu = KMenu(parent) self.menu.setTitle(name) self.tray = KStatusNotifierItem() self.tray.setAssociatedWidget(parent) self.tray.setCategory(KStatusNotifierItem.ApplicationStatus) self.tray.setContextMenu(self.menu) self.tray.setIconByPixmap(getIcon(icon)) self.tray.setTitle(name) self.tray.setToolTipTitle(" ") self.tray.setToolTipIconByPixmap(getIcon(icon)) # Double-click is managed by KDE elif TrayEngine == "AppIndicator": self.menu = Gtk.Menu() self.tray = AppIndicator.Indicator.new( name, icon, AppIndicator.IndicatorCategory.APPLICATION_STATUS) self.tray.set_menu(self.menu) # Double-click is not possible with App-Indicators elif TrayEngine == "Qt": self.menu = QMenu(parent) self.tray = QSystemTrayIcon(getIcon(icon)) self.tray.setContextMenu(self.menu) self.tray.setParent(parent) self.tray.connect( self.tray, SIGNAL("activated(QSystemTrayIcon::ActivationReason)"), self.qt_systray_clicked)
def __init__(self, parent, title, icon): QObject.__init__(self) # Setup contextual menu if kde: self.menu = KMenu(parent) self.tray = KStatusNotifierItem(parent) self.tray.setStatus(KStatusNotifierItem.Passive) self.tray.setCategory(KStatusNotifierItem.ApplicationStatus) self.tray.setAssociatedWidget(parent) self.tray.setStandardActionsEnabled(False) self.tray.activateRequested.connect(self._activateRequested) else: self.menu = QMenu() self.tray = QSystemTrayIcon() self.tray.activated.connect(self._activated) self.setIcon(icon) self.setTitle(title) if not kde: self.tray.show() self.tray.setContextMenu(self.menu)
def addMenu(self, menu_name_id, menu_name_string): if TrayEngine == "KDE": menu_widget = KMenu(menu_name_string, self.menu) self.menu.addMenu(menu_widget) elif TrayEngine == "AppIndicator": menu_widget = Gtk.MenuItem(menu_name_string) menu_parent = Gtk.Menu() menu_widget.set_submenu(menu_parent) menu_widget.show() self.menu.append(menu_widget) elif TrayEngine == "Qt": menu_widget = QMenu(menu_name_string, self.menu) self.menu.addMenu(menu_widget) else: menu_widget = None menu_obj = [None, None, None] menu_obj[iMenuNameId] = menu_name_id menu_obj[iMenuWidget] = menu_widget self.menu_indexes.append(menu_obj)
def refreshBrowser(self): if self.animator.state() != 0: # Refreshing browser when animator is active causes blindness if not self.refreshBrowser in self.animatorFinishHook: self.animatorFinishHook.append(self.refreshBrowser) return aa = time.time() self.ui.filterBox.clear() self.probedDevices = [] menu = KMenu(self) for package in self.packages: info = self.packages[package] devices = self.iface.devices(package) if len(devices) > 0: # Add package container and set icon menuPackageContainer = KMenu(self.packages[package]['name'], menu) menuPackageContainer.setIcon(KIcon(getIconForPackage(package))) menu.addMenu(menuPackageContainer) # Add filter menu entry self.ui.filterBox.addItem(info["name"], QVariant(package)) if "remote_scan" in info["modes"]: self.ui.filterBox.addItem(i18n("Available Profiles"), QVariant("essid")) APScanner = APPopup(self, package) self.ui.buttonScan.setMenu(APScanner) # Create profile menu with current devices for device in devices.keys(): print device, devices[device] menuItem = QtGui.QAction(devices[device], menuPackageContainer) menuItem.setData( QVariant("%s::%s::%s" % (package, device, devices[device]))) self.connect(menuItem, SIGNAL("triggered()"), self.createConnection) # Store a list of probed devices if device not in self.probedDevices: self.probedDevices.append(device) menuPackageContainer.addAction(menuItem) if len(self.packages) > 0: self.ui.buttonCreate.setIcon(KIcon("list-add")) self.ui.buttonCreate.setMenu(menu) self.ui.filterBox.insertItem(0, i18n("All Profiles"), QVariant("all")) else: self.ui.buttonCreate.setText(i18n("No Device Found")) self.ui.buttonCreate.setEnabled(False) self.ui.filterBox.insertItem(0, i18n("No Device Found")) self.ui.filterBox.setEnabled(False) self.ui.filterBox.setCurrentIndex(0) # Fill the list self.fillProfileList()