def main(): # DBUS MainLoop if not dbus.get_default_main_loop(): from dbus.mainloop.pyqt5 import DBusQtMainLoop DBusQtMainLoop(set_as_default = True) # Application Stuff from libhistorymanager.window import MainManager app = QApplication(sys.argv) app.setOrganizationName("history-manager") app.setApplicationName("history-manager") app.setApplicationVersion("0.2.8b") locale = QLocale.system().name() translator = QTranslator(app) translator.load(join("/usr/share/history-manager", "languages/{}.qm".format(locale))) app.installTranslator(translator) # Create Main Widget and make some settings mainWindow = MainManager(None, app= app) mainWindow.resize(640, 480) mainWindow.setWindowIcon(QIcon.fromTheme("view-history")) mainWindow.show() # Create connection for lastWindowClosed signal to quit app app.lastWindowClosed.connect(app.quit) # Run the applications app.exec_()
def create_firewall_config(parent,name): global kapp kapp = KApplication.kApplication() if not dbus.get_default_main_loop(): dbus.mainloop.qt3.DBusQtMainLoop(set_as_default=True) return MainApplication(parent, name)
def _get_main_loop(self): if not hasattr(dbus, "get_default_main_loop"): log.debug( "installed python-dbus doesn't support 'get_default_main_loop'" ) return None return dbus.get_default_main_loop()
def init(app_name, mainloop=None): """Initialise the D-Bus connection. Must be called before you send any notifications, or retrieve server info or capabilities. """ global appname, initted, dbus_iface, _have_mainloop if mainloop == 'glib': from dbus.mainloop.glib import DBusGMainLoop mainloop = DBusGMainLoop() elif mainloop == 'qt': from dbus.mainloop.qt import DBusQtMainLoop mainloop = DBusQtMainLoop(set_as_default=True) bus = dbus.SessionBus(mainloop=mainloop) dbus_obj = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications') dbus_iface = dbus.Interface(dbus_obj, dbus_interface='org.freedesktop.Notifications') appname = app_name initted = True if mainloop or dbus.get_default_main_loop(): _have_mainloop = True dbus_iface.connect_to_signal('ActionInvoked', _action_callback) dbus_iface.connect_to_signal('NotificationClosed', _closed_callback) return True
def main(): # DBUS MainLoop if not dbus.get_default_main_loop(): from dbus.mainloop.pyqt5 import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) # Application Stuff from libhistorymanager.window import MainManager app = QApplication(sys.argv) app.setOrganizationName("history-manager") app.setApplicationName("history-manager") app.setApplicationVersion("0.2.8b") locale = QLocale.system().name() translator = QTranslator(app) translator.load( join("/usr/share/history-manager", "languages/{}.qm".format(locale))) app.installTranslator(translator) # Create Main Widget and make some settings mainWindow = MainManager(None, app=app) mainWindow.resize(640, 480) mainWindow.setWindowIcon(QIcon.fromTheme("view-history")) mainWindow.show() # Create connection for lastWindowClosed signal to quit app app.lastWindowClosed.connect(app.quit) # Run the applications app.exec_()
def dbus_init(main_loop=True, use_qt_loop=False): """Returns new SessionBus_. If `main_loop` is :const:`True` and no D-Bus main loop is registered yet, registers a default main loop (PyQt5 main loop if `use_qt_loop` is :const:`True`, otherwise GLib main loop). .. _SessionBus: https://www.freedesktop.org/wiki/IntroductionToDBus/#buses .. note:: Qt uses GLib main loops on UNIX-like systems by default, so one will rarely need to set `use_qt_loop` to :const:`True`. """ if main_loop and not dbus.get_default_main_loop(): if use_qt_loop: from dbus.mainloop.pyqt5 import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) else: from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) try: return dbus.SessionBus() except dbus.exceptions.DBusException as e: if e.get_dbus_name() in (DBUS_NOT_SUPPORTED, DBUS_EXEC_FAILED, DBUS_NO_REPLY, DBUS_ACCESS_DENIED): raise SecretServiceNotAvailableException( e.get_dbus_message()) raise
def __init__(self, component_data, parent): KCModule.__init__(self, component_data, parent) if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) MainWidget(self, embed=True)
def listen_for_restarts(self): # If we have a mainloop, listen for disconnections if not NMDbusInterface.last_disconnect and dbus.get_default_main_loop( ): dbus.SystemBus().add_signal_receiver(self.handle_restart, 'NameOwnerChanged', 'org.freedesktop.DBus') NMDbusInterface.last_disconnect = 1
def __init__(self, component_data, parent): KCModule.__init__(self, component_data, parent) KGlobal.locale().insertCatalog(catalog) if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default = True) MainManager(self, standAlone=False)
def __init__(self, component_data, parent): KCModule.__init__(self, component_data, parent) KGlobal.locale().insertCatalog(about.catalog) if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) MainWidget(self, embed=True)
def __init__(self, component_data, parent): KCModule.__init__(self, component_data, parent) KGlobal.locale().insertCatalog(catalog) if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default = True) MainWidget(self, embed=True)
def __init__(self, component_data, parent): KCModule.__init__(self, component_data, parent) # This is very important for translations when running as kcm_module KGlobal.locale().insertCatalog("service-manager") if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default = True) MainManager(self, standAlone = False)
def init(self): """ Const method for initializing the applet """ self.readEntries() self.followSolid() self.connectedDevices = [] self.maxQuality = 100.0 self.iface = NetworkIface() self.notifyface = Notifier(dbus.get_default_main_loop()) self.notifyface.registerNetwork() # Aspect ratio defined in Plasma self.setAspectRatioMode(Plasma.Square) self.loader = KIconLoader() self.defaultIcon = WIRED self.emblem = DISCONNECTED["emblem"] self.icon = NmIcon(self) self.icon.setToolTip(i18n("Click here to show connections..")) self.layout = QGraphicsLinearLayout(self.applet) self.layout.setContentsMargins(0, 0, 0, 0) self.layout.setSpacing(0) self.layout.addItem(self.icon) self.connect(self.icon, SIGNAL("clicked()"), self.showDialog) self.receiverBlinker = Blinker(self) self.transmitterBlinker = Blinker(self, QColor(255,114,32)) # Listen data transfers from lastUsed Device .. self.lastActiveDevice = None self.lastActivePackage = None self.initPopup() # It may cause crashes in PlasmoidViewer but luckly not in Plasma :) self.connect(Plasma.Theme.defaultTheme(), SIGNAL("themeChanged()"), self.updateTheme) # Listen network status from comar self.iface.listen(self.handler) QTimer.singleShot(self._config['pollinterval'], self.dataUpdated) # Context Menu icon = self.loader.loadIcon(WIRED, KIconLoader.NoGroup, 22) openNm = QAction(QIcon(icon), i18n("Open Network Manager"), self) self.actions.append(openNm) self.connect(openNm, SIGNAL("triggered(bool)"), self.openNM) self.connect(self.popup.ui.nmButton, SIGNAL("clicked()"), self.openNM)
def init(app_name, mainloop=None): """Initialise the D-Bus connection. Must be called before you send any notifications, or retrieve server info or capabilities. To get callbacks from notifications, DBus must be integrated with a mainloop. There are three ways to achieve this: - Set a default mainloop (dbus.set_default_main_loop) before calling init() - Pass the mainloop parameter as a string 'glib' or 'qt' to integrate with those mainloops. (N.B. passing 'qt' currently makes that the default dbus mainloop, because that's the only way it seems to work.) - Pass the mainloop parameter a DBus compatible mainloop instance, such as dbus.mainloop.glib.DBusGMainLoop(). If you only want to display notifications, without receiving information back from them, you can safely omit mainloop. """ global appname, initted, dbus_iface, _have_mainloop if mainloop == 'glib': from dbus.mainloop.glib import DBusGMainLoop mainloop = DBusGMainLoop() elif mainloop == 'qt': from dbus.mainloop.qt import DBusQtMainLoop # For some reason, this only works if we make it the default mainloop # for dbus. That might make life tricky for anyone trying to juggle two # event loops, but I can't see any way round it. mainloop = DBusQtMainLoop(set_as_default=True) bus = dbus.SessionBus(mainloop=mainloop) dbus_obj = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications') dbus_iface = dbus.Interface(dbus_obj, dbus_interface='org.freedesktop.Notifications') appname = app_name initted = True if mainloop or dbus.get_default_main_loop(): _have_mainloop = True dbus_iface.connect_to_signal('ActionInvoked', _action_callback) dbus_iface.connect_to_signal('NotificationClosed', _closed_callback) return True
def init(app_name, mainloop=None): """Initialise the Dbus connection. To get callbacks from notifications, DBus must be integrated with a mainloop. There are three ways to achieve this: - Set a default mainloop (dbus.set_default_main_loop) before calling init() - Pass the mainloop parameter as a string 'glib' or 'qt' to integrate with those mainloops. (N.B. passing 'qt' currently makes that the default dbus mainloop, because that's the only way it seems to work.) - Pass the mainloop parameter a DBus compatible mainloop instance, such as dbus.mainloop.glib.DBusGMainLoop(). If you only want to display notifications, without receiving information back from them, you can safely omit mainloop. """ global appname, initted, dbus_iface, _have_mainloop if mainloop == 'glib': from dbus.mainloop.glib import DBusGMainLoop mainloop = DBusGMainLoop() elif mainloop == 'qt': from dbus.mainloop.qt import DBusQtMainLoop # For some reason, this only works if we make it the default mainloop # for dbus. That might make life tricky for anyone trying to juggle two # event loops, but I can't see any way round it. mainloop = DBusQtMainLoop(set_as_default=True) bus = dbus.SessionBus(mainloop=mainloop) dbus_obj = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications') dbus_iface = dbus.Interface(dbus_obj, dbus_interface='org.freedesktop.Notifications') appname = app_name initted = True if mainloop or dbus.get_default_main_loop(): _have_mainloop = True dbus_iface.connect_to_signal('ActionInvoked', _action_callback) dbus_iface.connect_to_signal('NotificationClosed', _closed_callback) return True
def __init__(self, component_data, parent): KCModule.__init__(self, component_data, parent) KGlobal.locale().insertCatalog(catalog) self.setButtons(KCModule.Apply) if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) mw = MainWidget(self, embed=True) self.load = mw.load self.save = mw.save self.defaults = mw.defaults def configChanged(): self.changed.emit(True) mw.configChanged.connect(configChanged)
def __init__(self, parent=None): QtGui.QDialog.__init__(self, parent) self.setupUi(self) if not dbus.get_default_main_loop(): dbus.mainloop.qt.DBusQtMainLoop(set_as_default=True) self.comarLink = ComarLink(self.winId) if not self.comarLink.openBus(): sys.exit(1) # Action connectings self.connect(self.unloadAction, QtCore.SIGNAL("triggered()"), self.unloadModule) self.connect(self.addblacklistAction, QtCore.SIGNAL("triggered()"), self.addModuleToBlacklist) self.connect(self.editSearch, QtCore.SIGNAL("textChanged(const QString &)"), self.searchOnList) self.populateLoadedModules()
def run_mpris2_server(app): try: import dbus import dbus.service import dbus.mainloop.pyqt5 except ImportError as e: logger.error("can't run mpris2 server: %s", str(e)) else: from .mpris2 import Mpris2Service, BusName # check if a mainloop was already set mainloop = dbus.get_default_main_loop() if mainloop is not None: logger.warn("mpris2 service already enabled? " "maybe you should remove feeluown-mpris2-plugin") return # set the mainloop before any dbus operation dbus.mainloop.pyqt5.DBusQtMainLoop(set_as_default=True) session_bus = dbus.SessionBus() bus = dbus.service.BusName(BusName, session_bus) service = Mpris2Service(app, bus) service.enable()
def create_network_manager(parent, name): global kapp kapp = KUniqueApplication.kApplication() if not dbus.get_default_main_loop(): DBusQtMainLoop(set_as_default=True) return Module(parent, name)
def DBus(): if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default=True)
def _get_main_loop(self): if not hasattr(dbus, "get_default_main_loop"): log.debug("installed python-dbus doesn't support 'get_default_main_loop'") return None return dbus.get_default_main_loop()
def listen_for_restarts(self): # If we have a mainloop, listen for disconnections if not NMDbusInterface.last_disconnect and dbus.get_default_main_loop(): dbus.SystemBus().add_signal_receiver(self.handle_restart, 'NameOwnerChanged', 'org.freedesktop.DBus') NMDbusInterface.last_disconnect = 1
import backend from pmlogging import logger from mainwindow import MainWindow from localedata import setSystemLocale from pmutils import * # Package Manager Main App if __name__ == '__main__': # Catch signals signal.signal(signal.SIGINT, signal.SIG_DFL) # Create a dbus mainloop if its not exists if not dbus.get_default_main_loop(): from dbus.mainloop.qt import DBusQtMainLoop DBusQtMainLoop(set_as_default=True) # Use raster to make it faster QApplication.setGraphicsSystem('raster') pid = os.fork() if pid: os._exit(0) app = QUniqueApplication(sys.argv, catalog='package-manager') setSystemLocale() # Set application font from system font = Pds.settings('font', 'Sans,10').split(',')
import config from pmlogging import logger from pmwindow import PmWindow from localedata import setSystemLocale from pmutils import * _translate = QCoreApplication.translate if __name__ == '__main__': # Catch signals signal.signal(signal.SIGINT, signal.SIG_DFL) # Create a dbus mainloop if its not exists if not dbus.get_default_main_loop(): from dbus.mainloop.pyqt5 import DBusQtMainLoop DBusQtMainLoop(set_as_default = True) # Use raster to make it faster #QApplication.setGraphicsSystem('raster') usage = unicode(i18n("%prog packages_to_install")) parser = OptionParser(usage=usage) packages = filter(lambda x: not x.startswith('-'), sys.argv[1:]) if len(sys.argv) > 1: app = QUniqueApplication(sys.argv, catalog='pm-install') setSystemLocale()
def __init__(self,bus=None,object_path=''): self.bus=bus; self.object_path=object_path; if(dbus.get_default_main_loop()!=None): bus.watch_name_owner("net.krizka.autorotate",self.handleDaemonStatus);