RinUI 0.0.9.2__py3-none-any.whl → 0.0.10.1__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.
RinUI/__init__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  from .core import *
2
2
 
3
- __version__ = "0.0.9.2"
3
+ __version__ = "0.0.10"
4
4
  __author__ = "RinLit"
Binary file
@@ -0,0 +1,11 @@
1
+ import QtQuick 2.15
2
+ import QtQuick.Controls.Basic 2.15
3
+ import QtQuick.Layouts 2.15
4
+ import "../../themes"
5
+ import "../../components"
6
+
7
+ RoundButton {
8
+ id: root
9
+ highlighted: checked
10
+ checkable: true
11
+ }
@@ -0,0 +1,27 @@
1
+ import QtQuick 2.15
2
+ import QtQuick.Controls.Basic 2.15
3
+ import QtQuick.Layouts 2.15
4
+ import Qt5Compat.GraphicalEffects
5
+ import "../../themes"
6
+ import "../../components"
7
+
8
+ Button {
9
+ id: root
10
+ property alias radius: background.radius
11
+ backgroundColor: highlighted ? primaryColor : Theme.currentTheme.colors.controlQuaternaryColor
12
+
13
+ background: Rectangle {
14
+ id: background
15
+ anchors.fill: parent
16
+ color: hovered ? hoverColor : backgroundColor
17
+ radius: height / 2
18
+
19
+ border.width: Theme.currentTheme.appearance.borderWidth // 边框宽度 / Border Width
20
+ border.color: flat ? "transparent" :
21
+ enabled ? highlighted ? primaryColor : Theme.currentTheme.colors.controlBorderColor :
22
+ highlighted ? Theme.currentTheme.colors.disabledColor : Theme.currentTheme.colors.controlBorderColor
23
+
24
+ Behavior on color { ColorAnimation { duration: Utils.appearanceSpeed; easing.type: Easing.OutQuart } }
25
+ opacity: flat && !hovered || !hoverable ? 0 : 1
26
+ }
27
+ }
@@ -19,7 +19,8 @@ Menu {
19
19
  case Position.Right:
20
20
  return parent.width + 5
21
21
  default:
22
- return (parent.width - root.width) / 2
22
+ // return (parent.width - root.width) / 2
23
+ return root.x
23
24
  }
24
25
  }
25
26
 
@@ -33,7 +34,8 @@ Menu {
33
34
  case Position.Right:
34
35
  return (parent.height - root.height) / 2
35
36
  default:
36
- return -root.height + 5 // 默认顶部
37
+ // return -root.height + 5 // 默认顶部
38
+ return root.y
37
39
  }
38
40
  }
39
41
 
@@ -49,7 +51,7 @@ Menu {
49
51
  property: "opacity"
50
52
  from: 0
51
53
  to: 1
52
- duration: 70
54
+ duration: Utils.animationSpeed
53
55
  easing.type: Easing.InOutQuart
54
56
  }
55
57
  NumberAnimation {
@@ -116,4 +116,17 @@ MenuItem {
116
116
 
117
117
  Behavior on color { ColorAnimation { duration: Utils.animationSpeed; easing.type: Easing.OutQuart } }
118
118
  }
119
+
120
+ // States //
121
+ // 状态变化
122
+ states: [
123
+ State {
124
+ name: "disabled"
125
+ when: !enabled
126
+ PropertyChanges {
127
+ target: root
128
+ opacity: 0.3628
129
+ }
130
+ }
131
+ ]
119
132
  }
@@ -104,6 +104,7 @@ Frame {
104
104
  }
105
105
 
106
106
  Flow {
107
+ id: flow
107
108
  Layout.alignment: Qt.AlignTop
108
109
  Layout.fillWidth: true
109
110
  Layout.topMargin: 3
@@ -118,7 +119,12 @@ Frame {
118
119
  }
119
120
  Text {
120
121
  id: bodyText
121
- property bool wrap: (infoBar.width - titleText.width - custom.width - 24) < implicitWidth
122
+ property bool wrap: (
123
+ (
124
+ infoBar.width - iconWidget.width - rights.width - main.spacing * 2 - infoBar.padding * 2
125
+ )
126
+ < implicitWidth
127
+ )
122
128
  width: wrap ?
123
129
  parent.width : implicitWidth
124
130
  typography: Typography.Body
@@ -0,0 +1,146 @@
1
+ import QtQuick 2.15
2
+ import Qt5Compat.GraphicalEffects
3
+ import QtQuick.Controls.Basic 2.15
4
+ import "../../themes"
5
+ import "../../components"
6
+
7
+ TextArea {
8
+ id: root
9
+
10
+ property bool frameless: false
11
+ property bool editable: true
12
+ property color primaryColor: Theme.currentTheme.colors.primaryColor
13
+
14
+ selectByMouse: true
15
+ enabled: editable
16
+
17
+ // Menu
18
+ Menu {
19
+ id: contextMenu
20
+ position: -1
21
+ Action {
22
+ icon.name: "ic_fluent_cut_20_regular"
23
+ text: qsTr("Cut")
24
+ enabled: root.selectedText.length > 0 && root.editable // 选中&可编辑
25
+ shortcut: "Ctrl+X"
26
+ onTriggered: root.cut()
27
+ }
28
+ Action {
29
+ icon.name: "ic_fluent_copy_20_regular"
30
+ text: qsTr("Copy")
31
+ enabled: root.selectedText.length > 0 // 选中内容
32
+ shortcut: "Ctrl+C"
33
+ onTriggered: root.copy()
34
+ }
35
+ Action {
36
+ icon.name: "ic_fluent_clipboard_paste_20_regular"
37
+ text: qsTr("Paste")
38
+ enabled: root.editable
39
+ shortcut: "Ctrl+V"
40
+ onTriggered: root.paste()
41
+ }
42
+ Action {
43
+ icon.name: " "
44
+ text: qsTr("Select All")
45
+ shortcut: "Ctrl+A"
46
+ onTriggered: root.selectAll()
47
+ }
48
+ }
49
+
50
+ MouseArea {
51
+ anchors.fill: parent
52
+ acceptedButtons: Qt.RightButton
53
+ propagateComposedEvents: true
54
+ onPressed: (mouse) => {
55
+ if (mouse.button === Qt.RightButton)
56
+ contextMenu.popup(mouse.scenePosition)
57
+ mouse.accepted = false
58
+ }
59
+
60
+ // 鼠标
61
+ cursorShape: Qt.IBeamCursor
62
+ }
63
+
64
+ // 背景 / Background //
65
+ background: Rectangle {
66
+ id: background
67
+ anchors.fill: parent
68
+ radius: Theme.currentTheme.appearance.buttonRadius
69
+ color: frameless ? "transparent" : Theme.currentTheme.colors.controlColor
70
+ clip: true
71
+ border.width: Theme.currentTheme.appearance.borderWidth
72
+ border.color: frameless ? root.activeFocus ? Theme.currentTheme.colors.controlBorderColor : "transparent" :
73
+ Theme.currentTheme.colors.controlBorderColor
74
+
75
+ layer.enabled: true
76
+ layer.smooth: true
77
+ layer.effect: OpacityMask {
78
+ maskSource: Rectangle {
79
+ width: background.width
80
+ height: background.height
81
+ radius: background.radius
82
+ }
83
+ }
84
+
85
+ // 底部指示器 / indicator //
86
+ Rectangle {
87
+ id: indicator
88
+ width: parent.width
89
+ anchors.horizontalCenter: parent.horizontalCenter
90
+ anchors.bottom: parent.bottom
91
+ radius: 999
92
+ height: root.activeFocus ? Theme.currentTheme.appearance.borderWidth * 2 : Theme.currentTheme.appearance.borderWidth
93
+ color: root.activeFocus ? primaryColor : frameless ? "transparent" : Theme.currentTheme.colors.textControlBorderColor
94
+
95
+ Behavior on color { ColorAnimation { duration: Utils.animationSpeed; easing.type: Easing.OutQuint } }
96
+ Behavior on height { NumberAnimation { duration: Utils.animationSpeed; easing.type: Easing.OutQuint } }
97
+ }
98
+ }
99
+
100
+ Behavior on opacity { NumberAnimation { duration: Utils.animationSpeed; easing.type: Easing.OutQuint } }
101
+
102
+
103
+ // 字体 / Font //
104
+ font.pixelSize: Theme.currentTheme.typography.bodySize
105
+
106
+ wrapMode: Text.WordWrap // 自动换行
107
+ selectionColor: Theme.currentTheme.colors.primaryColor
108
+ color: Theme.currentTheme.colors.textColor
109
+ placeholderTextColor: Theme.currentTheme.colors.textSecondaryColor
110
+
111
+ leftPadding: 12
112
+ rightPadding: 12
113
+ topPadding: 5
114
+ bottomPadding: 7
115
+
116
+ // 动画 / Animation //
117
+ Behavior on implicitHeight { NumberAnimation { duration: Utils.animationSpeed; easing.type: Easing.OutQuint } }
118
+
119
+ // 状态
120
+ states: [
121
+ State {
122
+ name: "disabled"
123
+ when: !enabled
124
+ PropertyChanges { // 禁用时禁止改变属性
125
+ target: root;
126
+ opacity: !editable ? 1 : 0.4
127
+ }
128
+ },
129
+ State {
130
+ name: "pressed&focused"
131
+ when: activeFocus
132
+ PropertyChanges {
133
+ target: background;
134
+ color: Theme.currentTheme.colors.controlInputActiveColor
135
+ }
136
+ },
137
+ State {
138
+ name: "hovered"
139
+ when: hovered
140
+ PropertyChanges {
141
+ target: background;
142
+ color: Theme.currentTheme.colors.controlSecondaryColor
143
+ }
144
+ }
145
+ ]
146
+ }
@@ -2,6 +2,7 @@ import QtQuick 2.15
2
2
  import Qt5Compat.GraphicalEffects
3
3
  import QtQuick.Controls.Basic 2.15
4
4
  import "../../themes"
5
+ import "../../components"
5
6
 
6
7
  TextField {
7
8
  id: root
@@ -13,6 +14,53 @@ TextField {
13
14
  selectByMouse: true
14
15
  enabled: editable
15
16
 
17
+ // Menu
18
+ Menu {
19
+ id: contextMenu
20
+ position: -1
21
+ Action {
22
+ icon.name: "ic_fluent_cut_20_regular"
23
+ text: qsTr("Cut")
24
+ enabled: root.selectedText.length > 0 && root.editable // 选中&可编辑
25
+ shortcut: "Ctrl+X"
26
+ onTriggered: root.cut()
27
+ }
28
+ Action {
29
+ icon.name: "ic_fluent_copy_20_regular"
30
+ text: qsTr("Copy")
31
+ enabled: root.selectedText.length > 0 // 选中内容
32
+ shortcut: "Ctrl+C"
33
+ onTriggered: root.copy()
34
+ }
35
+ Action {
36
+ icon.name: "ic_fluent_clipboard_paste_20_regular"
37
+ text: qsTr("Paste")
38
+ enabled: root.editable
39
+ shortcut: "Ctrl+V"
40
+ onTriggered: root.paste()
41
+ }
42
+ Action {
43
+ icon.name: " "
44
+ text: qsTr("Select All")
45
+ shortcut: "Ctrl+A"
46
+ onTriggered: root.selectAll()
47
+ }
48
+ }
49
+
50
+ MouseArea {
51
+ anchors.fill: parent
52
+ acceptedButtons: Qt.RightButton
53
+ propagateComposedEvents: true
54
+ onPressed: (mouse) => {
55
+ if (mouse.button === Qt.RightButton)
56
+ contextMenu.popup(mouse.scenePosition)
57
+ mouse.accepted = false
58
+ }
59
+
60
+ // 鼠标
61
+ cursorShape: Qt.IBeamCursor
62
+ }
63
+
16
64
  // 背景 / Background //
17
65
  background: Rectangle {
18
66
  id: background
RinUI/components/qmldir CHANGED
@@ -14,6 +14,7 @@ ScrollView 1.0 ScrollView.qml
14
14
 
15
15
  # Basic Input
16
16
  Button 1.0 BasicInput/Button.qml
17
+ RoundButton 1.0 BasicInput/RoundButton.qml
17
18
  HyperlinkButton 1.0 BasicInput/HyperlinkButton.qml
18
19
  Slider 1.0 BasicInput/Slider.qml
19
20
  Hyperlink 1.0 BasicInput/Hyperlink.qml
RinUI/core/config.py CHANGED
@@ -1,6 +1,7 @@
1
1
  import os
2
2
  import json
3
3
  import platform
4
+ import sys
4
5
  from enum import Enum
5
6
 
6
7
 
@@ -22,8 +23,18 @@ def is_windows():
22
23
  return platform.system() == 'Windows'
23
24
 
24
25
 
26
+ def resource_path(relative_path):
27
+ """兼容 PyInstaller 打包和开发环境的路径"""
28
+ if hasattr(sys, '_MEIPASS'):
29
+ return os.path.join(sys._MEIPASS, relative_path)
30
+ return os.path.abspath(relative_path)
31
+
32
+
33
+ rinui_core_path = os.path.abspath(os.path.dirname(__file__)) # RinUI/core 目录
34
+
25
35
  BASE_DIR = os.path.abspath(os.getcwd())
26
36
  PATH = os.path.join(BASE_DIR, "RinUI/config")
37
+ RINUI_PATH = resource_path(os.path.join(rinui_core_path, "../../")) # 使用 resource_path 处理路径
27
38
  DEFAULT_CONFIG = {
28
39
  "language": "zh_CN",
29
40
  "theme": {
RinUI/core/launcher.py CHANGED
@@ -1,18 +1,12 @@
1
1
  import os
2
2
  import sys
3
3
 
4
- from PySide6.QtCore import QCoreApplication, QObject
4
+ from PySide6.QtCore import QCoreApplication, QUrl
5
+ from PySide6.QtGui import QIcon
5
6
  from PySide6.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
6
7
  from PySide6.QtQml import QQmlApplicationEngine
7
8
  from .theme import ThemeManager
8
- from .config import BackdropEffect, is_windows, Theme
9
-
10
-
11
- def resource_path(relative_path):
12
- """兼容 PyInstaller 打包和开发环境的路径"""
13
- if hasattr(sys, '_MEIPASS'):
14
- return os.path.join(sys._MEIPASS, relative_path)
15
- return os.path.abspath(relative_path)
9
+ from .config import BackdropEffect, is_windows, Theme, RINUI_PATH
16
10
 
17
11
 
18
12
  class TestWindow(QWidget):
@@ -29,14 +23,7 @@ class TestWindow(QWidget):
29
23
  self.resize(400, 300)
30
24
 
31
25
 
32
- class RinUIWindow(QObject):
33
- # _instance = None
34
- #
35
- # def __new__(cls, *args, **kwargs): # 单例模式管理
36
- # if cls._instance is None:
37
- # cls._instance = super().__new__(cls)
38
- # return cls._instance
39
-
26
+ class RinUIWindow:
40
27
  def __init__(self, qml_path: str):
41
28
  """
42
29
  创建基于 RinUI 的 QML 应用程序。
@@ -64,8 +51,7 @@ class RinUIWindow(QObject):
64
51
  def _setup_application(self):
65
52
  """Setup"""
66
53
  # RInUI 模块
67
- rinui_path = os.path.abspath(os.path.dirname(__file__)) # RinUI/core 目录
68
- rinui_import_path = resource_path(os.path.join(rinui_path, "../../")) # 使用 resource_path 处理路径
54
+ rinui_import_path = RINUI_PATH
69
55
  print(f"UI Module Path: {rinui_import_path}")
70
56
 
71
57
  if os.path.exists(rinui_import_path):
@@ -89,6 +75,19 @@ class RinUIWindow(QObject):
89
75
  self.theme_manager.set_window(self.root_window)
90
76
  self._apply_windows_effects() if self.autoSetWindowsEffect else None
91
77
 
78
+ def setIcon(self, path: str) -> None:
79
+ """
80
+ 设置应用程序图标。
81
+ :param path: str, 图标路径
82
+ :return:
83
+ """
84
+ app_instance = QApplication.instance()
85
+ if app_instance:
86
+ app_instance.setWindowIcon(QIcon(path)) # 设置应用程序图标
87
+ self.root_window.setProperty('icon', QUrl.fromLocalFile(path))
88
+ else:
89
+ raise RuntimeError("Cannot set icon before QApplication is created.")
90
+
92
91
  def _apply_windows_effects(self):
93
92
  """
94
93
  Apply Windows effects to the window.
RinUI/qmldir CHANGED
@@ -8,6 +8,8 @@ FocusIndicator 1.0 components/FocusIndicator.qml
8
8
 
9
9
  # Basic Input
10
10
  Button 1.0 components/BasicInput/Button.qml
11
+ RoundButton 1.0 components/BasicInput/RoundButton.qml
12
+ PillButton 1.0 components/BasicInput/PillButton.qml
11
13
  DropDownButton 1.0 components/BasicInput/DropDownButton.qml
12
14
  ToggleButton 1.0 components/BasicInput/ToggleButton.qml
13
15
  ToolButton 1.0 components/BasicInput/ToolButton.qml
@@ -26,6 +28,7 @@ PickerView 1.0 components/DateAndTime/PickerView.qml
26
28
  # Dialogs & Flyouts
27
29
  Dialog 1.0 components/DialogsAndFlyouts/Dialog.qml
28
30
  Flyout 1.0 components/DialogsAndFlyouts/Flyout.qml
31
+ TeachingTip 1.0 components/DialogsAndFlyouts/TeachingTip.qml
29
32
 
30
33
  # Layout
31
34
  Expander 1.0 components/Layout/Expander.qml
@@ -36,6 +39,7 @@ SettingItem 1.0 components/Layout/SettingItem.qml
36
39
  # Text
37
40
  Text 1.0 components/Text/Text.qml
38
41
  TextField 1.0 components/Text/TextField.qml
42
+ TextArea 1.0 components/Text/TextArea.qml
39
43
  SpinBox 1.0 components/Text/SpinBox.qml
40
44
  TextInput 1.0 components/Text/TextInput.qml
41
45
 
@@ -57,6 +57,10 @@ Item {
57
57
 
58
58
  onPressed: {
59
59
  clickPos = Qt.point(mouseX, mouseY)
60
+
61
+ if (!(Qt.platform.os !== "windows" || Qt.platform.os !== "winrt") && !Theme.isThemeMgrInitialized()) {
62
+ return // 在win环境使用原生方法拖拽
63
+ }
60
64
  Theme.sendDragWindowEvent(window)
61
65
  }
62
66
  onDoubleClicked: toggleMaximized()
@@ -3,6 +3,7 @@ import QtQuick.Controls 2.15
3
3
  import QtQuick.Layouts 2.15
4
4
  import "../../windows"
5
5
  import "../../themes"
6
+ import "../../utils"
6
7
 
7
8
  Window {
8
9
  id: baseWindow
@@ -11,7 +12,6 @@ Window {
11
12
 
12
13
  color: frameless ? "transparent" : Theme.currentTheme.colors.backgroundColor
13
14
  property bool frameless: false
14
- property alias floatLayer: baseWindow.floatLayer
15
15
  default property alias content: baseWindow.data
16
16
  property int titleBarHeight: Theme.currentTheme.appearance.dialogTitleBarHeight
17
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: RinUI
3
- Version: 0.0.9.2
3
+ Version: 0.0.10.1
4
4
  Summary: A Fluent Design-like UI library for Qt Quick (QML) based on PySide6
5
5
  Author-email: RinLit <lintu233_qwq@icloud.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -1,6 +1,6 @@
1
- RinUI/__init__.py,sha256=H3nKEPLLxgd44BOpJfIYjKdK-yy4HBlG-IOF202lOm4,71
2
- RinUI/qmldir,sha256=ND5qHmGeJxF43wUc5RwdRKkLyzf5WS1SPA8MegfIzG8,3235
3
- RinUI/__pycache__/__init__.cpython-38.pyc,sha256=Y8itDY9LWcl5Do0gmfFjabzkEiXPpV_eI6frkSHiAgk,222
1
+ RinUI/__init__.py,sha256=P1Pu8kQzTikIsIIJmukwaSMmpUG_r5fxnqgjAux3l0s,70
2
+ RinUI/qmldir,sha256=Wml5zu7-V4EYjyDzCpJaEJxTDQOhigwnFQm7ab2k4lo,3448
3
+ RinUI/__pycache__/__init__.cpython-38.pyc,sha256=Q-pcVUmh-8iobgHu0oaBXsCfhJCw7rvRiaQFjLI6H6M,221
4
4
  RinUI/assets/fonts/FluentSystemIcons-Index.js,sha256=XCgcjUnuZjdsjXUu37llGDpQW8sSJbxwmh-hG6UTB2A,258677
5
5
  RinUI/assets/fonts/FluentSystemIcons-Resizable.ttf,sha256=-IfF3NT1eODD0vOLVLC0Z2U5bsR6woSQAziX3qD1TqU,1447252
6
6
  RinUI/assets/img/default_app_icon.png,sha256=hegCgNlRFhVCTBhrY3ESzPeMWlkZOe5IgXsHWeTArPQ,93928
@@ -12,13 +12,15 @@ RinUI/components/Indicator.qml,sha256=yIC96KZo6vhXE1aEX7wz2m2iwb8KXBWCqgxKrsLomT
12
12
  RinUI/components/ScrollBar.qml,sha256=01Qo9eAYRzEQhIU4oD2E7lCLdFGCmekhO32z-DCqo4o,7118
13
13
  RinUI/components/ScrollView.qml,sha256=S6GuZm9lptsZduH-xVDGKkS3BqGqi8EmyiBFvbVFAgM,275
14
14
  RinUI/components/Shadow.qml,sha256=YmVgAPAIY69ur57EDMDKMihx6ucI973SWyff01L8r0s,1638
15
- RinUI/components/qmldir,sha256=EBA8y0QoGI9-ed0DAl-q8AY_m3CAMH76OVob0Xx2rug,2197
15
+ RinUI/components/qmldir,sha256=TfQyDUQZFpKilIHajbrHCU4UQBOH3IW1AVpDUVLKekk,2241
16
16
  RinUI/components/BasicInput/Button.qml,sha256=vyi214-iYvp82u5pg2xHWJwjKifZKSt2NXTuvYlRFHg,5430
17
17
  RinUI/components/BasicInput/CheckBox.qml,sha256=hFSaKw5LLqSVZXTASQ5csCkTHUOBRZ700v4hm6uEfFM,3183
18
18
  RinUI/components/BasicInput/ComboBox.qml,sha256=OOJSoLGBnNJ8O--htkZfT8VDu7jAwHYbS-B_NB9J-SA,4748
19
19
  RinUI/components/BasicInput/DropDownButton.qml,sha256=loDUw_k9GeBUFSgb3McRIdCuLxptoj5Vc8jxinJMoCE,410
20
20
  RinUI/components/BasicInput/Hyperlink.qml,sha256=WGFuTNCD8xfvdKDMgohKT4bvU8_qK1iv5SJYeqJk4Kg,346
21
+ RinUI/components/BasicInput/PillButton.qml,sha256=D5P4HKd99OVwKMYerm1omo6obleCur_HO_Y-WF13b28,215
21
22
  RinUI/components/BasicInput/RadioButton.qml,sha256=lck3xdKO778ukm5jjHflGNXnDsxdBPMHTisD9GnQYS0,3129
23
+ RinUI/components/BasicInput/RoundButton.qml,sha256=Ex-NnD3qcYQqdreL-Gv8NOYkv0u7b67fPCu4soZGCEM,1048
22
24
  RinUI/components/BasicInput/Slider.qml,sha256=XJ0gXqHrBffF0PNDpx7TWxFTyZ7NAOxLU8Hg4c3XV9Y,7157
23
25
  RinUI/components/BasicInput/Switch.qml,sha256=6CMQKKAs7tdIT_bdTplUk50bS7ywunYtqfT2v2sOhrI,3359
24
26
  RinUI/components/BasicInput/ToggleButton.qml,sha256=y3bm0agSYT1v4Jzs_-JgAFNf5b_oBzliUyL6QChM6rA,210
@@ -40,9 +42,9 @@ RinUI/components/ListAndCollections/ListViewDelegate.qml,sha256=AQAsrtleMO5t3601
40
42
  RinUI/components/ListAndCollections/SettingCard.qml,sha256=CaR-MQnMIFjwnVM0VhI2IqSenBNtz_kGA4ExzxAjmLE,2208
41
43
  RinUI/components/ListAndCollections/TableView.qml,sha256=RJZQPb4yIdcE1jUJ4iQOHDSB5l4O3s7g3oKSuRaubI0,2232
42
44
  RinUI/components/ListAndCollections/TableViewDelegate.qml,sha256=lH19q3Vx9X6TYhgnRlwi7RGnAtb_k3dBbgJZlnQnEmE,2371
43
- RinUI/components/MenusAndToolbars/Menu.qml,sha256=otaZk53Yv-A9lcWsBLz8KASXYb1nd3_JPpPBy5xs4DM,4567
45
+ RinUI/components/MenusAndToolbars/Menu.qml,sha256=AbnOkFR6nweWIBe1A4dsnZmb3eHHjqfokMVRNed-PPU,4653
44
46
  RinUI/components/MenusAndToolbars/MenuBar.qml,sha256=HR1pSTqklkLFiGkOTGxgRO9WFtsKRlxAT1sSzqYVP7Q,1097
45
- RinUI/components/MenusAndToolbars/MenuItem.qml,sha256=bxQqzotp3DhBS7MiWjqGFinF8UD1v0-yB8qWrRp-pmI,3661
47
+ RinUI/components/MenusAndToolbars/MenuItem.qml,sha256=XghKdgYVksNKS1zufNtE96c0pnTQg6Dig_8ZNGqip84,3915
46
48
  RinUI/components/MenusAndToolbars/MenuItemGroup.qml,sha256=ywDv4KypNoTQbiDTeIedBj7Dfvcy9jdFtwwK7hSaozE,1057
47
49
  RinUI/components/MenusAndToolbars/MenuSeparator.qml,sha256=Z2G339bFrwOzRpWSqqahjmgJL5u-k-sw3g1uAHXerxQ,270
48
50
  RinUI/components/MenusAndToolbars/ToolSeparator.qml,sha256=rZXXNnvKw3yZVptj1bOronPDkiYCId1ffAt-a3t-ea4,430
@@ -53,22 +55,23 @@ RinUI/components/Navigation/NavigationSubItem.qml,sha256=Xap5EX41SWPOIzvd9FmTR4-
53
55
  RinUI/components/Navigation/NavigationView.qml,sha256=8RQh88UbCBvxL9FQDnnMznCy0PR2kAE6-ppudzZQj_k,7496
54
56
  RinUI/components/Navigation/SelectorBar.qml,sha256=ivxG2N0vHKRQ0anRRF9HFlvHlODH34ZOh_hVWuieG2E,1835
55
57
  RinUI/components/StatusAndInfo/InfoBadge.qml,sha256=AmyrUwPLP62x83mFlZu6aio7DFOtVK6mKhPVMVBjpQw,2457
56
- RinUI/components/StatusAndInfo/InfoBar.qml,sha256=e_nEX7HG9HzarTpLg-bB98zQZ82G6FpzWNbyLD3o5o8,7558
58
+ RinUI/components/StatusAndInfo/InfoBar.qml,sha256=LlW1ObaCOyBs6P5j8oNUSDfGxiXnP6m_jv1HLpK6S-Q,7728
57
59
  RinUI/components/StatusAndInfo/ProgressBar.qml,sha256=RAivKVM8C3JcQFjR6VZPz0H7XqWpSPq5G9qfnh2ABmQ,3515
58
60
  RinUI/components/StatusAndInfo/Toast.qml,sha256=9T8i9JswzGEXZM8CeZbwWsILEbzymy2ZaPwJEUBXXTw,7051
59
61
  RinUI/components/StatusAndInfo/ToolTip.qml,sha256=js0t8IJ6bnYt8JHHMQwS49MQOhaBjLNYP_libFbZROk,2757
60
62
  RinUI/components/Text/SpinBox.qml,sha256=YC1CjlHauP081qtseFQuSDNCUsCnCgtjh8nfgPqCZfU,4229
61
63
  RinUI/components/Text/Text.qml,sha256=-VaPy0W4d8mE6C1crSA0ADReKdA_NlghxaS5iV_8RYg,1758
62
- RinUI/components/Text/TextField.qml,sha256=yZeXX4TNbUEixB43uZ6X4vcpLnMplmIO1bqsFAJei1c,3160
64
+ RinUI/components/Text/TextArea.qml,sha256=BQmJIUHyWuTgTr4FP1XvFfGDFwt5bTT8rZ-v_eam-O8,4758
65
+ RinUI/components/Text/TextField.qml,sha256=2S6x5iUWyemwm5vlywpK6YHy_QAezfZnznVVHDignH8,4570
63
66
  RinUI/components/Text/TextInput.qml,sha256=dShTgTHPgZcwy4qI-fCxXtBBcR4ebkl94hipq5Nadn4,1210
64
67
  RinUI/config/rin_ui.json,sha256=rDCS0TVFt1VowGlcW_jqOM81DWwkV7S8Z5rae2p4TSk,149
65
68
  RinUI/core/__init__.py,sha256=lm9MTtS7ZrvwpRDXatPehvJSnLPKnet4MY3R5T69kxM,147
66
- RinUI/core/config.py,sha256=n8PLI_t7vpM5kbywmcNgw7tixGgIgf4p8C2eaQk2KDs,3116
67
- RinUI/core/launcher.py,sha256=ayTA4hT9A7ZvWpYv6sGxPRfbLLBQyUax54V_YKdhGxY,5206
69
+ RinUI/core/config.py,sha256=l4LZZ54XsP6r7ZmhslgxonrTFX16qOojtKejILwJsv8,3554
70
+ RinUI/core/launcher.py,sha256=qRKdBqLYmM4_ZqMeFl-6tBkpkqKEjSvgtqDf5zfiJE0,5119
68
71
  RinUI/core/theme.py,sha256=q8vqq5LP1zlGCLMmOfNQv47qcMtoDYqm0J7HwIC74g4,11203
69
- RinUI/core/__pycache__/__init__.cpython-38.pyc,sha256=vaddDk6APcPCgXCXDFxYhxCjErIB9R1Lo_DKZ5WEPL4,362
70
- RinUI/core/__pycache__/config.cpython-38.pyc,sha256=CfTGNkyEFqGAKwrMboLd29BUk8Ddu6wbSF13dyoXbnE,3752
71
- RinUI/core/__pycache__/launcher.cpython-38.pyc,sha256=WZDsMOmgv03x4uI93ccsDHVRhRIwZC_1cEp0xQvB134,5171
72
+ RinUI/core/__pycache__/__init__.cpython-38.pyc,sha256=UVtd9E2Qhoc6XOdcEVXncZHsI4yETMhwEaWxB6kw8Qg,362
73
+ RinUI/core/__pycache__/config.cpython-38.pyc,sha256=Zh8NQ7EoG4Y_fMfu3UJLOUJP2E-sitgYbfbZ_2x-Js0,4122
74
+ RinUI/core/__pycache__/launcher.cpython-38.pyc,sha256=VY7h9U7tS1HuHm2J2oZCt2mHExeJAa5O0yGxwoADXJA,5336
72
75
  RinUI/core/__pycache__/theme.cpython-38.pyc,sha256=CqxoFJO4dwpFfdqWnD5FlCqMEj_xWMvayoFaQCpvf7I,10041
73
76
  RinUI/hooks/__init__.py,sha256=zer67JRQ-h9uvQmutYU2Us5oBjSJnBVzgR1Sl_5aPF0,77
74
77
  RinUI/hooks/hook-RinUI.py,sha256=9DW9x8zgpEsZpaAAUW-0LE_B69od1wBcUviVRnrAfMI,119
@@ -88,15 +91,15 @@ RinUI/windows/CtrlBtn.qml,sha256=R4c_ZQxv2SFNnuOsCnq0_dH3THEQkZVl41ZFkVG8IR0,339
88
91
  RinUI/windows/FluentPage.qml,sha256=UBhBZcQbO5hJNmXlOLlDVWSVYBlu73wa1CAKlxgjows,2840
89
92
  RinUI/windows/FluentWindow.qml,sha256=3GkWomOiS1sGPcQ7SQZxl65v-nIIbgig_M2tjy-WQq0,890
90
93
  RinUI/windows/FluentWindowBase.qml,sha256=vsVnvkO_RshTEPQ_bKFEjIzJFJnAR11vDi0m9akF_PI,4822
91
- RinUI/windows/TitleBar.qml,sha256=nDMgvN9JDdywZX81dCwH3f90VQofhQNxVdQWEKSGZrg,3665
94
+ RinUI/windows/TitleBar.qml,sha256=Vs0LR1ZW5kTVbkJpIFvH5uUGVWj2Gjtjq25XmF8TJK8,3875
92
95
  RinUI/windows/qmldir,sha256=8zVLwFf2mHV3QKp13YnR6OkayRpZl7bHpxSdRdBthK4,212
93
96
  RinUI/windows/window/ApplicationWindow.qml,sha256=sVgqmUEk0bh0QfmF5trs7-W3FaEdYUIYDx7Tv5Pdeww,196
94
- RinUI/windows/window/Window.qml,sha256=CSaIgozsb7GeqOsRhTlm_n0XqwFqt9oMlOwaIp1ykCc,3635
95
- rinui-0.0.9.2.data/data/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
96
- rinui-0.0.9.2.data/data/README.md,sha256=gx8GTGDQ3Kw1HJVjgYd0k77CLdLxAdEQL9vZZJde08o,2980
97
- rinui-0.0.9.2.dist-info/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
98
- rinui-0.0.9.2.dist-info/METADATA,sha256=NW6tiGG34sw_J5Gd0BG30bX7M99eVH47Tp-ZJJQenO0,3520
99
- rinui-0.0.9.2.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
100
- rinui-0.0.9.2.dist-info/entry_points.txt,sha256=taxuZYCggoQa2LPubwcurQYRjBRC4cNYOjWaqOYZVxw,54
101
- rinui-0.0.9.2.dist-info/top_level.txt,sha256=vKKjXBXEw5OFRIzTxZWUC5ZOj0CK5e3atbymBB4eJ6w,6
102
- rinui-0.0.9.2.dist-info/RECORD,,
97
+ RinUI/windows/window/Window.qml,sha256=hQ6aPNv37my-A1cB3EwrxKr8HeYzQqv2LFlS8XCdqto,3603
98
+ rinui-0.0.10.1.data/data/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
99
+ rinui-0.0.10.1.data/data/README.md,sha256=gx8GTGDQ3Kw1HJVjgYd0k77CLdLxAdEQL9vZZJde08o,2980
100
+ rinui-0.0.10.1.dist-info/LICENSE,sha256=5tTvyBFn2yeDG5EfIkn4FRJKHXNKRomDVGxssfzXtqg,1084
101
+ rinui-0.0.10.1.dist-info/METADATA,sha256=2PFX3hcvxYXB40Iusz85g8rdJj2AZEW99HcP41jtyio,3521
102
+ rinui-0.0.10.1.dist-info/WHEEL,sha256=iAkIy5fosb7FzIOwONchHf19Qu7_1wCWyFNR5gu9nU0,91
103
+ rinui-0.0.10.1.dist-info/entry_points.txt,sha256=taxuZYCggoQa2LPubwcurQYRjBRC4cNYOjWaqOYZVxw,54
104
+ rinui-0.0.10.1.dist-info/top_level.txt,sha256=vKKjXBXEw5OFRIzTxZWUC5ZOj0CK5e3atbymBB4eJ6w,6
105
+ rinui-0.0.10.1.dist-info/RECORD,,
File without changes