--- a/WebBrowser/WebBrowserWindow.py Sun Jul 02 19:40:39 2017 +0200 +++ b/WebBrowser/WebBrowserWindow.py Mon Jul 03 19:23:54 2017 +0200 @@ -109,6 +109,7 @@ _tabManager = None _sessionManager = None + _performingStartup = True _performingShutdown = False _lastActiveWindow = None @@ -353,9 +354,36 @@ syncMgr.syncMessage.connect(self.statusBar().showMessage) syncMgr.syncError.connect(self.statusBar().showMessage) + restoreSessionData = {} + if WebBrowserWindow._performingStartup and not home: + startupBehavior = Preferences.getWebBrowser("StartupBehavior") + if not private and startupBehavior in [3, 4]: + if startupBehavior == 3: + # restore last session + restoreSessionFile = \ + self.sessionManager().lastActiveSessionFile() + elif startupBehavior == 4: + # select session + restoreSessionFile = \ + self.sessionManager().selectSession() + sessionData = \ + self.sessionManager().readSessionFromFile( + restoreSessionFile) + if self.sessionManager().isValidSession(sessionData): + restoreSessionData = sessionData + restoreSession = True + else: + if Preferences.getWebBrowser("StartupBehavior") == 0: + home = "eric:blank" + elif Preferences.getWebBrowser("StartupBehavior") == 1: + home = Preferences.getWebBrowser("HomePage") + elif Preferences.getWebBrowser("StartupBehavior") == 2: + home = "eric:speeddial" + if not restoreSession: self.__tabWidget.newBrowser(home) self.__tabWidget.currentBrowser().setFocus() + WebBrowserWindow._performingStartup = False self.__imagesIcon = ImagesIcon(self) self.statusBar().addPermanentWidget(self.__imagesIcon) @@ -443,7 +471,12 @@ self.__hideNavigationTimer.timeout.connect(self.__hideNavigation) self.__forcedClose = False - self.sessionManager() + + if restoreSessionData: + self.sessionManager().restoreSessionFromData( + self, restoreSessionData) + + self.sessionManager().activateTimer() QTimer.singleShot(0, syncMgr.loadSettings) @@ -2767,6 +2800,13 @@ if not self.__tabWidget.shallShutDown(): return False + if not self.__fromEric: + if not WebBrowserWindow._performingShutdown and \ + len(WebBrowserWindow.BrowserWindows) == 1: + # shut down the session manager in case the last window is + # about to be closed + self.sessionManager().shutdown() + self.__bookmarksToolBar.setModel(None) self.__virusTotal.close()