Helpviewer/OfflineStorage/WebDatabasesModel.py

Thu, 18 Dec 2014 18:56:04 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 18 Dec 2014 18:56:04 +0100
branch
5_5_x
changeset 3973
f77cdeea80e3
parent 3484
645c12de6b0c
child 3656
441956d8fce5
permissions
-rw-r--r--

Fixed an issue related to handling an inactive syntax checker in the editor.
(grafted from efc9c803ebdcbaa76ed6abc8b81d30dd2750b788)

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
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3057
diff changeset
10 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
11
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 import sys
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 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
15 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
16
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
17
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 class WebDatabasesModel(QAbstractItemModel):
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 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
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 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
23 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @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
27 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
28 super(WebDatabasesModel, self).__init__(parent)
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 self.__headers = [
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
30 self.tr("Name"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
31 self.tr("Size")
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 ]
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.__data = []
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 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
36 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
37
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
38 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
39 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 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
41
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @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
43 @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
44 @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
45 @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
46 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 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
48 return False
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 if parent.isValid():
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 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
52 parentRow = parent.row()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 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
54 QWebDatabase.removeDatabase(db)
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 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
56 self.endRemoveRows()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 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
59 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
60 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
61 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
62 QWebDatabase.removeDatabase(db)
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 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
64 self.endRemoveRows()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 return True
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
68 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
69 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 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
71
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @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
73 @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
74 @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
75 @return header data
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 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
78 try:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 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
80 except IndexError:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 pass
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 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
83
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
84 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
85 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 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
87
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 @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
89 @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
90 @return entry data
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 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
93 return None
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 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
96 parent = index.parent()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 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
98 # security origin
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 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
100 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
101 if origin.host() == "":
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
102 return self.tr("Local")
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 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
104 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
105 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
106 origin.host(),
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 )
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 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
110 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
111 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
112 origin.port(),
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 )
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 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
115 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
116 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 # web database
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 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
119 if index.column() == 0:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
120 return self.tr("{0} ({1})").format(
3002
6ffc581f00f1 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
121 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
122 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
123 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
124
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 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
126 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 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
128
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 @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
130 @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
131 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 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
133 return 0
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 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
136
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
137 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
138 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 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
140
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @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
142 @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
143 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 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
145 return 0
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 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
148 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
149 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 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
151
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
152 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
153 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 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
155
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @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
157 @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
158 @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
159 @return index (QModelIndex)
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 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
162 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
163 return QModelIndex()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 if parent.isValid():
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, parent.row())
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 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
169
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
170 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
171 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 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
173
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 @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
175 @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
176 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 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
178 return QModelIndex()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 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
181 return QModelIndex()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 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
184
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
185 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
186 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 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
188
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 @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
190 @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
191 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 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
193 return True
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 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
196 return True
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 return False
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 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
201 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 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
203
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 @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
205 @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
206 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 unit = ""
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 if size < 1024:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
209 unit = self.tr("bytes")
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 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
211 size /= 1024
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
212 unit = self.tr("kB")
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 size /= 1024 * 1024
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
215 unit = self.tr("MB")
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 return "{0:.1f} {1}".format(size, unit)

eric ide

mercurial