WebBrowser/Session/SessionManagerDialog.py

Sun, 02 Jul 2017 19:40:39 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 02 Jul 2017 19:40:39 +0200
changeset 5782
60874802161b
child 5783
44a9f08de394
permissions
-rw-r--r--

Continued implementing session support for the new web browser.

5782
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
60874802161b 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>
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to manage sessions.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt5.QtCore import pyqtSlot, Qt, QFileInfo
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt5.QtGui import QPalette
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from .Ui_SessionManagerDialog import Ui_SessionManagerDialog
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from WebBrowser.WebBrowserWindow import WebBrowserWindow
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 class SessionManagerDialog(QDialog, Ui_SessionManagerDialog):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 Class documentation goes here.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 SessionFileRole = Qt.UserRole
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 BackupSessionRole = Qt.UserRole + 1
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 ActiveSessionRole = Qt.UserRole + 2
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 DefaultSessionRole = Qt.UserRole + 3
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 def __init__(self, parent=None):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Constructor
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @param parent reference to the parent widget
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @type QWidget
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 super(SessionManagerDialog, self).__init__(parent)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.setupUi(self)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.newButton.clicked.connect(self.__newSession)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.renameButton.clicked.connect(self.__renameSession)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.cloneButton.clicked.connect(self.__cloneSession)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.deleteButton.clicked.connect(self.__deleteSession)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.switchButton.clicked.connect(self.__switchToSession)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.sessionsList.currentItemChanged.connect(self.__updateButtons)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.__refresh()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 WebBrowserWindow.sessionManager().sessionsMetaDataChanged.connect(
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__refresh)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @pyqtSlot()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 def __refresh(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Private slot to refresh the list of sessions.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.sessionsList.clear()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 sessions = WebBrowserWindow.sessionManager().sessionMetaData(
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 includeBackups=True)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 for session in sessions:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 itm = QTreeWidgetItem()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 itm.setText(0, session.name)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 itm.setText(1, QFileInfo(session.filePath).lastModified()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 .toString("yyyy-MM-dd hh:mm"))
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 itm.setData(0, SessionManagerDialog.SessionFileRole,
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 session.filePath)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 itm.setData(0, SessionManagerDialog.BackupSessionRole,
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 session.isBackup)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 itm.setData(0, SessionManagerDialog.ActiveSessionRole,
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 session.isActive)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 itm.setData(0, SessionManagerDialog.DefaultSessionRole,
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 session.isDefault)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.__updateSessionItem(itm)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.sessionsList.addTopLevelItem(itm)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.__updateButtons()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 def __updateButtons(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 Private method to update the button state.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 itm = self.sessionsList.currentItem()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 if itm:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 isBackup = itm.data(0, SessionManagerDialog.BackupSessionRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 isActive = itm.data(0, SessionManagerDialog.ActiveSessionRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 isDefault = itm.data(0, SessionManagerDialog.DefaultSessionRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.renameButton.setEnabled(not isDefault and not isBackup)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.cloneButton.setEnabled(not isBackup)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 self.deleteButton.setEnabled(not isBackup and not isDefault and
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 not isActive)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.switchButton.setEnabled(not isActive)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 if isBackup:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 self.switchButton.setText(self.tr("Restore"))
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 else:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.switchButton.setText(self.tr("Switch To"))
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 else:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.renameButton.setEnabled(False)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 self.cloneButton.setEnabled(False)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.deleteButton.setEnabled(False)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 self.switchButton.setEnabled(False)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 self.switchButton.setText(self.tr("Switch To"))
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 def __updateSessionItem(self, itm):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 Private method to set various item properties.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @param itm reference to the item to be updated
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @type QTreeWidgetItem
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 isBackup = itm.data(0, SessionManagerDialog.BackupSessionRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 isActive = itm.data(0, SessionManagerDialog.ActiveSessionRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 isDefault = itm.data(0, SessionManagerDialog.DefaultSessionRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 font = itm.font(0)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 if isBackup:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 color = self.palette().color(QPalette.Disabled,
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 QPalette.WindowText)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 itm.setForeground(0, color)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 itm.setForeground(1, color)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 if isActive:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 font.setBold(True)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 itm.setFont(0, font)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 itm.setFont(1, font)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 if isDefault:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 font.setItalic(True)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 itm.setFont(0, font)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 itm.setFont(1, font)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 def showEvent(self, evt):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 Protected method handling the dialog being shown.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 @param evt reference to the event object
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 @type QShowEvent
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 super(SessionManagerDialog, self).showEvent(evt)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 self.__resizeViewHeader()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 def resizeEvent(self, evt):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 Protected method handling the dialog being resized.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @param evt reference to the event object
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 @type QResizeEvent
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 super(SessionManagerDialog, self).resizeEvent(evt)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 self.__resizeViewHeader()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 def __resizeViewHeader(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 Private method to resize the session column of the list.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 headerWidth = self.sessionsList.header().width()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 self.sessionsList.header().resizeSection(
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 0, headerWidth - headerWidth / 2.5)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @pyqtSlot()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 def __newSession(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Private slot to create a new session.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 WebBrowserWindow.sessionManager().newSession()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 @pyqtSlot()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 def __renameSession(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 Private slot to rename the selected session.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 itm = self.sessionsList.currentItem()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 if itm is None:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 return
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 filePath = itm.data(0, SessionManagerDialog.SessionFileRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 if filePath:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 WebBrowserWindow.sessionManager().renameSession(filePath)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 @pyqtSlot()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 def __cloneSession(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 Private slot to clone the selected session.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 itm = self.sessionsList.currentItem()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 if itm is None:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 return
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 filePath = itm.data(0, SessionManagerDialog.SessionFileRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 if filePath:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 WebBrowserWindow.sessionManager().cloneSession(filePath)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 @pyqtSlot()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 def __deleteSession(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 Private slot to delete the selected session.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 itm = self.sessionsList.currentItem()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 if itm is None:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 return
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 filePath = itm.data(0, SessionManagerDialog.SessionFileRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 if filePath:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 WebBrowserWindow.sessionManager().deleteSession(filePath)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 @pyqtSlot()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 def __switchToSession(self):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 Private slot to switch to the selected session.
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 """
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 itm = self.sessionsList.currentItem()
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 if itm is None:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 return
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 filePath = itm.data(0, SessionManagerDialog.SessionFileRole)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 if filePath:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 if itm.data(0, SessionManagerDialog.BackupSessionRole):
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 WebBrowserWindow.sessionManager().replaceSession(filePath)
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 else:
60874802161b Continued implementing session support for the new web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 WebBrowserWindow.sessionManager().switchToSession(filePath)

eric ide

mercurial