Sat, 21 Jun 2014 18:11:38 +0200
Fixed an issue in the naming style checker caused by AST changes in Python 3.4.
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
3160
209a07d7e401
Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
3 | # Copyright (c) 2010 - 2014 Detlev Offenbach <detlev@die-offenbachs.de> |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing the web databases model. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | import sys |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | from PyQt4.QtCore import QAbstractItemModel, QModelIndex, Qt |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from PyQt4.QtWebKit import QWebSecurityOrigin, QWebDatabase |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
15 | |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | class WebDatabasesModel(QAbstractItemModel): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | Class implementing the web databases model. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
20 | def __init__(self, parent=None): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | Constructor |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | @param parent reference to the parent object (QObject) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | """ |
1131
7781e396c903
Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
26 | super().__init__(parent) |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | self.__headers = [ |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
28 | self.trUtf8("Name"), |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | self.trUtf8("Size") |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
30 | ] |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | self.__data = [] |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | for origin in QWebSecurityOrigin.allOrigins(): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | self.__data.append([origin, origin.databases()]) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
36 | def removeRows(self, row, count, parent=QModelIndex()): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | Public method to remove databases from the model. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @param row row of the first database to remove (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | @param count number of databases to remove (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | @param parent index of the security origin (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | @return flag indicating successful removal (boolean) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | if row < 0 or count <= 0 or row + count > self.rowCount(parent): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | return False |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | if parent.isValid(): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | self.beginRemoveRows(parent, row, row + count - 1) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | parentRow = parent.row() |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | for db in self.__data[parentRow][1][row:row + count]: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | QWebDatabase.removeDatabase(db) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
53 | del self.__data[parentRow][1][row:row + count] |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | self.endRemoveRows() |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | else: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | for parentRow in range(row, row + count): |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
57 | self.beginRemoveRows(self.index(parentRow, 0, parent), |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | 0, len(self.__data[parentRow][1]) - 1) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | for db in self.__data[parentRow][1]: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | QWebDatabase.removeDatabase(db) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | del self.__data[parentRow][1][:] |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | self.endRemoveRows() |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | return True |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
66 | def headerData(self, section, orientation, role=Qt.DisplayRole): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | Public method to get the header data. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | @param section section number (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | @param orientation header orientation (Qt.Orientation) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | @param role data role (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | @return header data |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | if orientation == Qt.Horizontal and role == Qt.DisplayRole: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | try: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | return self.__headers[section] |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | except IndexError: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | pass |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | return QAbstractItemModel.headerData(self, section, orientation, role) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
82 | def data(self, index, role=Qt.DisplayRole): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | Public method to get data from the model. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | @param index index of entry to get data for (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | @param role data role (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | @return entry data |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | if not index.isValid() or index.model() != self: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | return None |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | if role == Qt.DisplayRole: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | parent = index.parent() |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | if not parent.isValid(): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | # security origin |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | origin = self.__data[index.row()][0] |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | if index.column() == 0: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | if origin.host() == "": |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | return self.trUtf8("Local") |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | elif origin.port() == 0: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | return "{0}://{1}".format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
103 | origin.scheme(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
104 | origin.host(), |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | ) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | else: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | return "{0}://{1}:{2}".format( |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
108 | origin.scheme(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
109 | origin.host(), |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
110 | origin.port(), |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | ) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | elif index.column() == 1: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | return self.__dataString(origin.databaseUsage()) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | else: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | # web database |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | db = self.__data[parent.row()][1][index.row()] |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | if index.column() == 0: |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
118 | return self.trUtf8("{0} ({1})").format( |
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
119 | db.displayName(), db.name()) |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | elif index.column() == 1: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | return self.__dataString(db.size()) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
123 | def columnCount(self, parent=QModelIndex()): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | Public method to get the number of columns. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | @param parent index of parent (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | @return number of columns (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | if parent.column() > 0: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | return 0 |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | else: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | return len(self.__headers) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
135 | def rowCount(self, parent=QModelIndex()): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | Public method to determine the number of rows. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | @param parent index of parent (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | @return number of rows (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | if parent.column() > 0: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | return 0 |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | if not parent.isValid(): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | return len(self.__data) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | else: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | return len(self.__data[parent.row()][1]) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
150 | def index(self, row, column, parent=QModelIndex()): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | Public method to get a model index for an entry. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | @param row row number (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | @param column column number (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | @param parent index of the parent (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | @return index (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | if row < 0 or column < 0 or \ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | row >= self.rowCount(parent) or column >= self.columnCount(parent): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | return QModelIndex() |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
162 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | if parent.isValid(): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | return self.createIndex(row, column, parent.row()) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | else: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | return self.createIndex(row, column, sys.maxsize) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
168 | def parent(self, index=QModelIndex()): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | Public method to get the index of the parent entry. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | @param index index of the child entry (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | @return index of the parent entry (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | if not index.isValid(): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | return QModelIndex() |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | if index.internalId() == sys.maxsize: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
179 | return QModelIndex() |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
180 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
181 | return self.createIndex(index.internalId(), 0) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
182 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
183 | def hasChildren(self, parent=QModelIndex()): |
353
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | Public method to check, if a parent node has some children. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | @param parent index of the parent node (QModelIndex) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | @return flag indicating the presence of children (boolean) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | if not parent.isValid(): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | return True |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | if parent.internalId() == sys.maxsize: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | return True |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | return False |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | def __dataString(self, size): |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | Private method to generate a formatted data string. |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | @param size size to be formatted (integer) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | @return formatted data string (string) |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | """ |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | unit = "" |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | if size < 1024: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | unit = self.trUtf8("bytes") |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
208 | elif size < 1024 * 1024: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
209 | size /= 1024 |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | unit = self.trUtf8("kB") |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | else: |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | size /= 1024 * 1024 |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | unit = self.trUtf8("MB") |
c548890dff9b
Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | return "{0:.1f} {1}".format(size, unit) |