Exemple #1
0
    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)
Exemple #4
0
 def remoteHelp(self):
     from Koo.Common import RemoteHelp
     RemoteHelp.remoteHelp(self)