コード例 #1
0
 def restoreState(self, value):
     if not value:
         return
     raw = eval(str(value))
     cookieList = []
     for cookie in raw:
         name = QByteArray.fromBase64(cookie[0])
         value = QByteArray.fromBase64(cookie[1])
         networkCookie = QNetworkCookie(name, value)
         networkCookie.setPath(str(cookie[2], 'utf-8'))
         networkCookie.setDomain(str(cookie[3], 'utf-8'))
         networkCookie.setExpirationDate(
             QDateTime.fromString(str(cookie[4], 'utf-8')))
         if Common.isQtVersion45():
             networkCookie.setHttpOnly(eval(cookie[5]))
         networkCookie.setSecure(eval(cookie[6]))
         cookieList.append(networkCookie)
     self.cookieJar.setAllCookies(cookieList)
     self.uiWeb.page().networkAccessManager().setCookieJar(self.cookieJar)
コード例 #2
0
 def saveState(self):
     cookieList = self.cookieJar.allCookies()
     raw = []
     for cookie in cookieList:
         # We don't want to store session cookies
         if cookie.isSessionCookie():
             continue
         # Store cookies in a list as a dict would occupy
         # more space and we want to minimize network bandwidth
         if Common.isQtVersion45():
             isHttpOnly = str(cookie.isHttpOnly())
         else:
             isHttpOnly = True
         raw.append([
             str(cookie.name().toBase64()),
             str(cookie.value().toBase64()),
             str(cookie.path()).encode('utf-8'),
             str(cookie.domain()).encode('utf-8'),
             str(cookie.expirationDate().toString()).encode('utf-8'),
             str(isHttpOnly),
             str(cookie.isSecure()),
         ])
     return QByteArray(str(raw))
コード例 #3
0
 def __init__(self, parent=None):
     QTabWidget.__init__(self, parent)
     self.pressedAt = -1
     if Common.isQtVersion45():
         self.setMovable(True)
コード例 #4
0
    def login(self, url, databaseName):
        # Before connecting to the specified database
        # try to logout from the previous one. That will allow the
        # user to cancel the operation if any of the tabs is modified
        # and it will stop requests timer and subscription.
        if not self.logout():
            return
        try:
            loginResponse = Rpc.session.login(url, databaseName)
            url = QUrl(url)
            if loginResponse == Rpc.session.LoggedIn:
                Settings.loadFromServer()
                if Settings.value('koo.stylesheet_code'):
                    QApplication.instance().setStyleSheet(
                        Settings.value('koo.stylesheet_code'))
                if Settings.value('koo.use_cache'):
                    Rpc.session.cache = Rpc.Cache.ActionViewCache()
                else:
                    Rpc.session.cache = None

                iconVisible = Settings.value('koo.show_system_tray_icon', True)
                self.systemTrayIcon.setVisible(iconVisible)

                # Start timer once settings have been loaded because
                # the request interval can be configured
                self.startRequestsTimer()

                self.openMenuTab()
                self.openHomeTab()

                if Settings.value('open.model'):
                    model = Settings.value('open.model')
                    id = Settings.value('open.id') or False
                    mode = 'tree,form'
                    if id:
                        try:
                            id = int(id)
                            mode = 'form,tree'
                        except:
                            id = False
                            pass
                    Api.instance.createWindow(None,
                                              model,
                                              id,
                                              view_type='form',
                                              mode=mode)

                if Common.isQtVersion45():
                    self.tabWidget.setTabsClosable(
                        Settings.value('koo.tabs_closable'))

                self.updateRequestsStatus()
                self.updateUserShortcuts()

            elif loginResponse == Rpc.session.Exception:
                QMessageBox.warning(self, _('Connection error !'),
                                    _('Unable to connect to the server !'))
            elif loginResponse == Rpc.session.InvalidCredentials:
                QMessageBox.warning(self, _('Connection error !'),
                                    _('Bad username or password !'))

        except Rpc.RpcException as e:
            if len(e.args) == 2:
                (e1, e2) = e.args
                Common.error(_('Connection Error !'), e.args[0], e.args[1])
            else:
                Common.error(_('Connection Error !'),
                             _('Error logging into database.'), e)
            Rpc.session.logout()