RinUI 0.0.11__py3-none-any.whl → 0.1.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.
Files changed (115) hide show
  1. RinUI/__init__.py +4 -4
  2. RinUI/assets/fonts/FluentSystemIcons-Index.js +5255 -5255
  3. RinUI/assets/img/default_app_icon.png +0 -0
  4. RinUI/components/Base.qml +78 -78
  5. RinUI/components/BasicInput/Button.qml +146 -147
  6. RinUI/components/BasicInput/CheckBox.qml +98 -98
  7. RinUI/components/BasicInput/ComboBox.qml +159 -159
  8. RinUI/components/BasicInput/DropDownButton.qml +20 -20
  9. RinUI/components/BasicInput/Hyperlink.qml +17 -17
  10. RinUI/components/BasicInput/PillButton.qml +10 -10
  11. RinUI/components/BasicInput/RadioButton.qml +94 -94
  12. RinUI/components/BasicInput/RoundButton.qml +26 -26
  13. RinUI/components/BasicInput/Slider.qml +212 -212
  14. RinUI/components/BasicInput/Switch.qml +101 -101
  15. RinUI/components/BasicInput/ToggleButton.qml +10 -10
  16. RinUI/components/BasicInput/ToolButton.qml +30 -30
  17. RinUI/components/ContextMenu.qml +183 -183
  18. RinUI/components/DateAndTime/DatePicker.qml +142 -140
  19. RinUI/components/DateAndTime/PickerView.qml +223 -223
  20. RinUI/components/DateAndTime/TimePicker.qml +114 -114
  21. RinUI/components/DialogsAndFlyouts/Dialog.qml +106 -106
  22. RinUI/components/DialogsAndFlyouts/DialogButtonBox.qml +47 -47
  23. RinUI/components/DialogsAndFlyouts/Flyout.qml +87 -144
  24. RinUI/components/DialogsAndFlyouts/Popup.qml +110 -106
  25. RinUI/components/FocusIndicator.qml +33 -33
  26. RinUI/components/IconWidget.qml +52 -52
  27. RinUI/components/Indicator.qml +89 -89
  28. RinUI/components/Layout/Expander.qml +159 -159
  29. RinUI/components/Layout/SettingExpander.qml +66 -66
  30. RinUI/components/Layout/SettingItem.qml +70 -70
  31. RinUI/components/ListAndCollections/Clip.qml +21 -21
  32. RinUI/components/ListAndCollections/Frame.qml +43 -43
  33. RinUI/components/ListAndCollections/ListView.qml +104 -104
  34. RinUI/components/ListAndCollections/ListViewDelegate.qml +82 -82
  35. RinUI/components/ListAndCollections/SettingCard.qml +72 -72
  36. RinUI/components/ListAndCollections/TableView.qml +81 -81
  37. RinUI/components/ListAndCollections/TableViewDelegate.qml +88 -88
  38. RinUI/components/Media/Avatar.qml +83 -0
  39. RinUI/components/MenusAndToolbars/Menu.qml +150 -150
  40. RinUI/components/MenusAndToolbars/MenuBar.qml +42 -42
  41. RinUI/components/MenusAndToolbars/MenuItem.qml +131 -131
  42. RinUI/components/MenusAndToolbars/MenuItemGroup.qml +43 -43
  43. RinUI/components/MenusAndToolbars/MenuSeparator.qml +13 -13
  44. RinUI/components/MenusAndToolbars/TextInputMenu.qml +37 -37
  45. RinUI/components/MenusAndToolbars/ToolSeparator.qml +16 -16
  46. RinUI/components/Navigation/ErrorPage.qml +48 -48
  47. RinUI/components/Navigation/NavigationBar.qml +179 -179
  48. RinUI/components/Navigation/NavigationItem.qml +193 -193
  49. RinUI/components/Navigation/NavigationSubItem.qml +103 -103
  50. RinUI/components/Navigation/NavigationView.qml +228 -227
  51. RinUI/components/Navigation/Segmented.qml +17 -0
  52. RinUI/components/Navigation/SegmentedItem.qml +108 -0
  53. RinUI/components/Navigation/SelectorBar.qml +12 -57
  54. RinUI/components/Navigation/SelectorBarItem.qml +89 -0
  55. RinUI/components/ScrollBar.qml +204 -204
  56. RinUI/components/ScrollView.qml +12 -12
  57. RinUI/components/Shadow.qml +47 -47
  58. RinUI/components/StatusAndInfo/InfoBadge.qml +77 -77
  59. RinUI/components/StatusAndInfo/InfoBar.qml +256 -251
  60. RinUI/components/StatusAndInfo/ProgressBar.qml +126 -126
  61. RinUI/components/StatusAndInfo/ProgressRing.qml +149 -0
  62. RinUI/components/StatusAndInfo/Toast.qml +236 -236
  63. RinUI/components/StatusAndInfo/ToolTip.qml +93 -93
  64. RinUI/components/Text/SpinBox.qml +150 -133
  65. RinUI/components/Text/Text.qml +44 -44
  66. RinUI/components/Text/TextArea.qml +117 -117
  67. RinUI/components/Text/TextField.qml +113 -113
  68. RinUI/components/Text/TextInput.qml +47 -47
  69. RinUI/components/qmldir +80 -77
  70. RinUI/core/__init__.py +4 -4
  71. RinUI/core/config.py +129 -129
  72. RinUI/core/launcher.py +129 -129
  73. RinUI/core/theme.py +339 -339
  74. RinUI/core/translator.py +25 -25
  75. RinUI/hooks/__init__.py +3 -3
  76. RinUI/hooks/hook-RinUI.py +3 -3
  77. RinUI/qmldir +108 -97
  78. RinUI/themes/Appearance.qml +36 -0
  79. RinUI/themes/Colors.qml +36 -0
  80. RinUI/themes/dark.qml +145 -136
  81. RinUI/themes/light.qml +145 -136
  82. RinUI/themes/qmldir +9 -6
  83. RinUI/themes/theme.qml +151 -149
  84. RinUI/themes/utils.qml +37 -37
  85. RinUI/utils/Animation.qml +12 -12
  86. RinUI/utils/FloatLayer.qml +132 -123
  87. RinUI/utils/FontIconLoader.qml +13 -13
  88. RinUI/utils/Position.qml +19 -19
  89. RinUI/utils/Severity.qml +13 -13
  90. RinUI/utils/Typography.qml +17 -17
  91. RinUI/utils/qmldir +4 -4
  92. RinUI/windows/CtrlBtn.qml +118 -118
  93. RinUI/windows/FluentPage.qml +92 -92
  94. RinUI/windows/FluentWindow.qml +31 -30
  95. RinUI/windows/FluentWindowBase.qml +158 -158
  96. RinUI/windows/TitleBar.qml +135 -135
  97. RinUI/windows/qmldir +7 -7
  98. RinUI/windows/window/ApplicationWindow.qml +8 -8
  99. RinUI/windows/window/Window.qml +118 -118
  100. {rinui-0.0.11.data → rinui-0.1.1.data}/data/LICENSE +21 -21
  101. {rinui-0.0.11.data → rinui-0.1.1.data}/data/README.md +100 -97
  102. {rinui-0.0.11.dist-info → rinui-0.1.1.dist-info}/METADATA +116 -112
  103. rinui-0.1.1.dist-info/RECORD +112 -0
  104. {rinui-0.0.11.dist-info → rinui-0.1.1.dist-info}/WHEEL +1 -1
  105. {rinui-0.0.11.dist-info → rinui-0.1.1.dist-info/licenses}/LICENSE +21 -21
  106. RinUI/__pycache__/__init__.cpython-38.pyc +0 -0
  107. RinUI/config/rin_ui.json +0 -8
  108. RinUI/core/__pycache__/__init__.cpython-38.pyc +0 -0
  109. RinUI/core/__pycache__/config.cpython-38.pyc +0 -0
  110. RinUI/core/__pycache__/launcher.cpython-38.pyc +0 -0
  111. RinUI/core/__pycache__/theme.cpython-38.pyc +0 -0
  112. RinUI/core/__pycache__/translator.cpython-38.pyc +0 -0
  113. rinui-0.0.11.dist-info/RECORD +0 -112
  114. {rinui-0.0.11.dist-info → rinui-0.1.1.dist-info}/entry_points.txt +0 -0
  115. {rinui-0.0.11.dist-info → rinui-0.1.1.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
  }