qcanvas 2.0.1.post0__py3-none-any.whl → 2.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of qcanvas might be problematic. Click here for more details.

Files changed (23) hide show
  1. qcanvas/__init__.py +4 -4
  2. qcanvas/ui/qml_components/__init__.py +1 -0
  3. qcanvas/ui/qml_components/attachments_pane.py +2 -4
  4. qcanvas/ui/qml_components/comments_pane.py +2 -4
  5. qcanvas/ui/qml_components/qml/__init__.py +3 -0
  6. qcanvas/ui/qml_components/qml/rc_qml.py +709 -0
  7. qcanvas/ui/qml_components/qml/rc_qml.qrc +16 -0
  8. qcanvas/ui/qml_components/qml_pane.py +3 -4
  9. {qcanvas-2.0.1.post0.dist-info → qcanvas-2.0.3.dist-info}/METADATA +11 -12
  10. {qcanvas-2.0.1.post0.dist-info → qcanvas-2.0.3.dist-info}/RECORD +23 -20
  11. {qcanvas-2.0.1.post0.dist-info → qcanvas-2.0.3.dist-info}/WHEEL +1 -1
  12. /qcanvas/ui/qml_components/{AttachmentsList.ui.qml → qml/AttachmentsList.ui.qml} +0 -0
  13. /qcanvas/ui/qml_components/{AttachmentsListDelegate.qml → qml/AttachmentsListDelegate.qml} +0 -0
  14. /qcanvas/ui/qml_components/{AttachmentsListModel.qml → qml/AttachmentsListModel.qml} +0 -0
  15. /qcanvas/ui/qml_components/{AttachmentsPane.qml → qml/AttachmentsPane.qml} +0 -0
  16. /qcanvas/ui/qml_components/{CommentsList.ui.qml → qml/CommentsList.ui.qml} +0 -0
  17. /qcanvas/ui/qml_components/{CommentsListDelegate.ui.qml → qml/CommentsListDelegate.ui.qml} +0 -0
  18. /qcanvas/ui/qml_components/{CommentsListModel.qml → qml/CommentsListModel.qml} +0 -0
  19. /qcanvas/ui/qml_components/{CommentsPane.qml → qml/CommentsPane.qml} +0 -0
  20. /qcanvas/ui/qml_components/{DecoratedText.ui.qml → qml/DecoratedText.ui.qml} +0 -0
  21. /qcanvas/ui/qml_components/{Spacer.ui.qml → qml/Spacer.ui.qml} +0 -0
  22. /qcanvas/ui/qml_components/{ThemedRectangle.qml → qml/ThemedRectangle.qml} +0 -0
  23. {qcanvas-2.0.1.post0.dist-info → qcanvas-2.0.3.dist-info}/entry_points.txt +0 -0
qcanvas/__init__.py CHANGED
@@ -30,10 +30,6 @@ from qcanvas.util import logs, paths
30
30
 
31
31
 
32
32
  def main():
33
- app.launch()
34
-
35
-
36
- if __name__ == "__main__":
37
33
  paths.data_storage().mkdir(parents=True, exist_ok=True)
38
34
 
39
35
  logging.basicConfig(
@@ -51,4 +47,8 @@ if __name__ == "__main__":
51
47
  }
52
48
  )
53
49
 
50
+ app.launch()
51
+
52
+
53
+ if __name__ == "__main__":
54
54
  main()
@@ -1,3 +1,4 @@
1
+ from .qml import rc_qml # Do not remove!! Loads the qml resources
1
2
  from .comments_pane import CommentsPane
2
3
  from .attachments_pane import AttachmentsPane
3
4
  from .qml_bridge_types import Attachment, Comment
@@ -1,6 +1,4 @@
1
- from pathlib import Path
2
-
3
- from PySide6.QtCore import Slot
1
+ from PySide6.QtCore import Slot, QUrl
4
2
  from PySide6.QtWidgets import QWidget
5
3
  from qasync import asyncSlot
6
4
 
@@ -17,7 +15,7 @@ class AttachmentsPane(QmlPane):
17
15
  def __init__(
18
16
  self, downloader: FrontendResourceManager, parent: QWidget | None = None
19
17
  ):
20
- super().__init__(Path(__file__).parent / "AttachmentsPane.qml", parent)
18
+ super().__init__(qml_path=QUrl("qrc:qml/AttachmentsPane.qml"), parent=parent)
21
19
 
22
20
  self._original_dock_name = None
23
21
  self._downloader = downloader
@@ -1,6 +1,4 @@
1
- from pathlib import Path
2
-
3
- from PySide6.QtCore import Signal, Slot
1
+ from PySide6.QtCore import Signal, Slot, QUrl
4
2
  from PySide6.QtWidgets import QWidget
5
3
  from libqcanvas.util import remove_unwanted_whitespaces, as_local
6
4
  from qasync import asyncSlot
@@ -20,7 +18,7 @@ class CommentsPane(QmlPane):
20
18
  def __init__(
21
19
  self, downloader: FrontendResourceManager, parent: QWidget | None = None
22
20
  ):
23
- super().__init__(Path(__file__).parent / "CommentsPane.qml", parent)
21
+ super().__init__(qml_path=QUrl("qrc:qml/CommentsPane.qml"), parent=parent)
24
22
  self._downloader = downloader
25
23
  self._attachments: dict[str, db.Resource] = {}
26
24
  self._qattachments: dict[str, Attachment] = {}
@@ -0,0 +1,3 @@
1
+ import logging
2
+
3
+ _logger = logging.getLogger(__name__)
@@ -0,0 +1,709 @@
1
+ # Resource object code (Python 3)
2
+ # Created by: object code
3
+ # Created by: The Resource Compiler for Qt version 6.8.1
4
+ # WARNING! All changes made in this file will be lost!
5
+
6
+ from PySide6 import QtCore
7
+
8
+ qt_resource_data = b"\
9
+ \x00\x00\x03O\
10
+ (\
11
+ \xb5/\xfd`d\x0b-\x1a\x00\x16gm# q\xdb\
12
+ \xccq\xe1\xe6\xd2\xb7\xd0\xfa\x906\x94\xdc\x14\xf9\x1c\xdb\
13
+ D{\x809,S\x9e\x83P\x05\xa0\x01\xc0\x0d8\x0f\
14
+ b\x00d\x00a\x00\xfe\xfeq\xba\x11D\x8cit\xda\
15
+ \x9e\x89\x1e\xe5D\x92\xc9\xe1!\x22'\x9e\xcf\xb0\xd1\x84\
16
+ \x0cc\xae\xd3dK\xbf>e\x8b7#\xf6\xab\xdfC\
17
+ \xe8\x10\x14\xa1\x84I\x11s\x9e\xde\x1b\x7f\x22\x9d\xd3\x90\
18
+ #\xf9\x11\xe9:\x97\xbf\x97\x93\x9b\xf4\xcf\xe5u\xfc.\
19
+ _\x9f\xcf\x00\xd6*\xa9c\x02Hf=IIEj\
20
+ \xc2~(\x18\x01\x07\xc3\x04\xbe\x989N\x7f\xb1D\xaa\
21
+ u\xd1\x9fCY\xda\xfc\xdf\x9bT\xcf\xd0I \x7f\x85\
22
+ \x83T\x8e\xeb]\x8523\x99\x8dd\x18\xc8\x1c\x92\x22\
23
+ Z3\x0e\x01&\xc1t\x9e\x90\xb5~\xb2\xf6O\x82\xed\
24
+ \xf9\xa4\xa0c\x01eu\xac\x148\x9e\xbf\xf2[_q\
25
+ x\xa7\xaf\xa4\xe5\xebp(\x08\xfd?\xf9\xd1\x93\xb2\xf8\
26
+ \x810)j\xde\xbb\xe3\xf5\x95\xbc\xe2\x06\x0d\xc2A*\
27
+ \xd6\xe8\x89w\xed\x90\xf3\xc9'}\x8d0^o\xa9~\
28
+ \xfb3\x98\xe2\xf9\xf3Q\xb7!\x0a\xbav\x9e\xb6w\xfc\
29
+ \x14r-n\xa7J\x8d_\xf2\x18\xdc\x96T?a\x06\
30
+ \x9f?\xcb)B\x0a\xe4@&~u\x98\xf1\xa6\xe2\x87\
31
+ \xe3\xfbTP\xb3u\xa1<\xdd\xf4x\x9f7\x09\xa9`\
32
+ \xec\xd5\xc7\xb6[\xe2\x7ff\x0a\xa5z\xce\x02\xcc\x85!\
33
+ \xd3I*\xb6\xf4/\xe5\x06\xd8\x0e\x8f\x5c\xc8\xe7\x1d\xc7\
34
+ ,\xc1g\xe9?\xb3\xa6a\xf3\xe3\x07#r\x8f\x07\x11\
35
+ =]\x17\x9da\x9f_\xfc\xe3\x82\xd7\x1f }\x18\x08\
36
+ \xa9\x9e\xdf\xbe`\xd7,Zo\x96_\x9f/\x8e\x18\xc0\
37
+ \xc7K\xa1\x89\x07\xc8%\xde\xb9F?\x86X\xa4rN\
38
+ \xb3\x07\xd3\xd5\xff\xd8\xb2\xfc\x1ay\xc7\xad\xf9\xba\x5c\x96\
39
+ y\x80\xab\xa0\x01\x1a33$2\x93\x14\xa5\xb0\x1c \
40
+ \x84\x18\xc4\x10V\x07\xa9\xd1^C\xdd\x1dfi\x00\x82\
41
+ \x17\xc5\x10\x8b\xaeWv\xbd\xa2\x90\xb7\xfc?\x96\x99V\
42
+ \x8b\xf4\xf2{\xc1.\x8f>\xf5\x1b\xd8\x1c\x87\xe8\x12\xab\
43
+ \xd1\xca\x19\xbd+!'\x7fz\x09\x08\xa95\xdbgM\
44
+ \xb1\xd4\xben\xb8\xfb\xc8tbv\xa6\x9f\x7f\xb4\xde\x01\
45
+ bP\xb2\x030\x89D\x13\x86\xfd\xe8r\xd9\x94-\xd4\
46
+ \x95\x06\xb7\x84;,<\xd5f\xfd\xe7\x01o-\xc7~\
47
+ [Q\x9a2\xf6\x17<\x83$_B\x83\xb8v\xd4\x22\
48
+ \xb4\xafz\xd6\x1c\x0c\x10\xff'4pro\xd5\xbe\xad\
49
+ \xac\xce\x08\x868\xfd l\x1aU\xabM\xa9\xe6h\xd6\
50
+ -\xc8!\x99\xfa\xca\x05h\xd7X?jY(\xb7\x0f\
51
+ o<\xae\xeb\xf8]\xf9ax@\xf3\xe7_qw\x8b\
52
+ \xe60\x16\xee\xfcy\xfb1\xdb\xf1\xa2\xe3\x96\xd2ud\
53
+ \x04\x95\xed\xd8\xb6\xd4}\xd9\xb9\xday:\xa1ETN\
54
+ \xd4m\x89\x9c\x16\x05c\x17x\xcb<\xf2\x1e\xbf\xb1[\
55
+ \x9c}\xd5e\xe5\xbd\xb6!\xf6\x0fmy7\xb7\xc2\xd2\
56
+ \x83\x18\x13#}g\xd7$\x05\xa0\xadxi\x96W-\
57
+ d'\xde\xa4\x00P\xc3\xfdt\xa5w@_\x1af\xb8\
58
+ i=\x11I\x83XF\x938Im\x99\x0a$\xa7n\
59
+ \xaa\xc2@\x01\x8b~\x88g%\xe5E\x16\xe4\x06\xf6F\
60
+ [j\x9e\x87\x5c\xcbt\x07\xb2\xfe\x83A \xcet\x93\
61
+ \xd1\xb3\xdc\x01\xbe.@a%S\xa6\xb9\x99}\x80G\
62
+ \xb0\xa5\xf9\x01M\x8d\x07\xbe\xa4\xfaY\xbe\x98\xb4\x10R\
63
+ \xc0\xe4\xe2\xfb)\x082\xaeJP\xeb\x0b\xb8>\
64
+ \x00\x00\x02\x04\
65
+ i\
66
+ mport QtQuick\x0a\x0aL\
67
+ istModel {\x0a L\
68
+ istElement {\x0a \
69
+ file_name: \
70
+ \x22texas.pdf\x22\x0a \
71
+ resource_id:\
72
+ \x221\x22\x0a dow\
73
+ nload_state: \x22NO\
74
+ T_DOWNLOADED\x22\x0a \
75
+ }\x0a ListElem\
76
+ ent {\x0a fi\
77
+ le_name: \x22oh_no_\
78
+ what_a_terribly_\
79
+ long_file_name_i\
80
+ ts_not_like_some\
81
+ one_would_actual\
82
+ ly_do_this.pdf\x22\x0a\
83
+ resource\
84
+ _id: \x222\x22\x0a \
85
+ download_state:\
86
+ \x22FAILED\x22\x0a }\x0a\
87
+ ListElement \
88
+ {\x0a file_n\
89
+ ame: \x22i was tran\
90
+ sported to anoth\
91
+ er world where j\
92
+ avascript doesn'\
93
+ t exist.cbz\x22\x0a \
94
+ resource_id\
95
+ : \x223\x22\x0a do\
96
+ wnload_state: \x22D\
97
+ OWNLOADED\x22\x0a }\
98
+ \x0a}\x0a\
99
+ \x00\x00\x00\xa3\
100
+ i\
101
+ mport QtQuick\x0a\x0aT\
102
+ hemedRectangle {\
103
+ \x0a anchors.fil\
104
+ l: parent\x0a\x0a C\
105
+ ommentsList {\x0a \
106
+ anchors.fi\
107
+ ll: parent\x0a \
108
+ model: commen\
109
+ ts\x0a palet\
110
+ te: theme\x0a }\x0a\
111
+ }\x0a\
112
+ \x00\x00\x03\xf9\
113
+ i\
114
+ mport QtQuick\x0a\x0aR\
115
+ ectangle {\x0a p\
116
+ roperty Palette \
117
+ theme: getTheme(\
118
+ )\x0a color: the\
119
+ me.base\x0a\x0a fun\
120
+ ction getTheme()\
121
+ {\x0a if (a\
122
+ ppTheme.theme ==\
123
+ = \x22native\x22)\x0a \
124
+ return p\
125
+ alette\x0a e\
126
+ lse if (appTheme\
127
+ .dark_mode === t\
128
+ rue)\x0a \
129
+ return darkThem\
130
+ e\x0a else\x0a \
131
+ retur\
132
+ n lightTheme\x0a \
133
+ }\x0a\x0a Palette \
134
+ {\x0a id: li\
135
+ ghtTheme\x0a \
136
+ base: \x22#f8f9fa\x22\
137
+ \x0a window:\
138
+ \x22#f8f9fa\x22\x0a \
139
+ midlight: \x22#f\
140
+ 8f9fa\x22\x0a a\
141
+ ccent: \x22#e02424\x22\
142
+ \x0a link: a\
143
+ ccent\x0a da\
144
+ rk: \x22#dadce0\x22\x0a \
145
+ text: \x22#4d\
146
+ 5157\x22\x0a }\x0a\x0a \
147
+ Palette {\x0a \
148
+ id: darkTheme\
149
+ \x0a base: \x22\
150
+ #202124\x22\x0a \
151
+ window: \x22#f8f9f\
152
+ a\x22\x0a midli\
153
+ ght: \x22#202124\x22\x0a \
154
+ accent: \x22\
155
+ #e02424\x22\x0a \
156
+ link: accent\x0a \
157
+ dark: \x22#3f\
158
+ 4042\x22\x0a te\
159
+ xt: \x22#e4e7eb\x22\x0a \
160
+ }\x0a\x0a Connect\
161
+ ions {\x0a t\
162
+ arget: appTheme\x0a\
163
+ \x0a functio\
164
+ n onThemeChanged\
165
+ () {\x0a \
166
+ updateTheme()\x0a \
167
+ }\x0a\x0a \
168
+ function onDar\
169
+ kModeChanged() {\
170
+ \x0a upd\
171
+ ateTheme()\x0a \
172
+ }\x0a\x0a fu\
173
+ nction updateThe\
174
+ me() {\x0a \
175
+ theme = getTh\
176
+ eme()\x0a }\x0a\
177
+ }\x0a}\x0a\
178
+ \x00\x00\x00\xae\
179
+ i\
180
+ mport QtQuick\x0a\x0aT\
181
+ hemedRectangle {\
182
+ \x0a anchors.fil\
183
+ l: parent\x0a\x0a A\
184
+ ttachmentsList {\
185
+ \x0a anchors\
186
+ .fill: parent\x0a \
187
+ model: sub\
188
+ mission_files\x0a \
189
+ palette: t\
190
+ heme\x0a }\x0a}\x0a\
191
+ \x00\x00\x03\xeb\
192
+ i\
193
+ mport QtQuick\x0aim\
194
+ port QtQuick.Con\
195
+ trols\x0aimport QtQ\
196
+ uick.Layouts\x0a\x0aIt\
197
+ em {\x0a propert\
198
+ y alias text: co\
199
+ ntent.text\x0a p\
200
+ roperty int line\
201
+ Width: 3\x0a pro\
202
+ perty color line\
203
+ Colour: palette.\
204
+ accent\x0a prope\
205
+ rty alias conten\
206
+ t: content\x0a\x0a \
207
+ Layout.fillWidth\
208
+ : true\x0a heigh\
209
+ t: content.conte\
210
+ ntHeight\x0a cli\
211
+ p: true\x0a\x0a Ite\
212
+ m {\x0a anch\
213
+ ors.fill: parent\
214
+ \x0a height:\
215
+ content.content\
216
+ Height\x0a\x0a \
217
+ Rectangle {\x0a \
218
+ id: deco\
219
+ ration\x0a \
220
+ width: lineWi\
221
+ dth\x0a \
222
+ color: lineColou\
223
+ r\x0a ra\
224
+ dius: 1\x0a \
225
+ anchors {\x0a \
226
+ le\
227
+ ft: parent.left\x0a\
228
+ \
229
+ top: parent.top\x0a\
230
+ \
231
+ bottom: parent.b\
232
+ ottom\x0a \
233
+ }\x0a }\x0a\x0a \
234
+ Text/*Edi\
235
+ t*/ {\x0a \
236
+ id: content\x0a \
237
+ Layout\
238
+ .fillWidth: true\
239
+ \x0a col\
240
+ or: palette.text\
241
+ \x0a //r\
242
+ eadOnly: true\x0a \
243
+ //text\
244
+ Format: TextEdit\
245
+ .AutoText\x0a \
246
+ anchors {\x0a\
247
+ \
248
+ left: decoration\
249
+ .right\x0a \
250
+ leftMargi\
251
+ n: 10\x0a \
252
+ right: par\
253
+ ent.right\x0a \
254
+ }\x0a \
255
+ }\x0a }\x0a}\x0a\
256
+ \x00\x00\x08C\
257
+ i\
258
+ mport QtQuick\x0aim\
259
+ port QtQuick.Lay\
260
+ outs\x0a\x0aItem {\x0a \
261
+ id: delegate\x0a \
262
+ height: childr\
263
+ enRect.height\x0a \
264
+ anchors {\x0a \
265
+ left: parent\
266
+ .left\x0a ri\
267
+ ght: parent.righ\
268
+ t\x0a }\x0a\x0a Col\
269
+ umnLayout {\x0a \
270
+ spacing: 0\x0a\x0a\
271
+ anchors \
272
+ {\x0a le\
273
+ ft: parent.left\x0a\
274
+ righ\
275
+ t: parent.right\x0a\
276
+ }\x0a\x0a \
277
+ RowLayout {\x0a \
278
+ heigh\
279
+ t: childrenRect.\
280
+ implicitHeight\x0a \
281
+ Layou\
282
+ t.fillWidth: tru\
283
+ e\x0a sp\
284
+ acing: 10\x0a\x0a \
285
+ Image {\x0a \
286
+ f\
287
+ unction attachme\
288
+ ntIcon(downloadS\
289
+ tatus) {\x0a \
290
+ swi\
291
+ tch(downloadStat\
292
+ us)\x0a \
293
+ {\x0a \
294
+ \
295
+ case \x22DOWNLOAD\
296
+ ED\x22:\x0a \
297
+ \
298
+ return \x22qrc:///\
299
+ icons/universal/\
300
+ downloads/downlo\
301
+ aded.svg\x22;\x0a \
302
+ \
303
+ case \x22FAILED\x22\
304
+ :\x0a \
305
+ re\
306
+ turn \x22qrc:///ico\
307
+ ns/universal/dow\
308
+ nloads/download_\
309
+ failed.svg\x22;\x0a \
310
+ \
311
+ case \x22NOT_D\
312
+ OWNLOADED\x22:\x0a \
313
+ \
314
+ return \x22\
315
+ qrc:///icons/uni\
316
+ versal/downloads\
317
+ /not_downloaded.\
318
+ svg\x22;\x0a \
319
+ de\
320
+ fault:\x0a \
321
+ \
322
+ return \x22qrc:/\
323
+ //icons/universa\
324
+ l/downloads/unkn\
325
+ own.svg\x22\x0a \
326
+ }\x0a \
327
+ }\
328
+ \x0a\x0a \
329
+ id: fileIcon\x0a \
330
+ s\
331
+ ource: attachmen\
332
+ tIcon(modelData.\
333
+ download_state)\x0a\
334
+ \
335
+ fillMode: Image.\
336
+ PreserveAspectFi\
337
+ t\x0a \
338
+ sourceSize.hei\
339
+ ght: 17\x0a \
340
+ sourceSi\
341
+ ze.width: 17\x0a \
342
+ }\x0a\x0a \
343
+ Text {\x0a \
344
+ i\
345
+ d: file_name_tex\
346
+ t\x0a \
347
+ text: modelDat\
348
+ a.file_name\x0a \
349
+ wrap\
350
+ Mode: Text.WrapA\
351
+ tWordBoundaryOrA\
352
+ nywhere\x0a \
353
+ Layout.f\
354
+ illWidth: true\x0a \
355
+ f\
356
+ ont.underline: t\
357
+ rue\x0a \
358
+ color: palet\
359
+ te.link\x0a\x0a \
360
+ MouseAr\
361
+ ea {\x0a \
362
+ id: tex\
363
+ tClickArea\x0a \
364
+ a\
365
+ nchors.fill: par\
366
+ ent\x0a \
367
+ cursorSh\
368
+ ape: Qt.Pointing\
369
+ HandCursor\x0a \
370
+ h\
371
+ overEnabled: tru\
372
+ e\x0a \
373
+ }\x0a \
374
+ }\x0a }\x0a\x0a \
375
+ Spacer {\x0a \
376
+ size: \
377
+ 5\x0a vi\
378
+ sible: index !==\
379
+ count - 1\x0a \
380
+ }\x0a }\x0a\x0a \
381
+ Connections {\x0a \
382
+ target: te\
383
+ xtClickArea\x0a\x0a \
384
+ function on\
385
+ Clicked() {\x0a \
386
+ modelDat\
387
+ a.opened(modelDa\
388
+ ta.resource_id)\x0a\
389
+ }\x0a }\x0a\
390
+ }\x0a\
391
+ \x00\x00\x01\xdd\
392
+ \x0a\
393
+ \x0a/*\x0aThis is a UI\
394
+ file (.ui.qml) \
395
+ that is intended\
396
+ to be edited in\
397
+ Qt Design Studi\
398
+ o only.\x0aIt is su\
399
+ pposed to be str\
400
+ ictly declarativ\
401
+ e and only uses \
402
+ a subset of QML.\
403
+ If you edit\x0athi\
404
+ s file manually,\
405
+ you might intro\
406
+ duce QML code th\
407
+ at is not suppor\
408
+ ted by Qt Design\
409
+ Studio.\x0aCheck o\
410
+ ut https://doc.q\
411
+ t.io/qtcreator/c\
412
+ reator-quick-ui-\
413
+ forms.html for d\
414
+ etails on .ui.qm\
415
+ l files.\x0a*/\x0aimpo\
416
+ rt QtQuick\x0a\x0aList\
417
+ View {\x0a id: v\
418
+ iew\x0a model: C\
419
+ ommentsListModel\
420
+ {}\x0a delegate\
421
+ : CommentsListDe\
422
+ legate {}\x0a}\x0a\
423
+ \x00\x00\x08\xb6\
424
+ i\
425
+ mport QtQuick\x0a\x0aL\
426
+ istModel {\x0a L\
427
+ istElement {\x0a \
428
+ body: \x22This\
429
+ is a comment. G\
430
+ aze at it. Be am\
431
+ azed.\x22\x0a a\
432
+ uthor: \x22I am Ste\
433
+ ve\x22\x0a date\
434
+ : \x222001-01-01 36\
435
+ :00\x22\x0a att\
436
+ achments: [\x0a \
437
+ ListElem\
438
+ ent {\x0a \
439
+ file_name:\
440
+ \x22texas.pdf\x22\x0a \
441
+ res\
442
+ ource_id: \x221\x22\x0a \
443
+ do\
444
+ wnload_state: \x22N\
445
+ OT_DOWNLOADED\x22\x0a \
446
+ },\x0a \
447
+ ListEl\
448
+ ement {\x0a \
449
+ file_nam\
450
+ e: \x22oh_no_what_a\
451
+ _terribly_long_f\
452
+ ile_name_its_not\
453
+ _like_someone_wo\
454
+ uld_actually_do_\
455
+ this.pdf\x22\x0a \
456
+ resour\
457
+ ce_id: \x222\x22\x0a \
458
+ downl\
459
+ oad_state: \x22FAIL\
460
+ ED\x22\x0a \
461
+ },\x0a L\
462
+ istElement {\x0a \
463
+ fil\
464
+ e_name: \x22i was t\
465
+ ransported to an\
466
+ other world wher\
467
+ e javascript doe\
468
+ sn't exist.cbz\x22\x0a\
469
+ \
470
+ resource_id: \x223\x22\
471
+ \x0a \
472
+ download_state:\
473
+ \x22DOWNLOADED\x22\x0a \
474
+ }\x0a \
475
+ ]\x0a }\x0a \
476
+ ListElement {\x0a \
477
+ body: \x22If \
478
+ Morbius has a mi\
479
+ llion fans, I am\
480
+ one of them.\x5cnI\
481
+ f Morbius has 5 \
482
+ fans, I am one o\
483
+ f them.\x5cnIf Morb\
484
+ ius has one fan,\
485
+ That one is me.\
486
+ \x5cnIf Morbius has\
487
+ no fans, I am n\
488
+ o longer alive.\x5c\
489
+ nIf the world is\
490
+ against Morbius\
491
+ , I am against t\
492
+ he world.\x5cnTill \
493
+ my last breath, \
494
+ I'll love Morbiu\
495
+ s (2022).\x22\x0a \
496
+ author: \x22Goku\
497
+ \x22\x0a date: \
498
+ \x221942-16-34 06:6\
499
+ 3\x22\x0a attac\
500
+ hments: [\x0a \
501
+ ListElemen\
502
+ t {\x0a \
503
+ file_name: \x22\
504
+ morbius_x264_108\
505
+ 0.mkv\x22\x0a \
506
+ resource_\
507
+ id: \x22blahblah\x22\x0a \
508
+ d\
509
+ ownload_state: \x22\
510
+ NOT_DOWNLOADED\x22\x0a\
511
+ }\x0a \
512
+ ]\x0a }\x0a \
513
+ ListElement {\x0a\
514
+ body: \x22a\
515
+ aaaaaaaaaaaaaaaa\
516
+ aaaaaaaaaaaaaaaa\
517
+ aaaaaaaaaaaaaaaa\
518
+ aaaaaaaaaaaaaaaa\
519
+ aaaaaaaaaaaaaaaa\
520
+ aaaaaaaaaaaaaaaa\
521
+ aaaaaaaaaaaaaaaa\
522
+ aaaaaaaaaaa\x5cnbbb\
523
+ bbbbbbbbbbbbbbbb\
524
+ bbbbbbbbbbbbbbbb\
525
+ bbbbbbbbbbbbbbbb\
526
+ bbbbbbbbbbbbbbbb\
527
+ bbbbbbbbbbbbbbbb\
528
+ bbbbbbbbbbbbbbbb\
529
+ bbbbbbb\x22\x0a \
530
+ author: \x22Word W\
531
+ rap Test\x22\x0a \
532
+ date: \x222000-02\
533
+ -02\x22\x0a att\
534
+ achments: []\x0a \
535
+ }\x0a ListEleme\
536
+ nt {\x0a bod\
537
+ y: \x22x264 forms t\
538
+ he core of many \
539
+ web video servic\
540
+ es, such as Yout\
541
+ ube, Facebook, V\
542
+ imeo, and Hulu. \
543
+ It is widely use\
544
+ d by television \
545
+ broadcasters and\
546
+ ISPs.\x22\x0a \
547
+ author: \x22BideoJA\
548
+ N Wordsblahblah\x22\
549
+ \x0a date: \x22\
550
+ 2027-07-28\x22\x0a \
551
+ attachments:\
552
+ [\x0a L\
553
+ istElement {\x0a \
554
+ fil\
555
+ e_name: \x22Ass1_SO\
556
+ MEDUDE_48.pdf\x22\x0a \
557
+ r\
558
+ esource_id: \x22bla\
559
+ h_v345\x22\x0a \
560
+ download\
561
+ _state: \x22DOWNLOA\
562
+ DED\x22\x0a \
563
+ }\x0a ]\x0a \
564
+ }\x0a}\x0a\
565
+ \x00\x00\x01\xe3\
566
+ \x0a\
567
+ \x0a/*\x0aThis is a UI\
568
+ file (.ui.qml) \
569
+ that is intended\
570
+ to be edited in\
571
+ Qt Design Studi\
572
+ o only.\x0aIt is su\
573
+ pposed to be str\
574
+ ictly declarativ\
575
+ e and only uses \
576
+ a subset of QML.\
577
+ If you edit\x0athi\
578
+ s file manually,\
579
+ you might intro\
580
+ duce QML code th\
581
+ at is not suppor\
582
+ ted by Qt Design\
583
+ Studio.\x0aCheck o\
584
+ ut https://doc.q\
585
+ t.io/qtcreator/c\
586
+ reator-quick-ui-\
587
+ forms.html for d\
588
+ etails on .ui.qm\
589
+ l files.\x0a*/\x0aimpo\
590
+ rt QtQuick\x0a\x0aList\
591
+ View {\x0a id: v\
592
+ iew\x0a model: A\
593
+ ttachmentsListMo\
594
+ del {}\x0a deleg\
595
+ ate: Attachments\
596
+ ListDelegate {}\x0a\
597
+ }\x0a\
598
+ \x00\x00\x00N\
599
+ i\
600
+ mport QtQuick\x0a\x0aI\
601
+ tem {\x0a proper\
602
+ ty real size\x0a \
603
+ height: size\x0a \
604
+ width: 1\x0a}\x0a\
605
+ "
606
+
607
+ qt_resource_name = b"\
608
+ \x00\x03\
609
+ \x00\x00x<\
610
+ \x00q\
611
+ \x00m\x00l\
612
+ \x00\x1b\
613
+ \x0d\x0f\x19\xfc\
614
+ \x00C\
615
+ \x00o\x00m\x00m\x00e\x00n\x00t\x00s\x00L\x00i\x00s\x00t\x00D\x00e\x00l\x00e\x00g\
616
+ \x00a\x00t\x00e\x00.\x00u\x00i\x00.\x00q\x00m\x00l\
617
+ \x00\x18\
618
+ \x04\x161<\
619
+ \x00A\
620
+ \x00t\x00t\x00a\x00c\x00h\x00m\x00e\x00n\x00t\x00s\x00L\x00i\x00s\x00t\x00M\x00o\
621
+ \x00d\x00e\x00l\x00.\x00q\x00m\x00l\
622
+ \x00\x10\
623
+ \x03\xe1\xc1\xfc\
624
+ \x00C\
625
+ \x00o\x00m\x00m\x00e\x00n\x00t\x00s\x00P\x00a\x00n\x00e\x00.\x00q\x00m\x00l\
626
+ \x00\x13\
627
+ \x08\xe5\xf4\x1c\
628
+ \x00T\
629
+ \x00h\x00e\x00m\x00e\x00d\x00R\x00e\x00c\x00t\x00a\x00n\x00g\x00l\x00e\x00.\x00q\
630
+ \x00m\x00l\
631
+ \x00\x13\
632
+ \x05\xa6\xc5|\
633
+ \x00A\
634
+ \x00t\x00t\x00a\x00c\x00h\x00m\x00e\x00n\x00t\x00s\x00P\x00a\x00n\x00e\x00.\x00q\
635
+ \x00m\x00l\
636
+ \x00\x14\
637
+ \x0c\x17\xd1<\
638
+ \x00D\
639
+ \x00e\x00c\x00o\x00r\x00a\x00t\x00e\x00d\x00T\x00e\x00x\x00t\x00.\x00u\x00i\x00.\
640
+ \x00q\x00m\x00l\
641
+ \x00\x1b\
642
+ \x0c\xf7\xd6\xbc\
643
+ \x00A\
644
+ \x00t\x00t\x00a\x00c\x00h\x00m\x00e\x00n\x00t\x00s\x00L\x00i\x00s\x00t\x00D\x00e\
645
+ \x00l\x00e\x00g\x00a\x00t\x00e\x00.\x00q\x00m\x00l\
646
+ \x00\x13\
647
+ \x0a.\xb3\xfc\
648
+ \x00C\
649
+ \x00o\x00m\x00m\x00e\x00n\x00t\x00s\x00L\x00i\x00s\x00t\x00.\x00u\x00i\x00.\x00q\
650
+ \x00m\x00l\
651
+ \x00\x15\
652
+ \x0cYK\xbc\
653
+ \x00C\
654
+ \x00o\x00m\x00m\x00e\x00n\x00t\x00s\x00L\x00i\x00s\x00t\x00M\x00o\x00d\x00e\x00l\
655
+ \x00.\x00q\x00m\x00l\
656
+ \x00\x16\
657
+ \x0dg\x00\x9c\
658
+ \x00A\
659
+ \x00t\x00t\x00a\x00c\x00h\x00m\x00e\x00n\x00t\x00s\x00L\x00i\x00s\x00t\x00.\x00u\
660
+ \x00i\x00.\x00q\x00m\x00l\
661
+ \x00\x0d\
662
+ \x01wq\xfc\
663
+ \x00S\
664
+ \x00p\x00a\x00c\x00e\x00r\x00.\x00u\x00i\x00.\x00q\x00m\x00l\
665
+ "
666
+
667
+ qt_resource_struct = b"\
668
+ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\
669
+ \x00\x00\x00\x00\x00\x00\x00\x00\
670
+ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x02\
671
+ \x00\x00\x00\x00\x00\x00\x00\x00\
672
+ \x00\x00\x01\xf4\x00\x00\x00\x00\x00\x01\x00\x00#i\
673
+ \x00\x00\x01\x94S\xec~\x99\
674
+ \x00\x00\x00~\x00\x00\x00\x00\x00\x01\x00\x00\x05[\
675
+ \x00\x00\x01\x94T\xb8\x224\
676
+ \x00\x00\x00H\x00\x00\x00\x00\x00\x01\x00\x00\x03S\
677
+ \x00\x00\x01\x94S\xec~\x97\
678
+ \x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x09\xff\
679
+ \x00\x00\x01\x94T\xb8Af\
680
+ \x00\x00\x00\xa4\x00\x00\x00\x00\x00\x01\x00\x00\x06\x02\
681
+ \x00\x00\x01\x94T\xc4\xc8\xa7\
682
+ \x00\x00\x01f\x00\x00\x00\x00\x00\x01\x00\x00\x16\xe7\
683
+ \x00\x00\x01\x94S\xec~\x98\
684
+ \x00\x00\x00\xfc\x00\x00\x00\x00\x00\x01\x00\x00\x0a\xb1\
685
+ \x00\x00\x01\x94S\xec~\x98\
686
+ \x00\x00\x01\x92\x00\x00\x00\x00\x00\x01\x00\x00\x18\xc8\
687
+ \x00\x00\x01\x94S\xec~\x98\
688
+ \x00\x00\x01*\x00\x00\x00\x00\x00\x01\x00\x00\x0e\xa0\
689
+ \x00\x00\x01\x94S\xec~\x97\
690
+ \x00\x00\x00\x0c\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\
691
+ \x00\x00\x01\x94S\xec~\x98\
692
+ \x00\x00\x01\xc2\x00\x00\x00\x00\x00\x01\x00\x00!\x82\
693
+ \x00\x00\x01\x94S\xec~\x97\
694
+ "
695
+
696
+
697
+ def qInitResources():
698
+ QtCore.qRegisterResourceData(
699
+ 0x03, qt_resource_struct, qt_resource_name, qt_resource_data
700
+ )
701
+
702
+
703
+ def qCleanupResources():
704
+ QtCore.qUnregisterResourceData(
705
+ 0x03, qt_resource_struct, qt_resource_name, qt_resource_data
706
+ )
707
+
708
+
709
+ qInitResources()
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE RCC>
2
+ <RCC version="1.0">
3
+ <qresource prefix="/qml/">
4
+ <file>AttachmentsList.ui.qml</file>
5
+ <file>AttachmentsListDelegate.qml</file>
6
+ <file>AttachmentsListModel.qml</file>
7
+ <file>AttachmentsPane.qml</file>
8
+ <file>CommentsList.ui.qml</file>
9
+ <file>CommentsListDelegate.ui.qml</file>
10
+ <file>CommentsListModel.qml</file>
11
+ <file>CommentsPane.qml</file>
12
+ <file>DecoratedText.ui.qml</file>
13
+ <file>Spacer.ui.qml</file>
14
+ <file>ThemedRectangle.qml</file>
15
+ </qresource>
16
+ </RCC>
@@ -1,5 +1,4 @@
1
- from pathlib import Path
2
-
1
+ from PySide6.QtCore import QUrl
3
2
  from PySide6.QtQuick import QQuickView
4
3
  from PySide6.QtWidgets import QGroupBox, QWidget
5
4
 
@@ -9,7 +8,7 @@ import qcanvas.util.ui_tools as ui
9
8
 
10
9
 
11
10
  class QmlPane(QGroupBox):
12
- def __init__(self, qml_path: Path, parent: QWidget | None = None):
11
+ def __init__(self, qml_path: QUrl, parent: QWidget | None = None):
13
12
  super().__init__(parent)
14
13
  self.qview = QQuickView(parent)
15
14
  self._qml_path = qml_path
@@ -19,4 +18,4 @@ class QmlPane(QGroupBox):
19
18
  self.setLayout(ui.hbox(QWidget.createWindowContainer(self.qview, self)))
20
19
 
21
20
  def load_view(self):
22
- self.qview.setSource(str(self._qml_path))
21
+ self.qview.setSource(self._qml_path)
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: qcanvas
3
- Version: 2.0.1.post0
4
- Summary: QCanvas is a desktop client for Canvas LMS.
3
+ Version: 2.0.3
4
+ Summary: View courses from Canvas LMS
5
5
  Author: QCanvas
6
6
  Author-email: QCanvas@noreply.codeberg.org
7
7
  Requires-Python: >=3.12,<3.13
@@ -11,7 +11,7 @@ Requires-Dist: aiofile (>=3.9.0,<4.0.0)
11
11
  Requires-Dist: aiosqlite (>=0.20.0,<0.21.0)
12
12
  Requires-Dist: asynctaskpool (>=0.2.1,<0.3.0)
13
13
  Requires-Dist: cachetools (>=5.5.0,<6.0.0)
14
- Requires-Dist: libqcanvas (>=0.5.1,<0.6.0)
14
+ Requires-Dist: libqcanvas (>=0.5.4,<0.6.0)
15
15
  Requires-Dist: platformdirs (>=4.2.2,<5.0.0)
16
16
  Requires-Dist: pyqtdarktheme-fork (>=2.3.2,<3.0.0)
17
17
  Requires-Dist: qasync (>=0.27.1,<0.28.0)
@@ -36,13 +36,13 @@ https://github.com/QCanvas/QCanvasApp
36
36
  You can download a **windows** version from [releases](https://github.com/QCanvas/QCanvasApp/releases)
37
37
 
38
38
  > [!WARNING]
39
- > The appimage version is *not recommended* as it is not a proper portable appimage. It will only work on debian/ubuntu based distros.
39
+ > The appimage version is currently broken and may be dropped in the future.
40
40
 
41
41
  # Development/Run from source
42
42
 
43
43
  ## Prerequisites
44
44
 
45
- - Python 3.12+ (use [pyenv](https://github.com/pyenv/pyenv) if your distro does not have that version)
45
+ - Python 3.12
46
46
  - Poetry
47
47
 
48
48
  ## Get started
@@ -51,13 +51,12 @@ You can download a **windows** version from [releases](https://github.com/QCanva
51
51
  git clone https://github.com/QCanvas/QCanvasApp.git
52
52
  cd QCanvasApp
53
53
 
54
- # Enter shell and run it
55
- poetry shell
56
- poetry install
57
- python -m qcanvas
54
+ # Install packages and stuff
55
+ poetry install --with flatpak-exclude
58
56
 
59
- # Alternatively you can run it like this:
60
- poetry install
57
+ # Run QCanvas (If you run `poetry shell`, you can drop the `poetry run` part)
58
+ poetry run qcanvas
59
+ # Alternative
61
60
  poetry run python -m qcanvas
62
61
  ```
63
62
 
@@ -70,5 +69,5 @@ poetry run python -m qcanvas
70
69
  > You will need [Appimagetool](https://github.com/AppImage/appimagetool)
71
70
 
72
71
  ```bash
73
- bash ./dev_scripts/build_appimage.sh
72
+ bash ./dev_scripts/build_appimage
74
73
  ```
@@ -1,4 +1,4 @@
1
- qcanvas/__init__.py,sha256=FSRKOgINpdkHq1lU0lzAKl6v6KmMYOyGcihFpf2HIQs,1719
1
+ qcanvas/__init__.py,sha256=r_xv_WzpWlX3v67iZHXjjEY42_oKDxTLwEmI9ttvHco,1719
2
2
  qcanvas/app.py,sha256=NNxjdzFtRaeGk0cSOHKepwK7ONvHwmY_RcW0IVVzoIs,2747
3
3
  qcanvas/backend_connectors/__init__.py,sha256=Wj8cmxQng3SSlmlXJyzHaPmvxbkauwsxINckPb7WuHc,108
4
4
  qcanvas/backend_connectors/frontend_resource_manager.py,sha256=uzi8z2bNBdQoVkvtwxWo4qX5r0s13qmH5QL2t0vD0d8,1613
@@ -51,22 +51,25 @@ qcanvas/ui/qcanvas_window/options/sync_on_start_option.py,sha256=gL_FIulULN1uGBJ
51
51
  qcanvas/ui/qcanvas_window/options/theme_selection_menu.py,sha256=VMx79H45R7lcpMFpaN8eohbCxkQkq43MdH8W0nt2aTQ,1434
52
52
  qcanvas/ui/qcanvas_window/qcanvas_window.py,sha256=VDgoBpldNAu_7Rj4BqT7KQOgcBN1Koq6c0s0uduumc8,8945
53
53
  qcanvas/ui/qcanvas_window/status_bar_progress_display.py,sha256=v8cL7EzhKIO6YDo-IJGC2TvjnaHvHb9F2VyJtW0W4U8,5047
54
- qcanvas/ui/qml_components/AttachmentsList.ui.qml,sha256=kEgdn1s490hfvMtDtbba54_-_vF-3GUIEVpB8D12ET0,483
55
- qcanvas/ui/qml_components/AttachmentsListDelegate.qml,sha256=Frcd-vMd6lXBICF8SpPdpGJgxrk4vasvK29uTxXKAcs,2115
56
- qcanvas/ui/qml_components/AttachmentsListModel.qml,sha256=y4pQoJLVrSAEdl8BkeKZrMBln0pCCfjotCCxcCS9L6w,516
57
- qcanvas/ui/qml_components/AttachmentsPane.qml,sha256=xH3vSn4pW7KG93TlJdUKQbk8jHCY5-DgQ58A4zxmRKs,174
58
- qcanvas/ui/qml_components/CommentsList.ui.qml,sha256=l8uqDrqIGVeOIAHnn4rwQQGiedFXAdMFANzvcHflCJo,477
59
- qcanvas/ui/qml_components/CommentsListDelegate.ui.qml,sha256=iI-8Byw9dEOcbB18kQ6LGBH9IMCdmoK4Ak2WgSxkx78,3172
60
- qcanvas/ui/qml_components/CommentsListModel.qml,sha256=oEffdqXiavoO4zcyBu8aqIlR-0IYDQKli3aKlGUxltg,2230
61
- qcanvas/ui/qml_components/CommentsPane.qml,sha256=_ETxcUBOKMPJrkmGqFMDR6XGf49MBiBIPV6mQyJwGVU,163
62
- qcanvas/ui/qml_components/DecoratedText.ui.qml,sha256=U4p_P6gXRBj1GKDe0azJlp9-fT8yFw3XVjQH76L8MQ0,1003
63
- qcanvas/ui/qml_components/Spacer.ui.qml,sha256=RE86ASh90JUV82QLWV9FoD3pVzv9F_gHFNyDpk_Befo,78
64
- qcanvas/ui/qml_components/ThemedRectangle.qml,sha256=VBnt-orItX2vUXO-5Uv4bkg5mNUF8G2Hog-SfdY9t4E,1017
65
- qcanvas/ui/qml_components/__init__.py,sha256=ogGsI7ynuB0EhAeQRH7VJeJIYYwMza_AzFzjPlBmsVc,136
66
- qcanvas/ui/qml_components/attachments_pane.py,sha256=PwvITNo9xwGKvqGYp6OkMO7MAeMJjOm9H_DajZzfM_E,2366
67
- qcanvas/ui/qml_components/comments_pane.py,sha256=IJkaR5cn4Ez08nh7V_iZEY56ojHcxRRPRLKgiZirslo,2993
54
+ qcanvas/ui/qml_components/__init__.py,sha256=_qCJGhqDvxx8k4dIDgLFpKU7z-R7AS6HWPlsrUlAj2Q,203
55
+ qcanvas/ui/qml_components/attachments_pane.py,sha256=uzaMguTCOAdorU0t4UUkjSOjeY0rYEO3h9lMskLr4Ow,2352
56
+ qcanvas/ui/qml_components/comments_pane.py,sha256=uQonc9mZ5JjgV9dRHbGzSElI0cPW4ds6lQbTFKTLqYM,2979
57
+ qcanvas/ui/qml_components/qml/AttachmentsList.ui.qml,sha256=kEgdn1s490hfvMtDtbba54_-_vF-3GUIEVpB8D12ET0,483
58
+ qcanvas/ui/qml_components/qml/AttachmentsListDelegate.qml,sha256=Frcd-vMd6lXBICF8SpPdpGJgxrk4vasvK29uTxXKAcs,2115
59
+ qcanvas/ui/qml_components/qml/AttachmentsListModel.qml,sha256=y4pQoJLVrSAEdl8BkeKZrMBln0pCCfjotCCxcCS9L6w,516
60
+ qcanvas/ui/qml_components/qml/AttachmentsPane.qml,sha256=xH3vSn4pW7KG93TlJdUKQbk8jHCY5-DgQ58A4zxmRKs,174
61
+ qcanvas/ui/qml_components/qml/CommentsList.ui.qml,sha256=l8uqDrqIGVeOIAHnn4rwQQGiedFXAdMFANzvcHflCJo,477
62
+ qcanvas/ui/qml_components/qml/CommentsListDelegate.ui.qml,sha256=iI-8Byw9dEOcbB18kQ6LGBH9IMCdmoK4Ak2WgSxkx78,3172
63
+ qcanvas/ui/qml_components/qml/CommentsListModel.qml,sha256=oEffdqXiavoO4zcyBu8aqIlR-0IYDQKli3aKlGUxltg,2230
64
+ qcanvas/ui/qml_components/qml/CommentsPane.qml,sha256=_ETxcUBOKMPJrkmGqFMDR6XGf49MBiBIPV6mQyJwGVU,163
65
+ qcanvas/ui/qml_components/qml/DecoratedText.ui.qml,sha256=U4p_P6gXRBj1GKDe0azJlp9-fT8yFw3XVjQH76L8MQ0,1003
66
+ qcanvas/ui/qml_components/qml/Spacer.ui.qml,sha256=RE86ASh90JUV82QLWV9FoD3pVzv9F_gHFNyDpk_Befo,78
67
+ qcanvas/ui/qml_components/qml/ThemedRectangle.qml,sha256=VBnt-orItX2vUXO-5Uv4bkg5mNUF8G2Hog-SfdY9t4E,1017
68
+ qcanvas/ui/qml_components/qml/__init__.py,sha256=SlfWUzk6_E5uM9GIV-y9BVeKMwqn3pRx_xWhMyb1dfI,54
69
+ qcanvas/ui/qml_components/qml/rc_qml.py,sha256=VlEdO8jkP59504nDUyI6Rcgd3FUQpCl4tlwiFdCwgJI,16534
70
+ qcanvas/ui/qml_components/qml/rc_qml.qrc,sha256=T4YFrztVZm-qmy3o0DcmFexa-gufzeKCCofp-peo7mY,486
68
71
  qcanvas/ui/qml_components/qml_bridge_types.py,sha256=iHyG9ACG7bj8X_fty4Qpd5oSTmcW3zaFZdSi_KNXymE,2725
69
- qcanvas/ui/qml_components/qml_pane.py,sha256=KNWFJ1--hRpDSCjiZB8yMWFxQdbZFGDemXP09KGFMMo,698
72
+ qcanvas/ui/qml_components/qml_pane.py,sha256=g4TDiWuZZ0eZ6rWagFJG4nE8aYXqS6cDl_UvjDBJi-Y,699
70
73
  qcanvas/ui/setup/__init__.py,sha256=QWt2lEyLqWG5QC-BmCBlYyi0LZsBfsQYbP0XkvqA2f8,77
71
74
  qcanvas/ui/setup/setup_checker.py,sha256=gU70geojUyOTW_fNgH-GzpTMrtYXsLHWf2wUnFaezmA,444
72
75
  qcanvas/ui/setup/setup_dialog.py,sha256=_-52R6B8UIpKWRQ5jqpypgJLdnm_aXrZ5cKtyAXq0JA,10730
@@ -83,7 +86,7 @@ qcanvas/util/qurl_util.py,sha256=6nTk8VkQjT87wMOXyZucPBYdT6TTYzfCTElqsypLZPg,200
83
86
  qcanvas/util/runtime.py,sha256=EO1HFCN7dZbQtKHQOILuvjZFXGT7SzhlmPvU8ma95Z8,617
84
87
  qcanvas/util/ui_tools.py,sha256=cdwDrtljxIpzikvUt4CAMC06kogJ4WfhSTsC3lXAcz4,3575
85
88
  qcanvas/util/url_checker.py,sha256=HkNFixp1ARwc_YjYkpHb-IMTyuaC7CylvYCgDyo3sh4,136
86
- qcanvas-2.0.1.post0.dist-info/METADATA,sha256=6qAioQ3fBKh4192ilb6feB10qe2b4AL13eZ7pea8NYY,2051
87
- qcanvas-2.0.1.post0.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
88
- qcanvas-2.0.1.post0.dist-info/entry_points.txt,sha256=hqG_g3MRYh_eLyQcDN4H3EXqmBia_fnJTJ-3nqZGzvY,40
89
- qcanvas-2.0.1.post0.dist-info/RECORD,,
89
+ qcanvas-2.0.3.dist-info/METADATA,sha256=_nYzS6NYLtJQ3KoTRsYEqBeGlToH85DALB6Ew6AKxYA,1930
90
+ qcanvas-2.0.3.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
91
+ qcanvas-2.0.3.dist-info/entry_points.txt,sha256=hqG_g3MRYh_eLyQcDN4H3EXqmBia_fnJTJ-3nqZGzvY,40
92
+ qcanvas-2.0.3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.0.0
2
+ Generator: poetry-core 2.0.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any