Compare commits

..

99 Commits
1.6.5 ... 1.6.9

Author SHA1 Message Date
84b3a367b2 update 2024-02-24 22:26:54 +08:00
a02ee68483 update 2024-02-23 21:10:04 +08:00
c330dc840e update 2024-02-23 12:26:10 +08:00
438d1fe623 update 2024-02-21 13:29:22 +08:00
e92b1dbea6 fix bug 2024-02-20 22:12:16 +08:00
4d4c0f2259 fix bug 2024-02-20 21:20:50 +08:00
991ef8809a update 2024-02-19 17:32:42 +08:00
abc396d619 fix bug #425 2024-02-19 17:32:12 +08:00
28a36b16e9 update 2024-02-19 11:44:07 +08:00
c50583d66a Merge pull request #429 from maplefater/patch-2
fix(FluSplitLayout): solve binding loop on qt 6.6.0
2024-02-05 20:46:08 +08:00
dbe70f8212 fix(FluSplitLayout): solve binding loop on qt 6.6.0 2024-02-05 11:29:52 +08:00
93f73b034d Merge pull request #423 from maplefater/patch-1
fix typo in README.md
2024-02-02 21:10:39 +08:00
f2edf8d12f Merge pull request #424 from mentalfl0w/main
Workflow: update.
2024-02-02 21:10:31 +08:00
1f90b7c734 Workflow: update. 2024-01-31 20:00:33 +08:00
ed411d986f fix typo in README.md 2024-01-31 15:43:12 +08:00
0222a2111d fix bug #403 2024-01-31 11:13:37 +08:00
a6001ea142 update 2024-01-30 20:16:54 +08:00
41f40d2313 fix bug #421 2024-01-30 15:10:47 +08:00
649dfdd317 update 2024-01-30 15:10:06 +08:00
a705577cba update 2024-01-30 11:45:08 +08:00
9bc5794db8 fix bug #418 2024-01-30 11:21:19 +08:00
3b1ab88b6d update 2024-01-29 20:19:17 +08:00
6a19b47508 update 2024-01-29 18:03:44 +08:00
cf2657078b update 2024-01-29 16:37:24 +08:00
1b0bd0e750 update 2024-01-29 16:36:30 +08:00
5056dc57cf update 2024-01-29 11:46:34 +08:00
190b14eed6 fix bug #418 2024-01-29 11:11:38 +08:00
3933026de3 fix bug #419 2024-01-29 09:17:45 +08:00
74c2dfed5b update 2024-01-25 17:26:50 +08:00
08dbd1d11b update 2024-01-25 17:06:38 +08:00
3dfca40680 fix bug #412 2024-01-24 15:41:10 +08:00
9361d7b2eb update CmakeLists.txt 2024-01-22 16:38:20 +08:00
93832fb325 fix bug #408 2024-01-22 15:41:43 +08:00
d6325b4f5b fix bug #408 2024-01-22 15:32:45 +08:00
53d28448e0 update 2024-01-20 16:26:04 +08:00
5b7bd8a774 update 2024-01-17 15:33:05 +08:00
0f3910c96b update 2024-01-17 14:00:20 +08:00
4cfd14e9bd update 2024-01-09 21:57:02 +08:00
e295b61596 update 2024-01-09 18:07:36 +08:00
fe8083fcb1 fix bug #397 and #393 2024-01-09 00:17:30 +08:00
7546547364 update 2024-01-08 17:43:46 +08:00
4dbb68abf6 update 2024-01-08 17:11:16 +08:00
d37cd00322 update 2024-01-08 17:03:24 +08:00
f04bc2951f update 2024-01-08 16:40:19 +08:00
993de241cb fix bug #398 2024-01-08 14:07:38 +08:00
cd7ce7fe67 update 2024-01-08 10:43:25 +08:00
d397b88892 update 2024-01-05 20:00:28 +08:00
ae2d517ad0 update 2024-01-05 18:18:08 +08:00
fde1b5ff3a Merge branch 'main' of https://github.com/zhuzichu520/FluentUI 2024-01-05 11:36:53 +08:00
53ba535abc update 2024-01-05 11:36:22 +08:00
5ea480afcb update 2024-01-04 18:49:06 +08:00
9d47c30a6b update 2024-01-04 18:46:33 +08:00
833a8217f4 update 2024-01-04 18:00:44 +08:00
3a0f6355c8 update 2024-01-04 14:28:51 +08:00
28a42d7ecc Merge pull request #392 from mentalfl0w/main
Use more elegant singleton and fix spell bug.
2024-01-04 10:22:43 +08:00
8778ca85a3 Use more elegant singleton and fix spell bug. 2024-01-04 00:26:42 +08:00
bb19554215 update 2024-01-03 21:21:33 +08:00
e0c28e2693 update 2024-01-03 17:48:10 +08:00
1d917baac7 update 2024-01-03 16:56:28 +08:00
cc4e88adbd update 2024-01-02 22:55:17 +08:00
284afed52f update 2024-01-02 22:33:47 +08:00
924ce5d127 update 2024-01-02 18:31:44 +08:00
0e0a385f2d update 2024-01-02 18:27:59 +08:00
1464e647d9 update 2024-01-02 16:56:28 +08:00
0241ecd07f update 2024-01-02 14:53:53 +08:00
0cad207359 update 2024-01-02 13:04:28 +08:00
00e028be07 update 2024-01-01 20:38:18 +08:00
4f66c546a8 update 2024-01-01 20:01:46 +08:00
475d293906 update 2023-12-31 11:20:48 +08:00
a6b8e656f3 update 2023-12-31 00:08:18 +08:00
4b84e9175d update 2023-12-30 22:31:56 +08:00
475cb54d73 update 2023-12-30 22:03:49 +08:00
b0edf23f33 update 2023-12-30 21:10:49 +08:00
c123db97b7 update 2023-12-30 20:34:14 +08:00
1450016c69 update 2023-12-30 20:33:33 +08:00
6221eb4178 update 2023-12-29 23:09:46 +08:00
42f0987e73 update 2023-12-29 17:38:04 +08:00
99ff310448 update 2023-12-29 11:13:10 +08:00
bf5c722058 update 2023-12-29 11:04:54 +08:00
8253fb611f update 2023-12-29 00:40:18 +08:00
0b0fbe1e64 update 2023-12-28 23:21:30 +08:00
2d1957afe3 update 2023-12-28 22:55:38 +08:00
823721ab8c update 2023-12-28 21:30:27 +08:00
bf074da658 update 2023-12-28 21:20:47 +08:00
91a692484f update 2023-12-28 20:47:36 +08:00
46f7299362 update 2023-12-28 15:07:04 +08:00
9f652a7c76 update 2023-12-28 14:27:19 +08:00
9adb6b645b update 2023-12-28 12:42:22 +08:00
2cfc73c00b update 2023-12-22 18:07:46 +08:00
d817782526 update 2023-12-22 12:39:04 +08:00
9dd9d10049 update 2023-12-22 02:09:47 +08:00
fa6b5cfc45 update 2023-12-22 01:30:25 +08:00
217ceabbaa update 2023-12-21 18:12:43 +08:00
83a66b3f15 update 2023-12-21 10:44:46 +08:00
3239e6f12c update 2023-12-20 22:00:10 +08:00
1c67f2a41b update 2023-12-20 21:58:59 +08:00
0b7358af41 fix bug #377 2023-12-20 18:06:46 +08:00
a851696eb0 fix bug #377 2023-12-20 18:01:09 +08:00
f6cc83123b update 2023-12-20 17:17:41 +08:00
255 changed files with 2311 additions and 2455 deletions

View File

@ -21,8 +21,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-13]
qt_ver: [6.6.0]
os: [macos-latest]
qt_ver: [6.6.2]
qt_arch: [clang_64]
env:
targetName: example
@ -50,11 +50,13 @@ jobs:
cmake --version
mkdir build
cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/FluentUI/Qt/6.6.0/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/FluentUI/Qt/${{ matrix.qt_ver }}/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel
- name: package
run: |
# 先删除所有dSYM文件减少包的体积
sudo find /Users/runner/work/FluentUI/Qt/${{ matrix.qt_ver }}/macos/qml -name "*.dSYM" | xargs rm -r
# 拷贝依赖
sudo macdeployqt bin/release/${targetName}.app -qmldir=. -dmg
@ -71,4 +73,4 @@ jobs:
file: bin/release/${{ env.targetName }}.dmg
asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.dmg
tag: ${{ github.ref }}
overwrite: true
overwrite: true

View File

@ -22,8 +22,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
qt_ver: [6.6.0]
os: [ubuntu-latest]
qt_ver: [6.6.2]
qt_arch: [gcc_64]
env:
targetName: example
@ -49,13 +49,16 @@ jobs:
- name: ubuntu install GL library
run: sudo apt-get install -y libxcb-cursor0 libgl1-mesa-dev libxcb1-dev libgtk-3-dev libxkbcommon-x11-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-sync-dev libxcb-render-util0-dev libxcb-shm0-dev
- name: ubuntu install libfuse2
run: sudo apt install libfuse2
- name: build ubuntu
run: |
ninja --version
cmake --version
mkdir build
cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/FluentUI/Qt/6.6.0/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/home/runner/work/FluentUI/Qt/${{ matrix.qt_ver }}/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel
- name: install QT linux deploy
@ -87,4 +90,4 @@ jobs:
file: ${{ env.targetName }}.AppImage
asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.AppImage
tag: ${{ github.ref }}
overwrite: true
overwrite: true

View File

@ -21,10 +21,10 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2022]
os: [windows-latest]
include:
- qt_arch: win64_mingw
qt_ver: 6.6.0
qt_ver: 6.6.2
qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900"
qt_tools_mingw_install: mingw900_64
env:
@ -69,7 +69,7 @@ jobs:
mkdir build
cd build
ninja --version
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\6.6.0\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\${{ matrix.qt_ver }}\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel
- name: package
@ -101,4 +101,4 @@ jobs:
file: ./action-cli/installer.exe
asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.exe
tag: ${{ github.ref }}
overwrite: true
overwrite: true

View File

@ -50,7 +50,7 @@ jobs:
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
mkdir build
cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\5.15.2\msvc2019 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\${{ matrix.qt_ver }}\msvc2019 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel
echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV%
echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV%
@ -88,4 +88,4 @@ jobs:
file: ./action-cli/installer.exe
asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.exe
tag: ${{ github.ref }}
overwrite: true
overwrite: true

View File

@ -21,9 +21,9 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-2019]
os: [windows-latest]
include:
- qt_ver: 6.6.0
- qt_ver: 6.6.2
qt_arch: win64_msvc2019_64
msvc_arch: x64
qt_arch_install: msvc2019_64
@ -35,7 +35,12 @@ jobs:
uses: actions/checkout@v3
with:
submodules: recursive
- name: Setup ninja
uses: seanmiddleditch/gha-setup-ninja@master
with:
version: 1.10.2
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
@ -48,11 +53,11 @@ jobs:
id: build
shell: cmd
run: |
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.msvc_arch }}
ninja --version
mkdir build
cd build
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\6.6.0\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\${{ matrix.qt_ver }}\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja ..
cmake --build . --target all --config Release --parallel
echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV%
echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV%
@ -90,4 +95,4 @@ jobs:
file: ./action-cli/installer.exe
asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.exe
tag: ${{ github.ref }}
overwrite: true
overwrite: true

Binary file not shown.

Binary file not shown.

View File

@ -2,6 +2,12 @@ cmake_minimum_required(VERSION 3.20)
project(FluentUI VERSION 1.0)
if(MSVC)
#让Release也生成pdb文件
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
endif()
set(FLUENTUI_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})
list(APPEND CMAKE_MODULE_PATH ${FLUENTUI_DIRECTORY}/.cmake/)
@ -26,6 +32,7 @@ endif()
add_subdirectory(src)
#Release也支持日志打印代码位置
target_compile_definitions(fluentuiplugin
PRIVATE
QT_MESSAGELOGCONTEXT

View File

@ -46,7 +46,7 @@ Use [Qt Online Installers](https://download.qt.io/archive/online_installers/) to
## ⚽ Get started
+ Download the [pre-built release](https://github.com/zhuzichu520/FluentUI/releases). (Please pecify your platform and compilers.)
+ Download the [pre-built release](https://github.com/zhuzichu520/FluentUI/releases). (Please specify your platform and compilers.)
+ run `example` program.

View File

@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.20)
project(example VERSION 1.0)
project(example VERSION 1.0 LANGUAGES CXX)
#配置通用编译
set(CMAKE_CXX_STANDARD 17)
@ -21,9 +21,7 @@ else()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY $<1:${FLUENTUI_DIRECTORY}/bin/release>)
endif()
#获取文件路径分隔符(解决执行命令的时候有些平台会报错)
file(TO_CMAKE_PATH "/" PATH_SEPARATOR)
#导入Qt相关依赖包
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Quick Svg Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Quick Svg Network)
@ -49,24 +47,33 @@ foreach(filepath ${CPP_FILES})
list(APPEND sources_files ${filename})
endforeach(filepath)
if(WIN32)
list(APPEND sources_files "src/app_dmp.h")
endif()
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
#遍历所有qml文件
file(GLOB_RECURSE QML_PATHS *.qml)
file(GLOB_RECURSE QML_PATHS *.qml qmldir)
foreach(filepath ${QML_PATHS})
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
if(${filepath} MATCHES "Qt${QT_VERSION_MAJOR}/")
string(REPLACE "qml-Qt${QT_VERSION_MAJOR}" "qml" filealias ${filename})
if(${filepath} MATCHES "qml-Qt6")
string(REPLACE "qml-Qt6" "qml" filealias ${filename})
set_source_files_properties(${filename} PROPERTIES QT_RESOURCE_ALIAS ${filealias})
list(APPEND qml_files ${filename})
if(${filename} MATCHES "qmldir")
list(APPEND resource_files ${filename})
else()
list(APPEND qml_files ${filename})
endif()
endif()
endforeach(filepath)
#遍历所有资源文件
file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp *.obj qmldir)
file(GLOB_RECURSE RES_PATHS *.png *.jpg *.svg *.ico *.ttf *.webp *.obj)
foreach(filepath ${RES_PATHS})
string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "" filename ${filepath})
list(APPEND resource_files ${filename})
endforeach(filepath)
endif()
#如果是Windows平台则生成rc文件还有inno setup脚本文件
@ -95,29 +102,26 @@ else ()
)
endif ()
#复制程序运行所需要的动态库
if(WIN32)
#复制动态库到可执行文件同级目录下
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(3RDPARTY_ARCH_DIR ${CMAKE_SOURCE_DIR}/3rdparty/Win_x86)
elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(3RDPARTY_ARCH_DIR ${CMAKE_SOURCE_DIR}/3rdparty/Win_x64)
endif()
if(MSVC)
set(DLLPATH ${3RDPARTY_ARCH_DIR}/msvc/*.dll)
if(CMAKE_SIZEOF_VOID_P EQUAL 4)
file(GLOB_RECURSE 3RDPARTY_DLL_DIR ${CMAKE_SOURCE_DIR}/3rdparty/msvc/x86/*.dll)
elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
file(GLOB_RECURSE 3RDPARTY_DLL_DIR ${CMAKE_SOURCE_DIR}/3rdparty/msvc/x64/*.dll)
endif()
elseif(MINGW)
set(DLLPATH ${3RDPARTY_ARCH_DIR}/mingw/*.dll)
file(GLOB_RECURSE 3RDPARTY_DLL_DIR ${CMAKE_SOURCE_DIR}/3rdparty/mingw/*.dll)
endif()
string(REPLACE "/" ${PATH_SEPARATOR} DLLPATH "${DLLPATH}")
file(GLOB DLL_FILES ${DLLPATH})
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${DLL_FILES}
${3RDPARTY_DLL_DIR}
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
)
endif()
if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
#添加qml模块
#如果是Qt6.2以上则使用qt_add_qml_module添加资源文件
qt_add_qml_module(example
URI "example"
VERSION 1.0
@ -126,6 +130,7 @@ if(QT_VERSION VERSION_GREATER_EQUAL "6.2")
RESOURCE_PREFIX "/"
)
else()
#如果是Qt6.2以下则使用qrc添加资源文件
target_include_directories(example PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
)
@ -153,11 +158,13 @@ set_target_properties(example PROPERTIES
WIN32_EXECUTABLE TRUE
)
#Release也支持日志打印代码位置
target_compile_definitions(example
PRIVATE
QT_MESSAGELOGCONTEXT
)
#目标文件链接库
target_link_libraries(example PRIVATE
Qt${QT_VERSION_MAJOR}::Quick
Qt${QT_VERSION_MAJOR}::Svg

View File

@ -154,10 +154,9 @@
<file>qml/page/T_RatingControl.qml</file>
<file>qml/page/T_Rectangle.qml</file>
<file>qml/page/T_RemoteLoader.qml</file>
<file>qml/page/T_Screenshot.qml</file>
<file>qml/page/T_Settings.qml</file>
<file>qml/page/T_Slider.qml</file>
<file>qml/page/T_StatusView.qml</file>
<file>qml/page/T_StatusLayout.qml</file>
<file>qml/page/T_TableView.qml</file>
<file>qml/page/T_TabView.qml</file>
<file>qml/page/T_Text.qml</file>
@ -181,7 +180,7 @@
<file>res/image/bg_scenic.png</file>
<file>res/image/image_1.jpg</file>
<file>qml/window/PageWindow.qml</file>
<file>qml/page/T_StaggeredView.qml</file>
<file>qml/page/T_StaggeredLayout.qml</file>
<file>qml/viewmodel/SettingsViewModel.qml</file>
<file>qml/viewmodel/TextBoxViewModel.qml</file>
<file>qml/page/T_Clip.qml</file>
@ -196,5 +195,8 @@
<file>qml/chart/T_ScatterChart.qml</file>
<file>qml/chart/T_BubbleChart.qml</file>
<file>qml/chart/T_PolarAreaChart.qml</file>
<file>res/image/ic_crash.png</file>
<file>qml/window/CrashWindow.qml</file>
<file>qml/page/T_SplitLayout.qml</file>
</qresource>
</RCC>

View File

@ -36,12 +36,17 @@ Item {
"/about":"qrc:/example/qml/window/AboutWindow.qml",
"/login":"qrc:/example/qml/window/LoginWindow.qml",
"/hotload":"qrc:/example/qml/window/HotloadWindow.qml",
"/crash":"qrc:/example/qml/window/CrashWindow.qml",
"/singleTaskWindow":"qrc:/example/qml/window/SingleTaskWindow.qml",
"/standardWindow":"qrc:/example/qml/window/StandardWindow.qml",
"/singleInstanceWindow":"qrc:/example/qml/window/SingleInstanceWindow.qml",
"/pageWindow":"qrc:/example/qml/window/PageWindow.qml"
}
FluApp.initialRoute = "/"
FluApp.run()
var args = Qt.application.arguments
if(args.length>=2 && args[1].startsWith("-crashed=")){
FluApp.navigate("/crash",{crashFilePath:args[1].replace("-crashed=","")})
}else{
FluApp.navigate("/")
}
}
}

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -118,7 +118,7 @@ FluExpander{
"FluTableView",
"FluColors",
"FluTheme",
"FluStatusView",
"FluStatusLayout",
"FluRatingControl",
"FluPasswordBox",
"FluBreadcrumbBar",
@ -136,7 +136,7 @@ FluExpander{
"FluTimeline",
"FluChart",
"FluRangeSlider",
"FluStaggeredView",
"FluStaggeredLayout",
"FluProgressButton",
"FluLoadingButton",
"FluClip",

View File

@ -50,9 +50,7 @@ FluObject{
}
title:"Buttons"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Button.png"
recentlyUpdated:true
desc:"A control that responds to user input and raisesa Click event."
extra:({image:"qrc:/example/res/image/control/Button.png",recentlyUpdated:true,desc:"A control that responds to user input and raisesa Click event."})
url:"qrc:/example/qml/page/T_Buttons.qml"
onTap:{
item_buttons.count = 0
@ -83,18 +81,14 @@ FluObject{
FluPaneItem{
title:"Slider"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Slider.png"
recentlyUpdated:true
desc:"A control that lets the user select from a rangeof values by moving a Thumb control along atrack."
extra:({image:"qrc:/example/res/image/control/Slider.png",recentlyUpdated:true,desc:"A control that lets the user select from a rangeof values by moving a Thumb control along atrack."})
url:"qrc:/example/qml/page/T_Slider.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"CheckBox"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Checkbox.png"
recentlyUpdated:true
desc:"A control that a user can select or clear."
extra:({image:"qrc:/example/res/image/control/Checkbox.png",recentlyUpdated:true,desc:"A control that a user can select or clear."})
url:"qrc:/example/qml/page/T_CheckBox.qml"
onTap:{ navigationView.push(url) }
}
@ -164,9 +158,7 @@ FluObject{
FluPaneItem{
title:"InfoBar"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/InfoBar.png"
recentlyUpdated:true
desc:"An inline message to display app-wide statuschange information."
extra:({image:"qrc:/example/res/image/control/InfoBar.png",recentlyUpdated:true,desc:"An inline message to display app-wide statuschange information."})
url:"qrc:/example/qml/page/T_InfoBar.qml"
onTap:{ navigationView.push(url) }
}
@ -200,12 +192,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Clip.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"StatusView"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StatusView.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Carousel"
menuDelegate: paneItemMenu
@ -218,12 +204,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Expander.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"StaggeredView"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StaggeredView.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Watermark"
menuDelegate: paneItemMenu
@ -232,6 +212,29 @@ FluObject{
}
}
FluPaneItemExpander{
title:Lang.layout
icon:FluentIcons.DockLeft
FluPaneItem{
title:"StaggeredLayout"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StaggeredLayout.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"SplitLayout"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_SplitLayout.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"StatusLayout"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StatusLayout.qml"
onTap:{ navigationView.push(url) }
}
}
FluPaneItemExpander{
title:Lang.popus
icon:FluentIcons.ButtonMenu
@ -276,10 +279,7 @@ FluObject{
FluPaneItem{
title:"Pivot"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Pivot.png"
recentlyAdded:true
order:3
desc:"Presents information from different sources in atabbed view."
extra:({image:"qrc:/example/res/image/control/Pivot.png",order:3,recentlyAdded:true,desc:"Presents information from different sources in atabbed view."})
url:"qrc:/example/qml/page/T_Pivot.qml"
onTap:{ navigationView.push(url) }
}
@ -292,10 +292,7 @@ FluObject{
FluPaneItem{
title:"TabView"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/TabView.png"
recentlyAdded:true
order:1
desc:"A control that displays a collection of tabs thatcan be used to display several documents."
extra:({image:"qrc:/example/res/image/control/TabView.png",order:1,recentlyAdded:true,desc:"A control that displays a collection of tabs thatcan be used to display several documents."})
url:"qrc:/example/qml/page/T_TabView.qml"
onTap:{ navigationView.push(url) }
}
@ -308,10 +305,7 @@ FluObject{
FluPaneItem{
title:"TableView"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/DataGrid.png"
recentlyAdded:true
order:4
desc:"The TableView control provides a flexible way to display a collection of data in rows and columns"
extra:({image:"qrc:/example/res/image/control/DataGrid.png",order:4,recentlyAdded:true,desc:"The TableView control provides a flexible way to display a collection of data in rows and columns"})
url:"qrc:/example/qml/page/T_TableView.qml"
onTap:{ navigationView.push(url) }
}
@ -330,10 +324,7 @@ FluObject{
FluPaneItem{
title:"FlipView"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/FlipView.png"
recentlyAdded:true
order:2
desc:"Presents a collection of items that the user canflip through, one item at a time."
extra:({image:"qrc:/example/res/image/control/FlipView.png",order:2,recentlyAdded:true,desc:"Presents a collection of items that the user canflip through, one item at a time."})
url:"qrc:/example/qml/page/T_FlipView.qml"
onTap:{ navigationView.push(url) }
}
@ -441,12 +432,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Timeline.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Screenshot(Todo)"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_Screenshot.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Captcha"
menuDelegate: paneItemMenu
@ -486,25 +471,25 @@ FluObject{
url:"qrc:/example/qml/page/T_3D.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Test Crash"
visible: FluTools.isWin()
onTapListener: function(){
AppInfo.testCrash()
}
}
}
function getRecentlyAddedData(){
var arr = []
for(var i=0;i<children.length;i++){
var item = children[i]
if(item instanceof FluPaneItem && item.recentlyAdded){
var items = navigationView.getItems();
for(var i=0;i<items.length;i++){
var item = items[i]
if(item instanceof FluPaneItem && item.extra && item.extra.recentlyAdded){
arr.push(item)
}
if(item instanceof FluPaneItemExpander){
for(var j=0;j<item.children.length;j++){
var itemChild = item.children[j]
if(itemChild instanceof FluPaneItem && itemChild.recentlyAdded){
arr.push(itemChild)
}
}
}
}
arr.sort(function(o1,o2){ return o2.order-o1.order })
arr.sort(function(o1,o2){ return o2.extra.order-o1.extra.order })
return arr
}
@ -513,7 +498,7 @@ FluObject{
var items = navigationView.getItems();
for(var i=0;i<items.length;i++){
var item = items[i]
if(item instanceof FluPaneItem && item.recentlyUpdated){
if(item instanceof FluPaneItem && item.extra && item.extra.recentlyUpdated){
arr.push(item)
}
}

View File

@ -8,6 +8,7 @@ QtObject {
property string basic_input
property string form
property string surface
property string layout
property string popus
property string navigation
property string theming
@ -34,6 +35,7 @@ QtObject {
basic_input="基本输入"
form="表单"
surface="表面"
layout="布局"
popus="弹窗"
navigation="导航"
theming="主题"
@ -61,6 +63,7 @@ QtObject {
basic_input="Basic Input"
form="Form"
surface="Surfaces"
layout="Layout"
popus="Popus"
navigation="Navigation"
theming="Theming"

View File

@ -10,7 +10,7 @@ import Qt3D.Extras
import QtQuick.Scene3D
import QtQuick.Dialogs
import Qt.labs.platform
import "qrc:///example/qml/component"
import "../component"
FluContentPage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -4,7 +4,7 @@ import QtQuick.Window
import QtQuick.Controls
import QtQuick.Controls.Basic
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{
@ -16,7 +16,6 @@ FluScrollablePage{
Layout.topMargin: 20
FluButton{
anchors.verticalCenter: parent.verticalCenter
Layout.topMargin: 20
text:"Show Double Button Dialog"
onClicked: {
double_btn_dialog.open()
@ -65,7 +64,6 @@ FluScrollablePage{
Layout.topMargin: 20
FluButton{
anchors.verticalCenter: parent.verticalCenter
Layout.topMargin: 20
text:"Show Triple Button Dialog"
onClicked: {
triple_btn_dialog.open()
@ -118,17 +116,25 @@ FluScrollablePage{
FluArea{
Layout.fillWidth: true
height: 68
height: 100
paddings: 10
Layout.topMargin: 20
FluButton{
anchors.verticalCenter: parent.verticalCenter
Layout.topMargin: 20
anchors.top: parent.top
anchors.topMargin: 5
text:"Custom Content Dialog"
onClicked: {
custom_btn_dialog.open()
}
}
FluButton{
anchors.top: parent.top
anchors.topMargin: 48
text:"Custom Content Dialog2"
onClicked: {
custom_btn_dialog2.open()
}
}
}
CodeExpander{
Layout.fillWidth: true
@ -164,8 +170,8 @@ FluScrollablePage{
negativeText:"取消加载"
contentDelegate: Component{
Item{
width: parent.width
height: 80
implicitWidth: parent.width
implicitHeight: 80
FluProgressRing{
anchors.centerIn: parent
}
@ -179,4 +185,47 @@ FluScrollablePage{
showSuccess("点击确定按钮")
}
}
FluContentDialog{
id:custom_btn_dialog2
title:"折线图"
contentDelegate: Component{
Item{
implicitWidth: parent.width
implicitHeight: 300
FluChart{
anchors.fill: parent
chartType: 'line'
chartData: { return {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [{
label: 'My First Dataset',
data: [65, 59, 80, 81, 56, 55, 40],
fill: false,
borderColor: 'rgb(75, 192, 192)',
tension: 0.1
}]
}
}
chartOptions: { return {
maintainAspectRatio: false,
title: {
display: true,
text: 'Chart.js Line Chart - Stacked'
},
tooltips: {
mode: 'index',
intersect: false
}
}
}
}
}
}
buttonFlags: FluContentDialogType.PositiveButton
positiveText:"确定"
onPositiveClicked:{
showSuccess("点击确定按钮")
}
}
}

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -2,8 +2,8 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import "qrc:///example/qml/global"
import FluentUI
import "../global"
FluScrollablePage{
@ -27,7 +27,6 @@ FluScrollablePage{
id: bg
fillMode:Image.PreserveAspectCrop
anchors.fill: parent
asynchronous: true
verticalAlignment: Qt.AlignTop
sourceSize: Qt.size(960,640)
source: "qrc:/example/res/image/bg_home_header.png"
@ -160,7 +159,7 @@ FluScrollablePage{
Component{
id:com_item
Item{
property string desc: modelData.desc
property string desc: modelData.extra.desc
width: 320
height: 120
FluArea{
@ -182,7 +181,7 @@ FluScrollablePage{
id:item_icon
height: 40
width: 40
source: modelData.image
source: modelData.extra.image
anchors{
left: parent.left
leftMargin: 20

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{
@ -41,7 +41,7 @@ FluScrollablePage{
FluButton{
text:"Success"
onClicked: {
showSuccess("这是一个Success样式的InfoBar这是一个Success样式的InfoBar")
showSuccess("这是一个Success样式的InfoBar")
}
}
FluButton{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -4,7 +4,7 @@ import QtQuick.Window
import QtQuick.Controls
import FluentUI
import Qt.labs.platform
import "qrc:///example/qml/component"
import "../component"
FluContentPage{
@ -407,7 +407,7 @@ FluContentPage{
text: "Download File"
onClicked: {
folder_dialog.showDialog(function(path){
FluNetwork.get("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
FluNetwork.get("http://vjs.zencdn.net/v/oceans.mp4")
.toDownload(path)
.bind(root)
.go(callable_download_file)
@ -421,7 +421,7 @@ FluContentPage{
text: "Breakpoint Download File"
onClicked: {
folder_dialog.showDialog(function(path){
FluNetwork.get("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
FluNetwork.get("http://vjs.zencdn.net/v/oceans.mp4")
.toDownload(path,true)
.bind(root)
.go(callable_breakpoint_download_file)
@ -521,7 +521,7 @@ FluContentPage{
property var onSelectListener
id: folder_dialog
folder: StandardPaths.standardLocations(StandardPaths.DownloadLocation)[0]
currentFile: StandardPaths.standardLocations(StandardPaths.DownloadLocation)[0]+"/big_buck_bunny.mp4"
currentFile: StandardPaths.standardLocations(StandardPaths.DownloadLocation)[0]+"/oceans.mp4"
fileMode: FileDialog.SaveFile
onAccepted: {
folder_dialog.onSelectListener(FluTools.toLocalPath(folder_dialog.currentFile))

View File

@ -2,8 +2,8 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import "qrc:///example/qml/component"
import FluentUI
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage {

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluPage{
launchMode: FluPageType.SingleTop

View File

@ -1,57 +0,0 @@
import QtQuick
import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import Qt.labs.platform
import "qrc:///example/qml/component"
FluScrollablePage{
title:"Screenshot"
FluArea{
Layout.fillWidth: true
height: 100
paddings: 10
Layout.topMargin: 20
FluFilledButton{
anchors.verticalCenter: parent.verticalCenter
text:"Open Screenshot"
onClicked: {
screenshot.open()
}
}
}
Rectangle{
Layout.preferredHeight: 400
Layout.preferredWidth: 400
Layout.topMargin: 10
Layout.leftMargin: 4
Layout.bottomMargin: 4
radius: 4
color: FluTheme.dark ? FluColors.Black : FluColors.White
FluShadow{
radius: 4
color: FluTheme.primaryColor
}
Image{
id:image
anchors.fill: parent
fillMode: Image.PreserveAspectFit
asynchronous: true
}
}
FluScreenshot{
id:screenshot
captrueMode: FluScreenshotType.File
saveFolder: StandardPaths.writableLocation(StandardPaths.AppLocalDataLocation)+"/screenshot"
onCaptrueCompleted:
(captrue)=>{
image.source = captrue
}
}
}

View File

@ -3,9 +3,9 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/global"
import "qrc:///example/qml/component"
import "qrc:///example/qml/viewmodel"
import "../global"
import "../component"
import "../viewmodel"
FluScrollablePage{
@ -87,26 +87,6 @@ FluScrollablePage{
}
}
FluArea{
Layout.fillWidth: true
Layout.topMargin: 20
height: 50
paddings: 10
FluCheckBox{
text:"Software Render"
checked: SettingsHelper.getRender() === "software"
anchors.verticalCenter: parent.verticalCenter
onClicked: {
if(SettingsHelper.getRender() === "software"){
SettingsHelper.saveRender("")
}else{
SettingsHelper.saveRender("software")
}
dialog_restart.open()
}
}
}
FluContentDialog{
id:dialog_restart
title:"友情提示"

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -2,8 +2,8 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import "qrc:///example/qml/component"
import FluentUI
import "../component"
FluScrollablePage{

View File

@ -0,0 +1,84 @@
import QtQuick
import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "../component"
FluContentPage{
title:"SplitLayout"
RowLayout{
id:layout_dropdown
anchors{
top: parent.top
topMargin: 20
}
FluText{
text:"orientation:"
}
FluDropDownButton{
id:btn_orientation
Layout.preferredWidth: 120
text:"Horizontal"
FluMenuItem{
text:"Horizontal"
onClicked: {
btn_orientation.text = text
split_layout.orientation = Qt.Horizontal
}
}
FluMenuItem{
text:"Vertical"
onClicked: {
btn_orientation.text = text
split_layout.orientation = Qt.Vertical
}
}
}
}
FluSplitLayout {
id:split_layout
anchors{
top: layout_dropdown.bottom
left: parent.left
right: parent.right
bottom: parent.bottom
topMargin: 8
}
orientation: Qt.Horizontal
Item {
clip: true
implicitWidth: 200
implicitHeight: 200
SplitView.maximumWidth: 400
SplitView.maximumHeight: 400
FluText {
text: "Page 1"
anchors.centerIn: parent
}
}
Item {
clip: true
id: centerItem
SplitView.minimumWidth: 50
SplitView.minimumHeight: 50
SplitView.fillWidth: true
SplitView.fillHeight: true
FluText {
text: "Page 2"
anchors.centerIn: parent
}
}
Item {
clip: true
implicitWidth: 200
implicitHeight: 200
FluText {
text: "Page 3"
anchors.centerIn: parent
}
}
}
}

View File

@ -2,12 +2,12 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import "qrc:///example/qml/component"
import FluentUI 1.0
import "../component"
FluContentPage{
title:"StaggeredView"
title:"StaggeredLayout"
property var colors : [FluColors.Yellow,FluColors.Orange,FluColors.Red,FluColors.Magenta,FluColors.Purple,FluColors.Blue,FluColors.Teal,FluColors.Green]
@ -32,7 +32,7 @@ FluContentPage{
contentHeight: staggered_view.implicitHeight
clip: true
ScrollBar.vertical: FluScrollBar {}
FluStaggeredView{
FluStaggeredLayout{
id:staggered_view
width: parent.width
itemWidth: 160

View File

@ -3,11 +3,11 @@ import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{
title:"StatusView"
title:"StatusLayout"
FluArea{
id:layout_actions
@ -25,28 +25,28 @@ FluScrollablePage{
text:"Loading"
onClicked: {
btn_status_mode.text = text
status_view.statusMode = FluStatusViewType.Loading
status_view.statusMode = FluStatusLayoutType.Loading
}
}
FluMenuItem{
text:"Empty"
onClicked: {
btn_status_mode.text = text
status_view.statusMode = FluStatusViewType.Empty
status_view.statusMode = FluStatusLayoutType.Empty
}
}
FluMenuItem{
text:"Error"
onClicked: {
btn_status_mode.text = text
status_view.statusMode = FluStatusViewType.Error
status_view.statusMode = FluStatusLayoutType.Error
}
}
FluMenuItem{
text:"Success"
onClicked: {
btn_status_mode.text = text
status_view.statusMode = FluStatusViewType.Success
status_view.statusMode = FluStatusLayoutType.Success
}
}
}
@ -58,7 +58,7 @@ FluScrollablePage{
Layout.topMargin: 10
height: 380
paddings: 10
FluStatusView{
FluStatusLayout{
id:status_view
anchors.fill: parent
onErrorClicked:{
@ -73,9 +73,9 @@ FluScrollablePage{
CodeExpander{
Layout.fillWidth: true
Layout.topMargin: -1
code:'FluStatusView{
code:'FluStatusLayout{
anchors.fill: parent
statusMode: FluStatusViewType.Loading
statusMode: FluStatusLayoutType.Loading
Rectangle{
anchors.fill: parent
color:FluTheme.primaryColor

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{
@ -67,10 +67,10 @@ FluScrollablePage{
text:"Always"
Layout.preferredWidth: 120
FluMenuItem{
text:"Nerver"
text:"Never"
onClicked: {
btn_close_button_visibility.text = text
tab_view.closeButtonVisibility = FluTabViewType.Nerver
tab_view.closeButtonVisibility = FluTabViewType.Never
}
}
FluMenuItem{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluContentPage{
@ -29,6 +29,42 @@ FluContentPage{
}
}
FluContentDialog{
id:custom_update_dialog
property var text
property var onAccpetListener
title:"修改列名"
negativeText:"取消"
contentDelegate: Component{
Item{
implicitWidth: parent.width
implicitHeight: 60
FluTextBox{
id:textbox_text
anchors.centerIn: parent
onTextChanged: {
custom_update_dialog.text = textbox_text.text
}
}
Component.onCompleted: {
textbox_text.text = custom_update_dialog.text
textbox_text.forceActiveFocus()
}
}
}
positiveText:"确定"
onPositiveClicked:{
if(custom_update_dialog.onAccpetListener){
custom_update_dialog.onAccpetListener(custom_update_dialog.text)
}
}
function showDialog(text,listener){
custom_update_dialog.text = text
custom_update_dialog.onAccpetListener = listener
custom_update_dialog.open()
}
}
Component{
id:com_checbox
Item{
@ -158,6 +194,34 @@ FluContentPage{
}
}
Component{
id:com_column_update_title
Item{
FluText{
id:text_title
text: {
if(options.title){
return options.title
}
return ""
}
anchors.fill: parent
verticalAlignment: Qt.AlignVCenter
horizontalAlignment: Qt.AlignHCenter
elide: Text.ElideRight
}
MouseArea{
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
custom_update_dialog.showDialog(options.title,function(text){
itemModel.display = table_view.customItem(com_column_update_title,{"title":text})
})
}
}
}
}
Component{
id:com_column_sort_age
Item{
@ -233,19 +297,17 @@ FluContentPage{
dataIndex: 'checkbox',
width:80,
minimumWidth:80,
maximumWidth:80,
maximumWidth:80
},
{
title: '头像',
title: table_view.customItem(com_column_update_title,{title:'头像'}),
dataIndex: 'avatar',
width:100,
minimumWidth:100,
maximumWidth:100
width:100
},
{
title: '姓名',
dataIndex: 'name',
readOnly:true,
readOnly:true
},
{
title: table_view.customItem(com_column_sort_age,{sort:0}),
@ -349,5 +411,4 @@ FluContentPage{
root.dataSource = dataSource
table_view.dataSource = root.dataSource
}
}

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,8 +3,8 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "qrc:///example/qml/viewmodel"
import "../component"
import "../viewmodel"
FluScrollablePage{
title:"TextBox"

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,7 @@ import QtQuick.Layouts
import QtQuick.Window
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluContentPage {

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Window
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluContentPage{

View File

@ -2,14 +2,14 @@ import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluWindow {
id:window
title:"关于"
width: 600
height: 600
height: 580
fixSize: true
launchMode: FluWindowType.SingleTask

View File

@ -0,0 +1,72 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import Qt.labs.platform
import "../component"
FluWindow {
id:window
title:"友情提示"
width: 300
height: 400
fixSize: true
showMinimize: false
showStayTop: false
property string crashFilePath
onInitArgument:
(argument)=>{
crashFilePath = argument.crashFilePath
}
Image{
width: 540/2
height: 285/2
anchors{
horizontalCenter: parent.horizontalCenter
top: parent.top
topMargin: 40
}
source: "qrc:/example/res/image/ic_crash.png"
}
FluText{
id:text_info
anchors{
horizontalCenter: parent.horizontalCenter
top: parent.top
topMargin: 240
}
text:"发生意外错误\n给您带来的不便我们深表歉意"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
}
RowLayout{
anchors{
horizontalCenter: parent.horizontalCenter
bottom: parent.bottom
bottomMargin: 20
}
FluButton{
text:"日志上报"
onClicked: {
FluTools.showFileInFolder(crashFilePath)
}
}
Item{
width: 30
height: 1
}
FluFilledButton{
text:"重启程序"
onClicked: {
FluApp.exit(931)
}
}
}
}

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import example
import "qrc:///example/qml/component"
import "../component"
FluWindow {
@ -25,7 +25,7 @@ FluWindow {
FluRemoteLoader{
id:loader
anchors.fill: parent
statusMode: FluStatusViewType.Success
statusMode: FluStatusLayoutType.Success
lazy: true
errorItem: Item{
FluText{
@ -43,7 +43,7 @@ FluWindow {
text:"拖入qml文件"
font.pixelSize: 26
anchors.centerIn: parent
visible: !loader.itemLodaer().item && loader.statusMode === FluStatusViewType.Success
visible: !loader.itemLodaer().item && loader.statusMode === FluStatusLayoutType.Success
}
Rectangle{
radius: 4

View File

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluWindow {

View File

@ -5,9 +5,9 @@ import QtQuick.Layouts
import Qt.labs.platform
import FluentUI
import example
import "qrc:///example/qml/component"
import "qrc:///example/qml/global"
import "qrc:///example/qml/viewmodel"
import "../component"
import "../global"
import "../viewmodel"
FluWindow {
@ -179,7 +179,7 @@ FluWindow {
id:loader
lazy: true
anchors.fill: parent
source: "https://zhu-zichu.gitee.io/Qt_163_LieflatPage.qml"
source: "https://zhu-zichu.gitee.io/Qt_168_LieflatPage.qml"
}
}
front: Item{

View File

@ -3,7 +3,7 @@ import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import example
import "qrc:///example/qml/component"
import "../component"
FluWindow {

View File

@ -2,7 +2,8 @@ import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluWindow {

View File

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluWindow {

View File

@ -2,7 +2,7 @@ import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import FluentUI
import "qrc:///example/qml/component"
import "../component"
FluWindow {

View File

@ -36,12 +36,17 @@ Item {
"/about":"qrc:/example/qml/window/AboutWindow.qml",
"/login":"qrc:/example/qml/window/LoginWindow.qml",
"/hotload":"qrc:/example/qml/window/HotloadWindow.qml",
"/crash":"qrc:/example/qml/window/CrashWindow.qml",
"/singleTaskWindow":"qrc:/example/qml/window/SingleTaskWindow.qml",
"/standardWindow":"qrc:/example/qml/window/StandardWindow.qml",
"/singleInstanceWindow":"qrc:/example/qml/window/SingleInstanceWindow.qml",
"/pageWindow":"qrc:/example/qml/window/PageWindow.qml"
}
FluApp.initialRoute = "/"
FluApp.run()
var args = Qt.application.arguments
if(args.length>=2 && args[1].startsWith("-crashed=")){
FluApp.navigate("/crash",{crashFilePath:args[1].replace("-crashed=","")})
}else{
FluApp.navigate("/")
}
}
}

View File

@ -3,7 +3,6 @@ import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,6 @@ import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,6 @@ import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,6 @@ import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,6 @@ import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,6 @@ import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -3,7 +3,6 @@ import QtQuick.Layouts 1.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.15
import FluentUI 1.0
import "qrc:///example/qml/component"
import "../component"
FluScrollablePage{

View File

@ -118,7 +118,7 @@ FluExpander{
"FluTableView",
"FluColors",
"FluTheme",
"FluStatusView",
"FluStatusLayout",
"FluRatingControl",
"FluPasswordBox",
"FluBreadcrumbBar",
@ -136,7 +136,7 @@ FluExpander{
"FluTimeline",
"FluChart",
"FluRangeSlider",
"FluStaggeredView",
"FluStaggeredLayout",
"FluProgressButton",
"FluLoadingButton",
"FluClip",

View File

@ -50,9 +50,7 @@ FluObject{
}
title:"Buttons"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Button.png"
recentlyUpdated:true
desc:"A control that responds to user input and raisesa Click event."
extra:({image:"qrc:/example/res/image/control/Button.png",recentlyUpdated:true,desc:"A control that responds to user input and raisesa Click event."})
url:"qrc:/example/qml/page/T_Buttons.qml"
onTap:{
item_buttons.count = 0
@ -83,18 +81,14 @@ FluObject{
FluPaneItem{
title:"Slider"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Slider.png"
recentlyUpdated:true
desc:"A control that lets the user select from a rangeof values by moving a Thumb control along atrack."
extra:({image:"qrc:/example/res/image/control/Slider.png",recentlyUpdated:true,desc:"A control that lets the user select from a rangeof values by moving a Thumb control along atrack."})
url:"qrc:/example/qml/page/T_Slider.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"CheckBox"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Checkbox.png"
recentlyUpdated:true
desc:"A control that a user can select or clear."
extra:({image:"qrc:/example/res/image/control/Checkbox.png",recentlyUpdated:true,desc:"A control that a user can select or clear."})
url:"qrc:/example/qml/page/T_CheckBox.qml"
onTap:{ navigationView.push(url) }
}
@ -164,9 +158,7 @@ FluObject{
FluPaneItem{
title:"InfoBar"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/InfoBar.png"
recentlyUpdated:true
desc:"An inline message to display app-wide statuschange information."
extra:({image:"qrc:/example/res/image/control/InfoBar.png",recentlyUpdated:true,desc:"An inline message to display app-wide statuschange information."})
url:"qrc:/example/qml/page/T_InfoBar.qml"
onTap:{ navigationView.push(url) }
}
@ -200,12 +192,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Clip.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"StatusView"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StatusView.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Carousel"
menuDelegate: paneItemMenu
@ -218,12 +204,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Expander.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"StaggeredView"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StaggeredView.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Watermark"
menuDelegate: paneItemMenu
@ -232,6 +212,29 @@ FluObject{
}
}
FluPaneItemExpander{
title:Lang.layout
icon:FluentIcons.DockLeft
FluPaneItem{
title:"StaggeredLayout"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StaggeredLayout.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"SplitLayout"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_SplitLayout.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"StatusLayout"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_StatusLayout.qml"
onTap:{ navigationView.push(url) }
}
}
FluPaneItemExpander{
title:Lang.popus
icon:FluentIcons.ButtonMenu
@ -276,10 +279,7 @@ FluObject{
FluPaneItem{
title:"Pivot"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/Pivot.png"
recentlyAdded:true
order:3
desc:"Presents information from different sources in atabbed view."
extra:({image:"qrc:/example/res/image/control/Pivot.png",order:3,recentlyAdded:true,desc:"Presents information from different sources in atabbed view."})
url:"qrc:/example/qml/page/T_Pivot.qml"
onTap:{ navigationView.push(url) }
}
@ -292,10 +292,7 @@ FluObject{
FluPaneItem{
title:"TabView"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/TabView.png"
recentlyAdded:true
order:1
desc:"A control that displays a collection of tabs thatcan be used to display several documents."
extra:({image:"qrc:/example/res/image/control/TabView.png",order:1,recentlyAdded:true,desc:"A control that displays a collection of tabs thatcan be used to display several documents."})
url:"qrc:/example/qml/page/T_TabView.qml"
onTap:{ navigationView.push(url) }
}
@ -308,10 +305,7 @@ FluObject{
FluPaneItem{
title:"TableView"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/DataGrid.png"
recentlyAdded:true
order:4
desc:"The TableView control provides a flexible way to display a collection of data in rows and columns"
extra:({image:"qrc:/example/res/image/control/DataGrid.png",order:4,recentlyAdded:true,desc:"The TableView control provides a flexible way to display a collection of data in rows and columns"})
url:"qrc:/example/qml/page/T_TableView.qml"
onTap:{ navigationView.push(url) }
}
@ -330,10 +324,7 @@ FluObject{
FluPaneItem{
title:"FlipView"
menuDelegate: paneItemMenu
image:"qrc:/example/res/image/control/FlipView.png"
recentlyAdded:true
order:2
desc:"Presents a collection of items that the user canflip through, one item at a time."
extra:({image:"qrc:/example/res/image/control/FlipView.png",order:2,recentlyAdded:true,desc:"Presents a collection of items that the user canflip through, one item at a time."})
url:"qrc:/example/qml/page/T_FlipView.qml"
onTap:{ navigationView.push(url) }
}
@ -441,12 +432,6 @@ FluObject{
url:"qrc:/example/qml/page/T_Timeline.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Screenshot(Todo)"
menuDelegate: paneItemMenu
url:"qrc:/example/qml/page/T_Screenshot.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Captcha"
menuDelegate: paneItemMenu
@ -486,25 +471,25 @@ FluObject{
url:"qrc:/example/qml/page/T_3D.qml"
onTap:{ navigationView.push(url) }
}
FluPaneItem{
title:"Test Crash"
visible: FluTools.isWin()
onTapListener: function(){
AppInfo.testCrash()
}
}
}
function getRecentlyAddedData(){
var arr = []
for(var i=0;i<children.length;i++){
var item = children[i]
if(item instanceof FluPaneItem && item.recentlyAdded){
var items = navigationView.getItems();
for(var i=0;i<items.length;i++){
var item = items[i]
if(item instanceof FluPaneItem && item.extra && item.extra.recentlyAdded){
arr.push(item)
}
if(item instanceof FluPaneItemExpander){
for(var j=0;j<item.children.length;j++){
var itemChild = item.children[j]
if(itemChild instanceof FluPaneItem && itemChild.recentlyAdded){
arr.push(itemChild)
}
}
}
}
arr.sort(function(o1,o2){ return o2.order-o1.order })
arr.sort(function(o1,o2){ return o2.extra.order-o1.extra.order })
return arr
}
@ -513,7 +498,7 @@ FluObject{
var items = navigationView.getItems();
for(var i=0;i<items.length;i++){
var item = items[i]
if(item instanceof FluPaneItem && item.recentlyUpdated){
if(item instanceof FluPaneItem && item.extra && item.extra.recentlyUpdated){
arr.push(item)
}
}

View File

@ -8,6 +8,7 @@ QtObject {
property string basic_input
property string form
property string surface
property string layout
property string popus
property string navigation
property string theming
@ -34,6 +35,7 @@ QtObject {
basic_input="基本输入"
form="表单"
surface="表面"
layout="布局"
popus="弹窗"
navigation="导航"
theming="主题"
@ -61,6 +63,7 @@ QtObject {
basic_input="Basic Input"
form="Form"
surface="Surfaces"
layout="Layout"
popus="Popus"
navigation="Navigation"
theming="Theming"

Some files were not shown because too many files have changed in this diff Show More