def __init__(self, title, message, details='', parent=None): QDialog.__init__(self, parent) ErrorDialogUi.__init__(self) self.setupUi(self) self.uiDetails.setText(details) self.uiErrorInfo.setText(message) self.uiErrorTitle.setText(title) from Koo.Common import RemoteHelp self.pushRemoteHelp.setVisible(RemoteHelp.isRemoteHelpAvailable()) self.pushSend.clicked.connect(self.send) self.pushRemoteHelp.clicked.connect(self.remoteHelp)
def __init__(self): QMainWindow.__init__(self) KooMainWindowUi.__init__(self) self.menuBar = False self.setupUi(self) # Initialize singleton KooMainWindow.instance = self self.fixedWindowTitle = self.windowTitle() self.uiServerInformation.setText(_('Press Ctrl+O to login')) self.tabWidget = MainTabWidget(self. centralWidget()) self.tabWidget.currentChanged[int].connect(self.currentChanged) self.tabWidget.middleClicked[int].connect(self.closeTab) self.tabWidget.tabCloseRequested[int].connect(self.closeTab) self.pushClose = QToolButton(self.tabWidget) self.pushClose.setIcon(QIcon(':/images/close_tab.png')) self.pushClose.setAutoRaise(True) self.pushClose.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.pushClose.setToolTip(_('Close tab')) self.pushClose.clicked.connect(self.closeCurrentTab) self.tabWidget.setCornerWidget(self.pushClose, Qt.TopRightCorner) self.layout = self.centralWidget().layout() self.layout.setSpacing(2) self.layout.addWidget(self.tabWidget) self.layout.addWidget(self.frame) self.actionFullTextSearch.setShortcuts(['Ctrl+T', 'Ctrl+Alt+T']) self.actionClose.triggered.connect(self.closeCurrentTab) self.actionConnect.triggered.connect(self.showLoginDialog) self.actionDisconnect.triggered.connect(self.logout) self.actionSendRequest.triggered.connect(self.newRequest) self.actionReadMyRequest.triggered.connect(self.pendingRequests) self.actionWaitingRequests.triggered.connect(self.waitingRequests) self.actionNewDatabase.triggered.connect(self.createDatabase) self.actionExit.triggered.connect(self.close) self.actionFullTextSearch.triggered.connect(self.fullTextSearch) self.actionNextTab.triggered.connect(self.nextTab) self.actionPreviousTab.triggered.connect(self.previousTab) self.actionBackupDatabase.triggered.connect(self.backupDatabase) self.actionRestoreDatabase.triggered.connect(self.restoreDatabase) self.actionDropDatabase.triggered.connect(self.dropDatabase) self.actionAdminPassword.triggered.connect(self.changeAdministratorPassword) self.actionPreferences.triggered.connect(self.userPreferences) self.actionOpenMenuTab.triggered.connect(self.openMenuTab) self.actionOpenHomeTab.triggered.connect(self.openHomeTab) self.actionClearCache.triggered.connect(self.clearCache) self.actionHtmlManual.triggered.connect(self.openHtmlManual) self.actionPdfManual.triggered.connect(self.openPdfManual) self.actionDocOpenErpCom.triggered.connect(self.openDocOpenErpCom) self.actionTips.triggered.connect(self.showTipOfTheDay) self.actionShortcuts.triggered.connect(self.showShortcuts) self.actionLicense.triggered.connect(self.showLicense) self.actionAbout.triggered.connect(self.showAboutDialog) self.actionFormDesigner.triggered.connect(self.formDesigner) # Connect request buttons self.pushReadRequests.clicked.connect(self.pendingRequests) self.pushSendRequest.clicked.connect(self.newRequest) self.pushHelp.clicked.connect(self.help) if Settings.value('koo.enable_batch_update_field'): self.actionBatchUpdateField.setVisible(True) # These actions are not handled by the Main Window but by the currently opened tab. # What we do here, is connect all these actions to a single handler that will # call the current child/tab/form. This is handled this way instead of signals because we # may have several windows opened at the same time and all children would receive # the signal... self.actions = [ 'New', 'Save', 'Delete', 'Find', 'Previous', 'Next', 'Reload', 'Switch', 'Attach', 'Export', 'Import', 'GoToResourceId', 'Duplicate', 'AccessLog', 'BatchInsert', 'BatchUpdate', 'BatchUpdateField', 'BatchButton', 'StoreViewSettings' ] for x in self.actions: action = eval('self.action' + x) action.triggered.connect(self.callChildView) self.pushSwitchView = self.uiToolBar.widgetForAction(self.actionSwitch) self.pushSwitchView.setPopupMode(QToolButton.MenuButtonPopup) self.updateEnabledActions() self.shortcutActions = [] self.shortcutsGroup = None # Stores the id of the menu action. This is to avoid opening two menus # when 'action_id' returns the same as 'menu_id' self.menuId = False # Update the number of pending requests in the status bar using a timer but also # subscribing to model changes if 'koo' module is installed in the server. self.requestsTimer = QTimer() self.requestsTimer.timeout.connect(self.updateRequestsStatus) self.pendingRequests = -1 # Subscriber will be used to update requests status too. Only if 'koo' model is installed # on the server. self.subscriber = None # System Tray self.actionOpenPartnersTab = QAction(self) self.actionOpenPartnersTab.setIcon(QIcon(':/images/partner.png')) self.actionOpenPartnersTab.setText(_('Open partners tab')) self.actionOpenPartnersTab.triggered.connect(self.openPartnersTab) self.actionOpenProductsTab = QAction(self) self.actionOpenProductsTab.setIcon(QIcon(':/images/product.png')) self.actionOpenProductsTab.setText(_('Open products tab')) self.actionOpenProductsTab.triggered.connect(self.openProductsTab) self.systemTrayMenu = QMenu() self.systemTrayMenu.addAction(self.actionFullTextSearch) self.systemTrayMenu.addAction(self.actionOpenPartnersTab) self.systemTrayMenu.addAction(self.actionOpenProductsTab) self.systemTrayMenu.addAction(self.actionOpenMenuTab) self.systemTrayMenu.addSeparator() self.systemTrayMenu.addAction(self.actionSendRequest) self.systemTrayMenu.addAction(self.actionReadMyRequest) self.systemTrayMenu.addAction(self.actionWaitingRequests) self.systemTrayMenu.addSeparator() self.systemTrayMenu.addAction(self.actionExit) self.systemTrayIcon = QSystemTrayIcon(self) self.systemTrayIcon.setIcon(QIcon(":/images/koo-icon.png")) self.systemTrayIcon.setContextMenu(self.systemTrayMenu) self.systemTrayIcon.activated[QSystemTrayIcon.ActivationReason].connect(self.systemTrayIconActivated) if RemoteHelp.isRemoteHelpAvailable(): # Add Remote Help menu option under Windows platforms only. self.actionRemoteHelp = QAction(self) self.actionRemoteHelp.setIcon(QIcon(':/images/partner.png')) self.actionRemoteHelp.setText(_('Remote Help')) self.actionRemoteHelp.triggered.connect(self.remoteHelp) self.menuHelp.addAction(self.actionRemoteHelp) self.companyMenu = QMenu(self) self.pushCompany.setMenu(self.companyMenu) self.companyMenu.aboutToShow.connect(self.updateCompanyList) # Initialize plugins: This allows some plugins (such as SerialBarcodeScanner) # to be available in the LoginDialog. Plugins.list()
def remoteHelp(self): RemoteHelp.remoteHelp(self)
def remoteHelp(self): from Koo.Common import RemoteHelp RemoteHelp.remoteHelp(self)