Helpviewer/OfflineStorage/WebDatabasesModel.py

changeset 945
8cd4d08fa9f6
parent 791
9ec2ac20e54e
child 1131
7781e396c903
equal deleted inserted replaced
944:1b59c4ba121e 945:8cd4d08fa9f6
9 9
10 import sys 10 import sys
11 11
12 from PyQt4.QtCore import QAbstractItemModel, QModelIndex, Qt 12 from PyQt4.QtCore import QAbstractItemModel, QModelIndex, Qt
13 from PyQt4.QtWebKit import QWebSecurityOrigin, QWebDatabase 13 from PyQt4.QtWebKit import QWebSecurityOrigin, QWebDatabase
14
14 15
15 class WebDatabasesModel(QAbstractItemModel): 16 class WebDatabasesModel(QAbstractItemModel):
16 """ 17 """
17 Class implementing the web databases model. 18 Class implementing the web databases model.
18 """ 19 """
19 def __init__(self, parent = None): 20 def __init__(self, parent=None):
20 """ 21 """
21 Constructor 22 Constructor
22 23
23 @param parent reference to the parent object (QObject) 24 @param parent reference to the parent object (QObject)
24 """ 25 """
25 QAbstractItemModel.__init__(self, parent) 26 QAbstractItemModel.__init__(self, parent)
26 self.__headers = [ 27 self.__headers = [
27 self.trUtf8("Name"), 28 self.trUtf8("Name"),
28 self.trUtf8("Size") 29 self.trUtf8("Size")
29 ] 30 ]
30 31
31 self.__data = [] 32 self.__data = []
32 for origin in QWebSecurityOrigin.allOrigins(): 33 for origin in QWebSecurityOrigin.allOrigins():
33 self.__data.append([origin, origin.databases()]) 34 self.__data.append([origin, origin.databases()])
34 35
35 def removeRows(self, row, count, parent = QModelIndex()): 36 def removeRows(self, row, count, parent=QModelIndex()):
36 """ 37 """
37 Public method to remove databases from the model. 38 Public method to remove databases from the model.
38 39
39 @param row row of the first database to remove (integer) 40 @param row row of the first database to remove (integer)
40 @param count number of databases to remove (integer) 41 @param count number of databases to remove (integer)
51 QWebDatabase.removeDatabase(db) 52 QWebDatabase.removeDatabase(db)
52 del self.__data[parentRow][1][row:row + count] 53 del self.__data[parentRow][1][row:row + count]
53 self.endRemoveRows() 54 self.endRemoveRows()
54 else: 55 else:
55 for parentRow in range(row, row + count): 56 for parentRow in range(row, row + count):
56 self.beginRemoveRows(self.index(parentRow, 0, parent), 57 self.beginRemoveRows(self.index(parentRow, 0, parent),
57 0, len(self.__data[parentRow][1]) - 1) 58 0, len(self.__data[parentRow][1]) - 1)
58 for db in self.__data[parentRow][1]: 59 for db in self.__data[parentRow][1]:
59 QWebDatabase.removeDatabase(db) 60 QWebDatabase.removeDatabase(db)
60 del self.__data[parentRow][1][:] 61 del self.__data[parentRow][1][:]
61 self.endRemoveRows() 62 self.endRemoveRows()
62 63
63 return True 64 return True
64 65
65 def headerData(self, section, orientation, role = Qt.DisplayRole): 66 def headerData(self, section, orientation, role=Qt.DisplayRole):
66 """ 67 """
67 Public method to get the header data. 68 Public method to get the header data.
68 69
69 @param section section number (integer) 70 @param section section number (integer)
70 @param orientation header orientation (Qt.Orientation) 71 @param orientation header orientation (Qt.Orientation)
76 return self.__headers[section] 77 return self.__headers[section]
77 except IndexError: 78 except IndexError:
78 pass 79 pass
79 return QAbstractItemModel.headerData(self, section, orientation, role) 80 return QAbstractItemModel.headerData(self, section, orientation, role)
80 81
81 def data(self, index, role = Qt.DisplayRole): 82 def data(self, index, role=Qt.DisplayRole):
82 """ 83 """
83 Public method to get data from the model. 84 Public method to get data from the model.
84 85
85 @param index index of entry to get data for (QModelIndex) 86 @param index index of entry to get data for (QModelIndex)
86 @param role data role (integer) 87 @param role data role (integer)
97 if index.column() == 0: 98 if index.column() == 0:
98 if origin.host() == "": 99 if origin.host() == "":
99 return self.trUtf8("Local") 100 return self.trUtf8("Local")
100 elif origin.port() == 0: 101 elif origin.port() == 0:
101 return "{0}://{1}".format( 102 return "{0}://{1}".format(
102 origin.scheme(), 103 origin.scheme(),
103 origin.host(), 104 origin.host(),
104 ) 105 )
105 else: 106 else:
106 return "{0}://{1}:{2}".format( 107 return "{0}://{1}:{2}".format(
107 origin.scheme(), 108 origin.scheme(),
108 origin.host(), 109 origin.host(),
109 origin.port(), 110 origin.port(),
110 ) 111 )
111 elif index.column() == 1: 112 elif index.column() == 1:
112 return self.__dataString(origin.databaseUsage()) 113 return self.__dataString(origin.databaseUsage())
113 else: 114 else:
114 # web database 115 # web database
116 if index.column() == 0: 117 if index.column() == 0:
117 return self.trUtf8("{0} ({1})").format(db.displayName(), db.name()) 118 return self.trUtf8("{0} ({1})").format(db.displayName(), db.name())
118 elif index.column() == 1: 119 elif index.column() == 1:
119 return self.__dataString(db.size()) 120 return self.__dataString(db.size())
120 121
121 def columnCount(self, parent = QModelIndex()): 122 def columnCount(self, parent=QModelIndex()):
122 """ 123 """
123 Public method to get the number of columns. 124 Public method to get the number of columns.
124 125
125 @param parent index of parent (QModelIndex) 126 @param parent index of parent (QModelIndex)
126 @return number of columns (integer) 127 @return number of columns (integer)
128 if parent.column() > 0: 129 if parent.column() > 0:
129 return 0 130 return 0
130 else: 131 else:
131 return len(self.__headers) 132 return len(self.__headers)
132 133
133 def rowCount(self, parent = QModelIndex()): 134 def rowCount(self, parent=QModelIndex()):
134 """ 135 """
135 Public method to determine the number of rows. 136 Public method to determine the number of rows.
136 137
137 @param parent index of parent (QModelIndex) 138 @param parent index of parent (QModelIndex)
138 @return number of rows (integer) 139 @return number of rows (integer)
143 if not parent.isValid(): 144 if not parent.isValid():
144 return len(self.__data) 145 return len(self.__data)
145 else: 146 else:
146 return len(self.__data[parent.row()][1]) 147 return len(self.__data[parent.row()][1])
147 148
148 def index(self, row, column, parent = QModelIndex()): 149 def index(self, row, column, parent=QModelIndex()):
149 """ 150 """
150 Public method to get a model index for an entry. 151 Public method to get a model index for an entry.
151 152
152 @param row row number (integer) 153 @param row row number (integer)
153 @param column column number (integer) 154 @param column column number (integer)
161 if parent.isValid(): 162 if parent.isValid():
162 return self.createIndex(row, column, parent.row()) 163 return self.createIndex(row, column, parent.row())
163 else: 164 else:
164 return self.createIndex(row, column, sys.maxsize) 165 return self.createIndex(row, column, sys.maxsize)
165 166
166 def parent(self, index = QModelIndex()): 167 def parent(self, index=QModelIndex()):
167 """ 168 """
168 Public method to get the index of the parent entry. 169 Public method to get the index of the parent entry.
169 170
170 @param index index of the child entry (QModelIndex) 171 @param index index of the child entry (QModelIndex)
171 @return index of the parent entry (QModelIndex) 172 @return index of the parent entry (QModelIndex)
176 if index.internalId() == sys.maxsize: 177 if index.internalId() == sys.maxsize:
177 return QModelIndex() 178 return QModelIndex()
178 179
179 return self.createIndex(index.internalId(), 0) 180 return self.createIndex(index.internalId(), 0)
180 181
181 def hasChildren(self, parent = QModelIndex()): 182 def hasChildren(self, parent=QModelIndex()):
182 """ 183 """
183 Public method to check, if a parent node has some children. 184 Public method to check, if a parent node has some children.
184 185
185 @param parent index of the parent node (QModelIndex) 186 @param parent index of the parent node (QModelIndex)
186 @return flag indicating the presence of children (boolean) 187 @return flag indicating the presence of children (boolean)

eric ide

mercurial