Compare commits

...

3 Commits

Author SHA1 Message Date
朱子楚\zhuzi
8fe4e3b047 update 2024-04-17 22:05:49 +08:00
朱子楚\zhuzi
a443f3a9ba update 2024-04-17 21:39:55 +08:00
朱子楚\zhuzi
1a0f2afee0 update 2024-04-17 15:11:14 +08:00
26 changed files with 241 additions and 183 deletions

View File

@ -91,14 +91,14 @@ jobs:
if: startsWith(github.event.ref, 'refs/tags/')
uses: zhuzichu520/inno-setup-action@v1.0.1
with:
filepath: ./action-cli/InstallerScript.iss
filepath: ./package/InstallerScript.iss
- name: uploadRelease
if: startsWith(github.event.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./action-cli/installer.exe
file: ./package/installer.exe
asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.exe
tag: ${{ github.ref }}
overwrite: true

View File

@ -78,14 +78,14 @@ jobs:
if: startsWith(github.event.ref, 'refs/tags/')
uses: zhuzichu520/inno-setup-action@v1.0.1
with:
filepath: ./action-cli/InstallerScript.iss
filepath: ./package/InstallerScript.iss
- name: uploadRelease
if: startsWith(github.event.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./action-cli/installer.exe
file: ./package/installer.exe
asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.exe
tag: ${{ github.ref }}
overwrite: true

View File

@ -85,14 +85,14 @@ jobs:
if: startsWith(github.event.ref, 'refs/tags/')
uses: zhuzichu520/inno-setup-action@v1.0.1
with:
filepath: ./action-cli/InstallerScript.iss
filepath: ./package/InstallerScript.iss
- name: uploadRelease
if: startsWith(github.event.ref, 'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ./action-cli/installer.exe
file: ./package/installer.exe
asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.exe
tag: ${{ github.ref }}
overwrite: true

4
.gitignore vendored
View File

@ -36,10 +36,8 @@ bin
build
cmake-build-*
.idea
package
example/Version.h
action-cli
dist
*.qm

View File

@ -69,7 +69,7 @@ if (WIN32)
)
configure_file(
${CMAKE_SOURCE_DIR}/.cmake/InstallerScript.iss.in
${CMAKE_SOURCE_DIR}/action-cli/InstallerScript.iss
${CMAKE_SOURCE_DIR}/package/InstallerScript.iss
)
endif ()

View File

@ -551,104 +551,104 @@
<context>
<name>MainWindow</name>
<message>
<location filename="qml/window/MainWindow.qml" line="83"/>
<location filename="qml/window/MainWindow.qml" line="91"/>
<location filename="qml/window/MainWindow.qml" line="87"/>
<location filename="qml/window/MainWindow.qml" line="95"/>
<source>Quit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="84"/>
<location filename="qml/window/MainWindow.qml" line="88"/>
<source>Are you sure you want to exit the program?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="85"/>
<location filename="qml/window/MainWindow.qml" line="89"/>
<source>Minimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="88"/>
<location filename="qml/window/MainWindow.qml" line="92"/>
<source>Friendly Reminder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="88"/>
<location filename="qml/window/MainWindow.qml" line="92"/>
<source>FluentUI is hidden from the tray, click on the tray to activate the window again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="92"/>
<location filename="qml/window/MainWindow.qml" line="336"/>
<location filename="qml/window/MainWindow.qml" line="96"/>
<location filename="qml/window/MainWindow.qml" line="340"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="103"/>
<location filename="qml/window/MainWindow.qml" line="107"/>
<source>Open in Separate Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="200"/>
<location filename="qml/window/MainWindow.qml" line="204"/>
<source>Click Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="210"/>
<location filename="qml/window/MainWindow.qml" line="214"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="301"/>
<location filename="qml/window/MainWindow.qml" line="305"/>
<source>Finish</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="302"/>
<location filename="qml/window/MainWindow.qml" line="306"/>
<source>Next</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="303"/>
<location filename="qml/window/MainWindow.qml" line="307"/>
<source>Previous</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="307"/>
<location filename="qml/window/MainWindow.qml" line="311"/>
<source>Dark Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="307"/>
<location filename="qml/window/MainWindow.qml" line="311"/>
<source>Here you can switch to night mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="309"/>
<location filename="qml/window/MainWindow.qml" line="313"/>
<source>Hide Easter eggs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="309"/>
<location filename="qml/window/MainWindow.qml" line="313"/>
<source>Try a few more clicks!!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="333"/>
<location filename="qml/window/MainWindow.qml" line="337"/>
<source>Upgrade Tips</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="334"/>
<location filename="qml/window/MainWindow.qml" line="338"/>
<source>FluentUI is currently up to date </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="334"/>
<location filename="qml/window/MainWindow.qml" line="338"/>
<source> -- The current app version</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="334"/>
<location filename="qml/window/MainWindow.qml" line="338"/>
<source>
Now go and download the new version
@ -657,17 +657,17 @@ Updated content:
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="337"/>
<location filename="qml/window/MainWindow.qml" line="341"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="364"/>
<location filename="qml/window/MainWindow.qml" line="368"/>
<source>The current version is already the latest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="371"/>
<location filename="qml/window/MainWindow.qml" line="375"/>
<source>The network is abnormal</source>
<translation type="unfinished"></translation>
</message>
@ -1343,22 +1343,22 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
<context>
<name>T_Home</name>
<message>
<location filename="qml/page/T_Home.qml" line="23"/>
<location filename="qml/page/T_Home.qml" line="19"/>
<source>FluentUI GitHub</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_Home.qml" line="24"/>
<location filename="qml/page/T_Home.qml" line="20"/>
<source>The latest FluentUI controls and styles for your applications.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_Home.qml" line="32"/>
<location filename="qml/page/T_Home.qml" line="28"/>
<source>FluentUI Initializr</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_Home.qml" line="33"/>
<location filename="qml/page/T_Home.qml" line="29"/>
<source>FluentUI Initializr is a Tool that helps you create and customize Fluent UI projects with various options.</source>
<translation type="unfinished"></translation>
</message>
@ -2394,22 +2394,22 @@ Some contents...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="185"/>
<location filename="qml/page/T_TreeView.qml" line="183"/>
<source>Title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="189"/>
<location filename="qml/page/T_TreeView.qml" line="187"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="193"/>
<location filename="qml/page/T_TreeView.qml" line="191"/>
<source>Avatar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="197"/>
<location filename="qml/page/T_TreeView.qml" line="195"/>
<source>Address</source>
<translation type="unfinished"></translation>
</message>

View File

@ -551,104 +551,104 @@
<context>
<name>MainWindow</name>
<message>
<location filename="qml/window/MainWindow.qml" line="307"/>
<location filename="qml/window/MainWindow.qml" line="311"/>
<source>Dark Mode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="83"/>
<location filename="qml/window/MainWindow.qml" line="91"/>
<location filename="qml/window/MainWindow.qml" line="87"/>
<location filename="qml/window/MainWindow.qml" line="95"/>
<source>Quit</source>
<translation type="unfinished">退</translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="84"/>
<location filename="qml/window/MainWindow.qml" line="88"/>
<source>Are you sure you want to exit the program?</source>
<translation type="unfinished">退</translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="85"/>
<location filename="qml/window/MainWindow.qml" line="89"/>
<source>Minimize</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="88"/>
<location filename="qml/window/MainWindow.qml" line="92"/>
<source>Friendly Reminder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="88"/>
<location filename="qml/window/MainWindow.qml" line="92"/>
<source>FluentUI is hidden from the tray, click on the tray to activate the window again</source>
<translation type="unfinished">FluentUI </translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="92"/>
<location filename="qml/window/MainWindow.qml" line="336"/>
<location filename="qml/window/MainWindow.qml" line="96"/>
<location filename="qml/window/MainWindow.qml" line="340"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="103"/>
<location filename="qml/window/MainWindow.qml" line="107"/>
<source>Open in Separate Window</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="200"/>
<location filename="qml/window/MainWindow.qml" line="204"/>
<source>Click Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="210"/>
<location filename="qml/window/MainWindow.qml" line="214"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="301"/>
<location filename="qml/window/MainWindow.qml" line="305"/>
<source>Finish</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="302"/>
<location filename="qml/window/MainWindow.qml" line="306"/>
<source>Next</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="303"/>
<location filename="qml/window/MainWindow.qml" line="307"/>
<source>Previous</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="307"/>
<location filename="qml/window/MainWindow.qml" line="311"/>
<source>Here you can switch to night mode.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="309"/>
<location filename="qml/window/MainWindow.qml" line="313"/>
<source>Hide Easter eggs</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="309"/>
<location filename="qml/window/MainWindow.qml" line="313"/>
<source>Try a few more clicks!!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="333"/>
<location filename="qml/window/MainWindow.qml" line="337"/>
<source>Upgrade Tips</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="334"/>
<location filename="qml/window/MainWindow.qml" line="338"/>
<source>FluentUI is currently up to date </source>
<translation type="unfinished">FluentUI </translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="334"/>
<location filename="qml/window/MainWindow.qml" line="338"/>
<source> -- The current app version</source>
<translation type="unfinished"> -- </translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="334"/>
<location filename="qml/window/MainWindow.qml" line="338"/>
<source>
Now go and download the new version
@ -661,17 +661,17 @@ Updated content:
</translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="337"/>
<location filename="qml/window/MainWindow.qml" line="341"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="364"/>
<location filename="qml/window/MainWindow.qml" line="368"/>
<source>The current version is already the latest</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/window/MainWindow.qml" line="371"/>
<location filename="qml/window/MainWindow.qml" line="375"/>
<source>The network is abnormal</source>
<translation type="unfinished"></translation>
</message>
@ -1393,22 +1393,22 @@ My only desire is to be permitted to drive out the traitors and restore the Han.
<context>
<name>T_Home</name>
<message>
<location filename="qml/page/T_Home.qml" line="23"/>
<location filename="qml/page/T_Home.qml" line="19"/>
<source>FluentUI GitHub</source>
<translation type="unfinished">FluentUI GitHub</translation>
</message>
<message>
<location filename="qml/page/T_Home.qml" line="24"/>
<location filename="qml/page/T_Home.qml" line="20"/>
<source>The latest FluentUI controls and styles for your applications.</source>
<translation type="unfinished"> FluentUI </translation>
</message>
<message>
<location filename="qml/page/T_Home.qml" line="32"/>
<location filename="qml/page/T_Home.qml" line="28"/>
<source>FluentUI Initializr</source>
<translation type="unfinished">FluentUI脚手架</translation>
</message>
<message>
<location filename="qml/page/T_Home.qml" line="33"/>
<location filename="qml/page/T_Home.qml" line="29"/>
<source>FluentUI Initializr is a Tool that helps you create and customize Fluent UI projects with various options.</source>
<translation type="unfinished">FluentUI Fluent UI </translation>
</message>
@ -2504,22 +2504,22 @@ Some contents...</source>
<translation type="obsolete">%1</translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="185"/>
<location filename="qml/page/T_TreeView.qml" line="183"/>
<source>Title</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="197"/>
<location filename="qml/page/T_TreeView.qml" line="195"/>
<source>Address</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="193"/>
<location filename="qml/page/T_TreeView.qml" line="191"/>
<source>Avatar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="qml/page/T_TreeView.qml" line="189"/>
<location filename="qml/page/T_TreeView.qml" line="187"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>

View File

@ -12,10 +12,6 @@ FluScrollablePage{
animationEnabled: false
header: Item{}
FluentInitializrWindow{
id:fluent_Initializr
}
ListModel{
id: model_header
ListElement{

View File

@ -33,7 +33,7 @@ FluContentPage {
cellHeight: 110
clip: true
boundsBehavior: GridView.StopAtBounds
model:FluTheme.awesomeList()
model: FluApp.iconDatas()
ScrollBar.vertical: FluScrollBar {}
anchors{
topMargin: 10

View File

@ -162,7 +162,8 @@ FluContentPage {
}
}
FluFrame{
FluTreeView{
id:tree_view
anchors{
left: parent.left
top: layout_controls.bottom
@ -170,39 +171,35 @@ FluContentPage {
bottom: parent.bottom
right: parent.right
}
FluTreeView{
id:tree_view
anchors.fill: parent
cellHeight: slider_cell_height.value
showLine: switch_showline.checked
checkable:switch_checkable.checked
depthPadding: slider_depth_padding.value
onCurrentChanged: {
showInfo(current.data.title)
}
columnSource:[
{
title: qsTr("Title"),
dataIndex: 'title',
width: 300
},{
title: qsTr("Name"),
dataIndex: 'name',
width: 100
},{
title: qsTr("Avatar"),
dataIndex: 'avatar',
width: 100
},{
title: qsTr("Address"),
dataIndex: 'address',
width: 200
},
]
Component.onCompleted: {
var data = treeData()
dataSource = data
}
cellHeight: slider_cell_height.value
showLine: switch_showline.checked
checkable:switch_checkable.checked
depthPadding: slider_depth_padding.value
onCurrentChanged: {
showInfo(current.data.title)
}
columnSource:[
{
title: qsTr("Title"),
dataIndex: 'title',
width: 300
},{
title: qsTr("Name"),
dataIndex: 'name',
width: 100
},{
title: qsTr("Avatar"),
dataIndex: 'avatar',
width: 100
},{
title: qsTr("Address"),
dataIndex: 'address',
width: 200
},
]
Component.onCompleted: {
var data = treeData()
dataSource = data
}
}
}

View File

@ -15,7 +15,7 @@ FluWindow {
title: "FluentUI"
width: 1000
height: 680
minimumWidth: 520
minimumWidth: 1000
minimumHeight: 200
launchMode: FluWindowType.SingleTask
fitsAppBarWindows: true
@ -28,6 +28,10 @@ FluWindow {
z:7
}
FluentInitializrWindow{
id:fluent_Initializr
}
FluEvent{
name: "checkUpdate"
onTriggered: {

View File

@ -9,6 +9,7 @@
#include <QClipboard>
#include <QTranslator>
#include <utility>
#include "FluentIconDef.h"
FluApp::FluApp(QObject *parent) : QObject{parent} {
_useSystemAppBar = false;
@ -30,3 +31,19 @@ void FluApp::init(QObject *target, QLocale locale) {
}
}
}
[[maybe_unused]] QJsonArray FluApp::iconDatas(const QString &keyword) {
QJsonArray arr;
QMetaEnum enumType = Fluent_Icons::staticMetaObject.enumerator(Fluent_Icons::staticMetaObject.indexOfEnumerator("Fluent_IconType"));
for (int i = 0; i <= enumType.keyCount() - 1; ++i) {
QString name = enumType.key(i);
int icon = enumType.value(i);
if (keyword.isEmpty() || name.contains(keyword)) {
QJsonObject obj;
obj.insert("name", name);
obj.insert("icon", icon);
arr.append(obj);
}
}
return arr;
}

View File

@ -8,6 +8,7 @@
#include <QQmlEngine>
#include <QTranslator>
#include <QQuickWindow>
#include <QJsonArray>
#include "stdafx.h"
#include "singleton.h"
@ -35,6 +36,8 @@ SINGLETON(FluApp)
Q_INVOKABLE void init(QObject *target, QLocale locale = QLocale::system());
[[maybe_unused]] Q_INVOKABLE static QJsonArray iconDatas(const QString &keyword = "");
private:
QQmlEngine *_engine{};
QTranslator *_translator = nullptr;

View File

@ -67,6 +67,8 @@ void FluFrameless::componentComplete() {
if (_disabled) {
return;
}
int w = window()->width();
int h = window()->height();
_current = window()->winId();
window()->setFlags((window()->flags()) | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::FramelessWindowHint);
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
@ -107,6 +109,12 @@ void FluFrameless::componentComplete() {
::RedrawWindow(hwnd, nullptr, nullptr, RDW_INVALIDATE | RDW_UPDATENOW);
});
#endif
h = h + _appbar->height();
if(_fixSize){
window()->setMaximumSize(QSize(w,h));
window()->setMinimumSize(QSize(w,h));
}
window()->resize(QSize(w,h));
connect(this, &FluFrameless::topmostChanged, this, [this] {
_setWindowTopmost(topmost());
});

View File

@ -3,6 +3,7 @@
#include <QObject>
#include <QQuickItem>
#include <QAbstractNativeEventFilter>
#include <QQmlProperty>
#include "stdafx.h"
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))

View File

@ -5,7 +5,6 @@
#include <QImage>
#include <QThreadPool>
#include "Def.h"
#include "FluentIconDef.h"
#include "FluColors.h"
#include "FluTools.h"
@ -47,8 +46,8 @@ void FluTheme::refreshColors() {
fontSecondaryColor(isDark ? QColor(222, 222, 222, 255) : QColor(102, 102, 102, 255));
fontTertiaryColor(isDark ? QColor(200, 200, 200, 255) : QColor(153, 153, 153, 255));
itemNormalColor(isDark ? QColor(255, 255, 255, 0) : QColor(0, 0, 0, 0));
frameColor(isDark ? QColor(255, 255, 255, qRound(255 * 0.12)) : QColor(0, 0, 0, qRound(255 * 0.09)));
frameActiveColor(isDark ? QColor(48, 48, 48, qRound(255 * 0.8)) : QColor(255, 255, 255, qRound(255 * 0.6)));
frameColor(isDark ? QColor(56, 56, 56, qRound(255 * 0.8)) : QColor(233, 233, 233, qRound(255 * 0.8)));
frameActiveColor(isDark ? QColor(48, 48, 48, qRound(255 * 0.8)) : QColor(255, 255, 255, qRound(255 * 0.8)));
itemHoverColor(isDark ? QColor(255, 255, 255, qRound(255 * 0.06)) : QColor(0, 0, 0, qRound(255 * 0.03)));
itemPressColor(isDark ? QColor(255, 255, 255, qRound(255 * 0.09)) : QColor(0, 0, 0, qRound(255 * 0.06)));
itemCheckColor(isDark ? QColor(255, 255, 255, qRound(255 * 0.12)) : QColor(0, 0, 0, qRound(255 * 0.09)));
@ -64,22 +63,6 @@ bool FluTheme::eventFilter(QObject *, QEvent *event) {
return false;
}
[[maybe_unused]] QJsonArray FluTheme::awesomeList(const QString &keyword) {
QJsonArray arr;
QMetaEnum enumType = Fluent_Icons::staticMetaObject.enumerator(Fluent_Icons::staticMetaObject.indexOfEnumerator("Fluent_IconType"));
for (int i = 0; i <= enumType.keyCount() - 1; ++i) {
QString name = enumType.key(i);
int icon = enumType.value(i);
if (keyword.isEmpty() || name.contains(keyword)) {
QJsonObject obj;
obj.insert("name", name);
obj.insert("icon", icon);
arr.append(obj);
}
}
return arr;
}
bool FluTheme::dark() const {
if (_darkMode == FluThemeType::DarkMode::Dark) {
return true;

View File

@ -60,8 +60,6 @@ protected:
public:
SINGLETON(FluTheme)
[[maybe_unused]] Q_INVOKABLE static QJsonArray awesomeList(const QString &keyword = "");
Q_SIGNAL void darkChanged();
static FluTheme *create(QQmlEngine *, QJSEngine *) { return getInstance(); }

View File

@ -8,7 +8,7 @@ Item {
property real tintOpacity: 0.65
property real luminosity: 0.01
property real noiseOpacity: 0.02
property var target
property alias target : effect_source.sourceItem
property int blurRadius: 32
property rect targetRect: Qt.rect(control.x, control.y, control.width,control.height)
ShaderEffectSource {
@ -16,7 +16,6 @@ Item {
anchors.fill: parent
visible: false
sourceRect: control.targetRect
sourceItem: control.target
}
FastBlur {
id: fast_blur

View File

@ -44,8 +44,8 @@ T.Menu {
background: Rectangle {
implicitWidth: 150
implicitHeight: 36
color:FluTheme.dark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(240/255,240/255,240/255,1)
border.color: FluTheme.dark ? Window.active ? Qt.rgba(55/255,55/255,55/255,1):Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(226/255,229/255,234/255,1)
color:FluTheme.dark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(252/255,252/255,252/255,1)
border.color: FluTheme.dark ? Qt.rgba(26/255,26/255,26/255,1) : Qt.rgba(191/255,191/255,191/255,1)
border.width: 1
radius: 5
FluShadow{}

View File

@ -1,4 +1,5 @@
import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import Qt.labs.qmlmodels 1.0
@ -17,7 +18,12 @@ Rectangle {
property color selectedBorderColor: FluTheme.primaryColor
property color selectedColor: FluTools.withOpacity(FluTheme.primaryColor,0.3)
id:control
color: FluTheme.dark ? Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
color: {
if(Window.active){
return FluTheme.frameActiveColor
}
return FluTheme.frameColor
}
onColumnSourceChanged: {
if(columnSource.length!==0){
var columns= []

View File

@ -18,21 +18,28 @@ Rectangle {
property color selectedColor: FluTools.withOpacity(FluTheme.primaryColor,0.3)
readonly property alias current: d.current
id:control
color: FluTheme.dark ? Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
color: {
if(Window.active){
return FluTheme.frameActiveColor
}
return FluTheme.frameColor
}
onDataSourceChanged: {
tree_model.setDataSource(dataSource)
}
onColumnSourceChanged: {
var columns= []
var headerRow = {}
columnSource.forEach(function(item){
var column = Qt.createQmlObject('import Qt.labs.qmlmodels 1.0;TableModelColumn{}',control);
column.display = item.dataIndex
columns.push(column)
headerRow[item.dataIndex] = item.title
})
header_column_model.columns = columns
header_column_model.rows = [headerRow]
if(columnSource.length !== 0){
var columns= []
var headerRow = {}
columnSource.forEach(function(item){
var column = Qt.createQmlObject('import Qt.labs.qmlmodels 1.0;TableModelColumn{}',control);
column.display = item.dataIndex
columns.push(column)
headerRow[item.dataIndex] = item.title
})
header_column_model.columns = columns
header_column_model.rows = [headerRow]
}
}
FluTreeModel{
id:tree_model

View File

@ -38,6 +38,12 @@ Module {
name: "init"
Parameter { name: "target"; type: "QObject"; isPointer: true }
}
Method {
name: "iconDatas"
type: "QJsonArray"
Parameter { name: "keyword"; type: "string" }
}
Method { name: "iconDatas"; type: "QJsonArray" }
}
Component {
name: "FluCalendarViewType"
@ -133,10 +139,10 @@ Module {
exports: ["FluentUI/FluFrameless 1.0"]
exportMetaObjectRevisions: [0]
Property { name: "appbar"; type: "QQuickItem"; isPointer: true }
Property { name: "topmost"; type: "bool" }
Property { name: "maximizeButton"; type: "QQuickItem"; isPointer: true }
Property { name: "minimizedButton"; type: "QQuickItem"; isPointer: true }
Property { name: "closeButton"; type: "QQuickItem"; isPointer: true }
Property { name: "topmost"; type: "bool" }
Property { name: "disabled"; type: "bool" }
Property { name: "fixSize"; type: "bool" }
Method { name: "showFullScreen" }
@ -318,18 +324,16 @@ Module {
Property { name: "fontSecondaryColor"; type: "QColor" }
Property { name: "fontTertiaryColor"; type: "QColor" }
Property { name: "itemNormalColor"; type: "QColor" }
Property { name: "frameColor"; type: "QColor" }
Property { name: "frameActiveColor"; type: "QColor" }
Property { name: "itemHoverColor"; type: "QColor" }
Property { name: "itemPressColor"; type: "QColor" }
Property { name: "itemCheckColor"; type: "QColor" }
Property { name: "desktopImagePath"; type: "string" }
Property { name: "darkMode"; type: "int" }
Property { name: "nativeText"; type: "bool" }
Property { name: "animationEnabled"; type: "bool" }
Method {
name: "awesomeList"
type: "QJsonArray"
Parameter { name: "keyword"; type: "string" }
}
Method { name: "awesomeList"; type: "QJsonArray" }
Property { name: "blurBehindWindowEnabled"; type: "bool" }
}
Component {
name: "FluThemeType"
@ -480,6 +484,18 @@ Module {
type: "QRect"
Parameter { name: "window"; type: "QQuickWindow"; isPointer: true }
}
Method { name: "getWallpaperFilePath"; type: "string" }
Method {
name: "imageMainColor"
type: "QColor"
Parameter { name: "image"; type: "QImage" }
Parameter { name: "bright"; type: "double" }
}
Method {
name: "imageMainColor"
type: "QColor"
Parameter { name: "image"; type: "QImage" }
}
}
Component {
name: "FluTreeModel"
@ -487,7 +503,6 @@ Module {
exports: ["FluentUI/FluTreeModel 1.0"]
exportMetaObjectRevisions: [0]
Property { name: "dataSourceSize"; type: "int" }
Property { name: "selectionModel"; type: "QList<FluTreeNode*>" }
Property { name: "columnSource"; type: "QList<QVariantMap>" }
Method {
name: "removeRows"
@ -504,6 +519,11 @@ Module {
type: "QObject*"
Parameter { name: "row"; type: "int" }
}
Method {
name: "setRow"
Parameter { name: "row"; type: "int" }
Parameter { name: "data"; type: "QVariantMap" }
}
Method {
name: "setData"
Parameter { name: "data"; type: "QList<FluTreeNode*>" }
@ -541,6 +561,7 @@ Module {
}
Method { name: "allExpand" }
Method { name: "allCollapse" }
Method { name: "selectionModel"; type: "QVariant" }
}
Component {
name: "FluTreeViewType"
@ -584,12 +605,12 @@ Module {
}
}
Component {
name: "Fluent_Awesome"
name: "Fluent_Icons"
exports: ["FluentUI/FluentIcons 1.0"]
isCreatable: false
exportMetaObjectRevisions: [0]
Enum {
name: "Fluent_AwesomeType"
name: "Fluent_IconType"
values: {
"GlobalNavButton": 59136,
"Wifi": 59137,
@ -2421,37 +2442,37 @@ Module {
Property { name: "darkClickListener"; type: "QVariant" }
Property {
name: "buttonStayTop"
type: "FluIconButton_QMLTYPE_19"
type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMinimize"
type: "FluIconButton_QMLTYPE_19"
type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonMaximize"
type: "FluIconButton_QMLTYPE_19"
type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonClose"
type: "FluIconButton_QMLTYPE_19"
type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonDark"
type: "FluIconButton_QMLTYPE_19"
type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "layoutMacosButtons"
type: "FluLoader_QMLTYPE_12"
type: "FluLoader_QMLTYPE_14"
isReadonly: true
isPointer: true
}
@ -3148,8 +3169,8 @@ Module {
Property { name: "actionItem"; type: "QQmlComponent"; isPointer: true }
Property { name: "topPadding"; type: "int" }
Property { name: "pageMode"; type: "int" }
Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_42"; isPointer: true }
Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_42"; isPointer: true }
Property { name: "navItemRightMenu"; type: "FluMenu_QMLTYPE_33"; isPointer: true }
Property { name: "navItemExpanderRightMenu"; type: "FluMenu_QMLTYPE_33"; isPointer: true }
Property { name: "navCompactWidth"; type: "int" }
Property { name: "navTopMargin"; type: "int" }
Property { name: "cellHeight"; type: "int" }
@ -3157,13 +3178,13 @@ Module {
Property { name: "hideNavAppBar"; type: "bool" }
Property {
name: "buttonMenu"
type: "FluIconButton_QMLTYPE_19"
type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
Property {
name: "buttonBack"
type: "FluIconButton_QMLTYPE_19"
type: "FluIconButton_QMLTYPE_20"
isReadonly: true
isPointer: true
}
@ -3975,21 +3996,23 @@ Module {
Property { name: "previousText"; type: "string" }
}
Component {
prototype: "QQuickItem"
prototype: "QQuickRectangle"
name: "FluentUI/FluTreeView 1.0"
exports: ["FluentUI/FluTreeView 1.0"]
exportMetaObjectRevisions: [0]
isComposite: true
defaultProperty: "data"
Property { name: "currentIndex"; type: "int" }
Property { name: "dataSource"; type: "QVariant" }
Property { name: "columnSource"; type: "QVariant" }
Property { name: "showLine"; type: "bool" }
Property { name: "draggable"; type: "bool" }
Property { name: "cellHeight"; type: "int" }
Property { name: "depthPadding"; type: "int" }
Property { name: "checkable"; type: "bool" }
Property { name: "lineColor"; type: "QColor" }
Method { name: "selectionModel"; type: "QVariant" }
Property { name: "borderColor"; type: "QColor" }
Property { name: "selectedBorderColor"; type: "QColor" }
Property { name: "selectedColor"; type: "QColor" }
Property { name: "current"; type: "QVariant"; isReadonly: true }
Method { name: "count"; type: "QVariant" }
Method { name: "visibleCount"; type: "QVariant" }
Method {
@ -4004,6 +4027,14 @@ Module {
}
Method { name: "allExpand"; type: "QVariant" }
Method { name: "allCollapse"; type: "QVariant" }
Method {
name: "customItem"
type: "QVariant"
Parameter { name: "comId"; type: "QVariant" }
Parameter { name: "options"; type: "QVariant" }
}
Method { name: "closeEditor"; type: "QVariant" }
Method { name: "selectionModel"; type: "QVariant" }
}
Component {
prototype: "QQuickWindowQmlImpl"

View File

@ -44,8 +44,8 @@ T.Menu {
background: Rectangle {
implicitWidth: 150
implicitHeight: 36
color:FluTheme.dark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(240/255,240/255,240/255,1)
border.color: FluTheme.dark ? Window.active ? Qt.rgba(55/255,55/255,55/255,1):Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(226/255,229/255,234/255,1)
color:FluTheme.dark ? Qt.rgba(45/255,45/255,45/255,1) : Qt.rgba(252/255,252/255,252/255,1)
border.color: FluTheme.dark ? Qt.rgba(26/255,26/255,26/255,1) : Qt.rgba(191/255,191/255,191/255,1)
border.width: 1
radius: 5
FluShadow{}

View File

@ -18,7 +18,12 @@ Rectangle {
property color selectedBorderColor: FluTheme.primaryColor
property color selectedColor: FluTools.withOpacity(FluTheme.primaryColor,0.3)
id:control
color: FluTheme.dark ? Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
color: {
if(Window.active){
return FluTheme.frameActiveColor
}
return FluTheme.frameColor
}
onColumnSourceChanged: {
if(columnSource.length!==0){
var columns= []

View File

@ -18,7 +18,12 @@ Rectangle {
property color selectedColor: FluTools.withOpacity(FluTheme.primaryColor,0.3)
readonly property alias current: d.current
id:control
color: FluTheme.dark ? Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1)
color: {
if(Window.active){
return FluTheme.frameActiveColor
}
return FluTheme.frameColor
}
onDataSourceChanged: {
tree_model.setDataSource(dataSource)
}