breeze-widget 0.3.0__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.
- breeze_widget-0.3.0/LICENSE +21 -0
- breeze_widget-0.3.0/PKG-INFO +109 -0
- breeze_widget-0.3.0/README.md +79 -0
- breeze_widget-0.3.0/pyproject.toml +55 -0
- breeze_widget-0.3.0/setup.cfg +4 -0
- breeze_widget-0.3.0/src/breeze_widget.egg-info/PKG-INFO +109 -0
- breeze_widget-0.3.0/src/breeze_widget.egg-info/SOURCES.txt +165 -0
- breeze_widget-0.3.0/src/breeze_widget.egg-info/dependency_links.txt +1 -0
- breeze_widget-0.3.0/src/breeze_widget.egg-info/requires.txt +5 -0
- breeze_widget-0.3.0/src/breeze_widget.egg-info/top_level.txt +1 -0
- breeze_widget-0.3.0/src/breezewidget/__init__.py +277 -0
- breeze_widget-0.3.0/src/breezewidget/animation/__init__.py +12 -0
- breeze_widget-0.3.0/src/breezewidget/animation/color.py +89 -0
- breeze_widget-0.3.0/src/breezewidget/animation/property.py +48 -0
- breeze_widget-0.3.0/src/breezewidget/animation/shadow.py +90 -0
- breeze_widget-0.3.0/src/breezewidget/calendar_widget/__init__.py +33 -0
- breeze_widget-0.3.0/src/breezewidget/calendar_widget/calendar_widget.py +659 -0
- breeze_widget-0.3.0/src/breezewidget/calendar_widget/commons.py +276 -0
- breeze_widget-0.3.0/src/breezewidget/calendar_widget/month_model.py +40 -0
- breeze_widget-0.3.0/src/breezewidget/cards/__init__.py +34 -0
- breeze_widget-0.3.0/src/breezewidget/cards/card.py +127 -0
- breeze_widget-0.3.0/src/breezewidget/cards/header_card.py +72 -0
- breeze_widget-0.3.0/src/breezewidget/cards/settings_cards.py +498 -0
- breeze_widget-0.3.0/src/breezewidget/constants.py +99 -0
- breeze_widget-0.3.0/src/breezewidget/core/__init__.py +42 -0
- breeze_widget-0.3.0/src/breezewidget/core/config.py +406 -0
- breeze_widget-0.3.0/src/breezewidget/core/exception_handler.py +176 -0
- breeze_widget-0.3.0/src/breezewidget/core/router.py +104 -0
- breeze_widget-0.3.0/src/breezewidget/core/translator.py +155 -0
- breeze_widget-0.3.0/src/breezewidget/dialogs/__init__.py +18 -0
- breeze_widget-0.3.0/src/breezewidget/dialogs/base.py +160 -0
- breeze_widget-0.3.0/src/breezewidget/dialogs/color_dialog.py +170 -0
- breeze_widget-0.3.0/src/breezewidget/dialogs/folder_list_dialog.py +91 -0
- breeze_widget-0.3.0/src/breezewidget/dialogs/masked.py +247 -0
- breeze_widget-0.3.0/src/breezewidget/dialogs/message.py +29 -0
- breeze_widget-0.3.0/src/breezewidget/flyout/__init__.py +14 -0
- breeze_widget-0.3.0/src/breezewidget/flyout/animation.py +78 -0
- breeze_widget-0.3.0/src/breezewidget/flyout/flyout.py +264 -0
- breeze_widget-0.3.0/src/breezewidget/flyout/teaching_tip.py +157 -0
- breeze_widget-0.3.0/src/breezewidget/icons/__init__.py +7 -0
- breeze_widget-0.3.0/src/breezewidget/icons/_svg.py +131 -0
- breeze_widget-0.3.0/src/breezewidget/icons/_themed.py +102 -0
- breeze_widget-0.3.0/src/breezewidget/icons/breeze_icon.py +57 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/alert-triangle.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/arrow-left.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/arrow-right.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/calendar.svg +24 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/check.svg +19 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/chevron-down.svg +19 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/chevron-right.svg +19 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/circle-x.svg +20 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/device-floppy.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/dots.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/download.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/edit.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/external-link.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/file-text.svg +23 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/folder.svg +19 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/home.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/info-circle.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/menu-2.svg +21 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/moon.svg +19 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/plus.svg +20 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/search.svg +20 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/settings.svg +20 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/sun.svg +20 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/trash.svg +23 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/users.svg +22 -0
- breeze_widget-0.3.0/src/breezewidget/icons/outline/x.svg +20 -0
- breeze_widget-0.3.0/src/breezewidget/icons/registry.py +269 -0
- breeze_widget-0.3.0/src/breezewidget/icons/svg_icons.py +51 -0
- breeze_widget-0.3.0/src/breezewidget/layout/__init__.py +7 -0
- breeze_widget-0.3.0/src/breezewidget/layout/_utils.py +14 -0
- breeze_widget-0.3.0/src/breezewidget/layout/expand.py +31 -0
- breeze_widget-0.3.0/src/breezewidget/layout/flow.py +155 -0
- breeze_widget-0.3.0/src/breezewidget/media/__init__.py +8 -0
- breeze_widget-0.3.0/src/breezewidget/media/media_player.py +95 -0
- breeze_widget-0.3.0/src/breezewidget/media/play_bar.py +181 -0
- breeze_widget-0.3.0/src/breezewidget/media/video_widget.py +15 -0
- breeze_widget-0.3.0/src/breezewidget/menu/__init__.py +8 -0
- breeze_widget-0.3.0/src/breezewidget/menu/checkable_menu.py +49 -0
- breeze_widget-0.3.0/src/breezewidget/menu/command_bar.py +183 -0
- breeze_widget-0.3.0/src/breezewidget/menu/round_menu.py +56 -0
- breeze_widget-0.3.0/src/breezewidget/navigation/__init__.py +23 -0
- breeze_widget-0.3.0/src/breezewidget/navigation/breadcrumb.py +136 -0
- breeze_widget-0.3.0/src/breezewidget/navigation/interface.py +229 -0
- breeze_widget-0.3.0/src/breezewidget/navigation/pivot.py +172 -0
- breeze_widget-0.3.0/src/breezewidget/navigation/segmented.py +74 -0
- breeze_widget-0.3.0/src/breezewidget/navigation/tab_bar.py +135 -0
- breeze_widget-0.3.0/src/breezewidget/pickers/__init__.py +9 -0
- breeze_widget-0.3.0/src/breezewidget/pickers/calendar_picker.py +81 -0
- breeze_widget-0.3.0/src/breezewidget/pickers/date_picker.py +115 -0
- breeze_widget-0.3.0/src/breezewidget/pickers/fast_calendar_picker.py +13 -0
- breeze_widget-0.3.0/src/breezewidget/pickers/time_picker.py +111 -0
- breeze_widget-0.3.0/src/breezewidget/scroll/__init__.py +7 -0
- breeze_widget-0.3.0/src/breezewidget/scroll/pips.py +135 -0
- breeze_widget-0.3.0/src/breezewidget/scroll/smooth.py +95 -0
- breeze_widget-0.3.0/src/breezewidget/status/__init__.py +18 -0
- breeze_widget-0.3.0/src/breezewidget/status/badge.py +237 -0
- breeze_widget-0.3.0/src/breezewidget/status/info_bar.py +120 -0
- breeze_widget-0.3.0/src/breezewidget/status/progress_ring.py +214 -0
- breeze_widget-0.3.0/src/breezewidget/status/state_tooltip.py +134 -0
- breeze_widget-0.3.0/src/breezewidget/theme/__init__.py +30 -0
- breeze_widget-0.3.0/src/breezewidget/theme/listener.py +132 -0
- breeze_widget-0.3.0/src/breezewidget/theme/palette.py +121 -0
- breeze_widget-0.3.0/src/breezewidget/theme/provider_base.py +13 -0
- breeze_widget-0.3.0/src/breezewidget/theme/providers.py +990 -0
- breeze_widget-0.3.0/src/breezewidget/theme/styles.py +178 -0
- breeze_widget-0.3.0/src/breezewidget/theme/theme.py +157 -0
- breeze_widget-0.3.0/src/breezewidget/views/__init__.py +19 -0
- breeze_widget-0.3.0/src/breezewidget/views/avatar.py +110 -0
- breeze_widget-0.3.0/src/breezewidget/views/cycle_list.py +83 -0
- breeze_widget-0.3.0/src/breezewidget/views/flip_view.py +174 -0
- breeze_widget-0.3.0/src/breezewidget/views/item_views.py +41 -0
- breeze_widget-0.3.0/src/breezewidget/views/table_widget.py +154 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/__init__.py +53 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/_base.py +23 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/_chevron.py +56 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/_popup.py +25 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/button.py +257 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/checkbox.py +179 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/combo_box.py +55 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/icon_widget.py +49 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/label.py +41 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/line_edit.py +32 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/progress.py +15 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/slider.py +127 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/spin_box.py +128 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/switch.py +340 -0
- breeze_widget-0.3.0/src/breezewidget/widgets/text_edit.py +15 -0
- breeze_widget-0.3.0/src/breezewidget/window/__init__.py +22 -0
- breeze_widget-0.3.0/src/breezewidget/window/_navigation.py +125 -0
- breeze_widget-0.3.0/src/breezewidget/window/_title_buttons.py +137 -0
- breeze_widget-0.3.0/src/breezewidget/window/breeze_window.py +61 -0
- breeze_widget-0.3.0/src/breezewidget/window/material.py +67 -0
- breeze_widget-0.3.0/src/breezewidget/window/ms_breeze_window.py +55 -0
- breeze_widget-0.3.0/src/breezewidget/window/splash_screen.py +95 -0
- breeze_widget-0.3.0/src/breezewidget/window/split_breeze_window.py +84 -0
- breeze_widget-0.3.0/src/breezewidget/window/title_bar.py +199 -0
- breeze_widget-0.3.0/tests/test_animation_7e.py +131 -0
- breeze_widget-0.3.0/tests/test_calendar_widget.py +67 -0
- breeze_widget-0.3.0/tests/test_cards_3d.py +178 -0
- breeze_widget-0.3.0/tests/test_config_7a.py +303 -0
- breeze_widget-0.3.0/tests/test_constants.py +86 -0
- breeze_widget-0.3.0/tests/test_demo_gallery.py +72 -0
- breeze_widget-0.3.0/tests/test_dialogs_4d.py +187 -0
- breeze_widget-0.3.0/tests/test_exception_handler_7b.py +142 -0
- breeze_widget-0.3.0/tests/test_flyout.py +68 -0
- breeze_widget-0.3.0/tests/test_icons.py +129 -0
- breeze_widget-0.3.0/tests/test_imports.py +138 -0
- breeze_widget-0.3.0/tests/test_infobar.py +44 -0
- breeze_widget-0.3.0/tests/test_layout_4a.py +145 -0
- breeze_widget-0.3.0/tests/test_menu_4c.py +152 -0
- breeze_widget-0.3.0/tests/test_navigation.py +66 -0
- breeze_widget-0.3.0/tests/test_navigation_3c.py +180 -0
- breeze_widget-0.3.0/tests/test_pickers_4e.py +135 -0
- breeze_widget-0.3.0/tests/test_pill_render.py +32 -0
- breeze_widget-0.3.0/tests/test_router.py +163 -0
- breeze_widget-0.3.0/tests/test_scroll_4b.py +115 -0
- breeze_widget-0.3.0/tests/test_status.py +124 -0
- breeze_widget-0.3.0/tests/test_theme.py +170 -0
- breeze_widget-0.3.0/tests/test_theme_listener_7d.py +92 -0
- breeze_widget-0.3.0/tests/test_translator_7c.py +113 -0
- breeze_widget-0.3.0/tests/test_views_6.py +414 -0
- breeze_widget-0.3.0/tests/test_widgets.py +295 -0
- breeze_widget-0.3.0/tests/test_window.py +261 -0
- breeze_widget-0.3.0/tests/test_window_5.py +154 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 BreezeWidget contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: breeze-widget
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Clean-room Breeze widget toolkit for PySide6 desktop applications
|
|
5
|
+
Author: Taron686
|
|
6
|
+
Maintainer: Taron686
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/Taron686/breeze-widget
|
|
9
|
+
Project-URL: Repository, https://github.com/Taron686/breeze-widget
|
|
10
|
+
Project-URL: Documentation, https://github.com/Taron686/breeze-widget#readme
|
|
11
|
+
Project-URL: Issue Tracker, https://github.com/Taron686/breeze-widget/issues
|
|
12
|
+
Keywords: pyside6,qt,widgets,desktop,breeze,ui
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: X11 Applications :: Qt
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
22
|
+
Requires-Python: >=3.11
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: PySide6>=6.6.0
|
|
26
|
+
Provides-Extra: test
|
|
27
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
28
|
+
Requires-Dist: pytest-qt>=4.4; extra == "test"
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# BreezeWidget
|
|
32
|
+
|
|
33
|
+
> Dieses Repository ist ein komplett vibe coded Work-in-Progress-Projekt fuer
|
|
34
|
+
> PySide6. Die API ist noch nicht final, interne Strukturen koennen sich aendern,
|
|
35
|
+
> und das Repo ist aktuell vor allem fuer Entwicklung, Tests, Experimente und
|
|
36
|
+
> Migrationen gedacht.
|
|
37
|
+
|
|
38
|
+
BreezeWidget ist eine saubere, lokale PySide6-Widget- und Theming-Schicht mit
|
|
39
|
+
einem Breeze-inspirierten Look. Das Projekt verfolgt das Ziel, Desktop-Apps mit
|
|
40
|
+
Qt/PySide6 ein konsistentes Fenstersystem, Theme-Handling, Icons, Navigation,
|
|
41
|
+
Status-Komponenten, Eingaben, Karten, Views und Demo-Oberflaechen bereitzustellen,
|
|
42
|
+
ohne von einer externen GPL-Widget-Bibliothek abhaengig zu sein.
|
|
43
|
+
|
|
44
|
+
## Aktueller Status
|
|
45
|
+
|
|
46
|
+
Das Paket ist pre-1.0 und wird aktiv umgebaut. Die oeffentliche API ist in
|
|
47
|
+
[`AGENTS.md`](AGENTS.md) beschrieben und wird durch Tests abgesichert; alles
|
|
48
|
+
ausserhalb dieser dokumentierten Oberflaeche gilt als intern. Das Repo enthaelt
|
|
49
|
+
bereits lauffaehige Demos, Tests, lokale Icons, Theme-/Stylesheet-Infrastruktur
|
|
50
|
+
und eine wachsende Sammlung von PySide6-Komponenten, ist aber noch kein
|
|
51
|
+
stabiler Framework-Release.
|
|
52
|
+
|
|
53
|
+
## Was man mit dem Repo machen kann
|
|
54
|
+
|
|
55
|
+
- BreezeWidget lokal installieren und in eigenen PySide6-Prototypen verwenden.
|
|
56
|
+
- BreezeWidget nach der PyPI-Veroeffentlichung direkt per `pip install`
|
|
57
|
+
installieren.
|
|
58
|
+
- Die Demo-Anwendungen starten, um den aktuellen Stand der UI-Schicht zu pruefen.
|
|
59
|
+
- Tests ausfuehren, um die dokumentierte Public API und Kernverhalten zu
|
|
60
|
+
verifizieren.
|
|
61
|
+
- Eigene Widgets oder Stylesheet-Fragmente gegen die vorhandene Theme- und
|
|
62
|
+
Icon-Infrastruktur entwickeln.
|
|
63
|
+
- Das Projekt frei forken, anpassen und weiterverwenden.
|
|
64
|
+
|
|
65
|
+
## Installation aus PyPI
|
|
66
|
+
|
|
67
|
+
```powershell
|
|
68
|
+
python -m pip install breeze-widget
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Das PyPI-Paket heisst `breeze-widget`; der Python-Import bleibt
|
|
72
|
+
`breezewidget`.
|
|
73
|
+
|
|
74
|
+
## Installation fuer Entwicklung
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
.\.venv\Scripts\python.exe -m pip install -e ".[test]"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Demos starten
|
|
81
|
+
|
|
82
|
+
```powershell
|
|
83
|
+
.\.venv\Scripts\python.exe .\examples\breeze_demo.py
|
|
84
|
+
.\.venv\Scripts\python.exe .\examples\widget_demo.py
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Tests ausfuehren
|
|
88
|
+
|
|
89
|
+
```powershell
|
|
90
|
+
$env:QT_QPA_PLATFORM = "offscreen"
|
|
91
|
+
.\.venv\Scripts\python.exe -m pytest
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Public API
|
|
95
|
+
|
|
96
|
+
Die Root-Imports aus `breezewidget` sowie die kuratierten Subsystemmodule
|
|
97
|
+
`breezewidget.window`, `breezewidget.theme`, `breezewidget.icons` und
|
|
98
|
+
`breezewidget.navigation` sind die relevante oeffentliche Oberflaeche. Details,
|
|
99
|
+
Symbolnamen, stabile Qt-Dynamic-Properties und nicht-oeffentliche Bereiche sind
|
|
100
|
+
im API-Vertrag in [`AGENTS.md`](AGENTS.md) festgehalten.
|
|
101
|
+
|
|
102
|
+
Direkte Imports aus tieferen Implementierungsmodulen sollten vermieden werden,
|
|
103
|
+
weil diese waehrend des Refactors verschoben oder umbenannt werden koennen.
|
|
104
|
+
|
|
105
|
+
## Lizenz
|
|
106
|
+
|
|
107
|
+
BreezeWidget steht unter der MIT-Lizenz. Das Repo kann damit frei genutzt,
|
|
108
|
+
kopiert, veraendert und weitergegeben werden, auch ohne Bezahlung. Details
|
|
109
|
+
stehen in [`LICENSE`](LICENSE).
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# BreezeWidget
|
|
2
|
+
|
|
3
|
+
> Dieses Repository ist ein komplett vibe coded Work-in-Progress-Projekt fuer
|
|
4
|
+
> PySide6. Die API ist noch nicht final, interne Strukturen koennen sich aendern,
|
|
5
|
+
> und das Repo ist aktuell vor allem fuer Entwicklung, Tests, Experimente und
|
|
6
|
+
> Migrationen gedacht.
|
|
7
|
+
|
|
8
|
+
BreezeWidget ist eine saubere, lokale PySide6-Widget- und Theming-Schicht mit
|
|
9
|
+
einem Breeze-inspirierten Look. Das Projekt verfolgt das Ziel, Desktop-Apps mit
|
|
10
|
+
Qt/PySide6 ein konsistentes Fenstersystem, Theme-Handling, Icons, Navigation,
|
|
11
|
+
Status-Komponenten, Eingaben, Karten, Views und Demo-Oberflaechen bereitzustellen,
|
|
12
|
+
ohne von einer externen GPL-Widget-Bibliothek abhaengig zu sein.
|
|
13
|
+
|
|
14
|
+
## Aktueller Status
|
|
15
|
+
|
|
16
|
+
Das Paket ist pre-1.0 und wird aktiv umgebaut. Die oeffentliche API ist in
|
|
17
|
+
[`AGENTS.md`](AGENTS.md) beschrieben und wird durch Tests abgesichert; alles
|
|
18
|
+
ausserhalb dieser dokumentierten Oberflaeche gilt als intern. Das Repo enthaelt
|
|
19
|
+
bereits lauffaehige Demos, Tests, lokale Icons, Theme-/Stylesheet-Infrastruktur
|
|
20
|
+
und eine wachsende Sammlung von PySide6-Komponenten, ist aber noch kein
|
|
21
|
+
stabiler Framework-Release.
|
|
22
|
+
|
|
23
|
+
## Was man mit dem Repo machen kann
|
|
24
|
+
|
|
25
|
+
- BreezeWidget lokal installieren und in eigenen PySide6-Prototypen verwenden.
|
|
26
|
+
- BreezeWidget nach der PyPI-Veroeffentlichung direkt per `pip install`
|
|
27
|
+
installieren.
|
|
28
|
+
- Die Demo-Anwendungen starten, um den aktuellen Stand der UI-Schicht zu pruefen.
|
|
29
|
+
- Tests ausfuehren, um die dokumentierte Public API und Kernverhalten zu
|
|
30
|
+
verifizieren.
|
|
31
|
+
- Eigene Widgets oder Stylesheet-Fragmente gegen die vorhandene Theme- und
|
|
32
|
+
Icon-Infrastruktur entwickeln.
|
|
33
|
+
- Das Projekt frei forken, anpassen und weiterverwenden.
|
|
34
|
+
|
|
35
|
+
## Installation aus PyPI
|
|
36
|
+
|
|
37
|
+
```powershell
|
|
38
|
+
python -m pip install breeze-widget
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Das PyPI-Paket heisst `breeze-widget`; der Python-Import bleibt
|
|
42
|
+
`breezewidget`.
|
|
43
|
+
|
|
44
|
+
## Installation fuer Entwicklung
|
|
45
|
+
|
|
46
|
+
```powershell
|
|
47
|
+
.\.venv\Scripts\python.exe -m pip install -e ".[test]"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Demos starten
|
|
51
|
+
|
|
52
|
+
```powershell
|
|
53
|
+
.\.venv\Scripts\python.exe .\examples\breeze_demo.py
|
|
54
|
+
.\.venv\Scripts\python.exe .\examples\widget_demo.py
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Tests ausfuehren
|
|
58
|
+
|
|
59
|
+
```powershell
|
|
60
|
+
$env:QT_QPA_PLATFORM = "offscreen"
|
|
61
|
+
.\.venv\Scripts\python.exe -m pytest
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Public API
|
|
65
|
+
|
|
66
|
+
Die Root-Imports aus `breezewidget` sowie die kuratierten Subsystemmodule
|
|
67
|
+
`breezewidget.window`, `breezewidget.theme`, `breezewidget.icons` und
|
|
68
|
+
`breezewidget.navigation` sind die relevante oeffentliche Oberflaeche. Details,
|
|
69
|
+
Symbolnamen, stabile Qt-Dynamic-Properties und nicht-oeffentliche Bereiche sind
|
|
70
|
+
im API-Vertrag in [`AGENTS.md`](AGENTS.md) festgehalten.
|
|
71
|
+
|
|
72
|
+
Direkte Imports aus tieferen Implementierungsmodulen sollten vermieden werden,
|
|
73
|
+
weil diese waehrend des Refactors verschoben oder umbenannt werden koennen.
|
|
74
|
+
|
|
75
|
+
## Lizenz
|
|
76
|
+
|
|
77
|
+
BreezeWidget steht unter der MIT-Lizenz. Das Repo kann damit frei genutzt,
|
|
78
|
+
kopiert, veraendert und weitergegeben werden, auch ohne Bezahlung. Details
|
|
79
|
+
stehen in [`LICENSE`](LICENSE).
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "breeze-widget"
|
|
7
|
+
version = "0.3.0"
|
|
8
|
+
description = "Clean-room Breeze widget toolkit for PySide6 desktop applications"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
authors = [{name = "Taron686"}]
|
|
12
|
+
maintainers = [{name = "Taron686"}]
|
|
13
|
+
requires-python = ">=3.11"
|
|
14
|
+
keywords = ["pyside6", "qt", "widgets", "desktop", "breeze", "ui"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 3 - Alpha",
|
|
17
|
+
"Environment :: X11 Applications :: Qt",
|
|
18
|
+
"Intended Audience :: Developers",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
20
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
21
|
+
"Programming Language :: Python :: 3.11",
|
|
22
|
+
"Programming Language :: Python :: 3.12",
|
|
23
|
+
"Programming Language :: Python :: 3.13",
|
|
24
|
+
"Topic :: Software Development :: User Interfaces",
|
|
25
|
+
]
|
|
26
|
+
dependencies = [
|
|
27
|
+
"PySide6>=6.6.0",
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
[project.urls]
|
|
31
|
+
Homepage = "https://github.com/Taron686/breeze-widget"
|
|
32
|
+
Repository = "https://github.com/Taron686/breeze-widget"
|
|
33
|
+
Documentation = "https://github.com/Taron686/breeze-widget#readme"
|
|
34
|
+
"Issue Tracker" = "https://github.com/Taron686/breeze-widget/issues"
|
|
35
|
+
|
|
36
|
+
[project.optional-dependencies]
|
|
37
|
+
test = [
|
|
38
|
+
"pytest>=8",
|
|
39
|
+
"pytest-qt>=4.4",
|
|
40
|
+
]
|
|
41
|
+
|
|
42
|
+
[tool.setuptools]
|
|
43
|
+
package-dir = {"" = "src"}
|
|
44
|
+
|
|
45
|
+
[tool.setuptools.package-data]
|
|
46
|
+
"breezewidget.icons" = ["outline/*.svg"]
|
|
47
|
+
|
|
48
|
+
[tool.setuptools.packages.find]
|
|
49
|
+
where = ["src"]
|
|
50
|
+
|
|
51
|
+
[tool.pytest.ini_options]
|
|
52
|
+
minversion = "8.0"
|
|
53
|
+
testpaths = ["tests"]
|
|
54
|
+
qt_api = "pyside6"
|
|
55
|
+
addopts = "-ra"
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: breeze-widget
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: Clean-room Breeze widget toolkit for PySide6 desktop applications
|
|
5
|
+
Author: Taron686
|
|
6
|
+
Maintainer: Taron686
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://github.com/Taron686/breeze-widget
|
|
9
|
+
Project-URL: Repository, https://github.com/Taron686/breeze-widget
|
|
10
|
+
Project-URL: Documentation, https://github.com/Taron686/breeze-widget#readme
|
|
11
|
+
Project-URL: Issue Tracker, https://github.com/Taron686/breeze-widget/issues
|
|
12
|
+
Keywords: pyside6,qt,widgets,desktop,breeze,ui
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: X11 Applications :: Qt
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
22
|
+
Requires-Python: >=3.11
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: PySide6>=6.6.0
|
|
26
|
+
Provides-Extra: test
|
|
27
|
+
Requires-Dist: pytest>=8; extra == "test"
|
|
28
|
+
Requires-Dist: pytest-qt>=4.4; extra == "test"
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
|
|
31
|
+
# BreezeWidget
|
|
32
|
+
|
|
33
|
+
> Dieses Repository ist ein komplett vibe coded Work-in-Progress-Projekt fuer
|
|
34
|
+
> PySide6. Die API ist noch nicht final, interne Strukturen koennen sich aendern,
|
|
35
|
+
> und das Repo ist aktuell vor allem fuer Entwicklung, Tests, Experimente und
|
|
36
|
+
> Migrationen gedacht.
|
|
37
|
+
|
|
38
|
+
BreezeWidget ist eine saubere, lokale PySide6-Widget- und Theming-Schicht mit
|
|
39
|
+
einem Breeze-inspirierten Look. Das Projekt verfolgt das Ziel, Desktop-Apps mit
|
|
40
|
+
Qt/PySide6 ein konsistentes Fenstersystem, Theme-Handling, Icons, Navigation,
|
|
41
|
+
Status-Komponenten, Eingaben, Karten, Views und Demo-Oberflaechen bereitzustellen,
|
|
42
|
+
ohne von einer externen GPL-Widget-Bibliothek abhaengig zu sein.
|
|
43
|
+
|
|
44
|
+
## Aktueller Status
|
|
45
|
+
|
|
46
|
+
Das Paket ist pre-1.0 und wird aktiv umgebaut. Die oeffentliche API ist in
|
|
47
|
+
[`AGENTS.md`](AGENTS.md) beschrieben und wird durch Tests abgesichert; alles
|
|
48
|
+
ausserhalb dieser dokumentierten Oberflaeche gilt als intern. Das Repo enthaelt
|
|
49
|
+
bereits lauffaehige Demos, Tests, lokale Icons, Theme-/Stylesheet-Infrastruktur
|
|
50
|
+
und eine wachsende Sammlung von PySide6-Komponenten, ist aber noch kein
|
|
51
|
+
stabiler Framework-Release.
|
|
52
|
+
|
|
53
|
+
## Was man mit dem Repo machen kann
|
|
54
|
+
|
|
55
|
+
- BreezeWidget lokal installieren und in eigenen PySide6-Prototypen verwenden.
|
|
56
|
+
- BreezeWidget nach der PyPI-Veroeffentlichung direkt per `pip install`
|
|
57
|
+
installieren.
|
|
58
|
+
- Die Demo-Anwendungen starten, um den aktuellen Stand der UI-Schicht zu pruefen.
|
|
59
|
+
- Tests ausfuehren, um die dokumentierte Public API und Kernverhalten zu
|
|
60
|
+
verifizieren.
|
|
61
|
+
- Eigene Widgets oder Stylesheet-Fragmente gegen die vorhandene Theme- und
|
|
62
|
+
Icon-Infrastruktur entwickeln.
|
|
63
|
+
- Das Projekt frei forken, anpassen und weiterverwenden.
|
|
64
|
+
|
|
65
|
+
## Installation aus PyPI
|
|
66
|
+
|
|
67
|
+
```powershell
|
|
68
|
+
python -m pip install breeze-widget
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Das PyPI-Paket heisst `breeze-widget`; der Python-Import bleibt
|
|
72
|
+
`breezewidget`.
|
|
73
|
+
|
|
74
|
+
## Installation fuer Entwicklung
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
.\.venv\Scripts\python.exe -m pip install -e ".[test]"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Demos starten
|
|
81
|
+
|
|
82
|
+
```powershell
|
|
83
|
+
.\.venv\Scripts\python.exe .\examples\breeze_demo.py
|
|
84
|
+
.\.venv\Scripts\python.exe .\examples\widget_demo.py
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Tests ausfuehren
|
|
88
|
+
|
|
89
|
+
```powershell
|
|
90
|
+
$env:QT_QPA_PLATFORM = "offscreen"
|
|
91
|
+
.\.venv\Scripts\python.exe -m pytest
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Public API
|
|
95
|
+
|
|
96
|
+
Die Root-Imports aus `breezewidget` sowie die kuratierten Subsystemmodule
|
|
97
|
+
`breezewidget.window`, `breezewidget.theme`, `breezewidget.icons` und
|
|
98
|
+
`breezewidget.navigation` sind die relevante oeffentliche Oberflaeche. Details,
|
|
99
|
+
Symbolnamen, stabile Qt-Dynamic-Properties und nicht-oeffentliche Bereiche sind
|
|
100
|
+
im API-Vertrag in [`AGENTS.md`](AGENTS.md) festgehalten.
|
|
101
|
+
|
|
102
|
+
Direkte Imports aus tieferen Implementierungsmodulen sollten vermieden werden,
|
|
103
|
+
weil diese waehrend des Refactors verschoben oder umbenannt werden koennen.
|
|
104
|
+
|
|
105
|
+
## Lizenz
|
|
106
|
+
|
|
107
|
+
BreezeWidget steht unter der MIT-Lizenz. Das Repo kann damit frei genutzt,
|
|
108
|
+
kopiert, veraendert und weitergegeben werden, auch ohne Bezahlung. Details
|
|
109
|
+
stehen in [`LICENSE`](LICENSE).
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
src/breeze_widget.egg-info/PKG-INFO
|
|
5
|
+
src/breeze_widget.egg-info/SOURCES.txt
|
|
6
|
+
src/breeze_widget.egg-info/dependency_links.txt
|
|
7
|
+
src/breeze_widget.egg-info/requires.txt
|
|
8
|
+
src/breeze_widget.egg-info/top_level.txt
|
|
9
|
+
src/breezewidget/__init__.py
|
|
10
|
+
src/breezewidget/constants.py
|
|
11
|
+
src/breezewidget/animation/__init__.py
|
|
12
|
+
src/breezewidget/animation/color.py
|
|
13
|
+
src/breezewidget/animation/property.py
|
|
14
|
+
src/breezewidget/animation/shadow.py
|
|
15
|
+
src/breezewidget/calendar_widget/__init__.py
|
|
16
|
+
src/breezewidget/calendar_widget/calendar_widget.py
|
|
17
|
+
src/breezewidget/calendar_widget/commons.py
|
|
18
|
+
src/breezewidget/calendar_widget/month_model.py
|
|
19
|
+
src/breezewidget/cards/__init__.py
|
|
20
|
+
src/breezewidget/cards/card.py
|
|
21
|
+
src/breezewidget/cards/header_card.py
|
|
22
|
+
src/breezewidget/cards/settings_cards.py
|
|
23
|
+
src/breezewidget/core/__init__.py
|
|
24
|
+
src/breezewidget/core/config.py
|
|
25
|
+
src/breezewidget/core/exception_handler.py
|
|
26
|
+
src/breezewidget/core/router.py
|
|
27
|
+
src/breezewidget/core/translator.py
|
|
28
|
+
src/breezewidget/dialogs/__init__.py
|
|
29
|
+
src/breezewidget/dialogs/base.py
|
|
30
|
+
src/breezewidget/dialogs/color_dialog.py
|
|
31
|
+
src/breezewidget/dialogs/folder_list_dialog.py
|
|
32
|
+
src/breezewidget/dialogs/masked.py
|
|
33
|
+
src/breezewidget/dialogs/message.py
|
|
34
|
+
src/breezewidget/flyout/__init__.py
|
|
35
|
+
src/breezewidget/flyout/animation.py
|
|
36
|
+
src/breezewidget/flyout/flyout.py
|
|
37
|
+
src/breezewidget/flyout/teaching_tip.py
|
|
38
|
+
src/breezewidget/icons/__init__.py
|
|
39
|
+
src/breezewidget/icons/_svg.py
|
|
40
|
+
src/breezewidget/icons/_themed.py
|
|
41
|
+
src/breezewidget/icons/breeze_icon.py
|
|
42
|
+
src/breezewidget/icons/registry.py
|
|
43
|
+
src/breezewidget/icons/svg_icons.py
|
|
44
|
+
src/breezewidget/icons/outline/alert-triangle.svg
|
|
45
|
+
src/breezewidget/icons/outline/arrow-left.svg
|
|
46
|
+
src/breezewidget/icons/outline/arrow-right.svg
|
|
47
|
+
src/breezewidget/icons/outline/calendar.svg
|
|
48
|
+
src/breezewidget/icons/outline/check.svg
|
|
49
|
+
src/breezewidget/icons/outline/chevron-down.svg
|
|
50
|
+
src/breezewidget/icons/outline/chevron-right.svg
|
|
51
|
+
src/breezewidget/icons/outline/circle-x.svg
|
|
52
|
+
src/breezewidget/icons/outline/device-floppy.svg
|
|
53
|
+
src/breezewidget/icons/outline/dots.svg
|
|
54
|
+
src/breezewidget/icons/outline/download.svg
|
|
55
|
+
src/breezewidget/icons/outline/edit.svg
|
|
56
|
+
src/breezewidget/icons/outline/external-link.svg
|
|
57
|
+
src/breezewidget/icons/outline/file-text.svg
|
|
58
|
+
src/breezewidget/icons/outline/folder.svg
|
|
59
|
+
src/breezewidget/icons/outline/home.svg
|
|
60
|
+
src/breezewidget/icons/outline/info-circle.svg
|
|
61
|
+
src/breezewidget/icons/outline/menu-2.svg
|
|
62
|
+
src/breezewidget/icons/outline/moon.svg
|
|
63
|
+
src/breezewidget/icons/outline/plus.svg
|
|
64
|
+
src/breezewidget/icons/outline/search.svg
|
|
65
|
+
src/breezewidget/icons/outline/settings.svg
|
|
66
|
+
src/breezewidget/icons/outline/sun.svg
|
|
67
|
+
src/breezewidget/icons/outline/trash.svg
|
|
68
|
+
src/breezewidget/icons/outline/users.svg
|
|
69
|
+
src/breezewidget/icons/outline/x.svg
|
|
70
|
+
src/breezewidget/layout/__init__.py
|
|
71
|
+
src/breezewidget/layout/_utils.py
|
|
72
|
+
src/breezewidget/layout/expand.py
|
|
73
|
+
src/breezewidget/layout/flow.py
|
|
74
|
+
src/breezewidget/media/__init__.py
|
|
75
|
+
src/breezewidget/media/media_player.py
|
|
76
|
+
src/breezewidget/media/play_bar.py
|
|
77
|
+
src/breezewidget/media/video_widget.py
|
|
78
|
+
src/breezewidget/menu/__init__.py
|
|
79
|
+
src/breezewidget/menu/checkable_menu.py
|
|
80
|
+
src/breezewidget/menu/command_bar.py
|
|
81
|
+
src/breezewidget/menu/round_menu.py
|
|
82
|
+
src/breezewidget/navigation/__init__.py
|
|
83
|
+
src/breezewidget/navigation/breadcrumb.py
|
|
84
|
+
src/breezewidget/navigation/interface.py
|
|
85
|
+
src/breezewidget/navigation/pivot.py
|
|
86
|
+
src/breezewidget/navigation/segmented.py
|
|
87
|
+
src/breezewidget/navigation/tab_bar.py
|
|
88
|
+
src/breezewidget/pickers/__init__.py
|
|
89
|
+
src/breezewidget/pickers/calendar_picker.py
|
|
90
|
+
src/breezewidget/pickers/date_picker.py
|
|
91
|
+
src/breezewidget/pickers/fast_calendar_picker.py
|
|
92
|
+
src/breezewidget/pickers/time_picker.py
|
|
93
|
+
src/breezewidget/scroll/__init__.py
|
|
94
|
+
src/breezewidget/scroll/pips.py
|
|
95
|
+
src/breezewidget/scroll/smooth.py
|
|
96
|
+
src/breezewidget/status/__init__.py
|
|
97
|
+
src/breezewidget/status/badge.py
|
|
98
|
+
src/breezewidget/status/info_bar.py
|
|
99
|
+
src/breezewidget/status/progress_ring.py
|
|
100
|
+
src/breezewidget/status/state_tooltip.py
|
|
101
|
+
src/breezewidget/theme/__init__.py
|
|
102
|
+
src/breezewidget/theme/listener.py
|
|
103
|
+
src/breezewidget/theme/palette.py
|
|
104
|
+
src/breezewidget/theme/provider_base.py
|
|
105
|
+
src/breezewidget/theme/providers.py
|
|
106
|
+
src/breezewidget/theme/styles.py
|
|
107
|
+
src/breezewidget/theme/theme.py
|
|
108
|
+
src/breezewidget/views/__init__.py
|
|
109
|
+
src/breezewidget/views/avatar.py
|
|
110
|
+
src/breezewidget/views/cycle_list.py
|
|
111
|
+
src/breezewidget/views/flip_view.py
|
|
112
|
+
src/breezewidget/views/item_views.py
|
|
113
|
+
src/breezewidget/views/table_widget.py
|
|
114
|
+
src/breezewidget/widgets/__init__.py
|
|
115
|
+
src/breezewidget/widgets/_base.py
|
|
116
|
+
src/breezewidget/widgets/_chevron.py
|
|
117
|
+
src/breezewidget/widgets/_popup.py
|
|
118
|
+
src/breezewidget/widgets/button.py
|
|
119
|
+
src/breezewidget/widgets/checkbox.py
|
|
120
|
+
src/breezewidget/widgets/combo_box.py
|
|
121
|
+
src/breezewidget/widgets/icon_widget.py
|
|
122
|
+
src/breezewidget/widgets/label.py
|
|
123
|
+
src/breezewidget/widgets/line_edit.py
|
|
124
|
+
src/breezewidget/widgets/progress.py
|
|
125
|
+
src/breezewidget/widgets/slider.py
|
|
126
|
+
src/breezewidget/widgets/spin_box.py
|
|
127
|
+
src/breezewidget/widgets/switch.py
|
|
128
|
+
src/breezewidget/widgets/text_edit.py
|
|
129
|
+
src/breezewidget/window/__init__.py
|
|
130
|
+
src/breezewidget/window/_navigation.py
|
|
131
|
+
src/breezewidget/window/_title_buttons.py
|
|
132
|
+
src/breezewidget/window/breeze_window.py
|
|
133
|
+
src/breezewidget/window/material.py
|
|
134
|
+
src/breezewidget/window/ms_breeze_window.py
|
|
135
|
+
src/breezewidget/window/splash_screen.py
|
|
136
|
+
src/breezewidget/window/split_breeze_window.py
|
|
137
|
+
src/breezewidget/window/title_bar.py
|
|
138
|
+
tests/test_animation_7e.py
|
|
139
|
+
tests/test_calendar_widget.py
|
|
140
|
+
tests/test_cards_3d.py
|
|
141
|
+
tests/test_config_7a.py
|
|
142
|
+
tests/test_constants.py
|
|
143
|
+
tests/test_demo_gallery.py
|
|
144
|
+
tests/test_dialogs_4d.py
|
|
145
|
+
tests/test_exception_handler_7b.py
|
|
146
|
+
tests/test_flyout.py
|
|
147
|
+
tests/test_icons.py
|
|
148
|
+
tests/test_imports.py
|
|
149
|
+
tests/test_infobar.py
|
|
150
|
+
tests/test_layout_4a.py
|
|
151
|
+
tests/test_menu_4c.py
|
|
152
|
+
tests/test_navigation.py
|
|
153
|
+
tests/test_navigation_3c.py
|
|
154
|
+
tests/test_pickers_4e.py
|
|
155
|
+
tests/test_pill_render.py
|
|
156
|
+
tests/test_router.py
|
|
157
|
+
tests/test_scroll_4b.py
|
|
158
|
+
tests/test_status.py
|
|
159
|
+
tests/test_theme.py
|
|
160
|
+
tests/test_theme_listener_7d.py
|
|
161
|
+
tests/test_translator_7c.py
|
|
162
|
+
tests/test_views_6.py
|
|
163
|
+
tests/test_widgets.py
|
|
164
|
+
tests/test_window.py
|
|
165
|
+
tests/test_window_5.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
breezewidget
|