- Timestamp:
- 02/17/10 14:08:15 (14 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/libffado/support/mixer-qt4/ffado/ffadowindow.py
r1748 r1802 27 27 from ffado.config import * 28 28 29 import os29 import subprocess 30 30 31 31 from PyQt4.QtCore import SIGNAL, SLOT, QObject, QTimer, Qt … … 43 43 QWidget.__init__(self, parent) 44 44 self.setObjectName("Restart Dialog") 45 self.label = QLabel(" Somehow the connection to the dbus-service of FFADO couldn't be established.\nShall we take another try?",self)45 self.label = QLabel("<qt>Somehow the connection to the dbus-service of FFADO couldn't be established.<p>\nShall we take another try?</qt>",self) 46 46 self.button = QPushButton("Retry", self) 47 47 self.layout = QGridLayout(self) 48 self.layout.addWidget(self.label, 0, 0, Qt.AlignCenter) 49 self.layout.addWidget(self.button, 1, 0, Qt.AlignCenter) 48 self.layout.setContentsMargins( 50, 10, 50, 10 ) 49 self.layout.addWidget(self.label, 0, 0, Qt.AlignHCenter|Qt.AlignBottom) 50 self.layout.addWidget(self.button, 1, 0, Qt.AlignHCenter|Qt.AlignTop) 50 51 51 52 class FFADOWindow(QMainWindow): … … 63 64 64 65 self.manager = PanelManager(self) 66 self.connect(self.manager, SIGNAL("connectionLost"), self.connectToDBUS) 65 67 66 68 filemenu = self.menuBar().addMenu("File") … … 98 100 99 101 def connectToDBUS(self): 102 log.info("connectToDBUS") 100 103 try: 101 104 self.setupDeviceManager() … … 104 107 if not hasattr(self,"retry"): 105 108 self.retry = StartDialog(self) 109 self.connect(self.retry.button, SIGNAL("clicked()"), self.tryStartDBUSServer) 110 if hasattr(self, "retry"): 111 self.manager.setParent(None) 106 112 self.setCentralWidget(self.retry) 107 self.connect(self.retry.button, SIGNAL("clicked()"), self.tryStartDBUSServer) 108 self.retry.setEnabled(True) 113 self.retry.setEnabled(True) 109 114 110 115 def tryStartDBUSServer(self): … … 112 117 self.setupDeviceManager() 113 118 except dbus.DBusException, ex: 114 self.retry.setEnabled(False) 115 os.spawnlp( os.P_NOWAIT, "ffado-dbus-server" ) 116 QTimer.singleShot(2000, self.connectToDBUS) 119 if hasattr(self, "retry"): 120 self.retry.setEnabled(False) 121 subprocess.Popen(['ffado-dbus-server', '-v3']).pid 122 QTimer.singleShot(5000, self.connectToDBUS) 117 123 118 124 def setupDeviceManager(self): 119 125 devmgr = DeviceManagerInterface(FFADO_DBUS_SERVER, FFADO_DBUS_BASEPATH) 120 #nbDevices = devmgr.getNbDevices()121 126 self.manager.setManager(devmgr) 127 if hasattr(self, "retry"): 128 self.retry.setParent(None) 122 129 self.setCentralWidget(self.manager) 123 130 self.updateaction.setEnabled(True) trunk/libffado/support/mixer-qt4/ffado/panelmanager.py
r1707 r1802 139 139 #log.debug("PanelManager::pollPanels()") 140 140 # only when not modifying the tabs 141 if self.tabs.isEnabled():142 for guid in self.panels.keys():143 w = self.panels[guid]144 for child in w.children():145 #log.debug("poll child %s,%s" % (guid,child))146 if 'polledUpdate' in dir(child):147 try:141 try: 142 if self.tabs.isEnabled(): 143 for guid in self.panels.keys(): 144 w = self.panels[guid] 145 for child in w.children(): 146 #log.debug("poll child %s,%s" % (guid,child)) 147 if 'polledUpdate' in dir(child): 148 148 child.polledUpdate() 149 150 log.error("error in polled update")151 raise149 except: 150 log.error("error in pollPanels") 151 self.commCheck() 152 152 153 153 def devlistPreUpdate(self): … … 201 201 nbDevices = self.devmgr.getNbDevices() 202 202 except: 203 log. debug("comms lost")203 log.error("The communication with ffado-dbus-server was lost.") 204 204 self.tabs.setEnabled(False) 205 self.tabs.hide() 206 self.status.lblMessage.setText("Failed to communicate with DBUS server. Please restart it and restart ffadomixer...") 207 self.status.show() 205 self.polltimer.stop() 208 206 self.alivetimer.stop() 207 keys = self.panels.keys() 208 for panel in keys: 209 w = self.panels[panel] 210 del self.panels[panel] 211 w.deleteLater() 212 self.emit(SIGNAL("connectionLost")) 209 213 210 214 def updatePanels(self):