Tue, 15 Oct 2013 18:29:32 +0200
Fixed a bunch of visible indentation issues.
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 | |
2302
f29e9405c851
Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1965
diff
changeset
|
3 | # Copyright (c) 2009 - 2013 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 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import sys |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
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
|
12 | from PyQt4.QtCore import pyqtSignal, Qt, QMimeData, QUrl, QModelIndex |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
13 | from PyQt4.QtGui import QAbstractProxyModel, QSortFilterProxyModel, QMenu |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
15 | 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
|
16 | from E5Gui import E5MessageBox |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
18 | from .HistoryModel import HistoryModel |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | import UI.PixmapCache |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
22 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | class HistoryMenuModel(QAbstractProxyModel): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Class implementing a model for the history menu. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | 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
|
28 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | MOVEDROWS = 15 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
31 | def __init__(self, sourceModel, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @param sourceModel reference to the source model (QAbstractItemModel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | @param parent reference to the parent object (QObject) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1112
diff
changeset
|
38 | super().__init__(parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.__treeModel = sourceModel |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | self.setSourceModel(sourceModel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | def bumpedRows(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | 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
|
47 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | @return number of rows moved to the root (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | first = self.__treeModel.index(0, 0) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | if not first.isValid(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | return 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | return min(self.__treeModel.rowCount(first), self.MOVEDROWS) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
55 | def columnCount(self, parent=QModelIndex()): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | Public method to get the number of columns. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | @param parent index of parent (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | @return number of columns (integer) |
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 | return self.__treeModel.columnCount(self.mapToSource(parent)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
64 | def rowCount(self, parent=QModelIndex()): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | Public method to determine the number of rows. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | @param parent index of parent (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | @return number of rows (integer) |
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 | if parent.column() > 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | return 0 |
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 not parent.isValid(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | folders = self.sourceModel().rowCount() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | bumpedItems = self.bumpedRows() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | 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
|
78 | 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
|
79 | self.sourceModel().index(0, 0)): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | folders -= 1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | return bumpedItems + folders |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
83 | if parent.internalId() == sys.maxsize: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | if parent.row() < self.bumpedRows(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | return 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | idx = self.mapToSource(parent) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | defaultCount = self.sourceModel().rowCount(idx) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | if idx == self.sourceModel().index(0, 0): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | return defaultCount - self.bumpedRows() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | return defaultCount |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | def mapFromSource(self, sourceIndex): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | 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
|
97 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | @param sourceIndex reference to a source model index (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | @return proxy model index (QModelIndex) |
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 | 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
|
102 | return self.createIndex( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
103 | sourceIndex.row(), sourceIndex.column(), sourceRow) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | def mapToSource(self, proxyIndex): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | 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
|
108 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | @param proxyIndex reference to a proxy model index (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | @return source model index (QModelIndex) |
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 | if not proxyIndex.isValid(): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | return QModelIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
115 | if proxyIndex.internalId() == sys.maxsize: |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | bumpedItems = self.bumpedRows() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | 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
|
118 | 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
|
119 | proxyIndex.row(), proxyIndex.column(), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | self.__treeModel.index(0, 0)) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | 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
|
122 | 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
|
123 | self.__treeModel.index(0, 0)): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | 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
|
125 | return self.__treeModel.index(proxyIndex.row() - bumpedItems, |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | proxyIndex.column()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | historyIndex = self.__treeModel.sourceModel()\ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | .index(proxyIndex.internalId(), proxyIndex.column()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | treeIndex = self.__treeModel.mapFromSource(historyIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | return treeIndex |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
133 | def index(self, row, column, parent=QModelIndex()): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | Public method to create an index. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | @param row row number for the index (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | @param column column number for the index (integer) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | @param parent index of the parent item (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | @return requested index (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | if row < 0 or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | column < 0 or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | column >= self.columnCount(parent) or \ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | parent.column() > 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | return QModelIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | if not parent.isValid(): |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
149 | return self.createIndex(row, column, sys.maxsize) |
0
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 | treeIndexParent = self.mapToSource(parent) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | bumpedItems = 0 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | if treeIndexParent == self.sourceModel().index(0, 0): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | 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
|
156 | 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
|
157 | row + bumpedItems, column, treeIndexParent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | historyIndex = self.__treeModel.mapToSource(treeIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | historyRow = historyIndex.row() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | if historyRow == -1: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | historyRow = treeIndex.row() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | return self.createIndex(row, column, historyRow) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | def parent(self, index): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | Public method to get the parent index. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | @param index index of item to get parent (QModelIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | @return index of parent (QModelIndex) |
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 | offset = index.internalId() |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7
diff
changeset
|
172 | if offset == sys.maxsize or not index.isValid(): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | return QModelIndex() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
175 | 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
|
176 | index.internalId(), 0) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | treeIndex = self.__treeModel.mapFromSource(historyIndex) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | treeIndexParent = treeIndex.parent() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | |
535
4b00d7336e19
Streamlined the use of QMessageBox.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
501
diff
changeset
|
180 | sourceRow = self.sourceModel().mapToSource(treeIndexParent).row() |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | bumpedItems = self.bumpedRows() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | 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
|
183 | 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
|
184 | self.sourceModel().index(0, 0)): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | bumpedItems -= 1 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
187 | 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
|
188 | treeIndexParent.column(), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | sourceRow) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | def mimeData(self, indexes): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | Public method to return the mime data. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | @param indexes list of indexes (QModelIndexList) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | @return mime data (QMimeData) |
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 | urls = [] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | 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
|
200 | url = index.data(HistoryModel.UrlRole) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | urls.append(url) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | mdata = QMimeData() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | mdata.setUrls(urls) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | return mdata |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
207 | |
1693
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
208 | class HistoryMostVisitedMenuModel(QSortFilterProxyModel): |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
209 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
210 | 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
|
211 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
212 | 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
|
213 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
214 | Constructor |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
215 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
216 | @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
|
217 | @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
|
218 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
219 | super().__init__(parent) |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
220 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
221 | self.setDynamicSortFilter(True) |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
222 | self.setSourceModel(sourceModel) |
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 | 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
|
225 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
226 | Protected method used to sort the displayed items. |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
227 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
228 | @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
|
229 | @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
|
230 | @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
|
231 | """ |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
232 | 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
|
233 | frequency_L = \ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
234 | 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
|
235 | dateTime_L = \ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
236 | 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
|
237 | frequency_R = \ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
238 | 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
|
239 | dateTime_R = \ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
240 | 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
|
241 | |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
242 | # 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
|
243 | # 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
|
244 | 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
|
245 | 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
|
246 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
247 | 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
|
248 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
249 | |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
250 | class HistoryMenu(E5ModelMenu): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | Class implementing the history menu. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | |
501
5c615a85241a
Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
488
diff
changeset
|
254 | @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
|
255 | @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
|
256 | """ |
488
4174c2707dba
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
257 | openUrl = pyqtSignal(QUrl, str) |
4174c2707dba
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
258 | newUrl = pyqtSignal(QUrl, str) |
4174c2707dba
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
259 | |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
260 | def __init__(self, parent=None, tabWidget=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | Constructor |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | @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
|
265 | @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
|
266 | tabs (HelpTabWidget |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | """ |
55
b5c84934de9c
Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
13
diff
changeset
|
268 | E5ModelMenu.__init__(self, parent) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
270 | self.__tabWidget = tabWidget |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
271 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | self.__historyManager = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
273 | self.__historyMenuModel = None |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
274 | self.__initialActions = [] |
1693
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
275 | self.__mostVisitedMenu = None |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
277 | self.__closedTabsMenu = QMenu(self.trUtf8("Closed Tabs")) |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
278 | self.__closedTabsMenu.aboutToShow.connect( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
279 | self.__aboutToShowClosedTabsMenu) |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
280 | self.__tabWidget.closedTabsManager().closedTabAvailable.connect( |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
281 | self.__closedTabAvailable) |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
282 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | self.setMaxRows(7) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | |
488
4174c2707dba
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
285 | self.activated.connect(self.__activated) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | self.setStatusBarTextRole(HistoryModel.UrlStringRole) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | def __activated(self, idx): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | Private slot handling the activated signal. |
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 | @param idx index of the activated item (QModelIndex) |
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 | 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
|
295 | self.newUrl.emit( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
296 | idx.data(HistoryModel.UrlRole), |
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
|
297 | idx.data(HistoryModel.TitleRole)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | else: |
488
4174c2707dba
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
299 | self.openUrl.emit( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
300 | idx.data(HistoryModel.UrlRole), |
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
|
301 | idx.data(HistoryModel.TitleRole)) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | def prePopulated(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | Public method to add any actions before the tree. |
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 | @return flag indicating if any actions were added (boolean) |
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 | if self.__historyManager is None: |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
310 | import Helpviewer.HelpWindow |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
311 | self.__historyManager = \ |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
312 | Helpviewer.HelpWindow.HelpWindow.historyManager() |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
313 | self.__historyMenuModel = HistoryMenuModel( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
314 | self.__historyManager.historyTreeModel(), self) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
315 | self.setModel(self.__historyMenuModel) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
316 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
317 | # initial actions |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
318 | for act in self.__initialActions: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
319 | self.addAction(act) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
320 | if len(self.__initialActions) != 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
321 | self.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
322 | self.setFirstSeparator(self.__historyMenuModel.bumpedRows()) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
323 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
324 | return False |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
325 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
326 | def postPopulated(self): |
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 | Public method to add any actions after the tree. |
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 | if len(self.__historyManager.history()) > 0: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
331 | self.addSeparator() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
332 | |
1693
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
333 | 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
|
334 | self.__mostVisitedMenu = HistoryMostVisitedMenu(10, self) |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
335 | self.__mostVisitedMenu.setTitle(self.trUtf8("Most Visited")) |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
336 | 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
|
337 | 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
|
338 | self.addMenu(self.__mostVisitedMenu) |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
339 | act = self.addMenu(self.__closedTabsMenu) |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
340 | act.setIcon(UI.PixmapCache.getIcon("trash.png")) |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
341 | 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
|
342 | self.addSeparator() |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
343 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
344 | act = self.addAction(UI.PixmapCache.getIcon("history.png"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
345 | self.trUtf8("Show All History...")) |
454
d28d558f7484
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
453
diff
changeset
|
346 | 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
|
347 | act = self.addAction(UI.PixmapCache.getIcon("historyClear.png"), |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
348 | self.trUtf8("Clear History...")) |
454
d28d558f7484
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
453
diff
changeset
|
349 | act.triggered[()].connect(self.__clearHistoryDialog) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
350 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
351 | def setInitialActions(self, actions): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
352 | """ |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
353 | 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
|
354 | the menu. |
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 | @param actions list of initial actions (list of QAction) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
357 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
358 | self.__initialActions = actions[:] |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
359 | for act in self.__initialActions: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
360 | self.addAction(act) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
361 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
362 | def __showHistoryDialog(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
363 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
364 | Private slot to show the history dialog. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
365 | """ |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
366 | from .HistoryDialog import HistoryDialog |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
367 | dlg = HistoryDialog(self) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
368 | dlg.setAttribute(Qt.WA_DeleteOnClose) |
488
4174c2707dba
Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
369 | 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
|
370 | dlg.openUrl.connect(self.openUrl) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
371 | dlg.show() |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | def __clearHistoryDialog(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
374 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
375 | Private slot to clear the history. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
376 | """ |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
377 | 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
|
378 | self, |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
379 | self.trUtf8("Clear History"), |
541
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
380 | self.trUtf8("""Do you want to clear the history?""")): |
00e1a5d060c5
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
538
diff
changeset
|
381 | self.__historyManager.clear() |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
382 | |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
383 | def __aboutToShowClosedTabsMenu(self): |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
384 | """ |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
385 | Private slot to populate the closed tabs menu. |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
386 | """ |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
387 | fm = self.__closedTabsMenu.fontMetrics() |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
388 | maxWidth = fm.width('m') * 40 |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
389 | |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
390 | import Helpviewer.HelpWindow |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
391 | self.__closedTabsMenu.clear() |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
392 | index = 0 |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
393 | for tab in self.__tabWidget.closedTabsManager().allClosedTabs(): |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
394 | title = fm.elidedText(tab.title, Qt.ElideRight, maxWidth) |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
395 | self.__closedTabsMenu.addAction( |
1965
96f5a76e1845
Fixed some PEP-8 related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1694
diff
changeset
|
396 | Helpviewer.HelpWindow.HelpWindow.icon(tab.url), title, |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
397 | self.__tabWidget.restoreClosedTab).setData(index) |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
398 | index += 1 |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
399 | self.__closedTabsMenu.addSeparator() |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
400 | self.__closedTabsMenu.addAction( |
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
401 | self.trUtf8("Restore All Closed Tabs"), |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
402 | self.__tabWidget.restoreAllClosedTabs) |
3022
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
403 | self.__closedTabsMenu.addAction( |
57179e4cdadd
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
404 | self.trUtf8("Clear List"), |
1694
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
405 | self.__tabWidget.clearClosedTabsList) |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
406 | |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
407 | def __closedTabAvailable(self, avail): |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
408 | """ |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
409 | Private slot to handle changes of the availability of closed tabs. |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
410 | |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
411 | @param avail flag indicating the availability of closed tabs (boolean) |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
412 | """ |
648466a9451b
Added the capability to restore closed tabs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1693
diff
changeset
|
413 | 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
|
414 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
415 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
416 | class HistoryMostVisitedMenu(E5ModelMenu): |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
417 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
418 | 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
|
419 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
420 | @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
|
421 | @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
|
422 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
423 | 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
|
424 | 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
|
425 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
426 | 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
|
427 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
428 | Constructor |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
429 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
430 | @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
|
431 | @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
|
432 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
433 | 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
|
434 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
435 | self.__historyMenuModel = None |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
436 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
437 | 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
|
438 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
439 | 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
|
440 | 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
|
441 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
442 | 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
|
443 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
444 | 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
|
445 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
446 | @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
|
447 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
448 | 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
|
449 | self.newUrl.emit( |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
450 | idx.data(HistoryModel.UrlRole), |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
451 | idx.data(HistoryModel.TitleRole)) |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
452 | else: |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
453 | self.openUrl.emit( |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
454 | idx.data(HistoryModel.UrlRole), |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
455 | idx.data(HistoryModel.TitleRole)) |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
456 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
457 | def prePopulated(self): |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
458 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
459 | 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
|
460 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
461 | @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
|
462 | """ |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
463 | if self.__historyMenuModel is None: |
2403
e3d7a861547c
Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
464 | import Helpviewer.HelpWindow |
1693
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
465 | historyManager = Helpviewer.HelpWindow.HelpWindow.historyManager() |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
466 | self.__historyMenuModel = HistoryMostVisitedMenuModel( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
467 | 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
|
468 | 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
|
469 | 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
|
470 | |
9bb872e26a33
Added a history sub-menu showing the most visited sites.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
1509
diff
changeset
|
471 | return False |