qcanvas 0.0.3a0__tar.gz → 0.0.3.1a0__tar.gz
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.
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/.gitignore +1 -1
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/PKG-INFO +2 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/pyproject.toml +9 -4
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/__main__.py +22 -15
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/db/database.py +2 -4
- qcanvas-0.0.3.1a0/qcanvas/icons/__init__.py +1 -0
- qcanvas-0.0.3.1a0/qcanvas/icons/icons.qrc +5 -0
- qcanvas-0.0.3.1a0/qcanvas/icons/main_icon.svg +312 -0
- qcanvas-0.0.3.1a0/qcanvas/icons/rc_icons.py +239 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/canvas/canvas_client.py +3 -6
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/all_courses.py +0 -1
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/canvas_course_data.py +0 -1
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/main_ui.py +4 -10
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/setup_dialog.py +4 -3
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/course_list.py +4 -5
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/file_list.py +32 -12
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/file_view_tab.py +3 -4
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/constants.py +1 -1
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/data_manager.py +3 -5
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/download_pool.py +1 -0
- qcanvas-0.0.3.1a0/qcanvas/util/linkscanner/__init__.py +2 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/canvas_link_scanner.py +0 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/canvas_media_object_scanner.py +1 -1
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/dropbox_scanner.py +3 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/resource_scanner.py +0 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/task_pool.py +1 -1
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/__init__.py +2 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/expanding_tree.py +0 -3
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/model_helpers.py +0 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/tree_model.py +1 -1
- qcanvas-0.0.3a0/.idea/.gitignore +0 -3
- qcanvas-0.0.3a0/.idea/.name +0 -1
- qcanvas-0.0.3a0/.idea/QCanvas.iml +0 -22
- qcanvas-0.0.3a0/.idea/inspectionProfiles/profiles_settings.xml +0 -6
- qcanvas-0.0.3a0/.idea/misc.xml +0 -7
- qcanvas-0.0.3a0/.idea/modules.xml +0 -8
- qcanvas-0.0.3a0/.idea/shelf/DB_stuff/shelved.patch +0 -627
- qcanvas-0.0.3a0/.idea/shelf/DB_stuff.xml +0 -4
- qcanvas-0.0.3a0/.idea/vcs.xml +0 -6
- qcanvas-0.0.3a0/.idea/workspace.xml +0 -838
- qcanvas-0.0.3a0/canvas_introspection.json +0 -38965
- qcanvas-0.0.3a0/qcanvas/util/linkscanner/__init__.py +0 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/README.md +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/QtCore/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/QtGui/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/QtWidgets/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/db/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/db/db_converter_helper.py +2 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/canvas/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/canvas/legacy_canvas_types.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/custom_httpx_async_transport.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/self_authenticating.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/all_courses.gql +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/canvas_course_data.gql +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/container_item.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/page_list_viewer.py +2 -2
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/app_settings.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/canvas_garbage_remover.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/__init__.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/conversion_helpers.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/resource_helpers.py +1 -1
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/file_icon_helper.py +0 -0
- {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/requirements.txt +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: qcanvas
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.3.1a0
|
|
4
4
|
Summary: A canvas client
|
|
5
5
|
Author: QCanvas
|
|
6
6
|
Classifier: Operating System :: OS Independent
|
|
7
7
|
Classifier: Programming Language :: Python :: 3
|
|
8
|
-
Requires-Python:
|
|
8
|
+
Requires-Python: <=3.12,>=3.11
|
|
9
9
|
Requires-Dist: aiosqlite-custom~=0.19.0
|
|
10
10
|
Requires-Dist: beautifulsoup4~=4.12.3
|
|
11
11
|
Requires-Dist: bs4~=0.0.1
|
|
@@ -4,10 +4,10 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name="qcanvas"
|
|
7
|
-
version="0.0.
|
|
7
|
+
version="0.0.3.1a"
|
|
8
8
|
authors= [ {name="QCanvas"} ]
|
|
9
9
|
description="A canvas client"
|
|
10
|
-
requires-python="
|
|
10
|
+
requires-python=">=3.11,<=3.12"
|
|
11
11
|
classifiers = [
|
|
12
12
|
"Programming Language :: Python :: 3",
|
|
13
13
|
"Operating System :: OS Independent",
|
|
@@ -18,7 +18,6 @@ dependencies=[
|
|
|
18
18
|
"PySide6~=6.6.1",
|
|
19
19
|
"pydantic~=2.6.0",
|
|
20
20
|
"requests~=2.31.0",
|
|
21
|
-
# "setuptools~=69.0.3",
|
|
22
21
|
"gql~=3.6.0b0",
|
|
23
22
|
"tenacity~=8.2.3",
|
|
24
23
|
"beautifulsoup4~=4.12.3",
|
|
@@ -27,4 +26,10 @@ dependencies=[
|
|
|
27
26
|
"qasync~=0.27.1",
|
|
28
27
|
"bs4~=0.0.1",
|
|
29
28
|
"pyqtdarktheme~=2.1.0"
|
|
30
|
-
]
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[tool.hatch.build.targets.sdist]
|
|
32
|
+
exclude=[
|
|
33
|
+
".idea",
|
|
34
|
+
"canvas_introspection.json"
|
|
35
|
+
]
|
|
@@ -4,30 +4,30 @@ import sys
|
|
|
4
4
|
from datetime import datetime
|
|
5
5
|
|
|
6
6
|
import httpx
|
|
7
|
-
|
|
8
|
-
from PySide6.QtWidgets import QProgressDialog, QMessageBox, QWidget, QMainWindow
|
|
9
|
-
|
|
10
|
-
from qcanvas.QtVersionHelper.QtWidgets import QApplication
|
|
7
|
+
import qdarktheme
|
|
11
8
|
from httpx import URL
|
|
9
|
+
from qasync import QEventLoop, asyncSlot
|
|
12
10
|
from sqlalchemy.ext.asyncio import create_async_engine
|
|
13
11
|
from sqlalchemy.ext.asyncio.session import async_sessionmaker as AsyncSessionMaker
|
|
14
12
|
|
|
13
|
+
import qcanvas.db as db
|
|
14
|
+
from qcanvas.QtVersionHelper.QtGui import QPixmap
|
|
15
|
+
from qcanvas.QtVersionHelper.QtCore import Signal
|
|
16
|
+
from qcanvas.QtVersionHelper.QtWidgets import QApplication, QProgressDialog, QMainWindow
|
|
17
|
+
from qcanvas.net.canvas.canvas_client import CanvasClient
|
|
15
18
|
from qcanvas.ui.main_ui import AppMainWindow
|
|
16
19
|
from qcanvas.ui.setup_dialog import SetupDialog
|
|
20
|
+
from qcanvas.util import AppSettings
|
|
17
21
|
from qcanvas.util.constants import app_name
|
|
18
|
-
from qcanvas.util.linkscanner import CanvasFileScanner
|
|
19
22
|
from qcanvas.util.course_indexer import DataManager
|
|
20
|
-
from qcanvas.
|
|
21
|
-
from qcanvas.util import AppSettings
|
|
22
|
-
|
|
23
|
+
from qcanvas.util.linkscanner import CanvasFileScanner
|
|
23
24
|
from qcanvas.util.linkscanner.canvas_media_object_scanner import CanvasMediaObjectScanner
|
|
24
25
|
from qcanvas.util.linkscanner.dropbox_scanner import DropboxScanner
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
import qcanvas.
|
|
28
|
-
import qdarktheme
|
|
27
|
+
# noinspection PyUnresolvedReferences
|
|
28
|
+
import qcanvas.icons
|
|
29
29
|
|
|
30
|
-
engine = create_async_engine("sqlite+aiosqlite:///
|
|
30
|
+
engine = create_async_engine("sqlite+aiosqlite:///canvas_db.😘", echo=False)
|
|
31
31
|
|
|
32
32
|
logging.basicConfig()
|
|
33
33
|
logging.getLogger("canvas_client").setLevel(logging.DEBUG)
|
|
@@ -45,10 +45,12 @@ class LoaderWindow(QMainWindow):
|
|
|
45
45
|
|
|
46
46
|
def __init__(self):
|
|
47
47
|
super().__init__()
|
|
48
|
+
self.main_icon = QPixmap(":/main_icon.svg")
|
|
48
49
|
self.init.connect(self.on_init)
|
|
49
50
|
self.setup.connect(self.on_setup)
|
|
50
51
|
self.ready.connect(self.on_ready)
|
|
51
52
|
self.setWindowTitle(app_name)
|
|
53
|
+
self.setWindowIcon(self.main_icon)
|
|
52
54
|
self.setCentralWidget(QProgressDialog("Verifying config", None, 0, 0))
|
|
53
55
|
|
|
54
56
|
self.init.emit()
|
|
@@ -67,6 +69,7 @@ class LoaderWindow(QMainWindow):
|
|
|
67
69
|
@asyncSlot()
|
|
68
70
|
async def on_setup(self):
|
|
69
71
|
setup = SetupDialog(self)
|
|
72
|
+
setup.setWindowIcon(self.main_icon)
|
|
70
73
|
setup.rejected.connect(lambda: sys.exit(0))
|
|
71
74
|
setup.accepted.connect(self.on_ready)
|
|
72
75
|
setup.show()
|
|
@@ -89,8 +92,9 @@ class LoaderWindow(QMainWindow):
|
|
|
89
92
|
def open_main_app(self, data_manager: DataManager):
|
|
90
93
|
self.main_window = AppMainWindow(data_manager)
|
|
91
94
|
self.main_window.setWindowTitle(app_name)
|
|
92
|
-
|
|
95
|
+
self.main_window.setWindowIcon(self.main_icon)
|
|
93
96
|
self.main_window.show()
|
|
97
|
+
# Set the main window as the parent of this window so this window is destroyed when the main window is closed
|
|
94
98
|
self.setParent(self.main_window)
|
|
95
99
|
|
|
96
100
|
|
|
@@ -98,8 +102,11 @@ if __name__ == '__main__':
|
|
|
98
102
|
asyncio.run(begin())
|
|
99
103
|
|
|
100
104
|
app = QApplication(sys.argv)
|
|
101
|
-
|
|
102
|
-
|
|
105
|
+
c = app.palette().base().color()
|
|
106
|
+
print(f"{c.red()} {c.green()} {c.blue()}")
|
|
107
|
+
qdarktheme.setup_theme("light",
|
|
108
|
+
custom_colors={"primary": "FF804F"}
|
|
109
|
+
)
|
|
103
110
|
|
|
104
111
|
event_loop = QEventLoop()
|
|
105
112
|
asyncio.set_event_loop(event_loop)
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import pathlib
|
|
2
2
|
import platform
|
|
3
|
-
from dataclasses import dataclass
|
|
4
3
|
from datetime import datetime
|
|
5
4
|
from enum import Enum
|
|
6
|
-
from typing import List, Optional,
|
|
5
|
+
from typing import List, Optional, MutableSequence
|
|
7
6
|
|
|
8
7
|
from sqlalchemy import ForeignKey, Text
|
|
9
8
|
from sqlalchemy.ext.asyncio import AsyncAttrs
|
|
10
9
|
from sqlalchemy.orm import DeclarativeBase, mapped_column, Mapped, relationship, MappedAsDataclass
|
|
11
10
|
|
|
12
11
|
import qcanvas.util.tree_util as tree
|
|
13
|
-
from qcanvas.util.tree_util import HasColumnData
|
|
14
12
|
|
|
15
13
|
|
|
16
14
|
class PageLike:
|
|
@@ -216,7 +214,7 @@ class Resource(MappedAsDataclass, Base, tree.HasText):
|
|
|
216
214
|
|
|
217
215
|
# Colon is illegal in microsoft windows file names
|
|
218
216
|
if platform.system() == "Windows":
|
|
219
|
-
file_id.replace(':', '$')
|
|
217
|
+
file_id = file_id.replace(':', '$')
|
|
220
218
|
|
|
221
219
|
return pathlib.Path("download", f"{file_id}@{self.file_name}")
|
|
222
220
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from qcanvas.icons import rc_icons
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
inkscape:export-ydpi="90.000000"
|
|
6
|
+
inkscape:export-xdpi="90.000000"
|
|
7
|
+
width="256"
|
|
8
|
+
height="256"
|
|
9
|
+
id="svg11300"
|
|
10
|
+
sodipodi:version="0.32"
|
|
11
|
+
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
|
|
12
|
+
sodipodi:docname="icon.svg"
|
|
13
|
+
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
|
14
|
+
version="1.0"
|
|
15
|
+
style="display:inline;enable-background:new"
|
|
16
|
+
inkscape:export-filename="/home/sam/moka-next-template.png"
|
|
17
|
+
xml:space="preserve"
|
|
18
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
19
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
20
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
21
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
22
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
|
23
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
24
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
|
25
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"><sodipodi:namedview
|
|
26
|
+
stroke="#ef2929"
|
|
27
|
+
fill="#f57900"
|
|
28
|
+
id="base"
|
|
29
|
+
pagecolor="#777777"
|
|
30
|
+
bordercolor="#666666"
|
|
31
|
+
borderopacity="0.25490196"
|
|
32
|
+
inkscape:pageopacity="0"
|
|
33
|
+
inkscape:pageshadow="2"
|
|
34
|
+
inkscape:zoom="2"
|
|
35
|
+
inkscape:cx="246.75"
|
|
36
|
+
inkscape:cy="112.75"
|
|
37
|
+
inkscape:current-layer="layer7"
|
|
38
|
+
showgrid="false"
|
|
39
|
+
inkscape:grid-bbox="true"
|
|
40
|
+
inkscape:document-units="px"
|
|
41
|
+
inkscape:showpageshadow="false"
|
|
42
|
+
inkscape:window-width="1920"
|
|
43
|
+
inkscape:window-height="1018"
|
|
44
|
+
inkscape:window-x="1920"
|
|
45
|
+
inkscape:window-y="0"
|
|
46
|
+
width="400px"
|
|
47
|
+
height="300px"
|
|
48
|
+
inkscape:snap-nodes="true"
|
|
49
|
+
inkscape:snap-bbox="true"
|
|
50
|
+
gridtolerance="10000"
|
|
51
|
+
inkscape:object-nodes="true"
|
|
52
|
+
inkscape:snap-grids="true"
|
|
53
|
+
showguides="true"
|
|
54
|
+
inkscape:guide-bbox="true"
|
|
55
|
+
inkscape:window-maximized="1"
|
|
56
|
+
inkscape:bbox-nodes="true"
|
|
57
|
+
inkscape:bbox-paths="true"
|
|
58
|
+
inkscape:snap-bbox-edge-midpoints="true"
|
|
59
|
+
inkscape:snap-bbox-midpoints="true"
|
|
60
|
+
inkscape:pagecheckerboard="0"
|
|
61
|
+
inkscape:deskcolor="#d1d1d1"><inkscape:grid
|
|
62
|
+
spacingy="1px"
|
|
63
|
+
spacingx="1px"
|
|
64
|
+
id="grid5883"
|
|
65
|
+
type="xygrid"
|
|
66
|
+
enabled="true"
|
|
67
|
+
visible="false"
|
|
68
|
+
empspacing="4"
|
|
69
|
+
snapvisiblegridlinesonly="true"
|
|
70
|
+
dotted="false"
|
|
71
|
+
color="#000000"
|
|
72
|
+
opacity="0.12549"
|
|
73
|
+
empcolor="#203ef3"
|
|
74
|
+
empopacity="0.36470588"
|
|
75
|
+
originx="-16"
|
|
76
|
+
originy="-28"
|
|
77
|
+
units="px" /><inkscape:grid
|
|
78
|
+
type="xygrid"
|
|
79
|
+
id="grid11592"
|
|
80
|
+
empspacing="8"
|
|
81
|
+
visible="false"
|
|
82
|
+
enabled="false"
|
|
83
|
+
spacingx="0.5px"
|
|
84
|
+
spacingy="0.5px"
|
|
85
|
+
color="#ff0000"
|
|
86
|
+
opacity="0.12549"
|
|
87
|
+
empcolor="#ff0000"
|
|
88
|
+
empopacity="0.25098039"
|
|
89
|
+
snapvisiblegridlinesonly="true"
|
|
90
|
+
dotted="true"
|
|
91
|
+
originx="-16"
|
|
92
|
+
originy="-28"
|
|
93
|
+
units="px" /></sodipodi:namedview><defs
|
|
94
|
+
id="defs3"><linearGradient
|
|
95
|
+
inkscape:collect="always"
|
|
96
|
+
xlink:href="#outerBackgroundGradient-2"
|
|
97
|
+
id="linearGradient4254"
|
|
98
|
+
x1="35"
|
|
99
|
+
y1="156"
|
|
100
|
+
x2="253"
|
|
101
|
+
y2="156"
|
|
102
|
+
gradientUnits="userSpaceOnUse"
|
|
103
|
+
gradientTransform="rotate(-90,144,156)" /><linearGradient
|
|
104
|
+
id="outerBackgroundGradient-2"><stop
|
|
105
|
+
style="stop-color:#e70a0a;stop-opacity:1;"
|
|
106
|
+
offset="0"
|
|
107
|
+
id="stop3864-8-6-00" /><stop
|
|
108
|
+
style="stop-color:#fe0000;stop-opacity:1;"
|
|
109
|
+
offset="1"
|
|
110
|
+
id="stop3866-9-1-1" /></linearGradient><style
|
|
111
|
+
id="style1">.cls-1{fill:#fff;}</style></defs><metadata
|
|
112
|
+
id="metadata4"><rdf:RDF><cc:Work
|
|
113
|
+
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
|
114
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:creator><cc:Agent><dc:title>Sam Hewitt</dc:title></cc:Agent></dc:creator><dc:source /><cc:license
|
|
115
|
+
rdf:resource="" /><dc:title /><dc:subject><rdf:Bag /></dc:subject><dc:date /><dc:rights><cc:Agent><dc:title /></cc:Agent></dc:rights><dc:publisher><cc:Agent><dc:title /></cc:Agent></dc:publisher><dc:identifier /><dc:relation /><dc:language /><dc:coverage /><dc:description /><dc:contributor><cc:Agent><dc:title /></cc:Agent></dc:contributor></cc:Work><cc:Work
|
|
116
|
+
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
|
117
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><g
|
|
118
|
+
style="display:inline"
|
|
119
|
+
inkscape:groupmode="layer"
|
|
120
|
+
inkscape:label="Icon"
|
|
121
|
+
id="layer1"
|
|
122
|
+
transform="translate(-16,-28)"><g
|
|
123
|
+
style="display:none"
|
|
124
|
+
inkscape:label="Baseplate"
|
|
125
|
+
id="layer7"
|
|
126
|
+
inkscape:groupmode="layer"><text
|
|
127
|
+
y="19.745117"
|
|
128
|
+
xml:space="preserve"
|
|
129
|
+
x="15.006836"
|
|
130
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans';display:inline;fill:#000000;fill-opacity:1;stroke:none;enable-background:new"
|
|
131
|
+
inkscape:label="context"
|
|
132
|
+
id="context"><tspan
|
|
133
|
+
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans'"
|
|
134
|
+
y="19.745117"
|
|
135
|
+
x="15.006836"
|
|
136
|
+
sodipodi:role="line"
|
|
137
|
+
id="tspan3933">apps</tspan></text><text
|
|
138
|
+
y="19.745117"
|
|
139
|
+
xml:space="preserve"
|
|
140
|
+
x="122.48828"
|
|
141
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;display:inline;fill:#000000;fill-opacity:1;stroke:none;enable-background:new"
|
|
142
|
+
inkscape:label="icon-name"
|
|
143
|
+
id="icon-name"><tspan
|
|
144
|
+
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:18px;line-height:1.25;font-family:'DejaVu Sans';-inkscape-font-specification:'DejaVu Sans Bold'"
|
|
145
|
+
y="19.745117"
|
|
146
|
+
x="122.48828"
|
|
147
|
+
sodipodi:role="line"
|
|
148
|
+
id="tspan3937">amd</tspan></text><rect
|
|
149
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
150
|
+
id="rect16x16"
|
|
151
|
+
width="16"
|
|
152
|
+
height="16"
|
|
153
|
+
x="416"
|
|
154
|
+
y="140"
|
|
155
|
+
inkscape:label="16x16" /><rect
|
|
156
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#d4d4d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
157
|
+
id="rect24x24"
|
|
158
|
+
width="24"
|
|
159
|
+
height="24"
|
|
160
|
+
x="416"
|
|
161
|
+
y="100"
|
|
162
|
+
inkscape:label="24x24" /><rect
|
|
163
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
164
|
+
id="rect32x32"
|
|
165
|
+
width="32"
|
|
166
|
+
height="32"
|
|
167
|
+
x="416"
|
|
168
|
+
y="52"
|
|
169
|
+
inkscape:label="32x32" /><rect
|
|
170
|
+
inkscape:label="22x22"
|
|
171
|
+
y="101"
|
|
172
|
+
x="417"
|
|
173
|
+
height="22"
|
|
174
|
+
width="22"
|
|
175
|
+
id="rect22x22"
|
|
176
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" /><rect
|
|
177
|
+
inkscape:label="48x48"
|
|
178
|
+
y="220"
|
|
179
|
+
x="288"
|
|
180
|
+
height="48"
|
|
181
|
+
width="48"
|
|
182
|
+
id="rect48x48"
|
|
183
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate" /><rect
|
|
184
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
185
|
+
id="rect256x256"
|
|
186
|
+
width="256"
|
|
187
|
+
height="256"
|
|
188
|
+
x="16"
|
|
189
|
+
y="28"
|
|
190
|
+
inkscape:label="256x256" /><rect
|
|
191
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
192
|
+
id="rect64x64"
|
|
193
|
+
width="64"
|
|
194
|
+
height="64"
|
|
195
|
+
x="288"
|
|
196
|
+
y="140"
|
|
197
|
+
inkscape:label="64x64" /><rect
|
|
198
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
199
|
+
id="rect96x96"
|
|
200
|
+
width="96"
|
|
201
|
+
height="96"
|
|
202
|
+
x="288"
|
|
203
|
+
y="28"
|
|
204
|
+
inkscape:label="96x96" /><rect
|
|
205
|
+
style="display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
206
|
+
id="rect256x256-7"
|
|
207
|
+
width="256"
|
|
208
|
+
height="256"
|
|
209
|
+
x="16"
|
|
210
|
+
y="28"
|
|
211
|
+
inkscape:label="256x256" /></g><g
|
|
212
|
+
inkscape:groupmode="layer"
|
|
213
|
+
id="layer4"
|
|
214
|
+
inkscape:label="Shadow"
|
|
215
|
+
style="display:inline"
|
|
216
|
+
sodipodi:insensitive="true"><rect
|
|
217
|
+
ry="50"
|
|
218
|
+
y="47"
|
|
219
|
+
x="34"
|
|
220
|
+
height="220"
|
|
221
|
+
width="220"
|
|
222
|
+
id="rect4114"
|
|
223
|
+
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;marker:none;enable-background:accumulate" /></g><g
|
|
224
|
+
inkscape:groupmode="layer"
|
|
225
|
+
id="layer2"
|
|
226
|
+
inkscape:label="Background"
|
|
227
|
+
style="display:inline"><path
|
|
228
|
+
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4254);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;enable-background:accumulate"
|
|
229
|
+
d="M 84,46.5 C 56.568735,46.5 34.5,68.568732 34.5,96 v 120 c 0,27.43127 22.068735,49.5 49.5,49.5 h 120 c 27.43127,0 49.5,-22.06873 49.5,-49.5 V 96 C 253.5,68.568732 231.43127,46.5 204,46.5 Z"
|
|
230
|
+
id="path4200" /></g><g
|
|
231
|
+
inkscape:groupmode="layer"
|
|
232
|
+
id="layer6"
|
|
233
|
+
inkscape:label="Symbols"
|
|
234
|
+
style="display:inline"><g
|
|
235
|
+
id="Layer_1-2"
|
|
236
|
+
data-name="Layer 1"
|
|
237
|
+
transform="matrix(1.322302,0,0,1.322302,59.921425,71.894979)"><path
|
|
238
|
+
class="cls-1"
|
|
239
|
+
d="M 18.45,63.47 A 18.4,18.4 0 0 0 2.31,45.23 73.13,73.13 0 0 0 2.31,81.7 18.38,18.38 0 0 0 18.45,63.47"
|
|
240
|
+
id="path1" /><path
|
|
241
|
+
class="cls-1"
|
|
242
|
+
d="M 29.13,57.7 A 5.77,5.77 0 1 0 34.9,63.47 5.77,5.77 0 0 0 29.13,57.7"
|
|
243
|
+
id="path2" /><path
|
|
244
|
+
class="cls-1"
|
|
245
|
+
d="m 108.72,63.47 a 18.38,18.38 0 0 0 16.14,18.23 73.13,73.13 0 0 0 0,-36.47 18.4,18.4 0 0 0 -16.14,18.24"
|
|
246
|
+
id="path3" /><path
|
|
247
|
+
class="cls-1"
|
|
248
|
+
d="m 98,57.7 a 5.77,5.77 0 1 0 5.76,5.77 A 5.77,5.77 0 0 0 98,57.7"
|
|
249
|
+
id="path4" /><path
|
|
250
|
+
class="cls-1"
|
|
251
|
+
d="m 63.46,108.77 a 18.39,18.39 0 0 0 -18.23,16.13 73.13,73.13 0 0 0 36.47,0 18.38,18.38 0 0 0 -18.24,-16.13"
|
|
252
|
+
id="path5" /><path
|
|
253
|
+
class="cls-1"
|
|
254
|
+
d="m 63.47,92.31 a 5.77,5.77 0 1 0 5.76,5.77 5.77,5.77 0 0 0 -5.76,-5.77"
|
|
255
|
+
id="path6" /><path
|
|
256
|
+
class="cls-1"
|
|
257
|
+
d="M 63.47,18.44 A 18.37,18.37 0 0 0 81.7,2.31 a 73.13,73.13 0 0 0 -36.47,0 18.39,18.39 0 0 0 18.24,16.13"
|
|
258
|
+
id="path7" /><path
|
|
259
|
+
class="cls-1"
|
|
260
|
+
d="m 63.47,23.37 a 5.77,5.77 0 1 0 5.76,5.76 5.76,5.76 0 0 0 -5.76,-5.76"
|
|
261
|
+
id="path8" /><path
|
|
262
|
+
class="cls-1"
|
|
263
|
+
d="m 95.44,95.44 a 18.4,18.4 0 0 0 -1.5,24.29 73,73 0 0 0 25.78,-25.79 18.39,18.39 0 0 0 -24.28,1.5"
|
|
264
|
+
id="path9" /><path
|
|
265
|
+
class="cls-1"
|
|
266
|
+
d="m 83.8,83.8 a 5.77,5.77 0 1 0 8.16,0 5.78,5.78 0 0 0 -8.16,0"
|
|
267
|
+
id="path10" /><path
|
|
268
|
+
class="cls-1"
|
|
269
|
+
d="M 31.59,31.59 A 18.36,18.36 0 0 0 33.09,7.31 72.93,72.93 0 0 0 7.31,33.09 18.36,18.36 0 0 0 31.59,31.59"
|
|
270
|
+
id="path11" /><path
|
|
271
|
+
class="cls-1"
|
|
272
|
+
d="m 35.07,35.08 a 5.77,5.77 0 1 0 8.16,0 5.78,5.78 0 0 0 -8.16,0"
|
|
273
|
+
id="path12" /><path
|
|
274
|
+
class="cls-1"
|
|
275
|
+
d="M 95.4,31.53 A 18.39,18.39 0 0 0 119.69,33 72.88,72.88 0 0 0 93.9,7.25 18.39,18.39 0 0 0 95.4,31.53"
|
|
276
|
+
id="path13" /><path
|
|
277
|
+
class="cls-1"
|
|
278
|
+
d="m 91.92,43.17 a 5.76,5.76 0 1 0 -8.15,0 5.76,5.76 0 0 0 8.15,0"
|
|
279
|
+
id="path14" /><path
|
|
280
|
+
class="cls-1"
|
|
281
|
+
d="M 31.56,95.37 A 18.39,18.39 0 0 0 7.28,93.87 73,73 0 0 0 33.06,119.66 18.38,18.38 0 0 0 31.56,95.37"
|
|
282
|
+
id="path15" /><path
|
|
283
|
+
class="cls-1"
|
|
284
|
+
d="m 35,83.73 a 5.77,5.77 0 1 0 8.16,0 5.79,5.79 0 0 0 -8.16,0"
|
|
285
|
+
id="path16" /></g></g><g
|
|
286
|
+
inkscape:groupmode="layer"
|
|
287
|
+
id="layer5"
|
|
288
|
+
inkscape:label="Highlights"
|
|
289
|
+
style="display:inline"
|
|
290
|
+
sodipodi:insensitive="true"><path
|
|
291
|
+
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;opacity:0.13;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;marker:none;enable-background:accumulate"
|
|
292
|
+
d="M 84,47 C 56.836703,47 35,68.836703 35,96 v 1 C 35,69.836703 56.836703,48 84,48 h 120 c 27.1633,0 49,21.836703 49,49 V 96 C 253,68.836703 231.1633,47 204,47 Z"
|
|
293
|
+
id="rect3894"
|
|
294
|
+
inkscape:connector-curvature="0" /><path
|
|
295
|
+
id="path4085"
|
|
296
|
+
d="m 204,266 c 27.1633,0 49,-21.8367 49,-49 v -1 c 0,27.1633 -21.8367,49 -49,49 H 84 C 56.8367,265 35,243.1633 35,216 v 1 c 0,27.1633 21.8367,49 49,49 z"
|
|
297
|
+
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;opacity:0.41;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;marker:none;enable-background:accumulate"
|
|
298
|
+
inkscape:connector-curvature="0" /><path
|
|
299
|
+
inkscape:connector-curvature="0"
|
|
300
|
+
id="path4280"
|
|
301
|
+
d="M 84,265 C 56.836703,265 35,243.1633 35,216 v -1 c 0,27.1633 21.836703,49 49,49 h 120 c 27.1633,0 49,-21.8367 49,-49 v 1 c 0,27.1633 -21.8367,49 -49,49 z"
|
|
302
|
+
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;opacity:0.1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;marker:none;enable-background:accumulate"
|
|
303
|
+
inkscape:label="path4280" /></g><g
|
|
304
|
+
inkscape:groupmode="layer"
|
|
305
|
+
id="layer3"
|
|
306
|
+
inkscape:label="Border"
|
|
307
|
+
style="display:inline"
|
|
308
|
+
sodipodi:insensitive="true"><path
|
|
309
|
+
style="color:#bebebe;display:inline;overflow:visible;visibility:visible;opacity:0.41;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;marker:none;enable-background:accumulate"
|
|
310
|
+
d="M 84,46 C 56.3,46 34,68.3 34,96 v 120 c 0,27.7 22.3,50 50,50 h 120 c 27.7,0 50,-22.3 50,-50 V 96 C 254,68.3 231.7,46 204,46 Z m 0,1 h 120 c 27.1633,0 49,21.836703 49,49 v 120 c 0,27.1633 -21.8367,49 -49,49 H 84 C 56.836703,265 35,243.1633 35,216 V 96 C 35,68.836703 56.836703,47 84,47 Z"
|
|
311
|
+
id="rect4040"
|
|
312
|
+
inkscape:connector-curvature="0" /></g></g></svg>
|