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.

Files changed (70) hide show
  1. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/.gitignore +1 -1
  2. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/PKG-INFO +2 -2
  3. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/pyproject.toml +9 -4
  4. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/__main__.py +22 -15
  5. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/db/database.py +2 -4
  6. qcanvas-0.0.3.1a0/qcanvas/icons/__init__.py +1 -0
  7. qcanvas-0.0.3.1a0/qcanvas/icons/icons.qrc +5 -0
  8. qcanvas-0.0.3.1a0/qcanvas/icons/main_icon.svg +312 -0
  9. qcanvas-0.0.3.1a0/qcanvas/icons/rc_icons.py +239 -0
  10. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/canvas/canvas_client.py +3 -6
  11. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/all_courses.py +0 -1
  12. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/canvas_course_data.py +0 -1
  13. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/main_ui.py +4 -10
  14. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/setup_dialog.py +4 -3
  15. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/course_list.py +4 -5
  16. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/file_list.py +32 -12
  17. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/file_view_tab.py +3 -4
  18. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/constants.py +1 -1
  19. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/data_manager.py +3 -5
  20. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/download_pool.py +1 -0
  21. qcanvas-0.0.3.1a0/qcanvas/util/linkscanner/__init__.py +2 -0
  22. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/canvas_link_scanner.py +0 -2
  23. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/canvas_media_object_scanner.py +1 -1
  24. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/dropbox_scanner.py +3 -2
  25. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/linkscanner/resource_scanner.py +0 -2
  26. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/task_pool.py +1 -1
  27. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/__init__.py +2 -2
  28. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/expanding_tree.py +0 -3
  29. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/model_helpers.py +0 -2
  30. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/tree_util/tree_model.py +1 -1
  31. qcanvas-0.0.3a0/.idea/.gitignore +0 -3
  32. qcanvas-0.0.3a0/.idea/.name +0 -1
  33. qcanvas-0.0.3a0/.idea/QCanvas.iml +0 -22
  34. qcanvas-0.0.3a0/.idea/inspectionProfiles/profiles_settings.xml +0 -6
  35. qcanvas-0.0.3a0/.idea/misc.xml +0 -7
  36. qcanvas-0.0.3a0/.idea/modules.xml +0 -8
  37. qcanvas-0.0.3a0/.idea/shelf/DB_stuff/shelved.patch +0 -627
  38. qcanvas-0.0.3a0/.idea/shelf/DB_stuff.xml +0 -4
  39. qcanvas-0.0.3a0/.idea/vcs.xml +0 -6
  40. qcanvas-0.0.3a0/.idea/workspace.xml +0 -838
  41. qcanvas-0.0.3a0/canvas_introspection.json +0 -38965
  42. qcanvas-0.0.3a0/qcanvas/util/linkscanner/__init__.py +0 -2
  43. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/README.md +0 -0
  44. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/QtCore/__init__.py +0 -0
  45. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/QtGui/__init__.py +0 -0
  46. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/QtWidgets/__init__.py +0 -0
  47. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/QtVersionHelper/__init__.py +0 -0
  48. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/__init__.py +0 -0
  49. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/db/__init__.py +0 -0
  50. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/db/db_converter_helper.py +2 -2
  51. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/__init__.py +0 -0
  52. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/canvas/__init__.py +0 -0
  53. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/canvas/legacy_canvas_types.py +0 -0
  54. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/custom_httpx_async_transport.py +0 -0
  55. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/net/self_authenticating.py +0 -0
  56. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/__init__.py +0 -0
  57. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/all_courses.gql +0 -0
  58. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/queries/canvas_course_data.gql +0 -0
  59. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/__init__.py +0 -0
  60. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/container_item.py +0 -0
  61. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/__init__.py +0 -0
  62. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/ui/viewer/page_list_viewer.py +2 -2
  63. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/__init__.py +0 -0
  64. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/app_settings.py +0 -0
  65. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/canvas_garbage_remover.py +0 -0
  66. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/__init__.py +0 -0
  67. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/conversion_helpers.py +0 -0
  68. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/course_indexer/resource_helpers.py +1 -1
  69. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/qcanvas/util/file_icon_helper.py +0 -0
  70. {qcanvas-0.0.3a0 → qcanvas-0.0.3.1a0}/requirements.txt +0 -0
@@ -5,4 +5,4 @@ dist
5
5
  build
6
6
  __main__.spec
7
7
  .venv
8
- .system_pyside
8
+ .system_pyside
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qcanvas
3
- Version: 0.0.3a0
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: ==3.11
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.3a"
7
+ version="0.0.3.1a"
8
8
  authors= [ {name="QCanvas"} ]
9
9
  description="A canvas client"
10
- requires-python="==3.11"
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
- from PySide6.QtCore import Signal, Slot, QObject
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.net.canvas.canvas_client import CanvasClient
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
- from qasync import QEventLoop, asyncSlot
27
- import qcanvas.db as db
28
- import qdarktheme
27
+ # noinspection PyUnresolvedReferences
28
+ import qcanvas.icons
29
29
 
30
- engine = create_async_engine("sqlite+aiosqlite:///meme", echo=False)
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
- # self.main_window.resize(1200, 600)
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
- qdarktheme.setup_theme("light")
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, Sequence, MutableSequence, Any
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,5 @@
1
+ <!DOCTYPE RCC><RCC version="1.0">
2
+ <qresource>
3
+ <file>main_icon.svg</file>
4
+ </qresource>
5
+ </RCC>
@@ -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>