WebBrowser/History/HistoryMenu.py

Sat, 13 Feb 2016 13:36:01 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 13 Feb 2016 13:36:01 +0100
branch
QtWebEngine
changeset 4734
ce0b1f024da9
parent 4631
Helpviewer/History/HistoryMenu.py@5c1a96925da4
child 4735
84e78ee0f361
permissions
-rw-r--r--

Continued porting the web browser.

- added the history stuff

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
4631
5c1a96925da4 Updated copyright for 2016.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4320
diff changeset
3 # Copyright (c) 2009 - 2016 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the history menu.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
10 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2403
diff changeset
11
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import sys
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
14 from PyQt5.QtCore import pyqtSignal, Qt, QMimeData, QUrl, QModelIndex, \
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
15 QSortFilterProxyModel, QAbstractProxyModel
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
16 from PyQt5.QtWidgets import QMenu
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
18 from E5Gui.E5ModelMenu import E5ModelMenu
1112
8a7d1b9d18db Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
19 from E5Gui import E5MessageBox
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
21 from .HistoryModel import HistoryModel
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 import UI.PixmapCache
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
25
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 class HistoryMenuModel(QAbstractProxyModel):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 Class implementing a model for the history menu.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 It maps the first bunch of items of the source model to the root.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 MOVEDROWS = 15
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
34 def __init__(self, sourceModel, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param sourceModel reference to the source model (QAbstractItemModel)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param parent reference to the parent object (QObject)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2403
diff changeset
41 super(HistoryMenuModel, self).__init__(parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__treeModel = sourceModel
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.setSourceModel(sourceModel)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 def bumpedRows(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 Public method to determine the number of rows moved to the root.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 @return number of rows moved to the root (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 first = self.__treeModel.index(0, 0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 if not first.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 return 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 return min(self.__treeModel.rowCount(first), self.MOVEDROWS)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
58 def columnCount(self, parent=QModelIndex()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Public method to get the number of columns.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 @param parent index of parent (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 @return number of columns (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 return self.__treeModel.columnCount(self.mapToSource(parent))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
67 def rowCount(self, parent=QModelIndex()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 Public method to determine the number of rows.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 @param parent index of parent (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @return number of rows (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 if parent.column() > 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 return 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 if not parent.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 folders = self.sourceModel().rowCount()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 bumpedItems = self.bumpedRows()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 if bumpedItems <= self.MOVEDROWS and \
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
81 bumpedItems == self.sourceModel().rowCount(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
82 self.sourceModel().index(0, 0)):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 folders -= 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 return bumpedItems + folders
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
86 if parent.internalId() == sys.maxsize:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 if parent.row() < self.bumpedRows():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 return 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 idx = self.mapToSource(parent)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 defaultCount = self.sourceModel().rowCount(idx)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 if idx == self.sourceModel().index(0, 0):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 return defaultCount - self.bumpedRows()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 return defaultCount
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 def mapFromSource(self, sourceIndex):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 Public method to map an index to the proxy model index.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 @param sourceIndex reference to a source model index (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 @return proxy model index (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 sourceRow = self.__treeModel.mapToSource(sourceIndex).row()
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
105 return self.createIndex(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
106 sourceIndex.row(), sourceIndex.column(), sourceRow)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 def mapToSource(self, proxyIndex):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 Public method to map an index to the source model index.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @param proxyIndex reference to a proxy model index (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 @return source model index (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 if not proxyIndex.isValid():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 return QModelIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
118 if proxyIndex.internalId() == sys.maxsize:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 bumpedItems = self.bumpedRows()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 if proxyIndex.row() < bumpedItems:
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
121 return self.__treeModel.index(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
122 proxyIndex.row(), proxyIndex.column(),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 self.__treeModel.index(0, 0))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 if bumpedItems <= self.MOVEDROWS and \
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
125 bumpedItems == self.sourceModel().rowCount(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
126 self.__treeModel.index(0, 0)):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 bumpedItems -= 1
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
128 return self.__treeModel.index(proxyIndex.row() - bumpedItems,
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 proxyIndex.column())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 historyIndex = self.__treeModel.sourceModel()\
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 .index(proxyIndex.internalId(), proxyIndex.column())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 treeIndex = self.__treeModel.mapFromSource(historyIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 return treeIndex
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
136 def index(self, row, column, parent=QModelIndex()):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 Public method to create an index.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 @param row row number for the index (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @param column column number for the index (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 @param parent index of the parent item (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 @return requested index (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 if row < 0 or \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 column < 0 or \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 column >= self.columnCount(parent) or \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 parent.column() > 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 return QModelIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 if not parent.isValid():
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
152 return self.createIndex(row, column, sys.maxsize)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 treeIndexParent = self.mapToSource(parent)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 bumpedItems = 0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 if treeIndexParent == self.sourceModel().index(0, 0):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 bumpedItems = self.bumpedRows()
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
159 treeIndex = self.__treeModel.index(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
160 row + bumpedItems, column, treeIndexParent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 historyIndex = self.__treeModel.mapToSource(treeIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 historyRow = historyIndex.row()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 if historyRow == -1:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 historyRow = treeIndex.row()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 return self.createIndex(row, column, historyRow)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 def parent(self, index):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 Public method to get the parent index.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 @param index index of item to get parent (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 @return index of parent (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 offset = index.internalId()
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
175 if offset == sys.maxsize or not index.isValid():
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 return QModelIndex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
178 historyIndex = self.__treeModel.sourceModel().index(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
179 index.internalId(), 0)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 treeIndex = self.__treeModel.mapFromSource(historyIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 treeIndexParent = treeIndex.parent()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182
535
4b00d7336e19 Streamlined the use of QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 501
diff changeset
183 sourceRow = self.sourceModel().mapToSource(treeIndexParent).row()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 bumpedItems = self.bumpedRows()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 if bumpedItems <= self.MOVEDROWS and \
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
186 bumpedItems == self.sourceModel().rowCount(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
187 self.sourceModel().index(0, 0)):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 bumpedItems -= 1
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
190 return self.createIndex(bumpedItems + treeIndexParent.row(),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
191 treeIndexParent.column(),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 sourceRow)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 def mimeData(self, indexes):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 Public method to return the mime data.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 @param indexes list of indexes (QModelIndexList)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 @return mime data (QMimeData)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 urls = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 for index in indexes:
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
203 url = index.data(HistoryModel.UrlRole)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 urls.append(url)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 mdata = QMimeData()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 mdata.setUrls(urls)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 return mdata
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
210
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
211 class HistoryMostVisitedMenuModel(QSortFilterProxyModel):
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
212 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
213 Class implementing a model to show the most visited history entries.
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
214 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
215 def __init__(self, sourceModel, parent=None):
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
216 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
217 Constructor
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
218
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
219 @param sourceModel reference to the source model (QAbstractItemModel)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
220 @param parent reference to the parent object (QObject)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
221 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2403
diff changeset
222 super(HistoryMostVisitedMenuModel, self).__init__(parent)
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
223
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
224 self.setDynamicSortFilter(True)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
225 self.setSourceModel(sourceModel)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
226
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
227 def lessThan(self, left, right):
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
228 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
229 Public method used to sort the displayed items.
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
230
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
231 @param left index of left item (QModelIndex)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
232 @param right index of right item (QModelIndex)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
233 @return true, if left is less than right (boolean)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
234 """
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
235 from .HistoryFilterModel import HistoryFilterModel
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
236 frequency_L = \
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
237 self.sourceModel().data(left, HistoryFilterModel.FrequencyRole)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
238 dateTime_L = \
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
239 self.sourceModel().data(left, HistoryModel.DateTimeRole)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
240 frequency_R = \
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
241 self.sourceModel().data(right, HistoryFilterModel.FrequencyRole)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
242 dateTime_R = \
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
243 self.sourceModel().data(right, HistoryModel.DateTimeRole)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
244
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
245 # Sort results in descending frequency-derived score. If frequencies
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
246 # are equal, sort on most recently viewed
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
247 if frequency_R == frequency_L:
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
248 return dateTime_R < dateTime_L
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
249
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
250 return frequency_R < frequency_L
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
251
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
252
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
253 class HistoryMenu(E5ModelMenu):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 Class implementing the history menu.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256
501
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 488
diff changeset
257 @signal openUrl(QUrl, str) emitted to open a URL in the current tab
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 488
diff changeset
258 @signal newUrl(QUrl, str) emitted to open a URL in a new tab
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 """
488
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
260 openUrl = pyqtSignal(QUrl, str)
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
261 newUrl = pyqtSignal(QUrl, str)
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
262
1694
648466a9451b Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1693
diff changeset
263 def __init__(self, parent=None, tabWidget=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 @param parent reference to the parent widget (QWidget)
1694
648466a9451b Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1693
diff changeset
268 @param tabWidget reference to the tab widget managing the browser
648466a9451b Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1693
diff changeset
269 tabs (HelpTabWidget
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 """
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 13
diff changeset
271 E5ModelMenu.__init__(self, parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272
1694
648466a9451b Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1693
diff changeset
273 self.__tabWidget = tabWidget
648466a9451b Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1693
diff changeset
274
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 self.__historyManager = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 self.__historyMenuModel = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 self.__initialActions = []
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
278 self.__mostVisitedMenu = None
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279
4734
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
280 # TODO: Closed Tabs Manager
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
281 ## self.__closedTabsMenu = QMenu(self.tr("Closed Tabs"))
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
282 ## self.__closedTabsMenu.aboutToShow.connect(
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
283 ## self.__aboutToShowClosedTabsMenu)
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
284 ## self.__tabWidget.closedTabsManager().closedTabAvailable.connect(
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
285 ## self.__closedTabAvailable)
1694
648466a9451b Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1693
diff changeset
286
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 self.setMaxRows(7)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288
488
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
289 self.activated.connect(self.__activated)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 self.setStatusBarTextRole(HistoryModel.UrlStringRole)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 def __activated(self, idx):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
293 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 Private slot handling the activated signal.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 @param idx index of the activated item (QModelIndex)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 if self._keyboardModifiers & Qt.ControlModifier:
488
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
299 self.newUrl.emit(
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
300 idx.data(HistoryModel.UrlRole),
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
301 idx.data(HistoryModel.TitleRole))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 else:
488
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
303 self.openUrl.emit(
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
304 idx.data(HistoryModel.UrlRole),
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
305 idx.data(HistoryModel.TitleRole))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 def prePopulated(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 Public method to add any actions before the tree.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 @return flag indicating if any actions were added (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 if self.__historyManager is None:
4734
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
314 import WebBrowser.WebBrowserWindow
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
315 self.__historyManager = \
4734
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
316 WebBrowser.WebBrowserWindow.WebBrowserWindow.historyManager()
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
317 self.__historyMenuModel = HistoryMenuModel(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
318 self.__historyManager.historyTreeModel(), self)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 self.setModel(self.__historyMenuModel)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 # initial actions
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 for act in self.__initialActions:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 self.addAction(act)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 if len(self.__initialActions) != 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 self.addSeparator()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 self.setFirstSeparator(self.__historyMenuModel.bumpedRows())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 def postPopulated(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 Public method to add any actions after the tree.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 if len(self.__historyManager.history()) > 0:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 self.addSeparator()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
337 if self.__mostVisitedMenu is None:
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
338 self.__mostVisitedMenu = HistoryMostVisitedMenu(10, self)
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
339 self.__mostVisitedMenu.setTitle(self.tr("Most Visited"))
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
340 self.__mostVisitedMenu.openUrl.connect(self.openUrl)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
341 self.__mostVisitedMenu.newUrl.connect(self.newUrl)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
342 self.addMenu(self.__mostVisitedMenu)
4734
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
343 # TODO: Closed Tabs Manager
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
344 ## act = self.addMenu(self.__closedTabsMenu)
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
345 ## act.setIcon(UI.PixmapCache.getIcon("trash.png"))
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
346 ## act.setEnabled(self.__tabWidget.canRestoreClosedTab())
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
347 self.addSeparator()
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
348
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
349 act = self.addAction(UI.PixmapCache.getIcon("history.png"),
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
350 self.tr("Show All History..."))
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3201
diff changeset
351 act.triggered.connect(self.__showHistoryDialog)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
352 act = self.addAction(UI.PixmapCache.getIcon("historyClear.png"),
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
353 self.tr("Clear History..."))
3345
071afe8be2a1 Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3201
diff changeset
354 act.triggered.connect(self.__clearHistoryDialog)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 def setInitialActions(self, actions):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 """
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
358 Public method to set the list of actions that should appear first in
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
359 the menu.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
361 @param actions list of initial actions (list of QAction)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
362 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 self.__initialActions = actions[:]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 for act in self.__initialActions:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 self.addAction(act)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
366
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
367 def __showHistoryDialog(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
368 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
369 Private slot to show the history dialog.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 """
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
371 from .HistoryDialog import HistoryDialog
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
372 dlg = HistoryDialog(self)
488
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
373 dlg.newUrl.connect(self.newUrl)
4174c2707dba Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
374 dlg.openUrl.connect(self.openUrl)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
375 dlg.show()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
376
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
377 def __clearHistoryDialog(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 Private slot to clear the history.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 """
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3002
diff changeset
381 if self.__historyManager is not None and E5MessageBox.yesNo(
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3002
diff changeset
382 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
383 self.tr("Clear History"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
384 self.tr("""Do you want to clear the history?""")):
541
00e1a5d060c5 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 538
diff changeset
385 self.__historyManager.clear()
4734
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
386 # TODO: Closed Tabs Manager
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
387 ## self.__tabWidget.clearClosedTabsList()
1694
648466a9451b Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1693
diff changeset
388
4734
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
389 # TODO: Closed Tabs Manager
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
390 ## def __aboutToShowClosedTabsMenu(self):
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
391 ## """
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
392 ## Private slot to populate the closed tabs menu.
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
393 ## """
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
394 ## fm = self.__closedTabsMenu.fontMetrics()
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
395 ## maxWidth = fm.width('m') * 40
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
396 ##
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
397 ## import WebBrowser.WebBrowserWindow
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
398 ## self.__closedTabsMenu.clear()
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
399 ## index = 0
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
400 ## for tab in self.__tabWidget.closedTabsManager().allClosedTabs():
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
401 ## title = fm.elidedText(tab.title, Qt.ElideRight, maxWidth)
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
402 ## self.__closedTabsMenu.addAction(
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
403 ## WebBrowser.WebBrowserWindow.WebBrowserWindow.icon(tab.url),
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
404 ## title,
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
405 ## self.__tabWidget.restoreClosedTab).setData(index)
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
406 ## index += 1
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
407 ## self.__closedTabsMenu.addSeparator()
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
408 ## self.__closedTabsMenu.addAction(
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
409 ## self.tr("Restore All Closed Tabs"),
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
410 ## self.__tabWidget.restoreAllClosedTabs)
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
411 ## self.__closedTabsMenu.addAction(
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
412 ## self.tr("Clear List"),
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
413 ## self.__tabWidget.clearClosedTabsList)
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
414 ##
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
415 ## def __closedTabAvailable(self, avail):
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
416 ## """
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
417 ## Private slot to handle changes of the availability of closed tabs.
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
418 ##
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
419 ## @param avail flag indicating the availability of closed tabs (boolean)
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
420 ## """
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
421 ## self.__closedTabsMenu.setEnabled(avail)
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
422
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
423
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
424 class HistoryMostVisitedMenu(E5ModelMenu):
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
425 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
426 Class implementing the most visited history menu.
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
427
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
428 @signal openUrl(QUrl, str) emitted to open a URL in the current tab
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
429 @signal newUrl(QUrl, str) emitted to open a URL in a new tab
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
430 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
431 openUrl = pyqtSignal(QUrl, str)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
432 newUrl = pyqtSignal(QUrl, str)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
433
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
434 def __init__(self, count, parent=None):
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
435 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
436 Constructor
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
437
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
438 @param count maximum number of entries to be shown (integer)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
439 @param parent reference to the parent widget (QWidget)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
440 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
441 E5ModelMenu.__init__(self, parent)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
442
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
443 self.__historyMenuModel = None
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
444
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
445 self.setMaxRows(count + 1)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
446
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
447 self.activated.connect(self.__activated)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
448 self.setStatusBarTextRole(HistoryModel.UrlStringRole)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
449
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
450 def __activated(self, idx):
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
451 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
452 Private slot handling the activated signal.
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
453
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
454 @param idx index of the activated item (QModelIndex)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
455 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
456 if self._keyboardModifiers & Qt.ControlModifier:
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
457 self.newUrl.emit(
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
458 idx.data(HistoryModel.UrlRole),
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
459 idx.data(HistoryModel.TitleRole))
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
460 else:
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
461 self.openUrl.emit(
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
462 idx.data(HistoryModel.UrlRole),
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
463 idx.data(HistoryModel.TitleRole))
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
464
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
465 def prePopulated(self):
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
466 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
467 Public method to add any actions before the tree.
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
468
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
469 @return flag indicating if any actions were added (boolean)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
470 """
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
471 if self.__historyMenuModel is None:
4734
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
472 import WebBrowser.WebBrowserWindow
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
473 historyManager = \
ce0b1f024da9 Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
474 WebBrowser.WebBrowserWindow.WebBrowserWindow.historyManager()
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
475 self.__historyMenuModel = HistoryMostVisitedMenuModel(
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2403
diff changeset
476 historyManager.historyFilterModel(), self)
1693
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
477 self.setModel(self.__historyMenuModel)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
478 self.__historyMenuModel.sort(0)
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
479
9bb872e26a33 Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
480 return False

eric ide

mercurial