Helpviewer/OfflineStorage/WebDatabasesModel.py

Thu, 21 Mar 2019 19:27:42 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 21 Mar 2019 19:27:42 +0100
changeset 6891
93f82da09f22
parent 6645
ad476851d7e0
permissions
-rw-r--r--

Fixed some code style issues detected by the new 'return' checker.

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
6645
ad476851d7e0 Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
3 # Copyright (c) 2010 - 2019 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
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
14 from PyQt5.QtCore import QAbstractItemModel, QModelIndex, Qt
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
15 from PyQt5.QtWebKit import QWebSecurityOrigin, QWebDatabase
353
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
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
38 def removeRows(self, row, count, parent=None):
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 """
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
47 if parent is None:
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
48 parent = QModelIndex()
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
49
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 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
51 return False
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 if parent.isValid():
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 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
55 parentRow = parent.row()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 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
57 QWebDatabase.removeDatabase(db)
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 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
59 self.endRemoveRows()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 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
62 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
63 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
64 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
65 QWebDatabase.removeDatabase(db)
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 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
67 self.endRemoveRows()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 return True
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
71 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
72 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 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
74
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 @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
76 @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
77 @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
78 @return header data
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 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
81 try:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 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
83 except IndexError:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 pass
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 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
86
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
87 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
88 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 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
90
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 @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
92 @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
93 @return entry data
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 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
96 return None
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 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
99 parent = index.parent()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 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
101 # security origin
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 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
103 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
104 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
105 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
106 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
107 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
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(),
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 )
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 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
113 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
114 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
115 origin.port(),
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 )
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 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
118 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
119 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 # web database
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 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
122 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
123 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
124 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
125 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
126 return self.__dataString(db.size())
6891
93f82da09f22 Fixed some code style issues detected by the new 'return' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
127
93f82da09f22 Fixed some code style issues detected by the new 'return' checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
128 return None
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
130 def columnCount(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
131 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 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
133
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 @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
135 @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
136 """
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
137 if parent is None:
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
138 parent = QModelIndex()
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
139
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 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
141 return 0
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 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
144
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
145 def rowCount(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
146 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 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
148
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 @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
150 @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
151 """
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
152 if parent is None:
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
153 parent = QModelIndex()
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
154
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 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
156 return 0
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 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
159 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
160 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 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
162
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
163 def index(self, row, column, parent=None):
353
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 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
166
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 @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
168 @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
169 @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
170 @return index (QModelIndex)
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 """
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
172 if parent is None:
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
173 parent = QModelIndex()
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
174
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 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
176 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
177 return QModelIndex()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 if parent.isValid():
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 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
181 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 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
183
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
184 def parent(self, index=None):
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 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
187
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 @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
189 @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
190 """
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
191 if index is None:
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
192 index = QModelIndex()
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
193
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 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
195 return QModelIndex()
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 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
198 return QModelIndex()
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 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
201
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
202 def hasChildren(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
203 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 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
205
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 @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
207 @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
208 """
5656
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
209 if parent is None:
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
210 parent = QModelIndex()
9c21b2746218 Fixed a few code style issues related to the usage of class instances for default arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
211
353
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 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
213 return True
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 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
216 return True
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 return False
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 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
221 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 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
223
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 @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
225 @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
226 """
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 unit = ""
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 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
229 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
230 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
231 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
232 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
233 else:
c548890dff9b Added dialog to manage Web SQL Databases to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 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
235 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
236 return "{0:.1f} {1}".format(size, unit)

eric ide

mercurial