Helpviewer/OfflineStorage/WebDatabasesModel.py

Sun, 05 Jan 2014 15:20:02 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 05 Jan 2014 15:20:02 +0100
changeset 3175
1a6638ccce9d
parent 3160
209a07d7e401
child 3178
f25fc1364c88
child 3190
a9a94491c4fd
permissions
-rw-r--r--

Fixed an issue in the syntax and code style checker dialogs causing markers of open files not to be checked being cleared.

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)

eric ide

mercurial