From 6a23b04422b88b6a2c6aa2a8b0e8fd8bce7c1a03 Mon Sep 17 00:00:00 2001 From: zhuzichu Date: Mon, 10 Jul 2023 17:25:19 +0800 Subject: [PATCH] update --- .github/workflows/macos.yml | 55 +++--- .github/workflows/ubuntu.yml | 59 ++---- .github/workflows/windows-mingw.yml | 91 --------- .github/workflows/windows.yml | 69 ++++--- CMakeLists.txt | 2 + example/CMakeLists.txt | 67 +++---- example/example.qrc | 177 ++++++++++++++++++ example/qml/App.qml | 10 +- example/qml/component/CodeExpander.qml | 10 +- example/qml/component/CustomWindow.qml | 17 +- example/qml/global/ItemsFooter.qml | 4 +- example/qml/global/ItemsOriginal.qml | 4 +- example/qml/global/MainEvent.qml | 6 +- example/qml/page/T_Acrylic.qml | 10 +- example/qml/page/T_Awesome.qml | 10 +- example/qml/page/T_Badge.qml | 10 +- example/qml/page/T_BreadcrumbBar.qml | 10 +- example/qml/page/T_Buttons.qml | 11 +- example/qml/page/T_CalendarPicker.qml | 10 +- example/qml/page/T_Carousel.qml | 10 +- example/qml/page/T_CheckBox.qml | 10 +- example/qml/page/T_ColorPicker.qml | 10 +- example/qml/page/T_ComboBox.qml | 10 +- example/qml/page/T_DatePicker.qml | 10 +- example/qml/page/T_Dialog.qml | 10 +- example/qml/page/T_Expander.qml | 11 +- example/qml/page/T_FlipView.qml | 10 +- example/qml/page/T_Home.qml | 10 +- example/qml/page/T_Image.qml | 10 +- example/qml/page/T_InfoBar.qml | 10 +- example/qml/page/T_Menu.qml | 10 +- example/qml/page/T_MultiWindow.qml | 10 +- example/qml/page/T_Pagination.qml | 10 +- example/qml/page/T_Pivot.qml | 10 +- example/qml/page/T_Progress.qml | 10 +- example/qml/page/T_RadioButton.qml | 10 +- example/qml/page/T_RatingControl.qml | 10 +- example/qml/page/T_Rectangle.qml | 10 +- example/qml/page/T_RemoteLoader.qml | 10 +- example/qml/page/T_Settings.qml | 10 +- example/qml/page/T_Slider.qml | 10 +- example/qml/page/T_StatusView.qml | 10 +- example/qml/page/T_TabView.qml | 10 +- example/qml/page/T_TableView.qml | 10 +- example/qml/page/T_Text.qml | 10 +- example/qml/page/T_TextBox.qml | 10 +- example/qml/page/T_Theme.qml | 10 +- example/qml/page/T_TimePicker.qml | 10 +- example/qml/page/T_ToggleSwitch.qml | 10 +- example/qml/page/T_Tooltip.qml | 10 +- example/qml/page/T_TreeView.qml | 10 +- example/qml/page/T_Typography.qml | 8 +- example/qml/window/AboutWindow.qml | 8 +- example/qml/window/LoginWindow.qml | 8 +- example/qml/window/MainWindow.qml | 16 +- example/qml/window/SingleInstanceWindow.qml | 8 +- example/qml/window/SingleTaskWindow.qml | 8 +- example/qml/window/StandardWindow.qml | 8 +- example/src/main.cpp | 2 +- example/src/stdafx.h | 4 - framelesshelper | 2 +- src/CMakeLists.txt | 78 +++----- src/FluApp.h | 3 - src/FluColors.h | 2 - src/FluTextStyle.cpp | 9 + src/FluTextStyle.h | 9 +- src/FluTheme.h | 5 +- src/FluTools.h | 3 - src/WindowHelper.h | 1 - src/cmake/QmlPlugin.cmake | 141 ++++++++++++++ src/fluentui.qrc | 92 +++++++++ src/fluentuiplugin.cpp | 62 ++++++ src/fluentuiplugin.h | 23 +++ .../Controls/ColorPicker/ColorPicker.qml | 6 +- .../ColorPicker/Content/Checkerboard.qml | 3 +- .../ColorPicker/Content/ColorSlider.qml | 2 +- .../ColorPicker/Content/NumberBox.qml | 2 +- .../ColorPicker/Content/PanelBorder.qml | 2 +- .../Controls/ColorPicker/Content/SBPicker.qml | 2 +- src/imports/FluentUI/Controls/FluAcrylic.qml | 6 +- src/imports/FluentUI/Controls/FluAppBar.qml | 10 +- src/imports/FluentUI/Controls/FluArea.qml | 8 +- .../FluentUI/Controls/FluAutoSuggestBox.qml | 7 +- src/imports/FluentUI/Controls/FluBadge.qml | 6 +- .../FluentUI/Controls/FluBreadcrumbBar.qml | 8 +- src/imports/FluentUI/Controls/FluButton.qml | 7 +- .../FluentUI/Controls/FluCalendarPicker.qml | 10 +- .../FluentUI/Controls/FluCalendarView.qml | 6 +- src/imports/FluentUI/Controls/FluCarousel.qml | 6 +- src/imports/FluentUI/Controls/FluCheckBox.qml | 14 +- .../FluentUI/Controls/FluColorPicker.qml | 11 +- .../FluentUI/Controls/FluColorView.qml | 6 +- src/imports/FluentUI/Controls/FluComboBox.qml | 12 +- .../FluentUI/Controls/FluContentDialog.qml | 10 +- .../FluentUI/Controls/FluContentPage.qml | 10 +- src/imports/FluentUI/Controls/FluControl.qml | 9 +- .../FluentUI/Controls/FluCopyableText.qml | 8 +- .../FluentUI/Controls/FluDatePicker.qml | 10 +- src/imports/FluentUI/Controls/FluDivider.qml | 6 +- .../FluentUI/Controls/FluDropDownButton.qml | 9 +- src/imports/FluentUI/Controls/FluExpander.qml | 8 +- .../FluentUI/Controls/FluFilledButton.qml | 7 +- src/imports/FluentUI/Controls/FluFlipView.qml | 7 +- .../FluentUI/Controls/FluFocusRectangle.qml | 6 +- .../Controls/FluHorizontalHeaderView.qml | 6 +- src/imports/FluentUI/Controls/FluIcon.qml | 6 +- .../FluentUI/Controls/FluIconButton.qml | 7 +- src/imports/FluentUI/Controls/FluImage.qml | 6 +- src/imports/FluentUI/Controls/FluInfoBar.qml | 8 +- src/imports/FluentUI/Controls/FluItem.qml | 6 +- .../FluentUI/Controls/FluItemDelegate.qml | 8 +- src/imports/FluentUI/Controls/FluMenu.qml | 10 +- src/imports/FluentUI/Controls/FluMenuBar.qml | 6 +- .../FluentUI/Controls/FluMenuBarItem.qml | 8 +- src/imports/FluentUI/Controls/FluMenuItem.qml | 9 +- .../FluentUI/Controls/FluMenuSeparator.qml | 8 +- .../FluentUI/Controls/FluMultilineTextBox.qml | 9 +- .../FluentUI/Controls/FluNavigationView.qml | 19 +- src/imports/FluentUI/Controls/FluObject.qml | 6 +- src/imports/FluentUI/Controls/FluPage.qml | 10 +- .../FluentUI/Controls/FluPagination.qml | 8 +- src/imports/FluentUI/Controls/FluPaneItem.qml | 6 +- .../FluentUI/Controls/FluPaneItemEmpty.qml | 6 +- .../FluentUI/Controls/FluPaneItemExpander.qml | 6 +- .../FluentUI/Controls/FluPaneItemHeader.qml | 6 +- .../Controls/FluPaneItemSeparator.qml | 6 +- .../FluentUI/Controls/FluPasswordBox.qml | 9 +- src/imports/FluentUI/Controls/FluPivot.qml | 6 +- .../FluentUI/Controls/FluPivotItem.qml | 6 +- src/imports/FluentUI/Controls/FluPopup.qml | 10 +- .../FluentUI/Controls/FluProgressBar.qml | 6 +- .../FluentUI/Controls/FluProgressRing.qml | 6 +- .../FluentUI/Controls/FluRadioButton.qml | 14 +- .../FluentUI/Controls/FluRadioButtons.qml | 9 +- .../FluentUI/Controls/FluRatingControl.qml | 6 +- .../FluentUI/Controls/FluRectangle.qml | 8 +- .../FluentUI/Controls/FluRemoteLoader.qml | 6 +- .../FluentUI/Controls/FluScrollBar.qml | 7 +- .../FluentUI/Controls/FluScrollIndicator.qml | 5 +- .../FluentUI/Controls/FluScrollablePage.qml | 11 +- src/imports/FluentUI/Controls/FluShadow.qml | 6 +- src/imports/FluentUI/Controls/FluSlider.qml | 7 +- src/imports/FluentUI/Controls/FluSpinBox.qml | 8 +- .../FluentUI/Controls/FluStatusView.qml | 9 +- src/imports/FluentUI/Controls/FluTabView.qml | 8 +- .../FluentUI/Controls/FluTableModelColumn.qml | 2 +- .../FluentUI/Controls/FluTableView.qml | 74 ++------ src/imports/FluentUI/Controls/FluText.qml | 6 +- src/imports/FluentUI/Controls/FluTextBox.qml | 9 +- .../Controls/FluTextBoxBackground.qml | 8 +- .../FluentUI/Controls/FluTextBoxMenu.qml | 6 +- .../FluentUI/Controls/FluTextButton.qml | 7 +- .../FluentUI/Controls/FluTimePicker.qml | 10 +- .../FluentUI/Controls/FluToggleButton.qml | 12 +- .../FluentUI/Controls/FluToggleSwitch.qml | 14 +- src/imports/FluentUI/Controls/FluTooltip.qml | 7 +- src/imports/FluentUI/Controls/FluTreeView.qml | 11 +- .../Controls/FluVerticalHeaderView.qml | 6 +- src/imports/FluentUI/Controls/FluWindow.qml | 10 +- src/imports/FluentUI/qmldir | 149 ++++++++------- 160 files changed, 1308 insertions(+), 1017 deletions(-) delete mode 100644 .github/workflows/windows-mingw.yml create mode 100644 example/example.qrc create mode 100644 src/cmake/QmlPlugin.cmake create mode 100644 src/fluentui.qrc create mode 100644 src/fluentuiplugin.cpp create mode 100644 src/fluentuiplugin.h diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index e47006ab..460ae31c 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -2,73 +2,62 @@ name: MacOS on: push: paths: - - '*.txt' - - 'example/**' + - '*.pro' - 'src/**' - - 'scripts/**' - '.github/workflows/macos.yml' pull_request: paths: - - '*.txt' - - 'example/**' + - '*.pro' - 'src/**' - - 'scripts/**' - '.github/workflows/macos.yml' - jobs: build: name: Build runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-12] - qt_ver: [6.5.0] + os: [macos-11.0] + qt_ver: [5.15.2] qt_arch: [clang_64] env: targetName: example steps: - - name: Check out repository - uses: actions/checkout@v3 - with: - submodules: recursive - + # macos 11.0 默认环境变了,要指定 + - name: prepare env + if: ${{ matrix.os == 'macos-11.0' }} + run: | + softwareupdate --all --install --force + sudo xcode-select --print-path + sudo xcode-select --switch /Library/Developer/CommandLineTools - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v2 with: version: ${{ matrix.qt_ver }} - cache: ${{steps.cache-qt.outputs.cache-hit}} - arch: ${{ matrix.qt_arch }} - modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' - - - name: Set up Ninja - uses: seanmiddleditch/gha-setup-ninja@v3 + cached: 'false' + - uses: actions/checkout@v2 with: - version: 1.10.2 - + submodules: recursive - name: build macos run: | - cmake --version - mkdir build - cd build - cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=/Users/runner/work/FluentUI/Qt/6.5.0/macos -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -GNinja .. - cmake --build . --target all --config Release --parallel - + qmake + make + # 打包 - name: package run: | # 拷贝依赖 - macdeployqt bin/release/${targetName}.app -qmldir=. -verbose=1 -dmg - + macdeployqt bin/release/${targetName}.app -qmldir=. -verbose=1 -dmg + # 上传artifacts - uses: actions/upload-artifact@v2 with: name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}}.zip path: bin/release/${{ env.targetName }}.app - + # tag 上传Release - name: uploadRelease if: startsWith(github.event.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: bin/release/${{ env.targetName }}.dmg - asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.dmg + asset_name: ${{ env.targetName }}_${{ matrix.os }}_${{ matrix.qt_ver }}.dmg tag: ${{ github.ref }} overwrite: true \ No newline at end of file diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index d8a28406..068213ea 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -1,21 +1,17 @@ name: Ubuntu +# Qt官方没有linux平台的x86包 on: workflow_dispatch: push: paths: - - '*.txt' + - '*.pro' - 'src/**' - - 'example/**' - - 'scripts/**' - '.github/workflows/ubuntu.yml' pull_request: paths: - - '*.txt' + - '*.pro' - 'src/**' - - 'example/**' - - 'scripts/**' - - '.github/workflows/ubuntu.yml' - + - '.github/workflows/ubuntu.yml' jobs: build: name: Build @@ -23,68 +19,49 @@ jobs: strategy: matrix: os: [ubuntu-20.04] - qt_ver: [6.5.0] + qt_ver: [5.15.2] qt_arch: [gcc_64] env: targetName: example steps: - - name: Check out repository - uses: actions/checkout@v3 - with: - submodules: recursive - - name: Install Qt - uses: jurplel/install-qt-action@v3 + uses: jurplel/install-qt-action@v2 with: version: ${{ matrix.qt_ver }} - cache: ${{steps.cache-qt.outputs.cache-hit}} - arch: ${{ matrix.qt_arch }} - modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' - - - name: Set up Ninja - uses: seanmiddleditch/gha-setup-ninja@v3 - with: - version: 1.10.2 - + cached: 'false' - 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 - + run: sudo apt-get install -y 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 + - uses: actions/checkout@v2 + with: + submodules: recursive - 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.5.0/gcc_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja .. - cmake --build . --target all --config Release --parallel - + qmake + make - name: install QT linux deploy uses: miurahr/install-linuxdeploy-action@v1 with: plugins: qt appimage - - - name: Check if svg file exists - run: if [ ! -f "${targetName}.svg" ]; then echo "File not found, creating..."; touch ${targetName}.svg; fi - + # 打包 - name: package run: | # make sure Qt plugin finds QML sources so it can deploy the imported files - export QML_SOURCES_PATHS=./ + export QML_SOURCES_PATHS=src # 拷贝依赖 linuxdeploy-x86_64.AppImage --plugin=qt --output=appimage --create-desktop-file --icon-file=${targetName}.svg --executable=bin/release/${targetName} --appdir bin/release/ mv ${{ env.targetName }}-*.AppImage ${{ env.targetName }}.AppImage - + # 上传artifacts - uses: actions/upload-artifact@v2 with: name: ${{ env.targetName }}_${{ matrix.os }}_${{matrix.qt_ver}} path: ${{ env.targetName }}.AppImage - + # tag 上传Release - name: uploadRelease if: startsWith(github.event.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ${{ env.targetName }}.AppImage - asset_name: ${{ env.targetName }}_${{ github.ref_name }}_${{ matrix.os }}_Qt${{ matrix.qt_ver }}.AppImage + asset_name: ${{ env.targetName }}_${{ matrix.os }}_${{ matrix.qt_ver }}.AppImage tag: ${{ github.ref }} overwrite: true \ No newline at end of file diff --git a/.github/workflows/windows-mingw.yml b/.github/workflows/windows-mingw.yml deleted file mode 100644 index 37da26a9..00000000 --- a/.github/workflows/windows-mingw.yml +++ /dev/null @@ -1,91 +0,0 @@ -name: Windows MinGW -on: - push: - paths: - - '*.txt' - - 'src/**' - - 'example/**' - - 'scripts/**' - - '.github/workflows/windows-mingw.yml' - pull_request: - paths: - - '*.txt' - - 'example/**' - - 'src/**' - - 'scripts/**' - - '.github/workflows/windows-mingw.yml' - -jobs: - build: - name: Build - runs-on: windows-2022 - strategy: - matrix: - include: - - qt_arch: win64_mingw - qt_ver: 6.5.0 - qt_tools: "tools_mingw,9.0.0-1-202203221220,qt.tools.win64_mingw900" - qt_tools_mingw_install: mingw900_64 - env: - targetName: example.exe - fileName: example - steps: - - name: Check out repository - uses: actions/checkout@v3 - with: - submodules: recursive - - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: ${{ matrix.qt_ver }} - arch: ${{ matrix.qt_arch }} - cache: ${{steps.cache-qt.outputs.cache-hit}} - modules: 'qt5compat qtmultimedia qtshadertools qtimageformats' - - - name: Qt6 environment configuration - if: ${{ startsWith( matrix.qt_ver, 6 ) }} - shell: pwsh - run: | - Write-Output "${{ env.Qt6_DIR }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - Write-Output "${{ env.Qt6_DIR }}/../../Tools/${{ matrix.qt_tools_mingw_install }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - - name: where is cmake & where is mingw32-make - shell: pwsh - run: | - Get-Command -Name 'cmake' | Format-List - Get-Command -Name 'mingw32-make' | Format-List - - - name: mingw-build - id: build - shell: cmd - run: | - mkdir build - cd build - cmake -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_PREFIX_PATH=D:\a\FluentUI\Qt\6.5.0\mingw_64 -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -GNinja .. - cmake --build . --target all --config Release --parallel - - - name: package - id: package - env: - archiveName: ${{ env.fileName }}-${{ matrix.qt_arch }}-${{ matrix.qt_ver }} - shell: pwsh - run: | - & scripts\windows-mingw-publish.ps1 ${env:archiveName} ${env:targetName} - $name = ${env:archiveName} - echo "::set-output name=packageName::$name" - - - uses: actions/upload-artifact@v2 - with: - name: ${{ steps.package.outputs.packageName }} - path: ${{ steps.package.outputs.packageName }} - - - name: uploadRelease - if: startsWith(github.event.ref, 'refs/tags/') - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: ${{ steps.package.outputs.packageName }}.zip - asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.zip - tag: ${{ github.ref }} - overwrite: true \ No newline at end of file diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 4a29d71c..6bbf5523 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -1,63 +1,69 @@ name: Windows on: + # push代码时触发workflow push: paths: - - '*.txt' + - '*.pro' - 'src/**' - - 'example/**' - - 'scripts/**' - '.github/workflows/windows.yml' pull_request: paths: - - '*.txt' - - 'example/**' + - '*.pro' - 'src/**' - - 'scripts/**' - - '.github/workflows/windows.yml' - + - '.github/workflows/windows.yml' jobs: build: name: Build - runs-on: ${{ matrix.os }} + # 运行平台, windows-latest目前是windows server 2019 + # 参考文档 https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md + runs-on: windows-2019 strategy: + # 矩阵配置 matrix: - os: [windows-2019] include: - - qt_ver: 6.5.0 + # 5.15.2 参考 https://mirrors.cloud.tencent.com/qt/online/qtsdkrepository/windows_x86/desktop/qt5_5152/ + - qt_ver: 5.15.2 + qt_arch: win32_msvc2019 + msvc_arch: x86 + qt_arch_install: msvc2019 + - qt_ver: 5.15.2 qt_arch: win64_msvc2019_64 msvc_arch: x64 qt_arch_install: msvc2019_64 env: targetName: example.exe fileName: example + # 步骤 steps: - - name: Check out repository - uses: actions/checkout@v3 + # 安装Qt + - name: Install Qt + # 使用外部action。这个action专门用来安装Qt + uses: jurplel/install-qt-action@v2 + with: + # Version of Qt to install + version: ${{ matrix.qt_ver }} + # Target platform for build + # target: ${{ matrix.qt_target }} + arch: ${{ matrix.qt_arch }} + cached: 'false' + aqtversion: '==2.0.5' + # 拉取代码 + - uses: actions/checkout@v2 with: submodules: recursive - - - name: Install Qt - uses: jurplel/install-qt-action@v3 - with: - version: ${{ matrix.qt_ver }} - arch: ${{ matrix.qt_arch }} - cache: ${{steps.cache-qt.outputs.cache-hit}} - modules: 'qt5compat qtmultimedia qtshadertools qtimageformats qtspeech' - + # msvc编译 - name: msvc-build id: build shell: cmd run: | 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\6.5.0\msvc2019_64 -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_BUILD_TYPE=Release -GNinja .. - cmake --build . --target all --config Release --parallel + qmake + nmake echo winSdkDir=%WindowsSdkDir% >> %GITHUB_ENV% echo winSdkVer=%WindowsSdkVersion% >> %GITHUB_ENV% echo vcToolsInstallDir=%VCToolsInstallDir% >> %GITHUB_ENV% echo vcToolsRedistDir=%VCToolsRedistDir% >> %GITHUB_ENV% - + # 打包 - name: package id: package env: @@ -68,19 +74,20 @@ jobs: & scripts\windows-publish.ps1 ${env:archiveName} ${env:targetName} # 记录packageName给后续step $name = ${env:archiveName} - echo "::set-output name=packageName::$name" - + echo "::set-output name=packageName::$name" + # tag 查询github-Release + # 上传artifacts - uses: actions/upload-artifact@v2 with: name: ${{ steps.package.outputs.packageName }} path: ${{ steps.package.outputs.packageName }} - + # tag 上传Release - name: uploadRelease if: startsWith(github.event.ref, 'refs/tags/') uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: ${{ steps.package.outputs.packageName }}.zip - asset_name: ${{ env.fileName }}_${{ github.ref_name }}_${{ matrix.qt_arch }}_Qt${{ matrix.qt_ver }}.zip + asset_name: ${{ steps.package.outputs.packageName }}.zip tag: ${{ github.ref }} overwrite: true \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 8966066b..2e9eabf4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,6 @@ cmake_minimum_required(VERSION 3.20) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) project(FluentUI VERSION 0.1 LANGUAGES CXX) diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt index 4bd0ba3b..d361697d 100644 --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -1,13 +1,9 @@ cmake_minimum_required(VERSION 3.20) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) project(example VERSION 0.1 LANGUAGES CXX) -#配置通用编译 -set(CMAKE_CXX_STANDARD_REQUIRED ON) -if(APPLE) - set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) -endif() - #设置可执行文件输出目录 if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/debug) @@ -21,15 +17,13 @@ file(TO_CMAKE_PATH "/" PATH_SEPARATOR) #设置版本号 add_definitions(-DVERSION=1,3,7,3) -find_package(Qt6 REQUIRED COMPONENTS Quick) +find_package(Qt5 REQUIRED COMPONENTS Quick) -if(QT_VERSION VERSION_GREATER_EQUAL "6.3") - qt_standard_project_setup() -else() - set(CMAKE_AUTOMOC ON) - set(CMAKE_AUTORCC ON) - set(CMAKE_AUTOUIC ON) -endif() +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) #遍历所有Cpp文件 file(GLOB_RECURSE CPP_FILES *.cpp *.h) @@ -54,14 +48,14 @@ endforeach(filepath) #添加可执行文件 if (CMAKE_SYSTEM_NAME STREQUAL "Windows") - qt_add_executable(example - ${sources_files} - example.rc - ) + add_executable(example + ${sources_files} + example.rc + ) else () - qt_add_executable(example - ${sources_files} - ) + add_executable(example + ${sources_files} + ) endif () #复制动态库到可执行文件同级目录下 @@ -80,13 +74,8 @@ if(WIN32) ) endif() -#添加qml模块 -qt_add_qml_module(example - URI example - VERSION 1.0 - QML_FILES ${qml_files} - RESOURCES ${resource_files} -) +#设置编译对象 +target_sources(example PRIVATE example.qrc) #设置属性 set_target_properties(example PROPERTIES @@ -98,22 +87,12 @@ set_target_properties(example PROPERTIES ) #链接库 -if (FLUENTUI_BUILD_STATIC_LIB) - target_link_libraries(example PRIVATE - Qt6::Quick - fluentui - fluentuiplugin - FramelessHelper::Core - FramelessHelper::Quick - ) -else() - target_link_libraries(example PRIVATE - Qt6::Quick - fluentuiplugin - FramelessHelper::Core - FramelessHelper::Quick - ) -endif() +target_link_libraries(example PRIVATE + Qt::Quick + fluentuiplugin + FramelessHelper::Core + FramelessHelper::Quick +) #安装 install(TARGETS example diff --git a/example/example.qrc b/example/example.qrc new file mode 100644 index 00000000..efc17e5d --- /dev/null +++ b/example/example.qrc @@ -0,0 +1,177 @@ + + + res/svg/avatar_1.svg + res/svg/avatar_2.svg + res/svg/avatar_3.svg + res/svg/avatar_4.svg + res/svg/avatar_5.svg + res/svg/avatar_6.svg + res/svg/avatar_7.svg + res/svg/avatar_8.svg + res/svg/avatar_9.svg + res/svg/avatar_10.svg + res/svg/avatar_11.svg + res/svg/avatar_12.svg + res/image/banner_1.jpg + res/image/banner_2.jpg + res/image/banner_3.jpg + res/image/logo_openai.png + res/image/favicon.ico + res/image/bg_home_header.png + res/image/ic_home_github.png + res/image/control/Acrylic.png + res/image/control/AnimatedIcon.png + res/image/control/AnimatedVisualPlayer.png + res/image/control/AnimationInterop.png + res/image/control/AppBarButton.png + res/image/control/AppBarSeparator.png + res/image/control/AppBarToggleButton.png + res/image/control/AutomationProperties.png + res/image/control/AutoSuggestBox.png + res/image/control/Border.png + res/image/control/BreadcrumbBar.png + res/image/control/Button.png + res/image/control/CalendarDatePicker.png + res/image/control/CalendarView.png + res/image/control/Canvas.png + res/image/control/Checkbox.png + res/image/control/Clipboard.png + res/image/control/ColorPaletteResources.png + res/image/control/ColorPicker.png + res/image/control/ComboBox.png + res/image/control/CommandBar.png + res/image/control/CommandBarFlyout.png + res/image/control/CompactSizing.png + res/image/control/ConnectedAnimation.png + res/image/control/ContentDialog.png + res/image/control/CreateMultipleWindows.png + res/image/control/DataGrid.png + res/image/control/DatePicker.png + res/image/control/DropDownButton.png + res/image/control/EasingFunction.png + res/image/control/Expander.png + res/image/control/FilePicker.png + res/image/control/FlipView.png + res/image/control/Flyout.png + res/image/control/Grid.png + res/image/control/GridView.png + res/image/control/HyperlinkButton.png + res/image/control/IconElement.png + res/image/control/Image.png + res/image/control/ImplicitTransition.png + res/image/control/InfoBadge.png + res/image/control/InfoBar.png + res/image/control/InkCanvas.png + res/image/control/InkToolbar.png + res/image/control/InputValidation.png + res/image/control/ItemsRepeater.png + res/image/control/Line.png + res/image/control/ListBox.png + res/image/control/ListView.png + res/image/control/MediaPlayerElement.png + res/image/control/MenuBar.png + res/image/control/MenuFlyout.png + res/image/control/NavigationView.png + res/image/control/NumberBox.png + res/image/control/PageTransition.png + res/image/control/ParallaxView.png + res/image/control/PasswordBox.png + res/image/control/PersonPicture.png + res/image/control/PipsPager.png + res/image/control/Pivot.png + res/image/control/ProgressBar.png + res/image/control/ProgressRing.png + res/image/control/PullToRefresh.png + res/image/control/RadialGradientBrush.png + res/image/control/RadioButton.png + res/image/control/RadioButtons.png + res/image/control/RatingControl.png + res/image/control/RelativePanel.png + res/image/control/RepeatButton.png + res/image/control/RevealFocus.png + res/image/control/RichEditBox.png + res/image/control/RichTextBlock.png + res/image/control/ScrollViewer.png + res/image/control/SemanticZoom.png + res/image/control/Shape.png + res/image/control/Slider.png + res/image/control/Sound.png + res/image/control/SplitButton.png + res/image/control/SplitView.png + res/image/control/StackPanel.png + res/image/control/StandardUICommand.png + res/image/control/SwipeControl.png + res/image/control/TabView.png + res/image/control/TeachingTip.png + res/image/control/TextBlock.png + res/image/control/TextBox.png + res/image/control/ThemeTransition.png + res/image/control/TimePicker.png + res/image/control/TitleBar.png + res/image/control/ToggleButton.png + res/image/control/ToggleSplitButton.png + res/image/control/ToggleSwitch.png + res/image/control/ToolTip.png + res/image/control/TreeView.png + res/image/control/VariableSizedWrapGrid.png + res/image/control/Viewbox.png + res/image/control/WebView.png + res/image/control/XamlUICommand.png + res/svg/home.svg + res/svg/home_dark.svg + res/image/qrcode_wx.jpg + res/image/qrcode_zfb.jpg + qml/App.qml + qml/component/CodeExpander.qml + qml/global/ItemsFooter.qml + qml/global/ItemsOriginal.qml + qml/global/MainEvent.qml + qml/global/qmldir + qml/page/T_Acrylic.qml + qml/page/T_Awesome.qml + qml/page/T_Badge.qml + qml/page/T_BreadcrumbBar.qml + qml/page/T_Buttons.qml + qml/page/T_CalendarPicker.qml + qml/page/T_Carousel.qml + qml/page/T_CheckBox.qml + qml/page/T_ColorPicker.qml + qml/page/T_ComboBox.qml + qml/page/T_DatePicker.qml + qml/page/T_Dialog.qml + qml/page/T_Expander.qml + qml/page/T_FlipView.qml + qml/page/T_Home.qml + qml/page/T_InfoBar.qml + qml/page/T_Menu.qml + qml/page/T_MultiWindow.qml + qml/page/T_Pivot.qml + qml/page/T_Progress.qml + qml/page/T_RatingControl.qml + qml/page/T_Rectangle.qml + qml/page/T_Settings.qml + qml/page/T_Slider.qml + qml/page/T_StatusView.qml + qml/page/T_TableView.qml + qml/page/T_TabView.qml + qml/page/T_Text.qml + qml/page/T_TextBox.qml + qml/page/T_Theme.qml + qml/page/T_TimePicker.qml + qml/page/T_ToggleSwitch.qml + qml/page/T_Tooltip.qml + qml/page/T_TreeView.qml + qml/page/T_Typography.qml + qml/window/AboutWindow.qml + qml/window/LoginWindow.qml + qml/window/MainWindow.qml + qml/window/SingleInstanceWindow.qml + qml/window/SingleTaskWindow.qml + qml/window/StandardWindow.qml + qml/component/CustomWindow.qml + qml/page/T_Image.qml + qml/page/T_Pagination.qml + qml/page/T_RadioButton.qml + qml/page/T_RemoteLoader.qml + + diff --git a/example/qml/App.qml b/example/qml/App.qml index eefb1a74..a7caf124 100644 --- a/example/qml/App.qml +++ b/example/qml/App.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Window -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Window { id: app diff --git a/example/qml/component/CodeExpander.qml b/example/qml/component/CodeExpander.qml index a198fdfd..845ae1ea 100644 --- a/example/qml/component/CodeExpander.qml +++ b/example/qml/component/CodeExpander.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluExpander{ diff --git a/example/qml/component/CustomWindow.qml b/example/qml/component/CustomWindow.qml index 884dde22..de893ccc 100644 --- a/example/qml/component/CustomWindow.qml +++ b/example/qml/component/CustomWindow.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Layouts -import FluentUI -import org.wangwenx190.FramelessHelper +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 +import org.wangwenx190.FramelessHelper 1.0 FluWindow { @@ -50,15 +50,6 @@ FluWindow { window.show() } } - Connections{ - target: FluTheme - function onDarkChanged(){ - if (FluTheme.dark) - FramelessUtils.systemTheme = FramelessHelperConstants.Dark - else - FramelessUtils.systemTheme = FramelessHelperConstants.Light - } - } function setHitTestVisible(com){ framless_helper.setHitTestVisible(com) diff --git a/example/qml/global/ItemsFooter.qml b/example/qml/global/ItemsFooter.qml index c6742d06..463b52e2 100644 --- a/example/qml/global/ItemsFooter.qml +++ b/example/qml/global/ItemsFooter.qml @@ -1,7 +1,7 @@ pragma Singleton -import QtQuick -import FluentUI +import QtQuick 2.15 +import FluentUI 1.0 FluObject{ diff --git a/example/qml/global/ItemsOriginal.qml b/example/qml/global/ItemsOriginal.qml index aa8852ca..78eaacc0 100644 --- a/example/qml/global/ItemsOriginal.qml +++ b/example/qml/global/ItemsOriginal.qml @@ -1,7 +1,7 @@ pragma Singleton -import QtQuick -import FluentUI +import QtQuick 2.15 +import FluentUI 1.0 FluObject{ diff --git a/example/qml/global/MainEvent.qml b/example/qml/global/MainEvent.qml index 9246e9da..98aa9543 100644 --- a/example/qml/global/MainEvent.qml +++ b/example/qml/global/MainEvent.qml @@ -1,8 +1,8 @@ pragma Singleton -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 QtObject { property int displayMode : FluNavigationView.Auto diff --git a/example/qml/page/T_Acrylic.qml b/example/qml/page/T_Acrylic.qml index 3c625222..79b2b111 100644 --- a/example/qml/page/T_Acrylic.qml +++ b/example/qml/page/T_Acrylic.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Awesome.qml b/example/qml/page/T_Awesome.qml index e607af36..098fb18c 100644 --- a/example/qml/page/T_Awesome.qml +++ b/example/qml/page/T_Awesome.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 FluContentPage { diff --git a/example/qml/page/T_Badge.qml b/example/qml/page/T_Badge.qml index baccc3d7..8ce25806 100644 --- a/example/qml/page/T_Badge.qml +++ b/example/qml/page/T_Badge.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_BreadcrumbBar.qml b/example/qml/page/T_BreadcrumbBar.qml index f6a1ba08..bfe65baf 100644 --- a/example/qml/page/T_BreadcrumbBar.qml +++ b/example/qml/page/T_BreadcrumbBar.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Buttons.qml b/example/qml/page/T_Buttons.qml index 354d25bb..9be17171 100644 --- a/example/qml/page/T_Buttons.qml +++ b/example/qml/page/T_Buttons.qml @@ -1,9 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_CalendarPicker.qml b/example/qml/page/T_CalendarPicker.qml index 4cb67901..c9d10574 100644 --- a/example/qml/page/T_CalendarPicker.qml +++ b/example/qml/page/T_CalendarPicker.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Carousel.qml b/example/qml/page/T_Carousel.qml index 6e9c46fe..44f88f3a 100644 --- a/example/qml/page/T_Carousel.qml +++ b/example/qml/page/T_Carousel.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_CheckBox.qml b/example/qml/page/T_CheckBox.qml index e3c6ea4a..28605536 100644 --- a/example/qml/page/T_CheckBox.qml +++ b/example/qml/page/T_CheckBox.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_ColorPicker.qml b/example/qml/page/T_ColorPicker.qml index 24954589..93375c3a 100644 --- a/example/qml/page/T_ColorPicker.qml +++ b/example/qml/page/T_ColorPicker.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_ComboBox.qml b/example/qml/page/T_ComboBox.qml index d8b1f448..7a12c48e 100644 --- a/example/qml/page/T_ComboBox.qml +++ b/example/qml/page/T_ComboBox.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_DatePicker.qml b/example/qml/page/T_DatePicker.qml index 0fe6c4df..ac978370 100644 --- a/example/qml/page/T_DatePicker.qml +++ b/example/qml/page/T_DatePicker.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Dialog.qml b/example/qml/page/T_Dialog.qml index 2f949abd..1e1d8414 100644 --- a/example/qml/page/T_Dialog.qml +++ b/example/qml/page/T_Dialog.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Expander.qml b/example/qml/page/T_Expander.qml index 36d89512..b9af09a3 100644 --- a/example/qml/page/T_Expander.qml +++ b/example/qml/page/T_Expander.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ @@ -58,7 +58,6 @@ FluScrollablePage{ width: parent.width height: parent.height contentWidth: width - maximumFlickVelocity: 1680 contentHeight: text_info.height ScrollBar.vertical: FluScrollBar {} FluText{ diff --git a/example/qml/page/T_FlipView.qml b/example/qml/page/T_FlipView.qml index 3baf06c1..843b9ab9 100644 --- a/example/qml/page/T_FlipView.qml +++ b/example/qml/page/T_FlipView.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Home.qml b/example/qml/page/T_Home.qml index 8b457558..1348b433 100644 --- a/example/qml/page/T_Home.qml +++ b/example/qml/page/T_Home.qml @@ -1,9 +1,9 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 import "qrc:///example/qml/global" -import FluentUI +import FluentUI 1.0 FluScrollablePage{ diff --git a/example/qml/page/T_Image.qml b/example/qml/page/T_Image.qml index bbeb6dcf..fb63d065 100644 --- a/example/qml/page/T_Image.qml +++ b/example/qml/page/T_Image.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_InfoBar.qml b/example/qml/page/T_InfoBar.qml index 41b6d76f..9503b578 100644 --- a/example/qml/page/T_InfoBar.qml +++ b/example/qml/page/T_InfoBar.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Menu.qml b/example/qml/page/T_Menu.qml index 61f11ae8..01133a4a 100644 --- a/example/qml/page/T_Menu.qml +++ b/example/qml/page/T_Menu.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_MultiWindow.qml b/example/qml/page/T_MultiWindow.qml index ec8ed94e..67dbde59 100644 --- a/example/qml/page/T_MultiWindow.qml +++ b/example/qml/page/T_MultiWindow.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Pagination.qml b/example/qml/page/T_Pagination.qml index fa072dc6..838a4c9f 100644 --- a/example/qml/page/T_Pagination.qml +++ b/example/qml/page/T_Pagination.qml @@ -1,9 +1,9 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 import "qrc:///example/qml/component" -import FluentUI +import FluentUI 1.0 FluScrollablePage{ diff --git a/example/qml/page/T_Pivot.qml b/example/qml/page/T_Pivot.qml index 0fe52dfd..bd75554c 100644 --- a/example/qml/page/T_Pivot.qml +++ b/example/qml/page/T_Pivot.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Progress.qml b/example/qml/page/T_Progress.qml index 27bf6418..7dbb1c84 100644 --- a/example/qml/page/T_Progress.qml +++ b/example/qml/page/T_Progress.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_RadioButton.qml b/example/qml/page/T_RadioButton.qml index 07b383b7..85307ab5 100644 --- a/example/qml/page/T_RadioButton.qml +++ b/example/qml/page/T_RadioButton.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_RatingControl.qml b/example/qml/page/T_RatingControl.qml index 4c39d380..05bd99a5 100644 --- a/example/qml/page/T_RatingControl.qml +++ b/example/qml/page/T_RatingControl.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage { diff --git a/example/qml/page/T_Rectangle.qml b/example/qml/page/T_Rectangle.qml index 9cfe42aa..346aeab4 100644 --- a/example/qml/page/T_Rectangle.qml +++ b/example/qml/page/T_Rectangle.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_RemoteLoader.qml b/example/qml/page/T_RemoteLoader.qml index 310d0718..e4a39f64 100644 --- a/example/qml/page/T_RemoteLoader.qml +++ b/example/qml/page/T_RemoteLoader.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluPage{ diff --git a/example/qml/page/T_Settings.qml b/example/qml/page/T_Settings.qml index 4158dc42..b10d42cc 100644 --- a/example/qml/page/T_Settings.qml +++ b/example/qml/page/T_Settings.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/global" import "qrc:///example/qml/component" diff --git a/example/qml/page/T_Slider.qml b/example/qml/page/T_Slider.qml index 517904a6..138e265a 100644 --- a/example/qml/page/T_Slider.qml +++ b/example/qml/page/T_Slider.qml @@ -1,9 +1,9 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 import "qrc:///example/qml/component" -import FluentUI +import FluentUI 1.0 FluScrollablePage{ diff --git a/example/qml/page/T_StatusView.qml b/example/qml/page/T_StatusView.qml index 9f769523..e311de10 100644 --- a/example/qml/page/T_StatusView.qml +++ b/example/qml/page/T_StatusView.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_TabView.qml b/example/qml/page/T_TabView.qml index 8609c312..71cd1254 100644 --- a/example/qml/page/T_TabView.qml +++ b/example/qml/page/T_TabView.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_TableView.qml b/example/qml/page/T_TableView.qml index 4b722064..9e9a8bbf 100644 --- a/example/qml/page/T_TableView.qml +++ b/example/qml/page/T_TableView.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluContentPage{ diff --git a/example/qml/page/T_Text.qml b/example/qml/page/T_Text.qml index c5624f62..43f43f13 100644 --- a/example/qml/page/T_Text.qml +++ b/example/qml/page/T_Text.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_TextBox.qml b/example/qml/page/T_TextBox.qml index 1fcc1a2a..469e4bfa 100644 --- a/example/qml/page/T_TextBox.qml +++ b/example/qml/page/T_TextBox.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Theme.qml b/example/qml/page/T_Theme.qml index 0a9fe653..9b979816 100644 --- a/example/qml/page/T_Theme.qml +++ b/example/qml/page/T_Theme.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_TimePicker.qml b/example/qml/page/T_TimePicker.qml index 2acadd32..6baa3b1a 100644 --- a/example/qml/page/T_TimePicker.qml +++ b/example/qml/page/T_TimePicker.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_ToggleSwitch.qml b/example/qml/page/T_ToggleSwitch.qml index 0a708f0a..79122cc3 100644 --- a/example/qml/page/T_ToggleSwitch.qml +++ b/example/qml/page/T_ToggleSwitch.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_Tooltip.qml b/example/qml/page/T_Tooltip.qml index 1a05ef80..16e335a8 100644 --- a/example/qml/page/T_Tooltip.qml +++ b/example/qml/page/T_Tooltip.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage{ diff --git a/example/qml/page/T_TreeView.qml b/example/qml/page/T_TreeView.qml index 16af1919..a0757674 100644 --- a/example/qml/page/T_TreeView.qml +++ b/example/qml/page/T_TreeView.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" FluScrollablePage { diff --git a/example/qml/page/T_Typography.qml b/example/qml/page/T_Typography.qml index 61f3cf43..854eab56 100644 --- a/example/qml/page/T_Typography.qml +++ b/example/qml/page/T_Typography.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluContentPage { diff --git a/example/qml/window/AboutWindow.qml b/example/qml/window/AboutWindow.qml index 82db5e89..c715e78b 100644 --- a/example/qml/window/AboutWindow.qml +++ b/example/qml/window/AboutWindow.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 import "qrc:///example/qml/component" CustomWindow { diff --git a/example/qml/window/LoginWindow.qml b/example/qml/window/LoginWindow.qml index 9f3e25f7..8ae713ec 100644 --- a/example/qml/window/LoginWindow.qml +++ b/example/qml/window/LoginWindow.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "qrc:///example/qml/component" CustomWindow { diff --git a/example/qml/window/MainWindow.qml b/example/qml/window/MainWindow.qml index 3929fb06..d6f86dc6 100644 --- a/example/qml/window/MainWindow.qml +++ b/example/qml/window/MainWindow.qml @@ -1,10 +1,10 @@ -import QtQuick -import QtQuick.Window -import QtQuick.Controls -import QtQuick.Layouts -import Qt.labs.platform -import FluentUI -import example +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import Qt.labs.platform 1.0 +import FluentUI 1.0 +import example 1.0 import "qrc:///example/qml/component" import "qrc:///example/qml/global" @@ -37,7 +37,7 @@ CustomWindow { SystemTrayIcon { id:system_tray visible: true - icon.source: "qrc:/example/res/image/favicon.ico" + iconSource: "qrc:/example/res/image/favicon.ico" tooltip: "FluentUI" menu: Menu { MenuItem { diff --git a/example/qml/window/SingleInstanceWindow.qml b/example/qml/window/SingleInstanceWindow.qml index e6b855d1..bb13626f 100644 --- a/example/qml/window/SingleInstanceWindow.qml +++ b/example/qml/window/SingleInstanceWindow.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 import "qrc:///example/qml/component" CustomWindow { diff --git a/example/qml/window/SingleTaskWindow.qml b/example/qml/window/SingleTaskWindow.qml index d5bab17d..f3cfdc1c 100644 --- a/example/qml/window/SingleTaskWindow.qml +++ b/example/qml/window/SingleTaskWindow.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 import "qrc:///example/qml/component" CustomWindow { diff --git a/example/qml/window/StandardWindow.qml b/example/qml/window/StandardWindow.qml index c7174016..696eed45 100644 --- a/example/qml/window/StandardWindow.qml +++ b/example/qml/window/StandardWindow.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 import "qrc:///example/qml/component" CustomWindow { diff --git a/example/src/main.cpp b/example/src/main.cpp index 5bd63650..3facb745 100644 --- a/example/src/main.cpp +++ b/example/src/main.cpp @@ -26,7 +26,7 @@ int main(int argc, char *argv[]) FramelessConfig::instance()->set(Global::Option::DisableLazyInitializationForMicaMaterial); FramelessConfig::instance()->set(Global::Option::CenterWindowBeforeShow); FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur); - FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow); + FramelessConfig::instance()->set(Global::Option::EnableBlurBehindWindow,false); #ifdef Q_OS_MACOS FramelessConfig::instance()->set(Global::Option::ForceNonNativeBackgroundBlur,false); #endif diff --git a/example/src/stdafx.h b/example/src/stdafx.h index 0fe92d6d..b0fd29a0 100644 --- a/example/src/stdafx.h +++ b/example/src/stdafx.h @@ -1,7 +1,3 @@ -#if defined(_MSC_VER) && (_MSC_VER >= 1600) -#pragma execution_character_set("utf-8") -#endif - #ifndef STDAFX_H #define STDAFX_H diff --git a/framelesshelper b/framelesshelper index f977a78d..20e12e5e 160000 --- a/framelesshelper +++ b/framelesshelper @@ -1 +1 @@ -Subproject commit f977a78d0ee8cf5f5dc723e8c5e9da8846d420b9 +Subproject commit 20e12e5ec056b8d0959a4d30b715832f2a5d7a70 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 36c61543..a06fce0f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,15 +1,7 @@ cmake_minimum_required(VERSION 3.20) - -if (FLUENTUI_BUILD_STATIC_LIB) - project(fluentui LANGUAGES CXX) -else() - project(fluentuiplugin LANGUAGES CXX) -endif() -#配置通用编译 +set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -if(APPLE) - set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64" CACHE STRING "" FORCE) -endif() +project(fluentuiplugin LANGUAGES CXX) #设置QML插件输出目录->D:\Qt\6.4.3\msvc2019_64\qml\FluentUI set(QML_PLUGIN_DIRECTORY ${CMAKE_PREFIX_PATH}/qml/FluentUI) @@ -17,14 +9,16 @@ set(QML_PLUGIN_DIRECTORY ${CMAKE_PREFIX_PATH}/qml/FluentUI) #设置版本号 add_definitions(-DVERSION=1,3,7,3) -find_package(Qt6 REQUIRED COMPONENTS Core Quick Qml) +find_package(Qt5 REQUIRED COMPONENTS Core Quick Qml) -if(QT_VERSION VERSION_GREATER_EQUAL "6.3") - qt_standard_project_setup() -else() - set(CMAKE_AUTOMOC ON) - set(CMAKE_AUTORCC ON) - set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) +set(CMAKE_AUTOUIC ON) + +if (FLUENTUI_BUILD_STATIC_LIB) + add_definitions(-DQT_PLUGIN) + add_definitions(-DQT_STATICPLUGIN=1) + add_definitions(-DFLUENTUI_BUILD_STATIC_LIB=1) endif() #遍历所有Cpp文件 @@ -48,48 +42,30 @@ foreach(filepath ${RES_PATHS}) list(APPEND resource_files ${filename}) endforeach(filepath) -#修改资源文件导出路径 -foreach(filepath IN LISTS qml_files resource_files) - string(REPLACE "imports/FluentUI/" "" filename ${filepath}) - set_source_files_properties(${filepath} PROPERTIES QT_RESOURCE_ALIAS ${filename}) -endforeach() - #添加qml模块 +include(cmake/QmlPlugin.cmake) if (FLUENTUI_BUILD_STATIC_LIB) set(LIB_TYPE "STATIC") else() set(LIB_TYPE "SHARED") endif() -qt_add_library(${PROJECT_NAME} ${LIB_TYPE}) -if (FLUENTUI_BUILD_STATIC_LIB) - qt_add_qml_module(${PROJECT_NAME} - #在静态库编译中使用PLUGIN_TARGET会导致链接失败 - OUTPUT_DIRECTORY ${QML_PLUGIN_DIRECTORY} - VERSION 1.0 - URI "FluentUI" - #修改qmltypes文件名称。默认fluentuiplugin.qmltypes,使用默认名称有时候import FluentUI会爆红,所以修改成plugins.qmltypes - TYPEINFO "plugins.qmltypes" - SOURCES ${sources_files} fluentui.rc - QML_FILES ${qml_files} - RESOURCES ${resource_files} - ) -else() - qt_add_qml_module(${PROJECT_NAME} - #没有下面这行代码就会生成fluentuiplugin.dll与fluentuipluginplugin.dll两个动态库 - PLUGIN_TARGET fluentuiplugin - OUTPUT_DIRECTORY ${QML_PLUGIN_DIRECTORY} - VERSION 1.0 - URI "FluentUI" - #修改qmltypes文件名称。默认fluentuiplugin.qmltypes,使用默认名称有时候import FluentUI会爆红,所以修改成plugins.qmltypes - TYPEINFO "plugins.qmltypes" - SOURCES ${sources_files} fluentui.rc - QML_FILES ${qml_files} - RESOURCES ${resource_files} - ) -endif() +add_qmlplugin(fluentuiplugin + URI "FluentUI" + VERSION 1.0 + SOURCES ${sources_files} fluentui.rc fluentui.qrc + QMLFILES ${qml_files} + QMLDIR imports/FluentUI + BINARY_DIR ${QML_PLUGIN_DIRECTORY} + LIBTYPE ${LIB_TYPE} +) + +if(FLUENTUI_BUILD_STATIC_LIB) + SET_TARGET_PROPERTIES(fluentuiplugin PROPERTIES + AUTOMOC_MOC_OPTIONS -Muri=FluentUI) +endif() #链接库 -target_link_libraries(${PROJECT_NAME} PUBLIC +target_link_libraries(fluentuiplugin PUBLIC Qt::CorePrivate Qt::QuickPrivate Qt::QmlPrivate diff --git a/src/FluApp.h b/src/FluApp.h index 90b057a1..26716c1f 100644 --- a/src/FluApp.h +++ b/src/FluApp.h @@ -26,9 +26,6 @@ class FluApp : public QObject * @brief routes 路由表 */ Q_PROPERTY_AUTO(QJsonObject,routes); - - QML_NAMED_ELEMENT(FluApp) - QML_SINGLETON private: /** * @brief FluApp 将默认构造函数设置为私有,则qml创建单例就会走create工厂方法创建单例 diff --git a/src/FluColors.h b/src/FluColors.h index 92ce68af..e97d1a84 100644 --- a/src/FluColors.h +++ b/src/FluColors.h @@ -44,8 +44,6 @@ class FluColors : public QObject Q_PROPERTY_AUTO(FluColorSet*,Blue); Q_PROPERTY_AUTO(FluColorSet*,Teal); Q_PROPERTY_AUTO(FluColorSet*,Green); - QML_NAMED_ELEMENT(FluColors) - QML_SINGLETON private: explicit FluColors(QObject *parent = nullptr); static FluColors* m_instance; diff --git a/src/FluTextStyle.cpp b/src/FluTextStyle.cpp index 887f0b11..e9503849 100644 --- a/src/FluTextStyle.cpp +++ b/src/FluTextStyle.cpp @@ -1,4 +1,13 @@ #include "FluTextStyle.h" +FluTextStyle* FluTextStyle::m_instance = nullptr; + +FluTextStyle *FluTextStyle::getInstance() +{ + if(FluTextStyle::m_instance == nullptr){ + FluTextStyle::m_instance = new FluTextStyle; + } + return FluTextStyle::m_instance; +} FluTextStyle::FluTextStyle(QObject *parent) : QObject{parent} diff --git a/src/FluTextStyle.h b/src/FluTextStyle.h index de10fa4f..c3b34b8e 100644 --- a/src/FluTextStyle.h +++ b/src/FluTextStyle.h @@ -10,7 +10,6 @@ class FluTextStyle : public QObject { Q_OBJECT public: - explicit FluTextStyle(QObject *parent = nullptr); Q_PROPERTY_AUTO(QFont,Caption); Q_PROPERTY_AUTO(QFont,Body); Q_PROPERTY_AUTO(QFont,BodyStrong); @@ -18,10 +17,12 @@ public: Q_PROPERTY_AUTO(QFont,Title); Q_PROPERTY_AUTO(QFont,TitleLarge); Q_PROPERTY_AUTO(QFont,Display); - QML_NAMED_ELEMENT(FluTextStyle) - QML_SINGLETON -signals: +private: + static FluTextStyle* m_instance; +public: + explicit FluTextStyle(QObject *parent = nullptr); + static FluTextStyle *getInstance(); }; #endif // FLUTEXTSTYLE_H diff --git a/src/FluTheme.h b/src/FluTheme.h index ad0b4116..26e90ad0 100644 --- a/src/FluTheme.h +++ b/src/FluTheme.h @@ -1,4 +1,4 @@ -#ifndef FLUTHEME_H +#ifndef FLUTHEME_H #define FLUTHEME_H #include @@ -36,9 +36,6 @@ class FluTheme : public QObject * @brief 是否开启动画效果 */ Q_PROPERTY_AUTO(bool,enableAnimation); - - QML_NAMED_ELEMENT(FluTheme) - QML_SINGLETON private: static FluTheme* m_instance; explicit FluTheme(QObject *parent = nullptr); diff --git a/src/FluTools.h b/src/FluTools.h index a045e043..2905f8ab 100644 --- a/src/FluTools.h +++ b/src/FluTools.h @@ -11,9 +11,6 @@ class FluTools : public QObject { Q_OBJECT - - QML_NAMED_ELEMENT(FluTools) - QML_SINGLETON private: explicit FluTools(QObject *parent = nullptr); static FluTools* m_instance; diff --git a/src/WindowHelper.h b/src/WindowHelper.h index d2596498..d5e164b4 100644 --- a/src/WindowHelper.h +++ b/src/WindowHelper.h @@ -14,7 +14,6 @@ class WindowHelper : public QObject { Q_OBJECT - QML_NAMED_ELEMENT(WindowHelper) public: explicit WindowHelper(QObject *parent = nullptr); diff --git a/src/cmake/QmlPlugin.cmake b/src/cmake/QmlPlugin.cmake new file mode 100644 index 00000000..08dfdbf4 --- /dev/null +++ b/src/cmake/QmlPlugin.cmake @@ -0,0 +1,141 @@ +include(CMakeParseArguments) +find_package(Qt5 REQUIRED COMPONENTS Core) +### Finds where to qmlplugindump binary is installed +### Requires that 'qmake' directory is in PATH +function(FindQmlPluginDump) + get_target_property (QT_QMAKE_EXECUTABLE Qt5::qmake IMPORTED_LOCATION) + execute_process( + COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_BINS + OUTPUT_VARIABLE QT_BIN_DIR + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(QMLPLUGINDUMP_BIN ${QT_BIN_DIR}/qmlplugindump PARENT_SCOPE) +endfunction() + +### Sets QT_INSTALL_QML to the directory where QML Plugins should be installed +function(FindQtInstallQml) + execute_process( + COMMAND ${QT_QMAKE_EXECUTABLE} -query QT_INSTALL_QML + OUTPUT_VARIABLE PROC_RESULT + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(QT_INSTALL_QML ${PROC_RESULT} PARENT_SCOPE) +endfunction() + +function(add_qmlplugin TARGET) + set(options NO_AUTORCC NO_AUTOMOC) + set(oneValueArgs URI VERSION BINARY_DIR QMLDIR LIBTYPE) + set(multiValueArgs SOURCES QMLFILES QMLFILESALIAS) + cmake_parse_arguments(QMLPLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) + + ### At least TARGET, URI and VERSION must be specified + if(NOT QMLPLUGIN_URI OR NOT QMLPLUGIN_VERSION OR NOT QMLPLUGIN_QMLDIR OR NOT QMLPLUGIN_LIBTYPE) + message(WARNING "TARGET,URI,VERSION,qmldir and LIBTYPE must be set, no files generated") + return() + endif() + + ### Depending on project hierarchy, one might want to specify a custom binary dir + if(NOT QMLPLUGIN_BINARY_DIR) + set(QMLPLUGIN_BINARY_DIR ${CMAKE_BINARY_DIR}/${QMLPLUGIN_URI}) + endif() + + ### Source files + add_library(${TARGET} ${QMLPLUGIN_LIBTYPE} + ${QMLPLUGIN_SOURCES} + ) + set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib) + ### QML files, just to make them visible in the editor + add_custom_target("${TARGET}-qmlfiles" SOURCES ${QMLPLUGIN_QMLFILES}) + + ### No AutoMOC or AutoRCC + if(QMLPLUGIN_NO_AUTORCC) + set_target_properties(${TARGET} PROPERTIES AUTOMOC OFF) + else() + set_target_properties(${TARGET} PROPERTIES AUTOMOC ON) + endif() + if(QMLPLUGIN_NO_AUTOMOC) + set_target_properties(${TARGET} PROPERTIES AUTOMOC OFF) + else() + set_target_properties(${TARGET} PROPERTIES AUTOMOC ON) + endif() + + if (${QMLPLUGIN_LIBTYPE} MATCHES "SHARED") + ### Find location of qmlplugindump (stored in QMLPLUGINDUMP_BIN) + FindQmlPluginDump() + ### Find where to install QML Plugins (stored in QT_INSTALL_QML) + FindQtInstallQml() + + + if(QMLPLUGIN_BINARY_DIR) + set(MAKE_QMLPLUGINDIR_COMMAND ${CMAKE_COMMAND} -E make_directory ${QMLPLUGIN_BINARY_DIR}) + endif() + set(COPY_QMLDIR_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/${QMLPLUGIN_QMLDIR}/qmldir $/${QMLPLUGIN_URI}/qmldir) + set(INSTALL_QMLDIR_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/${QMLPLUGIN_QMLDIR}/qmldir ${QMLPLUGIN_BINARY_DIR}/qmldir) + set(COPY_LIBRARY_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/$ $/${QMLPLUGIN_URI}) + set(INSTALL_LIBRARY_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/$ ${QMLPLUGIN_BINARY_DIR}) + if(QMLPLUGIN_QMLDIR) + set(COPY_QMLFILES_COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/${QMLPLUGIN_QMLDIR} $/${QMLPLUGIN_URI}) + else() + set(COPY_QMLFILES_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/${QMLPLUGIN_QMLFILES} $/${QMLPLUGIN_URI}) + endif() + set(INSTALL_QMLFILES_COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/${QMLPLUGIN_QMLDIR} ${QMLPLUGIN_BINARY_DIR}) + set(GENERATE_QMLTYPES_COMMAND ${QMLPLUGINDUMP_BIN} -nonrelocatable ${QMLPLUGIN_URI} ${QMLPLUGIN_VERSION} ${CMAKE_CURRENT_BINARY_DIR} > ${CMAKE_CURRENT_BINARY_DIR}/${QMLPLUGIN_URI}/plugins.qmltypes) + set(INSTALL_QMLTYPES_COMMAND ${QMLPLUGINDUMP_BIN} -nonrelocatable ${QMLPLUGIN_URI} ${QMLPLUGIN_VERSION} ${CMAKE_CURRENT_BINARY_DIR} > ${QMLPLUGIN_BINARY_DIR}/plugins.qmltypes) + ### Copy qmldir from project source to binary dir + if(QMLPLUGIN_BINARY_DIR) + add_custom_command( + TARGET ${TARGET} + POST_BUILD + COMMAND ${MAKE_QMLPLUGINDIR_COMMAND} + COMMAND ${COPY_QMLDIR_COMMAND} + COMMENT "Copying qmldir to binary directory" + ) + else() + add_custom_command( + TARGET ${TARGET} + POST_BUILD + COMMAND ${COPY_QMLDIR_COMMAND} + COMMENT "Copying qmldir to binary directory" + ) + endif() + + ### Copy lib from binary dir to binary plugin dir + add_custom_command( + TARGET ${TARGET} + POST_BUILD + COMMAND ${COPY_LIBRARY_COMMAND} + COMMENT "Copying Lib to binary plugin directory" + ) + + ### Copy QML-files from project source to binary dir + if(QMLPLUGIN_QMLFILES) + add_custom_command( + TARGET ${TARGET} + POST_BUILD + COMMAND ${COPY_QMLFILES_COMMAND} + COMMENT "Copying QML files to binary directory" + ) + endif() + + ### Create command to generate plugin.qmltypes after build + add_custom_command( + TARGET ${TARGET} + POST_BUILD + COMMAND ${GENERATE_QMLTYPES_COMMAND} + COMMENT "Generating plugin.qmltypes" + ) + + string(REPLACE "." "/" QMLPLUGIN_INSTALL_URI ${QMLPLUGIN_URI}) + + ### Install library + add_custom_command( + TARGET ${TARGET} + POST_BUILD + COMMAND ${INSTALL_QMLDIR_COMMAND} + COMMAND ${INSTALL_LIBRARY_COMMAND} + COMMAND ${INSTALL_QMLFILES_COMMAND} + COMMAND ${INSTALL_QMLTYPES_COMMAND} + COMMENT "Install library and aditional files" + ) + endif() +endfunction() diff --git a/src/fluentui.qrc b/src/fluentui.qrc new file mode 100644 index 00000000..5ab8e961 --- /dev/null +++ b/src/fluentui.qrc @@ -0,0 +1,92 @@ + + + imports/FluentUI/Controls/FluAcrylic.qml + imports/FluentUI/Controls/FluAppBar.qml + imports/FluentUI/Controls/FluArea.qml + imports/FluentUI/Controls/FluAutoSuggestBox.qml + imports/FluentUI/Controls/FluBreadcrumbBar.qml + imports/FluentUI/Controls/FluButton.qml + imports/FluentUI/Controls/FluCalendarPicker.qml + imports/FluentUI/Controls/FluCalendarView.qml + imports/FluentUI/Controls/FluCheckBox.qml + imports/FluentUI/Controls/FluColorPicker.qml + imports/FluentUI/Controls/FluColorView.qml + imports/FluentUI/Controls/FluComboBox.qml + imports/FluentUI/Controls/FluContentPage.qml + imports/FluentUI/Controls/FluControl.qml + imports/FluentUI/Controls/FluCopyableText.qml + imports/FluentUI/Controls/FluDatePicker.qml + imports/FluentUI/Controls/FluDropDownButton.qml + imports/FluentUI/Controls/FluExpander.qml + imports/FluentUI/Controls/FluFilledButton.qml + imports/FluentUI/Controls/FluFlipView.qml + imports/FluentUI/Controls/FluHorizontalHeaderView.qml + imports/FluentUI/Controls/FluIcon.qml + imports/FluentUI/Controls/FluIconButton.qml + imports/FluentUI/Controls/FluImage.qml + imports/FluentUI/Controls/FluItem.qml + imports/FluentUI/Controls/FluItemDelegate.qml + imports/FluentUI/Controls/FluMenu.qml + imports/FluentUI/Controls/FluMenuBar.qml + imports/FluentUI/Controls/FluMenuItem.qml + imports/FluentUI/Controls/FluMenuSeparator.qml + imports/FluentUI/Controls/FluMultilineTextBox.qml + imports/FluentUI/Controls/FluNavigationView.qml + imports/FluentUI/Controls/FluPage.qml + imports/FluentUI/Controls/FluPagination.qml + imports/FluentUI/Controls/FluPaneItem.qml + imports/FluentUI/Controls/FluPaneItemEmpty.qml + imports/FluentUI/Controls/FluPaneItemHeader.qml + imports/FluentUI/Controls/FluPaneItemSeparator.qml + imports/FluentUI/Controls/FluPasswordBox.qml + imports/FluentUI/Controls/FluPivot.qml + imports/FluentUI/Controls/FluPopup.qml + imports/FluentUI/Controls/FluProgressBar.qml + imports/FluentUI/Controls/FluProgressRing.qml + imports/FluentUI/Controls/FluRadioButton.qml + imports/FluentUI/Controls/FluRatingControl.qml + imports/FluentUI/Controls/FluRectangle.qml + imports/FluentUI/Controls/FluRemoteLoader.qml + imports/FluentUI/Controls/FluScrollablePage.qml + imports/FluentUI/Controls/FluScrollIndicator.qml + imports/FluentUI/Controls/FluShadow.qml + imports/FluentUI/Controls/FluSlider.qml + imports/FluentUI/Controls/FluSpinBox.qml + imports/FluentUI/Controls/FluTableModelColumn.qml + imports/FluentUI/Controls/FluTableView.qml + imports/FluentUI/Controls/FluTabView.qml + imports/FluentUI/Controls/FluText.qml + imports/FluentUI/Controls/FluTextBoxBackground.qml + imports/FluentUI/Controls/FluTextBoxMenu.qml + imports/FluentUI/Controls/FluTextButton.qml + imports/FluentUI/Controls/FluTimePicker.qml + imports/FluentUI/Controls/FluToggleSwitch.qml + imports/FluentUI/Controls/FluTooltip.qml + imports/FluentUI/Controls/FluTreeView.qml + imports/FluentUI/Controls/FluVerticalHeaderView.qml + imports/FluentUI/Controls/FluBadge.qml + imports/FluentUI/Controls/FluCarousel.qml + imports/FluentUI/Controls/FluContentDialog.qml + imports/FluentUI/Controls/FluDivider.qml + imports/FluentUI/Controls/FluFocusRectangle.qml + imports/FluentUI/Controls/FluInfoBar.qml + imports/FluentUI/Controls/FluMenuBarItem.qml + imports/FluentUI/Controls/FluObject.qml + imports/FluentUI/Controls/FluPaneItemExpander.qml + imports/FluentUI/Controls/FluPivotItem.qml + imports/FluentUI/Controls/FluRadioButtons.qml + imports/FluentUI/Controls/FluScrollBar.qml + imports/FluentUI/Controls/FluStatusView.qml + imports/FluentUI/Controls/FluTextBox.qml + imports/FluentUI/Controls/FluToggleButton.qml + imports/FluentUI/Controls/FluWindow.qml + imports/FluentUI/Controls/ColorPicker/ColorPicker.qml + imports/FluentUI/Controls/ColorPicker/Content/Checkerboard.qml + imports/FluentUI/Controls/ColorPicker/Content/ColorSlider.qml + imports/FluentUI/Controls/ColorPicker/Content/NumberBox.qml + imports/FluentUI/Controls/ColorPicker/Content/PanelBorder.qml + imports/FluentUI/Controls/ColorPicker/Content/SBPicker.qml + imports/FluentUI/Font/Segoe_Fluent_Icons.ttf + imports/FluentUI/qmldir + + diff --git a/src/fluentuiplugin.cpp b/src/fluentuiplugin.cpp new file mode 100644 index 00000000..d6a91487 --- /dev/null +++ b/src/fluentuiplugin.cpp @@ -0,0 +1,62 @@ +#include "fluentuiplugin.h" +#include +#include +#include +#include "WindowHelper.h" +#include "Def.h" +#include "FluApp.h" +#include "FluColors.h" +#include "FluTheme.h" +#include "FluTools.h" +#include "FluTextStyle.h" +int major = 1; +int minor = 0; +static FluentUIPlugin instance; + +FluentUIPlugin::FluentUIPlugin() +{ +#ifdef FLUENTUI_BUILD_STATIC_LIB + Q_INIT_RESOURCE(fluentui); +#endif +} + +void FluentUIPlugin::registerTypes(const char *uri) +{ + qmlRegisterType(uri,major,minor,"WindowHelper"); + qmlRegisterType(uri,major,minor,"FluColorSet"); + qmlRegisterUncreatableMetaObject(Fluent_Awesome::staticMetaObject, uri,major,minor,"FluentIcons", "Access to enums & flags only"); + qmlRegisterUncreatableMetaObject(Fluent_DarkMode::staticMetaObject, uri,major,minor,"FluDarkMode", "Access to enums & flags only"); +} + +#ifdef FLUENTUI_BUILD_STATIC_LIB +void FluentUIPlugin::registerTypes() +{ + instance()->registerTypes("FluentUI"); +} + +FluentUIPlugin* FluentUIPlugin::instance() +{ + static FluentUIPlugin instance; + return &instance; +} +#endif +void FluentUIPlugin::initializeEngine(QQmlEngine *engine, const char *uri) +{ + Q_UNUSED(uri) +#ifdef Q_OS_WIN + QFont font; + font.setFamily("Microsoft YaHei"); + QGuiApplication::setFont(font); +#endif + FluApp* app = FluApp::getInstance(); + engine->rootContext()->setContextProperty("FluApp",app); + FluColors* colors = FluColors::getInstance(); + engine->rootContext()->setContextProperty("FluColors",colors); + FluTheme* theme = FluTheme::getInstance(); + engine->rootContext()->setContextProperty("FluTheme",theme); + FluTools* tools = FluTools::getInstance(); + engine->rootContext()->setContextProperty("FluTools",tools); + FluTextStyle* textStyle = FluTextStyle::getInstance(); + engine->rootContext()->setContextProperty("FluTextStyle",textStyle); + engine->addImportPath("qrc:/FluentUI/imports/"); +} diff --git a/src/fluentuiplugin.h b/src/fluentuiplugin.h new file mode 100644 index 00000000..c03c0248 --- /dev/null +++ b/src/fluentuiplugin.h @@ -0,0 +1,23 @@ +#ifndef FLUENTUIPLUGIN_H +#define FLUENTUIPLUGIN_H + +#include + + + +class FluentUIPlugin : public QQmlExtensionPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) + +public: + FluentUIPlugin(); + void registerTypes(const char *uri) Q_DECL_OVERRIDE; +#ifdef FLUENTUI_BUILD_STATIC_LIB + static void registerTypes(); + static FluentUIPlugin* instance(); +#endif + void initializeEngine(QQmlEngine *engine, const char *uri) Q_DECL_OVERRIDE; +}; + +#endif // FLUENTUIPLUGIN_H diff --git a/src/imports/FluentUI/Controls/ColorPicker/ColorPicker.qml b/src/imports/FluentUI/Controls/ColorPicker/ColorPicker.qml index 737776c8..cb43e531 100644 --- a/src/imports/FluentUI/Controls/ColorPicker/ColorPicker.qml +++ b/src/imports/FluentUI/Controls/ColorPicker/ColorPicker.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 import "Content" Rectangle { diff --git a/src/imports/FluentUI/Controls/ColorPicker/Content/Checkerboard.qml b/src/imports/FluentUI/Controls/ColorPicker/Content/Checkerboard.qml index 6d2089b0..2801a2a2 100644 --- a/src/imports/FluentUI/Controls/ColorPicker/Content/Checkerboard.qml +++ b/src/imports/FluentUI/Controls/ColorPicker/Content/Checkerboard.qml @@ -1,4 +1,5 @@ -import QtQuick +import QtQuick 2.15 + Grid { id: root property int cellSide: 5 diff --git a/src/imports/FluentUI/Controls/ColorPicker/Content/ColorSlider.qml b/src/imports/FluentUI/Controls/ColorPicker/Content/ColorSlider.qml index 8eb976b7..55157ae5 100644 --- a/src/imports/FluentUI/Controls/ColorPicker/Content/ColorSlider.qml +++ b/src/imports/FluentUI/Controls/ColorPicker/Content/ColorSlider.qml @@ -1,4 +1,4 @@ -import QtQuick +import QtQuick 2.15 Item { property int cursorHeight: 7 diff --git a/src/imports/FluentUI/Controls/ColorPicker/Content/NumberBox.qml b/src/imports/FluentUI/Controls/ColorPicker/Content/NumberBox.qml index 1fb93b95..f4afb9db 100644 --- a/src/imports/FluentUI/Controls/ColorPicker/Content/NumberBox.qml +++ b/src/imports/FluentUI/Controls/ColorPicker/Content/NumberBox.qml @@ -1,4 +1,4 @@ -import QtQuick +import QtQuick 2.15 Row { property alias caption: captionBox.text diff --git a/src/imports/FluentUI/Controls/ColorPicker/Content/PanelBorder.qml b/src/imports/FluentUI/Controls/ColorPicker/Content/PanelBorder.qml index 88a5a369..67de5b5c 100644 --- a/src/imports/FluentUI/Controls/ColorPicker/Content/PanelBorder.qml +++ b/src/imports/FluentUI/Controls/ColorPicker/Content/PanelBorder.qml @@ -1,4 +1,4 @@ -import QtQuick +import QtQuick 2.15 Rectangle { width : 40; height : 15; radius: 2 diff --git a/src/imports/FluentUI/Controls/ColorPicker/Content/SBPicker.qml b/src/imports/FluentUI/Controls/ColorPicker/Content/SBPicker.qml index 92ee79a9..dfe31b52 100644 --- a/src/imports/FluentUI/Controls/ColorPicker/Content/SBPicker.qml +++ b/src/imports/FluentUI/Controls/ColorPicker/Content/SBPicker.qml @@ -1,4 +1,4 @@ -import QtQuick +import QtQuick 2.15 Item { id: root diff --git a/src/imports/FluentUI/Controls/FluAcrylic.qml b/src/imports/FluentUI/Controls/FluAcrylic.qml index ff8f79ee..559eaea9 100644 --- a/src/imports/FluentUI/Controls/FluAcrylic.qml +++ b/src/imports/FluentUI/Controls/FluAcrylic.qml @@ -1,6 +1,6 @@ -import QtQuick -import Qt5Compat.GraphicalEffects -import FluentUI +import QtQuick 2.15 +import QtGraphicalEffects 1.0 +import FluentUI 1.0 Item { id: control diff --git a/src/imports/FluentUI/Controls/FluAppBar.qml b/src/imports/FluentUI/Controls/FluAppBar.qml index 25280f2d..cb313133 100644 --- a/src/imports/FluentUI/Controls/FluAppBar.qml +++ b/src/imports/FluentUI/Controls/FluAppBar.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Window -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Rectangle{ property string title: "" diff --git a/src/imports/FluentUI/Controls/FluArea.qml b/src/imports/FluentUI/Controls/FluArea.qml index 99a35b39..3c826d39 100644 --- a/src/imports/FluentUI/Controls/FluArea.qml +++ b/src/imports/FluentUI/Controls/FluArea.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Rectangle { default property alias content: container.data diff --git a/src/imports/FluentUI/Controls/FluAutoSuggestBox.qml b/src/imports/FluentUI/Controls/FluAutoSuggestBox.qml index 0b19c469..e89f624c 100644 --- a/src/imports/FluentUI/Controls/FluAutoSuggestBox.qml +++ b/src/imports/FluentUI/Controls/FluAutoSuggestBox.qml @@ -1,6 +1,7 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluTextBox{ property var items:[] diff --git a/src/imports/FluentUI/Controls/FluBadge.qml b/src/imports/FluentUI/Controls/FluBadge.qml index 6b57c28b..65d17f14 100644 --- a/src/imports/FluentUI/Controls/FluBadge.qml +++ b/src/imports/FluentUI/Controls/FluBadge.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Rectangle{ property bool isDot: false diff --git a/src/imports/FluentUI/Controls/FluBreadcrumbBar.qml b/src/imports/FluentUI/Controls/FluBreadcrumbBar.qml index 1527af06..fba338ff 100644 --- a/src/imports/FluentUI/Controls/FluBreadcrumbBar.qml +++ b/src/imports/FluentUI/Controls/FluBreadcrumbBar.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Item { property int textSize: 15 diff --git a/src/imports/FluentUI/Controls/FluButton.qml b/src/imports/FluentUI/Controls/FluButton.qml index 451ad964..c946d0cd 100644 --- a/src/imports/FluentUI/Controls/FluButton.qml +++ b/src/imports/FluentUI/Controls/FluButton.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Button { property bool disabled: false diff --git a/src/imports/FluentUI/Controls/FluCalendarPicker.qml b/src/imports/FluentUI/Controls/FluCalendarPicker.qml index 02bf1250..dec17c00 100644 --- a/src/imports/FluentUI/Controls/FluCalendarPicker.qml +++ b/src/imports/FluentUI/Controls/FluCalendarPicker.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Rectangle { property color dividerColor: FluTheme.dark ? Qt.rgba(77/255,77/255,77/255,1) : Qt.rgba(239/255,239/255,239/255,1) diff --git a/src/imports/FluentUI/Controls/FluCalendarView.qml b/src/imports/FluentUI/Controls/FluCalendarView.qml index b8591c77..c2db7480 100644 --- a/src/imports/FluentUI/Controls/FluCalendarView.qml +++ b/src/imports/FluentUI/Controls/FluCalendarView.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item { enum DisplayMode { diff --git a/src/imports/FluentUI/Controls/FluCarousel.qml b/src/imports/FluentUI/Controls/FluCarousel.qml index d6ce01ae..965fa009 100644 --- a/src/imports/FluentUI/Controls/FluCarousel.qml +++ b/src/imports/FluentUI/Controls/FluCarousel.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item { property bool flagXChanged: true diff --git a/src/imports/FluentUI/Controls/FluCheckBox.qml b/src/imports/FluentUI/Controls/FluCheckBox.qml index 13513eba..16999db5 100644 --- a/src/imports/FluentUI/Controls/FluCheckBox.qml +++ b/src/imports/FluentUI/Controls/FluCheckBox.qml @@ -1,8 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Button { property bool disabled: false @@ -26,6 +25,11 @@ Button { property var clickListener : function(){ checked = !checked } + onCheckableChanged: { + if(checkable){ + checkable = false + } + } id:control enabled: !disabled onClicked: clickListener() diff --git a/src/imports/FluentUI/Controls/FluColorPicker.qml b/src/imports/FluentUI/Controls/FluColorPicker.qml index e18f92fd..ede90815 100644 --- a/src/imports/FluentUI/Controls/FluColorPicker.qml +++ b/src/imports/FluentUI/Controls/FluColorPicker.qml @@ -1,9 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Button{ id:control diff --git a/src/imports/FluentUI/Controls/FluColorView.qml b/src/imports/FluentUI/Controls/FluColorView.qml index daa45030..d3b023c2 100644 --- a/src/imports/FluentUI/Controls/FluColorView.qml +++ b/src/imports/FluentUI/Controls/FluColorView.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 import "ColorPicker" Item { diff --git a/src/imports/FluentUI/Controls/FluComboBox.qml b/src/imports/FluentUI/Controls/FluComboBox.qml index b85f4560..bee216c4 100644 --- a/src/imports/FluentUI/Controls/FluComboBox.qml +++ b/src/imports/FluentUI/Controls/FluComboBox.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI -import QtQuick.Templates as T +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 +import QtQuick.Templates 2.15 as T ComboBox { id: control @@ -44,7 +44,7 @@ ComboBox { topPadding: 6 - control.padding bottomPadding: 6 - control.padding renderType: FluTheme.nativeText ? Text.NativeRendering : Text.QtRendering - selectionColor: Qt.alpha(FluTheme.primaryColor.lightest,0.6) + selectionColor: FluTheme.primaryColor.lightest selectedTextColor: color text: control.editable ? control.editText : control.displayText enabled: control.editable diff --git a/src/imports/FluentUI/Controls/FluContentDialog.qml b/src/imports/FluentUI/Controls/FluContentDialog.qml index 384bdb6d..b80e4a94 100644 --- a/src/imports/FluentUI/Controls/FluContentDialog.qml +++ b/src/imports/FluentUI/Controls/FluContentDialog.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 FluPopup { id: popup diff --git a/src/imports/FluentUI/Controls/FluContentPage.qml b/src/imports/FluentUI/Controls/FluContentPage.qml index 6cbe771b..15788756 100644 --- a/src/imports/FluentUI/Controls/FluContentPage.qml +++ b/src/imports/FluentUI/Controls/FluContentPage.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluPage { property alias title: text_title.text diff --git a/src/imports/FluentUI/Controls/FluControl.qml b/src/imports/FluentUI/Controls/FluControl.qml index 50f672e4..31291792 100644 --- a/src/imports/FluentUI/Controls/FluControl.qml +++ b/src/imports/FluentUI/Controls/FluControl.qml @@ -1,7 +1,8 @@ -import QtQuick -import QtQuick.Controls.impl -import FluentUI -import QtQuick.Templates as T +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 +import QtQuick.Templates 2.15 as T T.Button { id: control diff --git a/src/imports/FluentUI/Controls/FluCopyableText.qml b/src/imports/FluentUI/Controls/FluCopyableText.qml index 215683bf..a2103e7c 100644 --- a/src/imports/FluentUI/Controls/FluCopyableText.qml +++ b/src/imports/FluentUI/Controls/FluCopyableText.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 TextEdit { property color textColor: FluTheme.dark ? FluColors.White : FluColors.Grey220 @@ -17,7 +17,7 @@ TextEdit { selectByMouse: true selectedTextColor: color bottomPadding: 0 - selectionColor: Qt.alpha(FluTheme.primaryColor.lightest,0.6) + selectionColor: FluTheme.primaryColor.lightest font:FluTextStyle.Body onSelectedTextChanged: { control.forceActiveFocus() diff --git a/src/imports/FluentUI/Controls/FluDatePicker.qml b/src/imports/FluentUI/Controls/FluDatePicker.qml index 2a572023..d17e12ed 100644 --- a/src/imports/FluentUI/Controls/FluDatePicker.qml +++ b/src/imports/FluentUI/Controls/FluDatePicker.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Rectangle { property color dividerColor: FluTheme.dark ? Qt.rgba(77/255,77/255,77/255,1) : Qt.rgba(239/255,239/255,239/255,1) diff --git a/src/imports/FluentUI/Controls/FluDivider.qml b/src/imports/FluentUI/Controls/FluDivider.qml index 9e0991f3..68c80c80 100644 --- a/src/imports/FluentUI/Controls/FluDivider.qml +++ b/src/imports/FluentUI/Controls/FluDivider.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Rectangle { color: FluTheme.dark ? Qt.rgba(60/255,60/255,60/255,1) : Qt.rgba(210/255,210/255,210/255,1) diff --git a/src/imports/FluentUI/Controls/FluDropDownButton.qml b/src/imports/FluentUI/Controls/FluDropDownButton.qml index 50b8fb94..4ee40bc2 100644 --- a/src/imports/FluentUI/Controls/FluDropDownButton.qml +++ b/src/imports/FluentUI/Controls/FluDropDownButton.qml @@ -1,8 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Button { property bool disabled: false diff --git a/src/imports/FluentUI/Controls/FluExpander.qml b/src/imports/FluentUI/Controls/FluExpander.qml index 3c165514..d36b81e2 100644 --- a/src/imports/FluentUI/Controls/FluExpander.qml +++ b/src/imports/FluentUI/Controls/FluExpander.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Item { property string headerText: "Titlte" diff --git a/src/imports/FluentUI/Controls/FluFilledButton.qml b/src/imports/FluentUI/Controls/FluFilledButton.qml index 1ac2a787..3584e089 100644 --- a/src/imports/FluentUI/Controls/FluFilledButton.qml +++ b/src/imports/FluentUI/Controls/FluFilledButton.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Button { property bool disabled: false diff --git a/src/imports/FluentUI/Controls/FluFlipView.qml b/src/imports/FluentUI/Controls/FluFlipView.qml index 1f3012a8..a8545f2f 100644 --- a/src/imports/FluentUI/Controls/FluFlipView.qml +++ b/src/imports/FluentUI/Controls/FluFlipView.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item{ property bool vertical: false diff --git a/src/imports/FluentUI/Controls/FluFocusRectangle.qml b/src/imports/FluentUI/Controls/FluFocusRectangle.qml index 5c6c9596..82dc6903 100644 --- a/src/imports/FluentUI/Controls/FluFocusRectangle.qml +++ b/src/imports/FluentUI/Controls/FluFocusRectangle.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item { property int radius: 4 diff --git a/src/imports/FluentUI/Controls/FluHorizontalHeaderView.qml b/src/imports/FluentUI/Controls/FluHorizontalHeaderView.qml index 90369ebf..26f304da 100644 --- a/src/imports/FluentUI/Controls/FluHorizontalHeaderView.qml +++ b/src/imports/FluentUI/Controls/FluHorizontalHeaderView.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.HorizontalHeaderView { id: control diff --git a/src/imports/FluentUI/Controls/FluIcon.qml b/src/imports/FluentUI/Controls/FluIcon.qml index cade7301..8303c131 100644 --- a/src/imports/FluentUI/Controls/FluIcon.qml +++ b/src/imports/FluentUI/Controls/FluIcon.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Text { property int iconSource diff --git a/src/imports/FluentUI/Controls/FluIconButton.qml b/src/imports/FluentUI/Controls/FluIconButton.qml index 7214313b..1a2a9f67 100644 --- a/src/imports/FluentUI/Controls/FluIconButton.qml +++ b/src/imports/FluentUI/Controls/FluIconButton.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Button { property int iconSize: 20 diff --git a/src/imports/FluentUI/Controls/FluImage.qml b/src/imports/FluentUI/Controls/FluImage.qml index 79b83376..78b02f47 100644 --- a/src/imports/FluentUI/Controls/FluImage.qml +++ b/src/imports/FluentUI/Controls/FluImage.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Image { property string errorButtonText: "重新加载" diff --git a/src/imports/FluentUI/Controls/FluInfoBar.qml b/src/imports/FluentUI/Controls/FluInfoBar.qml index f662a62a..b537cbf9 100644 --- a/src/imports/FluentUI/Controls/FluInfoBar.qml +++ b/src/imports/FluentUI/Controls/FluInfoBar.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluObject { property var root; @@ -95,7 +95,7 @@ FluObject { Behavior on scale { enabled: FluTheme.enableAnimation NumberAnimation { - easing.type: Easing.OutCubic + easing.type: Easing.OutCubic; duration: 167 } } diff --git a/src/imports/FluentUI/Controls/FluItem.qml b/src/imports/FluentUI/Controls/FluItem.qml index 7fc12d8b..064e1625 100644 --- a/src/imports/FluentUI/Controls/FluItem.qml +++ b/src/imports/FluentUI/Controls/FluItem.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import Qt5Compat.GraphicalEffects +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtGraphicalEffects 1.0 Item{ property var radius:[0,0,0,0] diff --git a/src/imports/FluentUI/Controls/FluItemDelegate.qml b/src/imports/FluentUI/Controls/FluItemDelegate.qml index 7536d2df..9d907ea6 100644 --- a/src/imports/FluentUI/Controls/FluItemDelegate.qml +++ b/src/imports/FluentUI/Controls/FluItemDelegate.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls.Basic -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.ItemDelegate { id: control diff --git a/src/imports/FluentUI/Controls/FluMenu.qml b/src/imports/FluentUI/Controls/FluMenu.qml index 5090f3ac..ffe6964c 100644 --- a/src/imports/FluentUI/Controls/FluMenu.qml +++ b/src/imports/FluentUI/Controls/FluMenu.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.Menu { property bool enableAnimation: true diff --git a/src/imports/FluentUI/Controls/FluMenuBar.qml b/src/imports/FluentUI/Controls/FluMenuBar.qml index 9c76ec42..f3d42d1c 100644 --- a/src/imports/FluentUI/Controls/FluMenuBar.qml +++ b/src/imports/FluentUI/Controls/FluMenuBar.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Templates as T -import QtQuick.Controls.impl +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T +import QtQuick.Controls 2.15 T.MenuBar { id: control diff --git a/src/imports/FluentUI/Controls/FluMenuBarItem.qml b/src/imports/FluentUI/Controls/FluMenuBarItem.qml index 4dc5b79b..985d8140 100644 --- a/src/imports/FluentUI/Controls/FluMenuBarItem.qml +++ b/src/imports/FluentUI/Controls/FluMenuBarItem.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Templates as T -import QtQuick.Controls.impl -import FluentUI +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T +import QtQuick.Controls 2.15 +import FluentUI 1.0 T.MenuBarItem { property bool disabled: false diff --git a/src/imports/FluentUI/Controls/FluMenuItem.qml b/src/imports/FluentUI/Controls/FluMenuItem.qml index 54b3e882..e454bdd2 100644 --- a/src/imports/FluentUI/Controls/FluMenuItem.qml +++ b/src/imports/FluentUI/Controls/FluMenuItem.qml @@ -1,8 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.impl -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.MenuItem { property color textColor: { diff --git a/src/imports/FluentUI/Controls/FluMenuSeparator.qml b/src/imports/FluentUI/Controls/FluMenuSeparator.qml index a687e30a..7cc54c74 100644 --- a/src/imports/FluentUI/Controls/FluMenuSeparator.qml +++ b/src/imports/FluentUI/Controls/FluMenuSeparator.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls.impl -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.MenuSeparator { id: control diff --git a/src/imports/FluentUI/Controls/FluMultilineTextBox.qml b/src/imports/FluentUI/Controls/FluMultilineTextBox.qml index 1f535af6..dd140437 100644 --- a/src/imports/FluentUI/Controls/FluMultilineTextBox.qml +++ b/src/imports/FluentUI/Controls/FluMultilineTextBox.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 TextArea{ signal commit @@ -26,7 +25,7 @@ TextArea{ leftPadding: padding+2 renderType: FluTheme.nativeText ? Text.NativeRendering : Text.QtRendering selectedTextColor: color - selectionColor: Qt.alpha(FluTheme.primaryColor.lightest,0.6) + selectionColor: FluTheme.primaryColor.lightest placeholderTextColor: { if(!enabled){ return placeholderDisableColor diff --git a/src/imports/FluentUI/Controls/FluNavigationView.qml b/src/imports/FluentUI/Controls/FluNavigationView.qml index c651ad1f..7d549e70 100644 --- a/src/imports/FluentUI/Controls/FluNavigationView.qml +++ b/src/imports/FluentUI/Controls/FluNavigationView.qml @@ -1,9 +1,8 @@ -import QtQuick -import QtQuick.Window -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Item { enum DisplayMode { @@ -636,7 +635,12 @@ Item { id:nav_stack2 anchors.fill: nav_stack clip: true - visible: nav_stack.currentItem?.launchMode === FluPage.SingleInstance + visible: { + if( nav_stack.currentItem){ + return nav_stack.currentItem.launchMode === FluPage.SingleInstance + } + return false + } } function navStack(){ return nav_stack @@ -785,7 +789,6 @@ Item { } boundsBehavior: ListView.StopAtBounds clip: true - maximumFlickVelocity: 1680 contentHeight: nav_list.contentHeight ScrollBar.vertical: FluScrollBar {} ListView{ diff --git a/src/imports/FluentUI/Controls/FluObject.qml b/src/imports/FluentUI/Controls/FluObject.qml index 51c95054..f54ac87a 100644 --- a/src/imports/FluentUI/Controls/FluObject.qml +++ b/src/imports/FluentUI/Controls/FluObject.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 QtObject { default property list children diff --git a/src/imports/FluentUI/Controls/FluPage.qml b/src/imports/FluentUI/Controls/FluPage.qml index 5f3312e0..3700be18 100644 --- a/src/imports/FluentUI/Controls/FluPage.qml +++ b/src/imports/FluentUI/Controls/FluPage.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Item { enum LaunchMode{ diff --git a/src/imports/FluentUI/Controls/FluPagination.qml b/src/imports/FluentUI/Controls/FluPagination.qml index 188b0932..b7391ee6 100644 --- a/src/imports/FluentUI/Controls/FluPagination.qml +++ b/src/imports/FluentUI/Controls/FluPagination.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Item { signal requestPage(int page,int count) diff --git a/src/imports/FluentUI/Controls/FluPaneItem.qml b/src/imports/FluentUI/Controls/FluPaneItem.qml index e30ccb5d..fe5390fb 100644 --- a/src/imports/FluentUI/Controls/FluPaneItem.qml +++ b/src/imports/FluentUI/Controls/FluPaneItem.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 QtObject { readonly property string key : FluTools.uuid() diff --git a/src/imports/FluentUI/Controls/FluPaneItemEmpty.qml b/src/imports/FluentUI/Controls/FluPaneItemEmpty.qml index 04a1a44b..92bb64c6 100644 --- a/src/imports/FluentUI/Controls/FluPaneItemEmpty.qml +++ b/src/imports/FluentUI/Controls/FluPaneItemEmpty.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 QtObject { readonly property string key : FluTools.uuid() diff --git a/src/imports/FluentUI/Controls/FluPaneItemExpander.qml b/src/imports/FluentUI/Controls/FluPaneItemExpander.qml index 4bc6a717..5755974b 100644 --- a/src/imports/FluentUI/Controls/FluPaneItemExpander.qml +++ b/src/imports/FluentUI/Controls/FluPaneItemExpander.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluObject { readonly property string key : FluTools.uuid() diff --git a/src/imports/FluentUI/Controls/FluPaneItemHeader.qml b/src/imports/FluentUI/Controls/FluPaneItemHeader.qml index 7eb981d7..2591cf18 100644 --- a/src/imports/FluentUI/Controls/FluPaneItemHeader.qml +++ b/src/imports/FluentUI/Controls/FluPaneItemHeader.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 QtObject { readonly property string key : FluTools.uuid() diff --git a/src/imports/FluentUI/Controls/FluPaneItemSeparator.qml b/src/imports/FluentUI/Controls/FluPaneItemSeparator.qml index 0ebc9471..d2366f6c 100644 --- a/src/imports/FluentUI/Controls/FluPaneItemSeparator.qml +++ b/src/imports/FluentUI/Controls/FluPaneItemSeparator.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 QtObject { readonly property string key : FluTools.uuid() diff --git a/src/imports/FluentUI/Controls/FluPasswordBox.qml b/src/imports/FluentUI/Controls/FluPasswordBox.qml index e6d8a93b..d9ab576a 100644 --- a/src/imports/FluentUI/Controls/FluPasswordBox.qml +++ b/src/imports/FluentUI/Controls/FluPasswordBox.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 TextField{ signal commit @@ -26,7 +25,7 @@ TextField{ leftPadding: padding+2 echoMode:btn_reveal.pressed ? TextField.Normal : TextField.Password renderType: FluTheme.nativeText ? Text.NativeRendering : Text.QtRendering - selectionColor: Qt.alpha(FluTheme.primaryColor.lightest,0.6) + selectionColor: FluTheme.primaryColor.lightest selectedTextColor: color placeholderTextColor: { if(!enabled){ diff --git a/src/imports/FluentUI/Controls/FluPivot.qml b/src/imports/FluentUI/Controls/FluPivot.qml index c5671aa7..8ddbc7dc 100644 --- a/src/imports/FluentUI/Controls/FluPivot.qml +++ b/src/imports/FluentUI/Controls/FluPivot.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item { default property alias content: d.children diff --git a/src/imports/FluentUI/Controls/FluPivotItem.qml b/src/imports/FluentUI/Controls/FluPivotItem.qml index b241dc44..4181d29c 100644 --- a/src/imports/FluentUI/Controls/FluPivotItem.qml +++ b/src/imports/FluentUI/Controls/FluPivotItem.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 QtObject { property string title diff --git a/src/imports/FluentUI/Controls/FluPopup.qml b/src/imports/FluentUI/Controls/FluPopup.qml index 8c802fc3..061853f7 100644 --- a/src/imports/FluentUI/Controls/FluPopup.qml +++ b/src/imports/FluentUI/Controls/FluPopup.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Popup { id: popup diff --git a/src/imports/FluentUI/Controls/FluProgressBar.qml b/src/imports/FluentUI/Controls/FluProgressBar.qml index 2a45c091..e3e89f5d 100644 --- a/src/imports/FluentUI/Controls/FluProgressBar.qml +++ b/src/imports/FluentUI/Controls/FluProgressBar.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item{ diff --git a/src/imports/FluentUI/Controls/FluProgressRing.qml b/src/imports/FluentUI/Controls/FluProgressRing.qml index 5eec679c..b0600bd0 100644 --- a/src/imports/FluentUI/Controls/FluProgressRing.qml +++ b/src/imports/FluentUI/Controls/FluProgressRing.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Rectangle { property real linWidth : 5 diff --git a/src/imports/FluentUI/Controls/FluRadioButton.qml b/src/imports/FluentUI/Controls/FluRadioButton.qml index 2e96ad29..01e57f76 100644 --- a/src/imports/FluentUI/Controls/FluRadioButton.qml +++ b/src/imports/FluentUI/Controls/FluRadioButton.qml @@ -1,8 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Button { property string contentDescription: "" @@ -19,6 +18,11 @@ Button { property var clickListener : function(){ checked = !checked } + onCheckableChanged: { + if(checkable){ + checkable = false + } + } Accessible.role: Accessible.Button Accessible.name: control.text Accessible.description: contentDescription diff --git a/src/imports/FluentUI/Controls/FluRadioButtons.qml b/src/imports/FluentUI/Controls/FluRadioButtons.qml index 9a5e908b..84b41a5b 100644 --- a/src/imports/FluentUI/Controls/FluRadioButtons.qml +++ b/src/imports/FluentUI/Controls/FluRadioButtons.qml @@ -1,8 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 ColumnLayout { default property alias buttons: control.data diff --git a/src/imports/FluentUI/Controls/FluRatingControl.qml b/src/imports/FluentUI/Controls/FluRatingControl.qml index fdfcd859..3ad13411 100644 --- a/src/imports/FluentUI/Controls/FluRatingControl.qml +++ b/src/imports/FluentUI/Controls/FluRatingControl.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item { property int number: 5 diff --git a/src/imports/FluentUI/Controls/FluRectangle.qml b/src/imports/FluentUI/Controls/FluRectangle.qml index e0450778..00c4b100 100644 --- a/src/imports/FluentUI/Controls/FluRectangle.qml +++ b/src/imports/FluentUI/Controls/FluRectangle.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import Qt5Compat.GraphicalEffects -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtGraphicalEffects 1.0 +import FluentUI 1.0 Item{ property var radius:[0,0,0,0] diff --git a/src/imports/FluentUI/Controls/FluRemoteLoader.qml b/src/imports/FluentUI/Controls/FluRemoteLoader.qml index 759d78f7..0e298dcb 100644 --- a/src/imports/FluentUI/Controls/FluRemoteLoader.qml +++ b/src/imports/FluentUI/Controls/FluRemoteLoader.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluStatusView { property url source: "" diff --git a/src/imports/FluentUI/Controls/FluScrollBar.qml b/src/imports/FluentUI/Controls/FluScrollBar.qml index 1c088693..92766a32 100644 --- a/src/imports/FluentUI/Controls/FluScrollBar.qml +++ b/src/imports/FluentUI/Controls/FluScrollBar.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls.impl -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.ScrollBar { id: control diff --git a/src/imports/FluentUI/Controls/FluScrollIndicator.qml b/src/imports/FluentUI/Controls/FluScrollIndicator.qml index 3e4b1685..13e1dcb3 100644 --- a/src/imports/FluentUI/Controls/FluScrollIndicator.qml +++ b/src/imports/FluentUI/Controls/FluScrollIndicator.qml @@ -1,6 +1,5 @@ -import QtQuick -import QtQuick.Controls.impl -import QtQuick.Templates as T +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T T.ScrollIndicator { id: control diff --git a/src/imports/FluentUI/Controls/FluScrollablePage.qml b/src/imports/FluentUI/Controls/FluScrollablePage.qml index 8a4bbd8c..25c4086f 100644 --- a/src/imports/FluentUI/Controls/FluScrollablePage.qml +++ b/src/imports/FluentUI/Controls/FluScrollablePage.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Window -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluPage { property alias title: text_title.text @@ -38,7 +38,6 @@ FluPage { bottom: parent.bottom bottomMargin: control.bottomPadding } - maximumFlickVelocity: 1680 contentWidth: parent.width contentHeight: container.height ScrollBar.vertical: FluScrollBar { diff --git a/src/imports/FluentUI/Controls/FluShadow.qml b/src/imports/FluentUI/Controls/FluShadow.qml index 280ed107..38f4be88 100644 --- a/src/imports/FluentUI/Controls/FluShadow.qml +++ b/src/imports/FluentUI/Controls/FluShadow.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item { diff --git a/src/imports/FluentUI/Controls/FluSlider.qml b/src/imports/FluentUI/Controls/FluSlider.qml index cd77769e..504b809d 100644 --- a/src/imports/FluentUI/Controls/FluSlider.qml +++ b/src/imports/FluentUI/Controls/FluSlider.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls.impl -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.Slider { property bool tooltipEnabled: true diff --git a/src/imports/FluentUI/Controls/FluSpinBox.qml b/src/imports/FluentUI/Controls/FluSpinBox.qml index 4e7a8ff0..dbdda8e6 100644 --- a/src/imports/FluentUI/Controls/FluSpinBox.qml +++ b/src/imports/FluentUI/Controls/FluSpinBox.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Rectangle{ readonly property string displayText : d._displayText diff --git a/src/imports/FluentUI/Controls/FluStatusView.qml b/src/imports/FluentUI/Controls/FluStatusView.qml index 8c32fdf0..87ffc7bf 100644 --- a/src/imports/FluentUI/Controls/FluStatusView.qml +++ b/src/imports/FluentUI/Controls/FluStatusView.qml @@ -1,7 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.3 +import FluentUI 1.0 Item{ id:control diff --git a/src/imports/FluentUI/Controls/FluTabView.qml b/src/imports/FluentUI/Controls/FluTabView.qml index 53ae702d..181e210f 100644 --- a/src/imports/FluentUI/Controls/FluTabView.qml +++ b/src/imports/FluentUI/Controls/FluTabView.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Item { enum TabWidthBehavior { diff --git a/src/imports/FluentUI/Controls/FluTableModelColumn.qml b/src/imports/FluentUI/Controls/FluTableModelColumn.qml index f3921140..b3a1fd01 100644 --- a/src/imports/FluentUI/Controls/FluTableModelColumn.qml +++ b/src/imports/FluentUI/Controls/FluTableModelColumn.qml @@ -1,4 +1,4 @@ -import Qt.labs.qmlmodels +import Qt.labs.qmlmodels 1.0 TableModelColumn{ diff --git a/src/imports/FluentUI/Controls/FluTableView.qml b/src/imports/FluentUI/Controls/FluTableView.qml index f094a9b6..446f96ec 100644 --- a/src/imports/FluentUI/Controls/FluTableView.qml +++ b/src/imports/FluentUI/Controls/FluTableView.qml @@ -1,16 +1,15 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Layouts -import Qt.labs.qmlmodels -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 + import Qt.labs.qmlmodels 1.0 Rectangle { property var columnSource property var dataSource - property color selectionColor: Qt.alpha(FluTheme.primaryColor.lightest,0.6) - property color hoverButtonColor: Qt.alpha(selectionColor,0.2) - property color pressedButtonColor: Qt.alpha(selectionColor,0.4) + property color selectionColor: Qt.lighter(FluTheme.primaryColor.lightest,1.2) + property color hoverButtonColor: Qt.lighter(selectionColor,1.2) + property color pressedButtonColor: Qt.lighter(selectionColor,1.3) id:control color: FluTheme.dark ? Qt.rgba(39/255,39/255,39/255,1) : Qt.rgba(251/255,251/255,253/255,1) onColumnSourceChanged: { @@ -34,9 +33,8 @@ Rectangle { id:d property var header_rows:[] property bool selectionFlag: true - function obtEditDelegate(column,row){ + function obtEditDelegate(column,row,cellItem){ var display = table_model.data(table_model.index(row,column),"display") - var cellItem = table_view.itemAtCell(column, row) var cellPosition = cellItem.mapToItem(scroll_table, 0, 0) item_loader.column = column item_loader.row = row @@ -170,17 +168,7 @@ Rectangle { } boundsBehavior: Flickable.StopAtBounds ScrollBar.horizontal: FluScrollBar{} - maximumFlickVelocity: 1680 ScrollBar.vertical: FluScrollBar{} - selectionModel: ItemSelectionModel { - id:selection_model - model: table_model - onSelectionChanged: { - if(selection_rect.dragging){ - d.selectionFlag = !d.selectionFlag - } - } - } columnWidthProvider: function(column) { var w = columnSource[column].width if(column === item_loader.column){ @@ -216,15 +204,14 @@ Rectangle { clip: true delegate: Rectangle { id:item_table - property var position: Qt.point(column,row) - required property bool selected + property point position: Qt.point(column,row) color: (row%2!==0) ? control.color : (FluTheme.dark ? Qt.rgba(1,1,1,0.06) : Qt.rgba(0,0,0,0.06)) implicitHeight: 40 implicitWidth: columnSource[column].width Rectangle{ anchors.fill: parent visible: !item_loader.sourceComponent - color: selected ? control.selectionColor : "#00000000" + color: "#00000000" } MouseArea{ anchors.fill: parent @@ -243,15 +230,11 @@ Rectangle { if(display instanceof Component){ return } - item_loader.sourceComponent = d.obtEditDelegate(column,row) + item_loader.sourceComponent = d.obtEditDelegate(column,row,item_table) } onClicked: (event)=>{ item_loader.sourceComponent = undefined - if(!(event.modifiers & Qt.ControlModifier)){ - selection_model.clear() - } - selection_model.select(table_model.index(row,column),ItemSelectionModel.Select) d.selectionFlag = !d.selectionFlag event.accepted = true } @@ -292,17 +275,6 @@ Rectangle { id:com_handle Item {} } - SelectionRectangle { - id:selection_rect - target: table_view - bottomRightHandle:com_handle - topLeftHandle: com_handle - onDraggingChanged: { - if(!dragging){ - table_view.interactive = true - } - } - } TableView { id: header_horizontal model: TableModel{ @@ -329,9 +301,6 @@ Rectangle { if(column_item_control_mouse.pressed){ return control.pressedButtonColor } - if(selection_model.isColumnSelected(column)){ - return control.hoverButtonColor - } return column_item_control_mouse.containsMouse&&!canceled ? control.hoverButtonColor : FluTheme.dark ? Qt.rgba(50/255,50/255,50/255,1) : Qt.rgba(247/255,247/255,247/255,1) } border.color: FluTheme.dark ? "#252525" : "#e4e4e4" @@ -342,7 +311,7 @@ Rectangle { height: parent.height font.bold:{ d.selectionFlag - return selection_model.columnIntersectsSelection(column) + return true } horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter @@ -363,12 +332,6 @@ Rectangle { onClicked: (event)=>{ closeEditor() - if(!(event.modifiers & Qt.ControlModifier)){ - selection_model.clear() - } - for(var i=0;i<=table_view.rows;i++){ - selection_model.select(table_model.index(i,column),ItemSelectionModel.Select) - } d.selectionFlag = !d.selectionFlag } } @@ -444,9 +407,6 @@ Rectangle { if(item_control_mouse.pressed){ return control.pressedButtonColor } - if(selection_model.isRowSelected(row)){ - return control.hoverButtonColor - } return item_control_mouse.containsMouse&&!canceled ? control.hoverButtonColor : FluTheme.dark ? Qt.rgba(50/255,50/255,50/255,1) : Qt.rgba(247/255,247/255,247/255,1) } border.color: FluTheme.dark ? "#252525" : "#e4e4e4" @@ -456,7 +416,7 @@ Rectangle { text: row + 1 font.bold:{ d.selectionFlag - return selection_model.rowIntersectsSelection(row) + return true } } MouseArea{ @@ -475,12 +435,6 @@ Rectangle { onClicked: (event)=>{ closeEditor() - if(!(event.modifiers & Qt.ControlModifier)){ - selection_model.clear() - } - for(var i=0;i<=columnSource.length;i++){ - selection_model.select(table_model.index(row,i),ItemSelectionModel.Select) - } d.selectionFlag = !d.selectionFlag } } diff --git a/src/imports/FluentUI/Controls/FluText.qml b/src/imports/FluentUI/Controls/FluText.qml index 86dfa5b7..414f1e06 100644 --- a/src/imports/FluentUI/Controls/FluText.qml +++ b/src/imports/FluentUI/Controls/FluText.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Text { property color textColor: FluTheme.dark ? FluColors.White : FluColors.Grey220 diff --git a/src/imports/FluentUI/Controls/FluTextBox.qml b/src/imports/FluentUI/Controls/FluTextBox.qml index 5438023a..b4074fa8 100644 --- a/src/imports/FluentUI/Controls/FluTextBox.qml +++ b/src/imports/FluentUI/Controls/FluTextBox.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 TextField{ signal commit @@ -26,7 +25,7 @@ TextField{ } font:FluTextStyle.Body renderType: FluTheme.nativeText ? Text.NativeRendering : Text.QtRendering - selectionColor: Qt.alpha(FluTheme.primaryColor.lightest,0.6) + selectionColor: FluTheme.primaryColor.lightest selectedTextColor: color placeholderTextColor: { if(!enabled){ diff --git a/src/imports/FluentUI/Controls/FluTextBoxBackground.qml b/src/imports/FluentUI/Controls/FluTextBoxBackground.qml index 202cd75d..1aa98e79 100644 --- a/src/imports/FluentUI/Controls/FluTextBoxBackground.qml +++ b/src/imports/FluentUI/Controls/FluTextBoxBackground.qml @@ -1,7 +1,7 @@ -import QtQuick -import QtQuick.Controls -import Qt5Compat.GraphicalEffects -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtGraphicalEffects 1.0 +import FluentUI 1.0 Rectangle{ property Item inputItem diff --git a/src/imports/FluentUI/Controls/FluTextBoxMenu.qml b/src/imports/FluentUI/Controls/FluTextBoxMenu.qml index 061a94e9..6d5eedd8 100644 --- a/src/imports/FluentUI/Controls/FluTextBoxMenu.qml +++ b/src/imports/FluentUI/Controls/FluTextBoxMenu.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 FluMenu{ property string cutText : "剪切" diff --git a/src/imports/FluentUI/Controls/FluTextButton.qml b/src/imports/FluentUI/Controls/FluTextButton.qml index d111e138..e61bdf39 100644 --- a/src/imports/FluentUI/Controls/FluTextButton.qml +++ b/src/imports/FluentUI/Controls/FluTextButton.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Button { property bool disabled: false diff --git a/src/imports/FluentUI/Controls/FluTimePicker.qml b/src/imports/FluentUI/Controls/FluTimePicker.qml index c8e4cfc4..0a399f99 100644 --- a/src/imports/FluentUI/Controls/FluTimePicker.qml +++ b/src/imports/FluentUI/Controls/FluTimePicker.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Layouts -import QtQuick.Window -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 +import FluentUI 1.0 Rectangle { enum HourFormat { diff --git a/src/imports/FluentUI/Controls/FluToggleButton.qml b/src/imports/FluentUI/Controls/FluToggleButton.qml index e1fdbe22..3ac946bf 100644 --- a/src/imports/FluentUI/Controls/FluToggleButton.qml +++ b/src/imports/FluentUI/Controls/FluToggleButton.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Button { property bool disabled: false @@ -30,6 +29,11 @@ Button { property var clickListener : function(){ checked = !checked } + onCheckableChanged: { + if(checkable){ + checkable = false + } + } property color pressedColor: FluTheme.dark ? Qt.darker(normalColor,1.2) : Qt.lighter(normalColor,1.2) Accessible.role: Accessible.Button Accessible.name: control.text diff --git a/src/imports/FluentUI/Controls/FluToggleSwitch.qml b/src/imports/FluentUI/Controls/FluToggleSwitch.qml index e8f5b7d7..97c803c3 100644 --- a/src/imports/FluentUI/Controls/FluToggleSwitch.qml +++ b/src/imports/FluentUI/Controls/FluToggleSwitch.qml @@ -1,8 +1,7 @@ -import QtQuick -import QtQuick.Controls -import QtQuick.Controls.Basic -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Button { property bool disabled: false @@ -23,6 +22,11 @@ Button { property var clickListener : function(){ checked = !checked } + onCheckableChanged: { + if(checkable){ + checkable = false + } + } id: control Accessible.role: Accessible.Button Accessible.name: control.text diff --git a/src/imports/FluentUI/Controls/FluTooltip.qml b/src/imports/FluentUI/Controls/FluTooltip.qml index 4df02bcc..673cc078 100644 --- a/src/imports/FluentUI/Controls/FluTooltip.qml +++ b/src/imports/FluentUI/Controls/FluTooltip.qml @@ -1,7 +1,6 @@ -import QtQuick -import QtQuick.Controls.impl -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.ToolTip { id: control diff --git a/src/imports/FluentUI/Controls/FluTreeView.qml b/src/imports/FluentUI/Controls/FluTreeView.qml index f3c7c155..ed3bf62b 100644 --- a/src/imports/FluentUI/Controls/FluTreeView.qml +++ b/src/imports/FluentUI/Controls/FluTreeView.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Window -import QtQuick.Layouts -import QtQuick.Controls -import FluentUI +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Layouts 1.15 +import QtQuick.Controls 2.15 +import FluentUI 1.0 Item { enum TreeViewSelectionMode { @@ -251,7 +251,6 @@ Item { flickableDirection: Flickable.HorizontalAndVerticalFlick clip: true boundsBehavior: ListView.StopAtBounds - maximumFlickVelocity: 1680 ScrollBar.vertical: FluScrollBar {} ScrollBar.horizontal: FluScrollBar { } } diff --git a/src/imports/FluentUI/Controls/FluVerticalHeaderView.qml b/src/imports/FluentUI/Controls/FluVerticalHeaderView.qml index 88809269..0ec10599 100644 --- a/src/imports/FluentUI/Controls/FluVerticalHeaderView.qml +++ b/src/imports/FluentUI/Controls/FluVerticalHeaderView.qml @@ -1,6 +1,6 @@ -import QtQuick -import QtQuick.Templates as T -import FluentUI +import QtQuick 2.15 +import QtQuick.Templates 2.15 as T +import FluentUI 1.0 T.VerticalHeaderView { id: control diff --git a/src/imports/FluentUI/Controls/FluWindow.qml b/src/imports/FluentUI/Controls/FluWindow.qml index 67ee8c61..e34a4ed3 100644 --- a/src/imports/FluentUI/Controls/FluWindow.qml +++ b/src/imports/FluentUI/Controls/FluWindow.qml @@ -1,8 +1,8 @@ -import QtQuick -import QtQuick.Window -import QtQuick.Controls -import QtQuick.Layouts -import FluentUI +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Layouts 1.15 +import FluentUI 1.0 Window { enum LaunchMode { diff --git a/src/imports/FluentUI/qmldir b/src/imports/FluentUI/qmldir index 791ae3e9..17eafb17 100644 --- a/src/imports/FluentUI/qmldir +++ b/src/imports/FluentUI/qmldir @@ -1,68 +1,83 @@ -module FluentUI -FluAppBar 1.0 FluAppBar.qml -FluArea 1.0 FluArea.qml -FluAutoSuggestBox 1.0 FluAutoSuggestBox.qml -FluBadge 1.0 FluBadge.qml -FluBreadcrumbBar 1.0 FluBreadcrumbBar.qml -FluButton 1.0 FluButton.qml -FluCalendarPicker 1.0 FluCalendarPicker.qml -FluCalendarView 1.0 FluCalendarView.qml -FluCarousel 1.0 FluCarousel.qml -FluCheckBox 1.0 FluCheckBox.qml -FluColorPicker 1.0 FluColorPicker.qml -FluColorView 1.0 FluColorView.qml -FluComboBox 1.0 FluComboBox.qml -FluContentDialog 1.0 FluContentDialog.qml -FluContentPage 1.0 FluContentPage.qml -FluDatePicker 1.0 FluDatePicker.qml -FluDivider 1.0 FluDivider.qml -FluDropDownButton 1.0 FluDropDownButton.qml -FluExpander 1.0 FluExpander.qml -FluFilledButton 1.0 FluFilledButton.qml -FluFlipView 1.0 FluFlipView.qml -FluFocusRectangle 1.0 FluFocusRectangle.qml -FluIcon 1.0 FluIcon.qml -FluIconButton 1.0 FluIconButton.qml -FluInfoBar 1.0 FluInfoBar.qml -FluItem 1.0 FluItem.qml -FluMediaPlayer 1.0 FluMediaPlayer.qml -FluMenu 1.0 FluMenu.qml -FluMenuItem 1.0 FluMenuItem.qml -FluMultilineTextBox 1.0 FluMultilineTextBox.qml -FluNavigationView 1.0 FluNavigationView.qml -FluObject 1.0 FluObject.qml -FluPagination 1.0 FluPagination.qml -FluPaneItem 1.0 FluPaneItem.qml -FluPaneItemEmpty 1.0 FluPaneItemEmpty.qml -FluPaneItemExpander 1.0 FluPaneItemExpander.qml -FluPaneItemHeader 1.0 FluPaneItemHeader.qml -FluPaneItemSeparator 1.0 FluPaneItemSeparator.qml -FluPasswordBox 1.0 FluPasswordBox.qml -FluPivot 1.0 FluPivot.qml -FluPivotItem 1.0 FluPivotItem.qml -FluProgressBar 1.0 FluProgressBar.qml -FluProgressRing 1.0 FluProgressRing.qml -FluRadioButton 1.0 FluRadioButton.qml -FluRatingControl 1.0 FluRatingControl.qml -FluRectangle 1.0 FluRectangle.qml -FluScrollablePage 1.0 FluScrollablePage.qml -FluScrollBar 1.0 FluScrollBar.qml -FluShadow 1.0 FluShadow.qml -FluSlider 1.0 FluSlider.qml -FluStatusView 1.0 FluStatusView.qml -FluTableView 1.0 FluTableView.qml -FluTabView 1.0 FluTabView.qml -FluText 1.0 FluText.qml -FluTextBox 1.0 FluTextBox.qml -FluTextBoxBackground 1.0 FluTextBoxBackground.qml -FluTextBoxMenu 1.0 FluTextBoxMenu.qml -FluTextButton 1.0 FluTextButton.qml -FluTimePicker 1.0 FluTimePicker.qml -FluToggleButton 1.0 FluToggleButton.qml -FluToggleSwitch 1.0 FluToggleSwitch.qml -FluTooltip 1.0 FluTooltip.qml -FluTreeView 1.0 FluTreeView.qml -FluWindow 1.0 FluWindow.qml -FluWindowResize 1.0 FluWindowResize.qml -FluSingleton 1.0 FluSingleton.qml +module FluentUI +classname FluentUIPlugin +designersupported +typeinfo plugins.qmltypes + +FluAppBar 1.0 Controls/FluAppBar.qml +FluArea 1.0 Controls/FluArea.qml +FluAcrylic 1.0 Controls/FluAcrylic.qml +FluAutoSuggestBox 1.0 Controls/FluAutoSuggestBox.qml +FluBadge 1.0 Controls/FluBadge.qml +FluBreadcrumbBar 1.0 Controls/FluBreadcrumbBar.qml +FluButton 1.0 Controls/FluButton.qml +FluCalendarPicker 1.0 Controls/FluCalendarPicker.qml +FluCalendarView 1.0 Controls/FluCalendarView.qml +FluCarousel 1.0 Controls/FluCarousel.qml +FluCheckBox 1.0 Controls/FluCheckBox.qml +FluColorPicker 1.0 Controls/FluColorPicker.qml +FluColorView 1.0 Controls/FluColorView.qml +FluComboBox 1.0 Controls/FluComboBox.qml +FluControl 1.0 Controls/FluControl.qml +FluContentDialog 1.0 Controls/FluContentDialog.qml +FluContentPage 1.0 Controls/FluContentPage.qml +FluCopyableText 1.0 Controls/FluCopyableText.qml +FluDatePicker 1.0 Controls/FluDatePicker.qml +FluDivider 1.0 Controls/FluDivider.qml +FluDropDownButton 1.0 Controls/FluDropDownButton.qml +FluExpander 1.0 Controls/FluExpander.qml +FluFilledButton 1.0 Controls/FluFilledButton.qml +FluFlipView 1.0 Controls/FluFlipView.qml +FluFocusRectangle 1.0 Controls/FluFocusRectangle.qml +FluIcon 1.0 Controls/FluIcon.qml +FluIconButton 1.0 Controls/FluIconButton.qml +FluInfoBar 1.0 Controls/FluInfoBar.qml +FluItem 1.0 Controls/FluItem.qml +FluImage 1.0 Controls/FluImage.qml +FluMediaPlayer 1.0 Controls/FluMediaPlayer.qml +FluMenu 1.0 Controls/FluMenu.qml +FluMenuItem 1.0 Controls/FluMenuItem.qml +FluMenuSeparator 1.0 Controls/FluMenuSeparator.qml +FluMenuBar 1.0 Controls/FluMenuBar.qml +FluMenuBarItem 1.0 Controls/FluMenuBarItem.qml +FluMultilineTextBox 1.0 Controls/FluMultilineTextBox.qml +FluNavigationView 1.0 Controls/FluNavigationView.qml +FluObject 1.0 Controls/FluObject.qml +FluPage 1.0 Controls/FluPage.qml +FluPagination 1.0 Controls/FluPagination.qml +FluPaneItem 1.0 Controls/FluPaneItem.qml +FluPaneItemEmpty 1.0 Controls/FluPaneItemEmpty.qml +FluPaneItemExpander 1.0 Controls/FluPaneItemExpander.qml +FluPaneItemHeader 1.0 Controls/FluPaneItemHeader.qml +FluPaneItemSeparator 1.0 Controls/FluPaneItemSeparator.qml +FluPasswordBox 1.0 Controls/FluPasswordBox.qml +FluPivot 1.0 Controls/FluPivot.qml +FluPivotItem 1.0 Controls/FluPivotItem.qml +FluPopup 1.0 Controls/FluPopup.qml +FluProgressBar 1.0 Controls/FluProgressBar.qml +FluProgressRing 1.0 Controls/FluProgressRing.qml +FluRadioButton 1.0 Controls/FluRadioButton.qml +FluRadioButtons 1.0 Controls/FluRadioButtons.qml +FluRatingControl 1.0 Controls/FluRatingControl.qml +FluRectangle 1.0 Controls/FluRectangle.qml +FluRemoteLoader 1.0 Controls/FluRemoteLoader.qml +FluScrollablePage 1.0 Controls/FluScrollablePage.qml +FluScrollBar 1.0 Controls/FluScrollBar.qml +FluShadow 1.0 Controls/FluShadow.qml +FluSlider 1.0 Controls/FluSlider.qml +FluSpinBox 1.0 Controls/FluSpinBox.qml +FluStatusView 1.0 Controls/FluStatusView.qml +FluTableView 1.0 Controls/FluTableView.qml +FluTabView 1.0 Controls/FluTabView.qml +FluText 1.0 Controls/FluText.qml +FluTextBox 1.0 Controls/FluTextBox.qml +FluTextBoxBackground 1.0 Controls/FluTextBoxBackground.qml +FluTextBoxMenu 1.0 Controls/FluTextBoxMenu.qml +FluTextButton 1.0 Controls/FluTextButton.qml +FluTimePicker 1.0 Controls/FluTimePicker.qml +FluToggleButton 1.0 Controls/FluToggleButton.qml +FluToggleSwitch 1.0 Controls/FluToggleSwitch.qml +FluTooltip 1.0 Controls/FluTooltip.qml +FluTreeView 1.0 Controls/FluTreeView.qml +FluWindow 1.0 Controls/FluWindow.qml +FluSingleton 1.0 Controls/FluSingleton.qml plugin fluentuiplugin