RinUI 0.1.0__py3-none-any.whl → 0.1.1.post1__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.
Files changed (114) hide show
  1. RinUI/__init__.py +4 -4
  2. RinUI/assets/fonts/FluentSystemIcons-Index.js +5255 -5255
  3. RinUI/components/Base.qml +78 -78
  4. RinUI/components/BasicInput/Button.qml +146 -146
  5. RinUI/components/BasicInput/CheckBox.qml +98 -98
  6. RinUI/components/BasicInput/ComboBox.qml +159 -159
  7. RinUI/components/BasicInput/DropDownButton.qml +20 -20
  8. RinUI/components/BasicInput/Hyperlink.qml +17 -17
  9. RinUI/components/BasicInput/PillButton.qml +10 -10
  10. RinUI/components/BasicInput/RadioButton.qml +94 -94
  11. RinUI/components/BasicInput/RoundButton.qml +26 -26
  12. RinUI/components/BasicInput/Slider.qml +212 -212
  13. RinUI/components/BasicInput/Switch.qml +101 -101
  14. RinUI/components/BasicInput/ToggleButton.qml +10 -10
  15. RinUI/components/BasicInput/ToolButton.qml +30 -30
  16. RinUI/components/ContextMenu.qml +183 -183
  17. RinUI/components/DateAndTime/DatePicker.qml +142 -140
  18. RinUI/components/DateAndTime/PickerView.qml +223 -223
  19. RinUI/components/DateAndTime/TimePicker.qml +114 -114
  20. RinUI/components/DialogsAndFlyouts/Dialog.qml +106 -106
  21. RinUI/components/DialogsAndFlyouts/DialogButtonBox.qml +47 -47
  22. RinUI/components/DialogsAndFlyouts/Flyout.qml +87 -87
  23. RinUI/components/DialogsAndFlyouts/Popup.qml +110 -106
  24. RinUI/components/FocusIndicator.qml +33 -33
  25. RinUI/components/IconWidget.qml +52 -52
  26. RinUI/components/Indicator.qml +89 -89
  27. RinUI/components/Layout/Expander.qml +159 -159
  28. RinUI/components/Layout/SettingExpander.qml +66 -66
  29. RinUI/components/Layout/SettingItem.qml +70 -70
  30. RinUI/components/ListAndCollections/Clip.qml +21 -21
  31. RinUI/components/ListAndCollections/Frame.qml +43 -43
  32. RinUI/components/ListAndCollections/ListView.qml +104 -104
  33. RinUI/components/ListAndCollections/ListViewDelegate.qml +82 -82
  34. RinUI/components/ListAndCollections/SettingCard.qml +72 -72
  35. RinUI/components/ListAndCollections/TableView.qml +81 -81
  36. RinUI/components/ListAndCollections/TableViewDelegate.qml +88 -88
  37. RinUI/components/Media/Avatar.qml +82 -82
  38. RinUI/components/MenusAndToolbars/Menu.qml +150 -150
  39. RinUI/components/MenusAndToolbars/MenuBar.qml +42 -42
  40. RinUI/components/MenusAndToolbars/MenuItem.qml +131 -131
  41. RinUI/components/MenusAndToolbars/MenuItemGroup.qml +43 -43
  42. RinUI/components/MenusAndToolbars/MenuSeparator.qml +13 -13
  43. RinUI/components/MenusAndToolbars/TextInputMenu.qml +37 -37
  44. RinUI/components/MenusAndToolbars/ToolSeparator.qml +16 -16
  45. RinUI/components/Navigation/ErrorPage.qml +48 -48
  46. RinUI/components/Navigation/NavigationBar.qml +179 -179
  47. RinUI/components/Navigation/NavigationItem.qml +193 -193
  48. RinUI/components/Navigation/NavigationSubItem.qml +103 -103
  49. RinUI/components/Navigation/NavigationView.qml +228 -227
  50. RinUI/components/Navigation/Segmented.qml +16 -16
  51. RinUI/components/Navigation/SegmentedItem.qml +107 -107
  52. RinUI/components/Navigation/SelectorBar.qml +12 -12
  53. RinUI/components/Navigation/SelectorBarItem.qml +88 -88
  54. RinUI/components/ScrollBar.qml +204 -204
  55. RinUI/components/ScrollView.qml +12 -12
  56. RinUI/components/Shadow.qml +47 -47
  57. RinUI/components/StatusAndInfo/InfoBadge.qml +77 -77
  58. RinUI/components/StatusAndInfo/InfoBar.qml +256 -251
  59. RinUI/components/StatusAndInfo/ProgressBar.qml +126 -126
  60. RinUI/components/StatusAndInfo/ProgressRing.qml +149 -0
  61. RinUI/components/StatusAndInfo/Toast.qml +236 -236
  62. RinUI/components/StatusAndInfo/ToolTip.qml +93 -93
  63. RinUI/components/Text/SpinBox.qml +150 -133
  64. RinUI/components/Text/Text.qml +44 -44
  65. RinUI/components/Text/TextArea.qml +117 -117
  66. RinUI/components/Text/TextField.qml +113 -113
  67. RinUI/components/Text/TextInput.qml +47 -47
  68. RinUI/components/qmldir +80 -80
  69. RinUI/core/__init__.py +4 -4
  70. RinUI/core/config.py +129 -129
  71. RinUI/core/launcher.py +129 -129
  72. RinUI/core/theme.py +339 -339
  73. RinUI/core/translator.py +26 -25
  74. RinUI/hooks/__init__.py +3 -3
  75. RinUI/hooks/hook-RinUI.py +3 -3
  76. RinUI/qmldir +108 -104
  77. RinUI/themes/Appearance.qml +36 -0
  78. RinUI/themes/Colors.qml +36 -0
  79. RinUI/themes/dark.qml +145 -145
  80. RinUI/themes/light.qml +145 -145
  81. RinUI/themes/qmldir +9 -6
  82. RinUI/themes/theme.qml +151 -149
  83. RinUI/themes/utils.qml +37 -37
  84. RinUI/utils/Animation.qml +12 -12
  85. RinUI/utils/FloatLayer.qml +132 -123
  86. RinUI/utils/FontIconLoader.qml +13 -13
  87. RinUI/utils/Position.qml +19 -19
  88. RinUI/utils/Severity.qml +13 -13
  89. RinUI/utils/Typography.qml +17 -17
  90. RinUI/utils/qmldir +4 -4
  91. RinUI/windows/CtrlBtn.qml +118 -118
  92. RinUI/windows/FluentPage.qml +92 -92
  93. RinUI/windows/FluentWindow.qml +31 -30
  94. RinUI/windows/FluentWindowBase.qml +158 -158
  95. RinUI/windows/TitleBar.qml +135 -135
  96. RinUI/windows/qmldir +7 -7
  97. RinUI/windows/window/ApplicationWindow.qml +8 -8
  98. RinUI/windows/window/Window.qml +118 -118
  99. {rinui-0.1.0.data → rinui-0.1.1.post1.data}/data/LICENSE +21 -21
  100. {rinui-0.1.0.data → rinui-0.1.1.post1.data}/data/README.md +100 -100
  101. {rinui-0.1.0.dist-info → rinui-0.1.1.post1.dist-info}/METADATA +116 -115
  102. rinui-0.1.1.post1.dist-info/RECORD +112 -0
  103. {rinui-0.1.0.dist-info → rinui-0.1.1.post1.dist-info}/WHEEL +1 -1
  104. {rinui-0.1.0.dist-info → rinui-0.1.1.post1.dist-info/licenses}/LICENSE +21 -21
  105. RinUI/__pycache__/__init__.cpython-38.pyc +0 -0
  106. RinUI/config/rin_ui.json +0 -8
  107. RinUI/core/__pycache__/__init__.cpython-38.pyc +0 -0
  108. RinUI/core/__pycache__/config.cpython-38.pyc +0 -0
  109. RinUI/core/__pycache__/launcher.cpython-38.pyc +0 -0
  110. RinUI/core/__pycache__/theme.cpython-38.pyc +0 -0
  111. RinUI/core/__pycache__/translator.cpython-38.pyc +0 -0
  112. rinui-0.1.0.dist-info/RECORD +0 -116
  113. {rinui-0.1.0.dist-info → rinui-0.1.1.post1.dist-info}/entry_points.txt +0 -0
  114. {rinui-0.1.0.dist-info → rinui-0.1.1.post1.dist-info}/top_level.txt +0 -0
@@ -1,31 +1,31 @@
1
- import QtQuick 2.15
2
- import QtQuick.Controls 2.15
3
- import "../../components"
4
-
5
- Button {
6
- id: toolBtn
7
- // flat: true
8
- property alias size: iconWidget.size
9
- property alias color: iconWidget.color
10
- // width: height * 1
11
-
12
- contentItem: Item {
13
- width: parent.width
14
- height: parent.height
15
- Text {
16
- anchors.centerIn: parent
17
- id: btnText
18
- text: toolBtn.text
19
- }
20
- IconWidget {
21
- id: iconWidget
22
- width: parent.width
23
- height: parent.height
24
- size: 20
25
- icon: toolBtn.icon.name ? toolBtn.icon.name : toolBtn.text
26
- color: icon.color ? icon.color : highlighted ? flat ?
27
- enabled ? Theme.currentTheme.colors.textAccentColor : Theme.currentTheme.colors.textColor :
28
- Theme.currentTheme.colors.textOnAccentColor : Theme.currentTheme.colors.textColor
29
- }
30
- }
1
+ import QtQuick 2.15
2
+ import QtQuick.Controls 2.15
3
+ import "../../components"
4
+
5
+ Button {
6
+ id: toolBtn
7
+ // flat: true
8
+ property alias size: iconWidget.size
9
+ property alias color: iconWidget.color
10
+ // width: height * 1
11
+
12
+ contentItem: Item {
13
+ width: parent.width
14
+ height: parent.height
15
+ Text {
16
+ anchors.centerIn: parent
17
+ id: btnText
18
+ text: toolBtn.text
19
+ }
20
+ IconWidget {
21
+ id: iconWidget
22
+ width: parent.width
23
+ height: parent.height
24
+ size: 20
25
+ icon: toolBtn.icon.name ? toolBtn.icon.name : toolBtn.text
26
+ color: icon.color ? icon.color : highlighted ? flat ?
27
+ enabled ? Theme.currentTheme.colors.textAccentColor : Theme.currentTheme.colors.textColor :
28
+ Theme.currentTheme.colors.textOnAccentColor : Theme.currentTheme.colors.textColor
29
+ }
30
+ }
31
31
  }
@@ -1,184 +1,184 @@
1
- import QtQuick 2.15
2
- import QtQuick.Controls.Basic 2.15
3
- import "../themes"
4
- import "../components"
5
-
6
-
7
- Popup {
8
- id: contextMenu
9
-
10
- // 选中信号 / Signal //
11
- signal itemSelected(int index)
12
-
13
- property alias model: listView.model
14
- property alias currentIndex: listView.currentIndex
15
- property int maxHeight: 300 // 最大高度
16
- property string textRole: ""
17
- property bool keyboardNavigation: false
18
-
19
- implicitWidth: 100
20
- implicitHeight: Math.min(listView.contentHeight + 6, maxHeight)
21
- y: (parent.height - contextMenu.height) / 2
22
- height: implicitHeight // 保持隐式绑定
23
- closePolicy: Popup.CloseOnPressOutside
24
- focus: true
25
-
26
- // 内容 / ListView //
27
- contentItem: ListView {
28
- id: listView
29
- clip: true
30
- focus: true
31
- spacing: 0
32
- anchors.fill: parent // 清除边距
33
- anchors.topMargin: 2
34
- anchors.bottomMargin: 2
35
-
36
- // 垂直滚动条 / Vertical ScrollBar //
37
- ScrollBar.vertical: ScrollBar {
38
- id: scrollBar
39
- policy: ScrollBar.AsNeeded
40
- }
41
- model: control.popup.visible ? control.delegateModel : null
42
-
43
- // 选择器 / Selection //
44
- delegate: ItemDelegate {
45
- id: delegate
46
- width: listView.width
47
- height: text.implicitHeight + 20 // 自适应
48
- highlighted: ListView.isCurrentItem // 当前项高亮
49
- focusPolicy: Qt.StrongFocus
50
-
51
- background: Rectangle {
52
- id: itemBg
53
- anchors.fill: parent
54
- anchors.leftMargin: 5
55
- anchors.rightMargin: 5
56
- anchors.topMargin: 3
57
- radius: Theme.currentTheme.appearance.buttonRadius
58
- color: pressed
59
- ? Theme.currentTheme.colors.subtleTertiaryColor
60
- : (highlighted || hovered)
61
- ? Theme.currentTheme.colors.subtleSecondaryColor
62
- : Theme.currentTheme.colors.subtleColor
63
-
64
- Text {
65
- id: text
66
- anchors.fill: parent
67
- anchors.leftMargin: 11
68
- anchors.rightMargin: 11
69
- anchors.topMargin: 6
70
- anchors.bottomMargin: 8
71
- verticalAlignment: Text.AlignVCenter
72
-
73
- typography: Typography.Body
74
- wrapMode: Text.Wrap
75
- text: model[contextMenu.parent.textRole]
76
- }
77
-
78
- // 选择指示器
79
- Indicator {
80
- currentItemHeight: itemBg.height
81
- visible: highlighted
82
- }
83
-
84
- // accessibility
85
- FocusIndicator {
86
- control: parent
87
- visible: highlighted && keyboardNavigation
88
- }
89
-
90
- Behavior on color { ColorAnimation { duration: Utils.appearanceSpeed; easing.type:Easing.InOutQuart } }
91
- }
92
-
93
- Keys.onUpPressed: {
94
- contextMenu.keyboardNavigation = true
95
- listView.decrementCurrentIndex()
96
- }
97
-
98
- Keys.onDownPressed: {
99
- contextMenu.keyboardNavigation = true
100
- listView.incrementCurrentIndex()
101
- }
102
-
103
- onClicked: {
104
- contextMenu.close()
105
- listView.currentIndex = index
106
- contextMenu.itemSelected(index)
107
- }
108
- }
109
- }
110
-
111
- // 背景 / Background //
112
- background: Rectangle {
113
- id: background
114
- anchors.fill: parent
115
- radius: Theme.currentTheme.appearance.windowRadius
116
- color: Theme.currentTheme.colors.backgroundAcrylicColor
117
- border.color: Theme.currentTheme.colors.controlBorderColor
118
-
119
- // 阴影 / Shadow //
120
- layer.enabled: true
121
- layer.effect: Shadow {
122
- id: shadow
123
- style: "flyout"
124
- source: background
125
- }
126
- }
127
-
128
- // 按钮 / Button //
129
-
130
-
131
- Behavior on y { NumberAnimation { duration: Utils.animationSpeed; easing.type:Easing.InOutQuart } }
132
-
133
- enter: Transition {
134
- ParallelAnimation {
135
- NumberAnimation {
136
- target: contextMenu
137
- property: "opacity"
138
- from: 0
139
- to: 1
140
- duration: 70
141
- easing.type: Easing.InOutQuart
142
- }
143
- // NumberAnimation {
144
- // target: shadow
145
- // property: "opacity"
146
- // from: 0
147
- // to: 1
148
- // duration: 600
149
- // easing.type: Easing.InOutCubic
150
- // }
151
- NumberAnimation {
152
- target: scrollBar
153
- property: "opacity"
154
- from: 0
155
- to: 1
156
- duration: 1000
157
- easing.type: Easing.InOutCubic
158
- }
159
- NumberAnimation {
160
- target: contextMenu
161
- property: "height"
162
- from: 46
163
- to: contextMenu.implicitHeight
164
- duration: Utils.animationSpeedMiddle
165
- easing.type: Easing.OutQuint
166
- onRunningChanged: {
167
- scrollBar.visible = true;
168
- }
169
- }
170
- }
171
- }
172
- exit: Transition {
173
- ParallelAnimation {
174
- NumberAnimation {
175
- target: contextMenu
176
- property: "opacity"
177
- from: 1
178
- to: 0
179
- duration: 150
180
- easing.type: Easing.InOutQuart
181
- }
182
- }
183
- }
1
+ import QtQuick 2.15
2
+ import QtQuick.Controls.Basic 2.15
3
+ import "../themes"
4
+ import "../components"
5
+
6
+
7
+ Popup {
8
+ id: contextMenu
9
+
10
+ // 选中信号 / Signal //
11
+ signal itemSelected(int index)
12
+
13
+ property alias model: listView.model
14
+ property alias currentIndex: listView.currentIndex
15
+ property int maxHeight: 300 // 最大高度
16
+ property string textRole: ""
17
+ property bool keyboardNavigation: false
18
+
19
+ implicitWidth: 100
20
+ implicitHeight: Math.min(listView.contentHeight + 6, maxHeight)
21
+ y: (parent.height - contextMenu.height) / 2
22
+ height: implicitHeight // 保持隐式绑定
23
+ closePolicy: Popup.CloseOnPressOutside
24
+ focus: true
25
+
26
+ // 内容 / ListView //
27
+ contentItem: ListView {
28
+ id: listView
29
+ clip: true
30
+ focus: true
31
+ spacing: 0
32
+ anchors.fill: parent // 清除边距
33
+ anchors.topMargin: 2
34
+ anchors.bottomMargin: 2
35
+
36
+ // 垂直滚动条 / Vertical ScrollBar //
37
+ ScrollBar.vertical: ScrollBar {
38
+ id: scrollBar
39
+ policy: ScrollBar.AsNeeded
40
+ }
41
+ model: control.popup.visible ? control.delegateModel : null
42
+
43
+ // 选择器 / Selection //
44
+ delegate: ItemDelegate {
45
+ id: delegate
46
+ width: listView.width
47
+ height: text.implicitHeight + 20 // 自适应
48
+ highlighted: ListView.isCurrentItem // 当前项高亮
49
+ focusPolicy: Qt.StrongFocus
50
+
51
+ background: Rectangle {
52
+ id: itemBg
53
+ anchors.fill: parent
54
+ anchors.leftMargin: 5
55
+ anchors.rightMargin: 5
56
+ anchors.topMargin: 3
57
+ radius: Theme.currentTheme.appearance.buttonRadius
58
+ color: pressed
59
+ ? Theme.currentTheme.colors.subtleTertiaryColor
60
+ : (highlighted || hovered)
61
+ ? Theme.currentTheme.colors.subtleSecondaryColor
62
+ : Theme.currentTheme.colors.subtleColor
63
+
64
+ Text {
65
+ id: text
66
+ anchors.fill: parent
67
+ anchors.leftMargin: 11
68
+ anchors.rightMargin: 11
69
+ anchors.topMargin: 6
70
+ anchors.bottomMargin: 8
71
+ verticalAlignment: Text.AlignVCenter
72
+
73
+ typography: Typography.Body
74
+ wrapMode: Text.Wrap
75
+ text: model[contextMenu.parent.textRole]
76
+ }
77
+
78
+ // 选择指示器
79
+ Indicator {
80
+ currentItemHeight: itemBg.height
81
+ visible: highlighted
82
+ }
83
+
84
+ // accessibility
85
+ FocusIndicator {
86
+ control: parent
87
+ visible: highlighted && keyboardNavigation
88
+ }
89
+
90
+ Behavior on color { ColorAnimation { duration: Utils.appearanceSpeed; easing.type:Easing.InOutQuart } }
91
+ }
92
+
93
+ Keys.onUpPressed: {
94
+ contextMenu.keyboardNavigation = true
95
+ listView.decrementCurrentIndex()
96
+ }
97
+
98
+ Keys.onDownPressed: {
99
+ contextMenu.keyboardNavigation = true
100
+ listView.incrementCurrentIndex()
101
+ }
102
+
103
+ onClicked: {
104
+ contextMenu.close()
105
+ listView.currentIndex = index
106
+ contextMenu.itemSelected(index)
107
+ }
108
+ }
109
+ }
110
+
111
+ // 背景 / Background //
112
+ background: Rectangle {
113
+ id: background
114
+ anchors.fill: parent
115
+ radius: Theme.currentTheme.appearance.windowRadius
116
+ color: Theme.currentTheme.colors.backgroundAcrylicColor
117
+ border.color: Theme.currentTheme.colors.controlBorderColor
118
+
119
+ // 阴影 / Shadow //
120
+ layer.enabled: true
121
+ layer.effect: Shadow {
122
+ id: shadow
123
+ style: "flyout"
124
+ source: background
125
+ }
126
+ }
127
+
128
+ // 按钮 / Button //
129
+
130
+
131
+ Behavior on y { NumberAnimation { duration: Utils.animationSpeed; easing.type:Easing.InOutQuart } }
132
+
133
+ enter: Transition {
134
+ ParallelAnimation {
135
+ NumberAnimation {
136
+ target: contextMenu
137
+ property: "opacity"
138
+ from: 0
139
+ to: 1
140
+ duration: 70
141
+ easing.type: Easing.InOutQuart
142
+ }
143
+ // NumberAnimation {
144
+ // target: shadow
145
+ // property: "opacity"
146
+ // from: 0
147
+ // to: 1
148
+ // duration: 600
149
+ // easing.type: Easing.InOutCubic
150
+ // }
151
+ NumberAnimation {
152
+ target: scrollBar
153
+ property: "opacity"
154
+ from: 0
155
+ to: 1
156
+ duration: 1000
157
+ easing.type: Easing.InOutCubic
158
+ }
159
+ NumberAnimation {
160
+ target: contextMenu
161
+ property: "height"
162
+ from: 46
163
+ to: contextMenu.implicitHeight
164
+ duration: Utils.animationSpeedMiddle
165
+ easing.type: Easing.OutQuint
166
+ onRunningChanged: {
167
+ scrollBar.visible = true;
168
+ }
169
+ }
170
+ }
171
+ }
172
+ exit: Transition {
173
+ ParallelAnimation {
174
+ NumberAnimation {
175
+ target: contextMenu
176
+ property: "opacity"
177
+ from: 1
178
+ to: 0
179
+ duration: 150
180
+ easing.type: Easing.InOutQuart
181
+ }
182
+ }
183
+ }
184
184
  }