WebBrowser/Session/SessionManager.py

Sat, 01 Jul 2017 19:14:01 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 01 Jul 2017 19:14:01 +0200
changeset 5780
79d06c98c5c9
parent 5779
b53fabc86f3c
child 5782
60874802161b
permissions
-rw-r--r--

Continued implementing session support for the new web browser.

5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2017 Detlev Offenbach <detlev@die-offenbachs.de>
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the session manager.
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from __future__ import unicode_literals
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import os
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 import json
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
15 from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QObject, QTimer, QDir, \
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
16 QFile, QFileInfo, QFileSystemWatcher, QByteArray
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
17 from PyQt5.QtWidgets import QMenu, QAction, QActionGroup, QApplication
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
18
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
19 from E5Gui import E5MessageBox
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import Utilities
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import Preferences
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
25 class SessionMetaData(object):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
26 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
27 Class implementing a data structure to store meta data for a session.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
28 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
29 def __init__(self):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
30 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
31 Constructor
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
32 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
33 self.name = ""
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
34 self.filePath = ""
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
35 self.isActive = False
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
36 self.isDefault = False
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
37 self.isBackup = False
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
38
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
39
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 class SessionManager(QObject):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 Class implementing the session manager.
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
43
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
44 @signal sessionsMetaDataChanged() emitted to indicate a change of the
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
45 list of session meta data
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
47 sessionsMetaDataChanged = pyqtSignal()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
48
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
49 SwitchSession = 1
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
50 CloneSession = 2
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
51 ReplaceSession = SwitchSession | 4
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
52 RestoreSession = 8
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
53
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 def __init__(self, parent=None):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 Constructor
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @param parent reference to the parent object
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @type QObject
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 super(SessionManager, self).__init__(parent)
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
63 sessionsDirName = self.getSessionsDirectory()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
64 sessionsDir = QDir(sessionsDirName)
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 if not sessionsDir.exists():
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
66 sessionsDir.mkpath(sessionsDirName)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
67
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
68 self.__sessionMetaData = []
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
69 # list containing meta data about saved sessions
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
70
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
71 self.__sessionDefault = os.path.join(sessionsDirName, "session.json")
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
72 self.__sessionBackup1 = os.path.join(sessionsDirName,
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
73 "session.json.old")
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
74 self.__sessionBackup2 = os.path.join(sessionsDirName,
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
75 "session.json.old1")
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
76
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
77 self.__lastActiveSession = Preferences.getWebBrowser(
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
78 "SessionLastActivePath")
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
79 if not QFile.exists(self.__lastActiveSession):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
80 self.__lastActiveSession = self.__sessionDefault
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
81
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
82 self.__sessionsDirectoryWatcher = \
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
83 QFileSystemWatcher([self.getSessionsDirectory()], self)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
84 self.__sessionsDirectoryWatcher.directoryChanged.connect(
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
85 self.__sessionDirectoryChanged)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
86
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
87 self.__backupSavedSession()
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 self.__autoSaveTimer = QTimer()
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.__autoSaveTimer.setSingleShot(True)
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 self.__autoSaveTimer.timeout.connect(self.__autoSaveSession)
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.__initSessionSaveTimer()
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 def preferencesChanged(self):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 Public slot to react upon changes of the settings.
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.__initSessionSaveTimer()
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 # TODO: implement this
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 def getSessionsDirectory(self):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 Public method to get the directory sessions are stored in.
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 @return name of the sessions directory
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @rtype str
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 return os.path.join(Utilities.getConfigDir(),
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 "web_browser", "sessions")
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 def defaultSessionFile(self):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 Public method to get the name of the default session file.
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 @return name of the default session file
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 @rtype str
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
118 return self.__sessionDefault
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
119
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
120 def lastActiveSessionFile(self):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
121 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
122 Public method to get the name of the last active session file.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
123
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
124 @return name of the last active session file
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
125 @rtype str
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
126 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
127 return self.__lastActiveSession
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
128
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
129 def shutdown(self):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
130 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
131 Public method to perform any shutdown actions.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
132 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
133 self.__autoSaveTimer.stop()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
134 self.__autoSaveSession(startTimer=False)
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 def __initSessionSaveTimer(self):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 Private slot to initialize the auto save timer.
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 self.__autoSaveInterval = Preferences.getWebBrowser(
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 "SessionAutoSaveInterval") * 1000
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 if Preferences.getWebBrowser("SessionAutoSave"):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 if not self.__autoSaveTimer.isActive():
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 self.__autoSaveTimer.start(self.__autoSaveInterval)
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 else:
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 self.__autoSaveTimer.stop()
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 @pyqtSlot()
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
150 def __autoSaveSession(self, startTimer=True):
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 Private slot to save the current session state.
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
153
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
154 @param startTimer flag indicating to restart the timer
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
155 @type bool
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 from WebBrowser.WebBrowserWindow import WebBrowserWindow
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 if not WebBrowserWindow.isPrivate():
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
160 Preferences.setWebBrowser("SessionLastActivePath",
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
161 self.__lastActiveSession)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
162 self.writeCurrentSession(self.__lastActiveSession)
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
164 if startTimer:
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
165 self.__autoSaveTimer.start(self.__autoSaveInterval)
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 def writeCurrentSession(self, sessionFileName):
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 Public method to write the current session to the given file name.
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 @param sessionFileName file name of the session
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 @type str
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 """
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 from WebBrowser.WebBrowserWindow import WebBrowserWindow
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 sessionData = {"Windows": []}
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 for window in WebBrowserWindow.mainWindows():
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 data = window.tabWidget().getSessionData()
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 # add window geometry
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 geometry = window.saveGeometry()
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 data["WindowGeometry"] = bytes(geometry.toBase64()).decode("ascii")
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 sessionData["Windows"].append(data)
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
186
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
187 if sessionData["Windows"]:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
188 sessionFile = open(sessionFileName, "w")
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
189 json.dump(sessionData, sessionFile, indent=2)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
190 sessionFile.close()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
191
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
192 def __readSessionFromFile(self, sessionFileName):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
193 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
194 Private method to read the session data from a file.
5777
2c4441d65ee3 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
196 @param sessionFileName file name of the session file
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
197 @type str
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
198 @return dictionary containing the session data
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
199 @rtype dict
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
200 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
201 try:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
202 sessionFile = open(sessionFileName, "r")
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
203 sessionData = json.load(sessionFile)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
204 sessionFile.close()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
205 except (IOError, OSError):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
206 sessionData = {}
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
207
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
208 return sessionData
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
209
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
210 def __backupSavedSession(self):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
211 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
212 Private method to backup the most recently saved session.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
213 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
214 if QFile.exists(self.__lastActiveSession):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
215
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
216 if QFile.exists(self.__sessionBackup1):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
217 QFile.remove(self.__sessionBackup2)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
218 QFile.copy(self.__sessionBackup1, self.__sessionBackup2)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
219
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
220 QFile.remove(self.__sessionBackup1)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
221 QFile.copy(self.__lastActiveSession, self.__sessionBackup1)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
222
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
223 def sessionMetaData(self, includeBackups=False):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
224 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
225 Public method to get the sessions meta data.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
226
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
227 @param includeBackups flag indicating to include backup sessions
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
228 @type bool
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
229 @return list of session meta data
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
230 @rtype list of SessionMetaData
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
231 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
232 self.__fillMetaDataList()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
233
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
234 metaDataList = self.__sessionMetaData[:]
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
235
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
236 if includeBackups and QFile.exists(self.__sessionBackup1):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
237 data = SessionMetaData()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
238 data.name = self.tr("Backup 1")
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
239 data.filePath = self.__sessionBackup1
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
240 data.isBackup = True
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
241 metaDataList.append(data)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
242
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
243 if includeBackups and QFile.exists(self.__sessionBackup2):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
244 data = SessionMetaData()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
245 data.name = self.tr("Backup 2")
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
246 data.filePath = self.__sessionBackup2
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
247 data.isBackup = True
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
248 metaDataList.append(data)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
249
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
250 return metaDataList
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
251
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
252 def __fillMetaDataList(self):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
253 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
254 Private method to fill the sessions meta data list.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
255
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
256 The sessions meta data list is only populated, if the variable holding
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
257 it is empty (i.e. it is populated on demand).
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
258 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
259 if self.__sessionMetaData:
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
260 return
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
261
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
262 sessionFilesInfoList = QDir(self.getSessionsDirectory()).entryInfoList(
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
263 ["*.json"], QDir.Files, QDir.Time)
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
264 for sessionFileInfo in sessionFilesInfoList:
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
265 data = SessionMetaData()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
266 data.name = sessionFileInfo.baseName()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
267 data.filePath = sessionFileInfo.canonicalFilePath()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
268
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
269 if sessionFileInfo == QFileInfo(self.defaultSessionFile()):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
270 data.name = self.tr("Default Session")
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
271 data.isDefault = True
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
272
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
273 if self.__isActive(sessionFileInfo):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
274 data.isActive = True
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
275
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
276 self.__sessionMetaData.append(data)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
277
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
278 def __isActive(self, filePath):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
279 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
280 Private method to check, if a given file is the active one.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
281
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
282 @param filePath path of the session file to be checked
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
283 @type str or QFileInfo
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
284 @return flag indicating the active file
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
285 @rtype bool
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
286 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
287 return QFileInfo(filePath) == QFileInfo(self.__lastActiveSession)
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
288
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
289 @pyqtSlot()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
290 def __sessionDirectoryChanged(self):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
291 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
292 Private slot handling changes of the sessions directory.
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
293 """
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
294 self.__sessionMetaData = []
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
295
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
296 self.sessionsMetaDataChanged.emit()
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
297
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
298 @pyqtSlot()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
299 def aboutToShowSessionsMenu(self):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
300 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
301 Public slot to populate the sessions selection menu.
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
302 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
303 menu = self.sender()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
304 if isinstance(menu, QMenu):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
305 menu.clear()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
306
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
307 actionGroup = QActionGroup(menu)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
308 sessions = self.sessionMetaData(includeBackups=False)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
309 for session in sessions:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
310 act = menu.addAction(session.name)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
311 act.setCheckable(True)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
312 act.setChecked(session.isActive)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
313 act.setData(session.filePath)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
314 actionGroup.addAction(act)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
315 act.triggered.connect(self.__sessionActTriggered)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
316
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
317 @pyqtSlot()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
318 def __sessionActTriggered(self):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
319 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
320 Private slot to handle the menu selection of a session.
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
321 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
322 act = self.sender()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
323 if isinstance(act, QAction):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
324 path = act.data()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
325 self.switchToSession(path)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
326
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
327 def __openSession(self, sessionFilePath, flags=None):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
328 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
329 Private method to open a session from a given session file.
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
330 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
331 if self.__isActive(sessionFilePath):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
332 return
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
333
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
334 sessionData = self.__readSessionFromFile(sessionFilePath)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
335 if not sessionData or not sessionData["Windows"]:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
336 return
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
337
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
338 from WebBrowser.WebBrowserWindow import WebBrowserWindow
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
339 window = WebBrowserWindow.mainWindow()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
340 if flags & SessionManager.SwitchSession:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
341 # save the current session
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
342 self.writeCurrentSession(self.__lastActiveSession)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
343
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
344 # create new window for the new session
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
345 window = window.newWindow(restoreSession=True)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
346
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
347 # close all existing windows
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
348 for win in WebBrowserWindow.mainWindows():
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
349 if win is not window:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
350 win.forceClose()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
351
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
352 if not (flags & SessionManager.ReplaceSession):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
353 self.__lastActiveSession = \
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
354 QFileInfo(sessionFilePath).canonicalFilePath()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
355 self.__sessionMetaData = []
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
356
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
357 QApplication.setOverrideCursor(Qt.WaitCursor)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
358 # restore session for first window
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
359 data = sessionData["Windows"].pop(0)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
360 window.tabWidget().loadFromSessionData(data)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
361 if "WindowGeometry" in data:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
362 geometry = QByteArray.fromBase64(
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
363 data["WindowGeometry"].encode("ascii"))
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
364 window.restoreGeometry(geometry)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
365 QApplication.processEvents()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
366
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
367 # restore additional windows
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
368 for data in sessionData["Windows"]:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
369 window = WebBrowserWindow.mainWindow()\
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
370 .newWindow(restoreSession=True)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
371 window.tabWidget().loadFromSessionData(data)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
372 if "WindowGeometry" in data:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
373 geometry = QByteArray.fromBase64(
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
374 data["WindowGeometry"].encode("ascii"))
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
375 window.restoreGeometry(geometry)
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
376 QApplication.processEvents()
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
377 QApplication.restoreOverrideCursor()
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
378
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
379 def renameSession(self, sessionFilePath="", flags=None):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
380 # TODO: implement this
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
381 pass
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
382
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
383 def saveSession(self):
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
384 # TODO: implement this
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
385 pass
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
386
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
387 def replaceSession(self, sessionFilePath):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
388 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
389 Public method to replace the current session with the given one.
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
390
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
391 @param sessionFilePath file name of the session file to replace with
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
392 @type str
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
393 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
394 from WebBrowser.WebBrowserWindow import WebBrowserWindow
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
395 res = E5MessageBox.yesNo(
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
396 WebBrowserWindow.mainWindow(),
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
397 self.tr("Restore Backup"),
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
398 self.tr("""Are you sure you want to replace current session?"""))
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
399 if res:
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
400 self.__openSession(sessionFilePath, SessionManager.ReplaceSession)
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
401
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
402 def switchToSession(self, sessionFilePath):
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
403 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
404 Public method to switch the current session to the given one.
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
405
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
406 @param sessionFilePath file name of the session file to switch to
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
407 @type str
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
408 """
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
409 self.__openSession(sessionFilePath, SessionManager.SwitchSession)
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
410
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
411 def cloneSession(self, sessionFilePath):
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
412 # TODO: implement this
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
413 pass
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
414
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
415 def deleteSession(self, sessionFilePath):
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
416 # TODO: implement this
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
417 pass
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
418
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
419 def newSession(self):
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
420 # TODO: implement this
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
421 pass
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
422
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
423 def showSessionManagerDialog(self):
5779
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
424 # TODO: implement this
b53fabc86f3c Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5777
diff changeset
425 pass
5780
79d06c98c5c9 Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5779
diff changeset
426 print("showSessionManagerDialog()")

eric ide

mercurial