def __init__(self, text, attr, library): self.library = library QTreeWidgetItem.__init__(self) self.setText(0, text) if attr == 'file': self.setIcon(0, auxilia.PIcon('audio-x-generic')) else: self.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator) self.setIcon(0, auxilia.PIcon('folder-sound'))
def __buildConnectTo(self): self.menuConnect.clear() self.menuConnect.addAction(auxilia.PIcon('dialog-cancel'), 'None (disconnect)') connected = self.mpdclient.connected() for server in self.config.knownHosts: if connected and self.config.server and self.config.server[ 0] == server: icon = auxilia.PIcon('network-connect') else: icon = auxilia.PIcon('network-disconnect') self.menuConnect.addAction(icon, server)
def __init__(self, icon, parent): QSystemTrayIcon.__init__(self, icon, parent) self.parent = parent self.pauseIcon = auxilia.PIcon("media-playback-pause") self.startIcon = auxilia.PIcon("media-playback-start") self.actionList = [] self.menu = QMenu('Pythagora MPD client', parent) self.menu.addAction(menuTitle(icon, 'Pythagora', parent)) self.setContextMenu(self.menu) self.hideResoreAction = QAction('Minimize', self.menu) self.connect(self.hideResoreAction, SIGNAL('triggered()'), self.__activated) self.connect( self, SIGNAL('activated(QSystemTrayIcon::ActivationReason)'), self.__activated) self.connect(self.menu, SIGNAL('aboutToShow()'), self.__buildMenu) self.show()
def __init__(self, view, app, mpdclient, config): QWidget.__init__(self) self.view = view self.mpdclient = mpdclient if self.view.KDE: uic.loadUi(DATA_DIR + 'ui/PlayerForm.ui', self) else: uic.loadUi(DATA_DIR + 'ui/PlayerForm.ui.Qt', self) self.playerForm = self self.view.topLayout.addWidget(self) # Set attributes not set trough xml file. self.back.setIcon(auxilia.PIcon("media-skip-backward")) self.stop.setIcon(auxilia.PIcon("media-playback-stop")) self.forward.setIcon(auxilia.PIcon("media-skip-forward")) self.songLabel = SongLabel() self.setAcceptDrops(True) self.titleLayout.addWidget(self.songLabel) self.progress.mouseReleaseEvent = self.__mouseReleaseEvent self.progress.mouseMoveEvent = self.__mouseMoveEvent self.progress.setMouseTracking(True) self.connect(self, SIGNAL('songSeek'), self.songSeek)
def showConfiguration(self, parent, modal=False): '''Display the configuration dialog and activate the changes.''' self.parent = parent self.setup = uic.loadUi(DATA_DIR + 'ui/Configuration.ui') self.setup.setWindowTitle('Pythagora settings') self.setup.setWindowIcon(QIcon('Pythagora.png')) self.setup.setAttribute(Qt.WA_QuitOnClose, False) # Hide options for functions not yet implemented. self.setup.showNotificationWidget.setVisible(False) self.setup.musicPath.setText(self.musicPath) self.setup.scBookmarkFile.setText(self.scBookmarkFile) # Setup the serverTable. actionRemove = QAction(auxilia.PIcon("list-remove"), 'Remove', self.setup.serverTable) self.setup.serverTable.addAction(actionRemove) self.setup.serverTable.connect(actionRemove, SIGNAL('triggered()'), self.__removeServer) self.setup.serverTable.setColumnWidth(0, 160) self.setup.serverTable.setColumnWidth(1, 120) self.setup.serverTable.setColumnWidth(2, 50) try: for row, server in enumerate(self.knownHosts): self.setup.serverTable.insertRow(row) self.setup.serverTable.setItem(row, 0, QTableWidgetItem(server)) for col, value in enumerate(self.knownHosts[server]): col += 1 if col == 3: password = QLineEdit(value) password.setEchoMode(QLineEdit.Password) self.setup.serverTable.setCellWidget( row, col, password) else: self.setup.serverTable.setItem(row, col, QTableWidgetItem(value)) self.__addServer() # Select current server. if self.server: current = self.setup.serverTable.findItems( self.server[1], Qt.MatchExactly) if current: self.setup.serverTable.setCurrentItem(current[0]) except Exception, e: print 'error: problem showing config', e
def createViews(self): '''Set up our different view handlers.''' # Standard views. self.playerForm = PlayerForm(self, self.app, self.mpdclient, self.config) self.currentList = CurrentPlaylistForm.CurrentPlaylistForm( self, self.app, self.mpdclient, self.config) # Plugin views. loadedPlugins = [] for plugin in plugins.allPlugins: loadedPlugins.append( plugin.getWidget(self, self.mpdclient, self.config)) for name in self.config.tabOrder: for plugin in loadedPlugins: if plugin.moduleName == name: self.tabs.addTab(plugin, auxilia.PIcon(plugin.moduleIcon), plugin.moduleName) break
def __init__(self, configuration, mpdclient, app): QMainWindow.__init__(self) self.app = app self.focus = time() self.shuttingDown = False self.config = configuration self.mpdclient = mpdclient appIcon = QIcon(DATA_DIR + 'icons/Pythagora.png') uic.loadUi(DATA_DIR + 'ui/Pythagora.ui', self) self.KDE = KDE self.setWindowTitle('Pythagora') self.setWindowIcon(appIcon) # Load all forms. self.createViews() # Create 'Connect to' menu. self.menuConnect = QMenu('Connect To') self.menuConnect.menuAction().setIcon( auxilia.PIcon('network-disconnect')) self.connectButton = QToolButton() self.connectButton.setPopupMode(QToolButton.InstantPopup) self.connectButton.setIcon(auxilia.PIcon('network-disconnect')) self.connectButton.setMenu(self.menuConnect) # Create 'MDP' menu. self.menuMPD = QMenu('MPD') self.menuMPD.menuAction().setIcon(auxilia.PIcon('network-workgroup')) self.mpdButton = QToolButton() self.mpdButton.setPopupMode(QToolButton.InstantPopup) self.mpdButton.setIcon(auxilia.PIcon('network-workgroup')) self.mpdButton.setMenu(self.menuMPD) self.reloadLibrary = self.actionLibReload(self.menuMPD, self.__libReload) self.updateLibrary = self.actionLibUpdate( self.menuMPD, lambda: self.mpdclient.send('update')) self.rescanLibrary = self.actionLibRescan( self.menuMPD, lambda: self.mpdclient.send('rescan')) # Fill Toolbar. self.toolBar.addWidget(self.connectButton) self.toolBar.addWidget(self.mpdButton) # Fill Statusbar. self.serverLabel = QLabel('Not connected') self.numSongsLabel = QLabel('Songs') self.playTimeLabel = QLabel('playTime') self.statusbar.addWidget(self.serverLabel) self.statusbar.addPermanentWidget(self.numSongsLabel) self.statusbar.addPermanentWidget(self.playTimeLabel) self.connect(self.menuConnect, SIGNAL('aboutToShow()'), self.__buildConnectTo) self.connect(self.actionExit, SIGNAL('triggered()'), self.app.quit) self.connect(self.actionSettings, SIGNAL('triggered()'), self.showConfig) # Set up trayicon and menu. if KDE: self.trayIcon = KTrayIcon(appIcon, self) else: self.trayIcon = QTrayIcon(appIcon, self) connectMenuAction = self.menuConnect.menuAction() self.trayIcon.addMenuItem(connectMenuAction) self.trayIcon.addMenuItem(self.actionSettings) self.connect(self.trayIcon, SIGNAL('activate()'), self.toggleHideRestore) self.connect(self.trayIcon, SIGNAL('secondaryActivateRequested(QPoint)'), self.__playPause) self.connect(self.tabs, SIGNAL('currentChanged(int)'), self.__tabsIndexChanged) self.connect(self.tabs.tabBar(), SIGNAL('tabMoved(int,int)'), self.__tabMoved) self.connect(self.splitter, SIGNAL('splitterMoved(int, int)'), self.__storeSplitter) # Apply configuration. self.resize(configuration.mgrSize) self.splitter.setSizes(configuration.mgrSplit) self.tabs.setCurrentIndex(configuration.tabsIndex) self.closeEvent = self.closeEvent self.connect(self.app, SIGNAL('aboutToQuit()'), self.shutdown) self.show() #============================================================================== # Code for switching tabs on drag & drop. (__init__() continues) #============================================================================== # Instantiate timer self.tabTimer = QTimer() self.connect(self.tabTimer, SIGNAL('timeout()'), self.__selectTab) # Overload the default dragEvents. (none?) self.tabs.dragLeaveEvent = self.dragLeaveEvent self.tabs.dragEnterEvent = self.dragEnterEvent self.tabs.dragMoveEvent = self.dragMoveEvent