mirror of
https://github.com/zhuzichu520/FluentUI.git
synced 2025-07-03 00:25:25 +08:00
update
This commit is contained in:
126
src/Def.h
126
src/Def.h
@ -4,15 +4,127 @@
|
||||
#include <QObject>
|
||||
#include <QtQml/qqml.h>
|
||||
|
||||
namespace Fluent_DarkMode {
|
||||
namespace FluThemeType {
|
||||
Q_NAMESPACE
|
||||
enum Fluent_DarkModeType {
|
||||
System = 0x0,
|
||||
Light = 0x1,
|
||||
Dark = 0x2,
|
||||
enum DarkMode {
|
||||
System = 0x0000,
|
||||
Light = 0x0001,
|
||||
Dark = 0x0002,
|
||||
};
|
||||
Q_ENUM_NS(Fluent_DarkModeType)
|
||||
QML_NAMED_ELEMENT(FluDarkMode)
|
||||
Q_ENUM_NS(DarkMode)
|
||||
QML_NAMED_ELEMENT(FluThemeType)
|
||||
}
|
||||
|
||||
namespace FluPageType {
|
||||
Q_NAMESPACE
|
||||
enum LaunchMode {
|
||||
Standard = 0x0000,
|
||||
SingleTask = 0x0001,
|
||||
SingleTop = 0x0002,
|
||||
SingleInstance = 0x0004
|
||||
};
|
||||
Q_ENUM_NS(LaunchMode)
|
||||
QML_NAMED_ELEMENT(FluPageType)
|
||||
}
|
||||
|
||||
namespace FluWindowType {
|
||||
Q_NAMESPACE
|
||||
enum LaunchMode {
|
||||
Standard = 0x0000,
|
||||
SingleTask = 0x0001,
|
||||
SingleInstance = 0x0002
|
||||
};
|
||||
Q_ENUM_NS(LaunchMode)
|
||||
QML_NAMED_ELEMENT(FluWindowType)
|
||||
}
|
||||
|
||||
namespace FluTreeViewType {
|
||||
Q_NAMESPACE
|
||||
enum SelectionMode {
|
||||
None = 0x0000,
|
||||
Single = 0x0001,
|
||||
Multiple = 0x0002
|
||||
};
|
||||
Q_ENUM_NS(SelectionMode)
|
||||
QML_NAMED_ELEMENT(FluTreeViewType)
|
||||
}
|
||||
|
||||
namespace FluStatusViewType {
|
||||
Q_NAMESPACE
|
||||
enum StatusMode {
|
||||
Loading = 0x0000,
|
||||
Empty = 0x0001,
|
||||
Error = 0x0002,
|
||||
Success = 0x0004
|
||||
};
|
||||
Q_ENUM_NS(StatusMode)
|
||||
QML_NAMED_ELEMENT(FluStatusViewType)
|
||||
}
|
||||
|
||||
namespace FluContentDialogType {
|
||||
Q_NAMESPACE
|
||||
enum ButtonFlag {
|
||||
NeutralButton = 0x0001,
|
||||
NegativeButton = 0x0002,
|
||||
PositiveButton = 0x0004
|
||||
};
|
||||
Q_ENUM_NS(ButtonFlag)
|
||||
QML_NAMED_ELEMENT(FluContentDialogType)
|
||||
}
|
||||
|
||||
namespace FluTimePickerType {
|
||||
Q_NAMESPACE
|
||||
enum HourFormat {
|
||||
H = 0x0000,
|
||||
HH = 0x0001
|
||||
};
|
||||
Q_ENUM_NS(HourFormat)
|
||||
QML_NAMED_ELEMENT(FluTimePickerType)
|
||||
}
|
||||
|
||||
namespace FluCalendarViewType {
|
||||
Q_NAMESPACE
|
||||
enum DisplayMode {
|
||||
Month = 0x0000,
|
||||
Year = 0x0001,
|
||||
Decade = 0x0002
|
||||
};
|
||||
Q_ENUM_NS(DisplayMode)
|
||||
QML_NAMED_ELEMENT(FluCalendarViewType)
|
||||
}
|
||||
|
||||
namespace FluTabViewType {
|
||||
Q_NAMESPACE
|
||||
enum TabWidthBehavior {
|
||||
Equal = 0x0000,
|
||||
SizeToContent = 0x0001,
|
||||
Compact = 0x0002
|
||||
};
|
||||
Q_ENUM_NS(TabWidthBehavior)
|
||||
enum CloseButtonVisibility {
|
||||
Nerver = 0x0000,
|
||||
Always = 0x0001,
|
||||
OnHover = 0x0002
|
||||
};
|
||||
Q_ENUM_NS(CloseButtonVisibility)
|
||||
QML_NAMED_ELEMENT(FluTabViewType)
|
||||
}
|
||||
|
||||
namespace FluNavigationViewType {
|
||||
Q_NAMESPACE
|
||||
enum DisplayMode {
|
||||
Open = 0x0000,
|
||||
Compact = 0x0001,
|
||||
Minimal = 0x0002,
|
||||
Auto = 0x0004
|
||||
};
|
||||
Q_ENUM_NS(DisplayMode)
|
||||
enum PageMode {
|
||||
Stack = 0x0000,
|
||||
NoStack = 0x0001
|
||||
};
|
||||
Q_ENUM_NS(PageMode)
|
||||
QML_NAMED_ELEMENT(FluNavigationViewType)
|
||||
}
|
||||
|
||||
namespace Fluent_Awesome {
|
||||
|
@ -30,6 +30,7 @@ FluApp::~FluApp(){
|
||||
|
||||
void FluApp::init(QQuickWindow *window){
|
||||
this->appWindow = window;
|
||||
FluContentDialogType::ButtonFlag::NegativeButton;
|
||||
}
|
||||
|
||||
void FluApp::run(){
|
||||
|
@ -32,7 +32,7 @@ FluTheme::FluTheme(QObject *parent)
|
||||
primaryColor(FluColors::getInstance()->Blue());
|
||||
nativeText(false);
|
||||
enableAnimation(false);
|
||||
darkMode(Fluent_DarkMode::Fluent_DarkModeType::Light);
|
||||
darkMode(FluThemeType::DarkMode::Light);
|
||||
_systemDark = systemDark();
|
||||
qApp->installEventFilter(this);
|
||||
}
|
||||
@ -67,11 +67,11 @@ bool FluTheme::systemDark()
|
||||
}
|
||||
|
||||
bool FluTheme::dark(){
|
||||
if(_darkMode == Fluent_DarkMode::Fluent_DarkModeType::Dark){
|
||||
if(_darkMode == FluThemeType::DarkMode::Dark){
|
||||
return true;
|
||||
}else if(_darkMode == Fluent_DarkMode::Fluent_DarkModeType::Light){
|
||||
}else if(_darkMode == FluThemeType::DarkMode::Light){
|
||||
return false;
|
||||
}else if(_darkMode == Fluent_DarkMode::Fluent_DarkModeType::System){
|
||||
}else if(_darkMode == FluThemeType::DarkMode::System){
|
||||
return _systemDark;
|
||||
}else{
|
||||
return false;
|
||||
|
@ -39,9 +39,9 @@ Rectangle{
|
||||
}
|
||||
property var darkClickListener: function(){
|
||||
if(FluTheme.dark){
|
||||
FluTheme.darkMode = FluDarkMode.Light
|
||||
FluTheme.darkMode = FluThemeType.Light
|
||||
}else{
|
||||
FluTheme.darkMode = FluDarkMode.Dark
|
||||
FluTheme.darkMode = FluThemeType.Dark
|
||||
}
|
||||
}
|
||||
id:root
|
||||
|
@ -3,12 +3,7 @@ import QtQuick.Controls
|
||||
import FluentUI
|
||||
|
||||
Item {
|
||||
enum DisplayMode {
|
||||
Month,
|
||||
Year,
|
||||
Decade
|
||||
}
|
||||
property int displayMode: FluCalendarView.Month
|
||||
property int displayMode: FluCalendarViewType.Month
|
||||
property var date: new Date()
|
||||
property var currentDate : new Date()
|
||||
property var toDay: new Date()
|
||||
@ -39,7 +34,7 @@ Item {
|
||||
width: 70
|
||||
onClicked:{
|
||||
control.date = date
|
||||
displayMode = FluCalendarView.Year
|
||||
displayMode = FluCalendarViewType.Year
|
||||
updateYear(date)
|
||||
}
|
||||
background: Item{
|
||||
@ -98,7 +93,7 @@ Item {
|
||||
width: 70
|
||||
onClicked:{
|
||||
control.date = date
|
||||
displayMode = FluCalendarView.Month
|
||||
displayMode = FluCalendarViewType.Month
|
||||
updateMouth(date)
|
||||
}
|
||||
background: Item{
|
||||
@ -248,13 +243,13 @@ Item {
|
||||
left: parent.left
|
||||
leftMargin: 14
|
||||
}
|
||||
disabled: displayMode === FluCalendarView.Decade
|
||||
disabled: displayMode === FluCalendarViewType.Decade
|
||||
onClicked:{
|
||||
if(displayMode === FluCalendarView.Month){
|
||||
displayMode = FluCalendarView.Year
|
||||
if(displayMode === FluCalendarViewType.Month){
|
||||
displayMode = FluCalendarViewType.Year
|
||||
updateYear(date)
|
||||
}else if(displayMode === FluCalendarView.Year){
|
||||
displayMode = FluCalendarView.Decade
|
||||
}else if(displayMode === FluCalendarViewType.Year){
|
||||
displayMode = FluCalendarViewType.Decade
|
||||
updateDecade(date)
|
||||
}
|
||||
}
|
||||
@ -271,7 +266,7 @@ Item {
|
||||
onClicked: {
|
||||
var year = date.getFullYear()
|
||||
var month = date.getMonth()
|
||||
if(displayMode === FluCalendarView.Month){
|
||||
if(displayMode === FluCalendarViewType.Month){
|
||||
var lastMonthYear = year;
|
||||
var lastMonthMonth = month - 1
|
||||
if (month === 0) {
|
||||
@ -280,10 +275,10 @@ Item {
|
||||
}
|
||||
date = new Date(lastMonthYear,lastMonthMonth,1)
|
||||
updateMouth(date)
|
||||
}else if(displayMode === FluCalendarView.Year){
|
||||
}else if(displayMode === FluCalendarViewType.Year){
|
||||
date = new Date(year-1,month,1)
|
||||
updateYear(date)
|
||||
}else if(displayMode === FluCalendarView.Decade){
|
||||
}else if(displayMode === FluCalendarViewType.Decade){
|
||||
date = new Date(Math.floor(year / 10) * 10-10,month,1)
|
||||
updateDecade(date)
|
||||
}
|
||||
@ -301,7 +296,7 @@ Item {
|
||||
onClicked: {
|
||||
var year = date.getFullYear()
|
||||
var month = date.getMonth()
|
||||
if(displayMode === FluCalendarView.Month){
|
||||
if(displayMode === FluCalendarViewType.Month){
|
||||
var nextMonthYear = year
|
||||
var nextMonth = month + 1
|
||||
if (month === 11) {
|
||||
@ -310,10 +305,10 @@ Item {
|
||||
}
|
||||
date = new Date(nextMonthYear,nextMonth,1)
|
||||
updateMouth(date)
|
||||
}else if(displayMode === FluCalendarView.Year){
|
||||
}else if(displayMode === FluCalendarViewType.Year){
|
||||
date = new Date(year+1,month,1)
|
||||
updateYear(date)
|
||||
}else if(displayMode === FluCalendarView.Decade){
|
||||
}else if(displayMode === FluCalendarViewType.Decade){
|
||||
date = new Date(Math.floor(year / 10) * 10+10,month,1)
|
||||
updateDecade(date)
|
||||
}
|
||||
@ -334,8 +329,8 @@ Item {
|
||||
GridView{
|
||||
model: list_model
|
||||
anchors.fill: parent
|
||||
cellHeight: displayMode === FluCalendarView.Month ? 40 : 70
|
||||
cellWidth: displayMode === FluCalendarView.Month ? 40 : 70
|
||||
cellHeight: displayMode === FluCalendarViewType.Month ? 40 : 70
|
||||
cellWidth: displayMode === FluCalendarViewType.Month ? 40 : 70
|
||||
clip: true
|
||||
boundsBehavior:Flickable.StopAtBounds
|
||||
delegate: Loader{
|
||||
|
@ -15,12 +15,7 @@ FluPopup {
|
||||
signal neutralClicked
|
||||
signal negativeClicked
|
||||
signal positiveClicked
|
||||
enum ButtonFlag{
|
||||
NegativeButton=1
|
||||
,NeutralButton=2
|
||||
,PositiveButton=4
|
||||
}
|
||||
property int buttonFlags: FluContentDialog.NegativeButton | FluContentDialog.PositiveButton
|
||||
property int buttonFlags: FluContentDialogType.NegativeButton | FluContentDialogType.PositiveButton
|
||||
property var minWidth: {
|
||||
if(Window.window==null)
|
||||
return 400
|
||||
@ -85,11 +80,11 @@ FluPopup {
|
||||
id:neutral_btn
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
visible: popup.buttonFlags&FluContentDialog.NeutralButton
|
||||
visible: popup.buttonFlags&FluContentDialogType.NeutralButton
|
||||
text: neutralText
|
||||
onClicked: {
|
||||
popup.close()
|
||||
timer_delay.targetFlags = FluContentDialog.NeutralButton
|
||||
timer_delay.targetFlags = FluContentDialogType.NeutralButton
|
||||
timer_delay.restart()
|
||||
}
|
||||
}
|
||||
@ -97,11 +92,11 @@ FluPopup {
|
||||
id:negative_btn
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
visible: popup.buttonFlags&FluContentDialog.NegativeButton
|
||||
visible: popup.buttonFlags&FluContentDialogType.NegativeButton
|
||||
text: negativeText
|
||||
onClicked: {
|
||||
popup.close()
|
||||
timer_delay.targetFlags = FluContentDialog.NegativeButton
|
||||
timer_delay.targetFlags = FluContentDialogType.NegativeButton
|
||||
timer_delay.restart()
|
||||
}
|
||||
}
|
||||
@ -109,11 +104,11 @@ FluPopup {
|
||||
id:positive_btn
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
visible: popup.buttonFlags&FluContentDialog.PositiveButton
|
||||
visible: popup.buttonFlags&FluContentDialogType.PositiveButton
|
||||
text: positiveText
|
||||
onClicked: {
|
||||
popup.close()
|
||||
timer_delay.targetFlags = FluContentDialog.PositiveButton
|
||||
timer_delay.targetFlags = FluContentDialogType.PositiveButton
|
||||
timer_delay.restart()
|
||||
}
|
||||
}
|
||||
@ -125,13 +120,13 @@ FluPopup {
|
||||
id:timer_delay
|
||||
interval: popup.delayTime
|
||||
onTriggered: {
|
||||
if(targetFlags === FluContentDialog.NegativeButton){
|
||||
if(targetFlags === FluContentDialogType.NegativeButton){
|
||||
negativeClicked()
|
||||
}
|
||||
if(targetFlags === FluContentDialog.NeutralButton){
|
||||
if(targetFlags === FluContentDialogType.NeutralButton){
|
||||
neutralClicked()
|
||||
}
|
||||
if(targetFlags === FluContentDialog.PositiveButton){
|
||||
if(targetFlags === FluContentDialogType.PositiveButton){
|
||||
positiveClicked()
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ FluPage {
|
||||
FluStatusView{
|
||||
id:status_view
|
||||
color: "#00000000"
|
||||
statusMode: FluStatusView.Success
|
||||
statusMode: FluStatusViewType.Success
|
||||
onErrorClicked: control.errorClicked()
|
||||
anchors{
|
||||
left: parent.left
|
||||
|
@ -6,26 +6,16 @@ import QtQuick.Layouts
|
||||
import FluentUI
|
||||
|
||||
Item {
|
||||
enum DisplayMode {
|
||||
Open = 0,
|
||||
Compact = 1,
|
||||
Minimal = 2,
|
||||
Auto = 3
|
||||
}
|
||||
enum PageMode {
|
||||
Stack = 0,
|
||||
NoStack = 1
|
||||
}
|
||||
property url logo
|
||||
property string title: ""
|
||||
property FluObject items
|
||||
property FluObject footerItems
|
||||
property int displayMode: FluNavigationView.Auto
|
||||
property int displayMode: FluNavigationViewType.Auto
|
||||
property Component autoSuggestBox
|
||||
property Component actionItem
|
||||
property int topPadding: 0
|
||||
property int navWidth: 300
|
||||
property int pageMode: FluNavigationView.Stack
|
||||
property int pageMode: FluNavigationViewType.Stack
|
||||
signal logoClicked
|
||||
id:control
|
||||
QtObject{
|
||||
@ -34,11 +24,11 @@ Item {
|
||||
property var stackItems: []
|
||||
property int displayMode: control.displayMode
|
||||
property bool enableNavigationPanel: false
|
||||
property bool isCompact: d.displayMode === FluNavigationView.Compact
|
||||
property bool isMinimal: d.displayMode === FluNavigationView.Minimal
|
||||
property bool isCompactAndPanel: d.displayMode === FluNavigationView.Compact && d.enableNavigationPanel
|
||||
property bool isCompactAndNotPanel:d.displayMode === FluNavigationView.Compact && !d.enableNavigationPanel
|
||||
property bool isMinimalAndPanel: d.displayMode === FluNavigationView.Minimal && d.enableNavigationPanel
|
||||
property bool isCompact: d.displayMode === FluNavigationViewType.Compact
|
||||
property bool isMinimal: d.displayMode === FluNavigationViewType.Minimal
|
||||
property bool isCompactAndPanel: d.displayMode === FluNavigationViewType.Compact && d.enableNavigationPanel
|
||||
property bool isCompactAndNotPanel:d.displayMode === FluNavigationViewType.Compact && !d.enableNavigationPanel
|
||||
property bool isMinimalAndPanel: d.displayMode === FluNavigationViewType.Minimal && d.enableNavigationPanel
|
||||
onIsCompactAndNotPanelChanged: {
|
||||
collapseAll()
|
||||
}
|
||||
@ -79,15 +69,15 @@ Item {
|
||||
}
|
||||
Component.onCompleted: {
|
||||
d.displayMode = Qt.binding(function(){
|
||||
if(control.displayMode !==FluNavigationView.Auto){
|
||||
if(control.displayMode !==FluNavigationViewType.Auto){
|
||||
return control.displayMode
|
||||
}
|
||||
if(control.width<=700){
|
||||
return FluNavigationView.Minimal
|
||||
return FluNavigationViewType.Minimal
|
||||
}else if(control.width<=900){
|
||||
return FluNavigationView.Compact
|
||||
return FluNavigationViewType.Compact
|
||||
}else{
|
||||
return FluNavigationView.Open
|
||||
return FluNavigationViewType.Open
|
||||
}
|
||||
})
|
||||
timer_anim_delay.restart()
|
||||
@ -102,10 +92,10 @@ Item {
|
||||
Connections{
|
||||
target: d
|
||||
function onDisplayModeChanged(){
|
||||
if(d.displayMode === FluNavigationView.Compact){
|
||||
if(d.displayMode === FluNavigationViewType.Compact){
|
||||
collapseAll()
|
||||
}
|
||||
if(d.displayMode === FluNavigationView.Minimal){
|
||||
if(d.displayMode === FluNavigationViewType.Minimal){
|
||||
d.enableNavigationPanel = false
|
||||
}
|
||||
}
|
||||
@ -533,11 +523,11 @@ Item {
|
||||
layout_footer.currentIndex = item._idx-(nav_list.count-layout_footer.count)
|
||||
}
|
||||
nav_list.currentIndex = item._idx
|
||||
if(pageMode === FluNavigationView.Stack){
|
||||
if(pageMode === FluNavigationViewType.Stack){
|
||||
var nav_stack = loader_content.item.navStack()
|
||||
var nav_stack2 = loader_content.item.navStack2()
|
||||
nav_stack.pop()
|
||||
if(nav_stack.currentItem.launchMode === FluPage.SingleInstance){
|
||||
if(nav_stack.currentItem.launchMode === FluPageType.SingleInstance){
|
||||
var url = nav_stack.currentItem.url
|
||||
var pageIndex = -1
|
||||
for(var i=0;i<nav_stack2.children.length;i++){
|
||||
@ -551,7 +541,7 @@ Item {
|
||||
nav_stack2.currentIndex = pageIndex
|
||||
}
|
||||
}
|
||||
}else if(pageMode === FluNavigationView.NoStack){
|
||||
}else if(pageMode === FluNavigationViewType.NoStack){
|
||||
loader_content.setSource(item._ext.url,item._ext.argument)
|
||||
}
|
||||
}
|
||||
@ -646,7 +636,7 @@ Item {
|
||||
id:nav_stack2
|
||||
anchors.fill: nav_stack
|
||||
clip: true
|
||||
visible: nav_stack.currentItem?.launchMode === FluPage.SingleInstance
|
||||
visible: nav_stack.currentItem?.launchMode === FluPageType.SingleInstance
|
||||
}
|
||||
function navStack(){
|
||||
return nav_stack
|
||||
@ -728,7 +718,7 @@ Item {
|
||||
}
|
||||
}
|
||||
visible: {
|
||||
if(d.displayMode !== FluNavigationView.Minimal)
|
||||
if(d.displayMode !== FluNavigationViewType.Minimal)
|
||||
return true
|
||||
return d.isMinimalAndPanel ? true : false
|
||||
}
|
||||
@ -1005,7 +995,7 @@ Item {
|
||||
Component{
|
||||
id:com_placeholder
|
||||
Item{
|
||||
property int launchMode: FluPage.SingleInstance
|
||||
property int launchMode: FluPageType.SingleInstance
|
||||
property string url
|
||||
}
|
||||
}
|
||||
@ -1031,12 +1021,12 @@ Item {
|
||||
return nav_list.currentIndex
|
||||
}
|
||||
function getCurrentUrl(){
|
||||
if(pageMode === FluNavigationView.Stack){
|
||||
if(pageMode === FluNavigationViewType.Stack){
|
||||
var nav_stack = loader_content.item.navStack()
|
||||
if(nav_stack.currentItem){
|
||||
return nav_stack.currentItem.url
|
||||
}
|
||||
}else if(pageMode === FluNavigationView.NoStack){
|
||||
}else if(pageMode === FluNavigationViewType.NoStack){
|
||||
return loader_content.source.toString()
|
||||
}
|
||||
return undefined
|
||||
@ -1051,19 +1041,19 @@ Item {
|
||||
if(page){
|
||||
switch(page.launchMode)
|
||||
{
|
||||
case FluPage.SingleTask:
|
||||
case FluPageType.SingleTask:
|
||||
while(nav_stack.currentItem !== page)
|
||||
{
|
||||
nav_stack.pop()
|
||||
d.stackItems = d.stackItems.slice(0, -1)
|
||||
}
|
||||
return
|
||||
case FluPage.SingleTop:
|
||||
case FluPageType.SingleTop:
|
||||
if (nav_stack.currentItem.url === url){
|
||||
return
|
||||
}
|
||||
break
|
||||
case FluPage.Standard:
|
||||
case FluPageType.Standard:
|
||||
default:
|
||||
}
|
||||
}
|
||||
@ -1083,7 +1073,7 @@ Item {
|
||||
var comp = Qt.createComponent(url)
|
||||
if (comp.status === Component.Ready) {
|
||||
var obj = comp.createObject(nav_stack,options)
|
||||
if(obj.launchMode === FluPage.SingleInstance){
|
||||
if(obj.launchMode === FluPageType.SingleInstance){
|
||||
nav_stack.push(com_placeholder,options)
|
||||
nav_stack2.children.push(obj)
|
||||
nav_stack2.currentIndex = nav_stack2.count - 1
|
||||
@ -1105,9 +1095,9 @@ Item {
|
||||
obj._ext = {url:url,argument:argument}
|
||||
d.stackItems = d.stackItems.concat(obj)
|
||||
}
|
||||
if(pageMode === FluNavigationView.Stack){
|
||||
if(pageMode === FluNavigationViewType.Stack){
|
||||
stackPush()
|
||||
}else if(pageMode === FluNavigationView.NoStack){
|
||||
}else if(pageMode === FluNavigationViewType.NoStack){
|
||||
noStackPush()
|
||||
}
|
||||
}
|
||||
|
@ -5,13 +5,7 @@ import QtQuick.Window
|
||||
import FluentUI
|
||||
|
||||
Item {
|
||||
enum LaunchMode{
|
||||
Standard = 0,
|
||||
SingleTask = 1,
|
||||
SingleTop = 2,
|
||||
SingleInstance = 3
|
||||
}
|
||||
property int launchMode: FluPage.SingleTop
|
||||
property int launchMode: FluPageType.SingleTop
|
||||
property bool animDisabled: false
|
||||
property string url : ""
|
||||
id: control
|
||||
|
@ -21,11 +21,11 @@ FluStatusView {
|
||||
asynchronous: true
|
||||
onStatusChanged: {
|
||||
if(status === Loader.Error){
|
||||
control.statusMode = FluStatusView.Error
|
||||
control.statusMode = FluStatusViewType.Error
|
||||
}else if(status === Loader.Loading){
|
||||
control.statusMode = FluStatusView.Loading
|
||||
control.statusMode = FluStatusViewType.Loading
|
||||
}else{
|
||||
control.statusMode = FluStatusView.Success
|
||||
control.statusMode = FluStatusViewType.Success
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ FluPage {
|
||||
FluStatusView{
|
||||
id:status_view
|
||||
color: "#00000000"
|
||||
statusMode: FluStatusView.Success
|
||||
statusMode: FluStatusViewType.Success
|
||||
onErrorClicked: control.errorClicked()
|
||||
anchors{
|
||||
left: parent.left
|
||||
|
@ -5,14 +5,8 @@ import FluentUI
|
||||
|
||||
Item{
|
||||
id:control
|
||||
enum StatusMode {
|
||||
Loading,
|
||||
Empty,
|
||||
Error,
|
||||
Success
|
||||
}
|
||||
default property alias content: container.data
|
||||
property int statusMode: FluStatusView.Loading
|
||||
property int statusMode: FluStatusViewType.Loading
|
||||
property string loadingText:"正在加载..."
|
||||
property string emptyText: "空空如也"
|
||||
property string errorText: "页面出错了.."
|
||||
@ -26,20 +20,20 @@ Item{
|
||||
Item{
|
||||
id:container
|
||||
anchors.fill: parent
|
||||
visible: statusMode===FluStatusView.Success
|
||||
visible: statusMode===FluStatusViewType.Success
|
||||
}
|
||||
Loader{
|
||||
id:loader
|
||||
anchors.fill: parent
|
||||
visible: statusMode!==FluStatusView.Success
|
||||
visible: statusMode!==FluStatusViewType.Success
|
||||
sourceComponent: {
|
||||
if(statusMode === FluStatusView.Loading){
|
||||
if(statusMode === FluStatusViewType.Loading){
|
||||
return loadingItem
|
||||
}
|
||||
if(statusMode === FluStatusView.Empty){
|
||||
if(statusMode === FluStatusViewType.Empty){
|
||||
return emptyItem
|
||||
}
|
||||
if(statusMode === FluStatusView.Error){
|
||||
if(statusMode === FluStatusViewType.Error){
|
||||
return errorItem
|
||||
}
|
||||
return undefined
|
||||
@ -108,15 +102,15 @@ Item{
|
||||
}
|
||||
}
|
||||
function showSuccessView(){
|
||||
statusMode = FluStatusView.Success
|
||||
statusMode = FluStatusViewType.Success
|
||||
}
|
||||
function showLoadingView(){
|
||||
statusMode = FluStatusView.Loading
|
||||
statusMode = FluStatusViewType.Loading
|
||||
}
|
||||
function showEmptyView(){
|
||||
statusMode = FluStatusView.Empty
|
||||
statusMode = FluStatusViewType.Empty
|
||||
}
|
||||
function showErrorView(){
|
||||
statusMode = FluStatusView.Error
|
||||
statusMode = FluStatusViewType.Error
|
||||
}
|
||||
}
|
||||
|
@ -4,18 +4,8 @@ import QtQuick.Layouts
|
||||
import FluentUI
|
||||
|
||||
Item {
|
||||
enum TabWidthBehavior {
|
||||
Equal,
|
||||
SizeToContent,
|
||||
Compact
|
||||
}
|
||||
enum CloseButtonVisibility{
|
||||
Nerver,
|
||||
Always,
|
||||
OnHover
|
||||
}
|
||||
property int tabWidthBehavior : FluTabView.Equal
|
||||
property int closeButtonVisibility : FluTabView.Always
|
||||
property int tabWidthBehavior : FluTabViewType.Equal
|
||||
property int closeButtonVisibility : FluTabViewType.Always
|
||||
property int itemWidth: 146
|
||||
property bool addButtonVisibility: true
|
||||
signal newPressed
|
||||
@ -91,13 +81,13 @@ Item {
|
||||
property real timestamp: new Date().getTime()
|
||||
height: tab_nav.height
|
||||
width: {
|
||||
if(tabWidthBehavior === FluTabView.Equal){
|
||||
if(tabWidthBehavior === FluTabViewType.Equal){
|
||||
return Math.max(Math.min(d.maxEqualWidth,tab_nav.width/tab_nav.count),41 + item_btn_close.width)
|
||||
}
|
||||
if(tabWidthBehavior === FluTabView.SizeToContent){
|
||||
if(tabWidthBehavior === FluTabViewType.SizeToContent){
|
||||
return itemWidth
|
||||
}
|
||||
if(tabWidthBehavior === FluTabView.Compact){
|
||||
if(tabWidthBehavior === FluTabViewType.Compact){
|
||||
return item_mouse_hove.containsMouse || item_btn_close.hovered || tab_nav.currentIndex === index ? itemWidth : 41 + item_btn_close.width
|
||||
}
|
||||
return Math.max(Math.min(d.maxEqualWidth,tab_nav.width/tab_nav.count),41 + item_btn_close.width)
|
||||
@ -233,13 +223,13 @@ Item {
|
||||
text: model.text
|
||||
Layout.leftMargin: 10
|
||||
visible: {
|
||||
if(tabWidthBehavior === FluTabView.Equal){
|
||||
if(tabWidthBehavior === FluTabViewType.Equal){
|
||||
return true
|
||||
}
|
||||
if(tabWidthBehavior === FluTabView.SizeToContent){
|
||||
if(tabWidthBehavior === FluTabViewType.SizeToContent){
|
||||
return true
|
||||
}
|
||||
if(tabWidthBehavior === FluTabView.Compact){
|
||||
if(tabWidthBehavior === FluTabViewType.Compact){
|
||||
return item_mouse_hove.containsMouse || item_btn_close.hovered || tab_nav.currentIndex === index
|
||||
}
|
||||
return false
|
||||
@ -256,9 +246,9 @@ Item {
|
||||
width: visible ? 24 : 0
|
||||
height: 24
|
||||
visible: {
|
||||
if(closeButtonVisibility === FluTabView.Nerver)
|
||||
if(closeButtonVisibility === FluTabViewType.Nerver)
|
||||
return false
|
||||
if(closeButtonVisibility === FluTabView.OnHover)
|
||||
if(closeButtonVisibility === FluTabViewType.OnHover)
|
||||
return item_mouse_hove.containsMouse || item_btn_close.hovered
|
||||
return true
|
||||
}
|
||||
|
@ -5,15 +5,11 @@ import QtQuick.Window
|
||||
import FluentUI
|
||||
|
||||
Rectangle {
|
||||
enum HourFormat {
|
||||
H,
|
||||
HH
|
||||
}
|
||||
property color dividerColor: FluTheme.dark ? Qt.rgba(77/255,77/255,77/255,1) : Qt.rgba(239/255,239/255,239/255,1)
|
||||
property color hoverColor: FluTheme.dark ? Qt.rgba(68/255,68/255,68/255,1) : Qt.rgba(251/255,251/255,251/255,1)
|
||||
property color normalColor: FluTheme.dark ? Qt.rgba(61/255,61/255,61/255,1) : Qt.rgba(254/255,254/255,254/255,1)
|
||||
property int hourFormat: FluTimePicker.H
|
||||
property int isH: hourFormat === FluTimePicker.H
|
||||
property int hourFormat: FluTimePickerType.H
|
||||
property int isH: hourFormat === FluTimePickerType.H
|
||||
property var current
|
||||
id:control
|
||||
color: {
|
||||
@ -326,7 +322,7 @@ Rectangle {
|
||||
const period = text_ampm.text
|
||||
const date = new Date()
|
||||
var hours24 = parseInt(hours);
|
||||
if(control.hourFormat === FluTimePicker.H){
|
||||
if(control.hourFormat === FluTimePickerType.H){
|
||||
if (hours === "12") {
|
||||
hours24 = (period === "上午") ? 0 : 12;
|
||||
} else {
|
||||
|
@ -5,12 +5,7 @@ import QtQuick.Controls
|
||||
import FluentUI
|
||||
|
||||
Item {
|
||||
enum TreeViewSelectionMode {
|
||||
None,
|
||||
Single,
|
||||
Multiple
|
||||
}
|
||||
property int selectionMode: FluTreeView.None
|
||||
property int selectionMode: FluTreeViewType.None
|
||||
property var currentElement
|
||||
property var currentParentElement
|
||||
property var rootModel: tree_model.get(0).items
|
||||
@ -83,12 +78,12 @@ Item {
|
||||
anchors.margins: 2
|
||||
color:{
|
||||
if(FluTheme.dark){
|
||||
if(item_layout.singleSelected && selectionMode === FluTreeView.Single){
|
||||
if(item_layout.singleSelected && selectionMode === FluTreeViewType.Single){
|
||||
return Qt.rgba(62/255,62/255,62/255,1)
|
||||
}
|
||||
return (item_layout_mouse.containsMouse || item_layout_expanded.hovered || item_layout_checkbox.hovered)?Qt.rgba(62/255,62/255,62/255,1):Qt.rgba(0,0,0,0)
|
||||
}else{
|
||||
if(item_layout.singleSelected && selectionMode === FluTreeView.Single){
|
||||
if(item_layout.singleSelected && selectionMode === FluTreeViewType.Single){
|
||||
return Qt.rgba(0,0,0,0.06)
|
||||
}
|
||||
return (item_layout_mouse.containsMouse || item_layout_expanded.hovered || item_layout_checkbox.hovered)?Qt.rgba(0,0,0,0.03):Qt.rgba(0,0,0,0)
|
||||
@ -97,7 +92,7 @@ Item {
|
||||
Rectangle{
|
||||
width: 3
|
||||
color:FluTheme.primaryColor.dark
|
||||
visible: item_layout.singleSelected && (selectionMode === FluTreeView.Single)
|
||||
visible: item_layout.singleSelected && (selectionMode === FluTreeViewType.Single)
|
||||
radius: 3
|
||||
height: 20
|
||||
anchors{
|
||||
@ -115,10 +110,10 @@ Item {
|
||||
}
|
||||
}
|
||||
function onClickItem(){
|
||||
if(selectionMode === FluTreeView.None){
|
||||
if(selectionMode === FluTreeViewType.None){
|
||||
itemClicked(model)
|
||||
}
|
||||
if(selectionMode === FluTreeView.Single){
|
||||
if(selectionMode === FluTreeViewType.Single){
|
||||
currentElement = model
|
||||
if(item_layout.parent.parent.parent.itemModel){
|
||||
currentParentElement = item_layout.parent.parent.parent.itemModel
|
||||
@ -129,7 +124,7 @@ Item {
|
||||
}
|
||||
itemClicked(model)
|
||||
}
|
||||
if(selectionMode === FluTreeView.Multiple){
|
||||
if(selectionMode === FluTreeViewType.Multiple){
|
||||
|
||||
}
|
||||
}
|
||||
@ -144,7 +139,7 @@ Item {
|
||||
id:item_layout_checkbox
|
||||
text:""
|
||||
checked: itemModel.multipSelected
|
||||
visible: selectionMode === FluTreeView.Multiple
|
||||
visible: selectionMode === FluTreeViewType.Multiple
|
||||
Layout.leftMargin: 5
|
||||
function refreshCheckBox(){
|
||||
const stack = [tree_model.get(0)];
|
||||
|
@ -5,14 +5,9 @@ import QtQuick.Layouts
|
||||
import FluentUI
|
||||
|
||||
Window {
|
||||
enum LaunchMode {
|
||||
Standard,
|
||||
SingleTask,
|
||||
SingleInstance
|
||||
}
|
||||
default property alias content: container.data
|
||||
property bool closeDestory: true
|
||||
property int launchMode: FluWindow.Standard
|
||||
property int launchMode: FluWindowType.Standard
|
||||
property string route
|
||||
property var argument:({})
|
||||
property var pageRegister
|
||||
|
Reference in New Issue
Block a user