├── .clang-format
├── .gitattributes
├── .gitignore
├── .gitmodules
├── CHANGELOG
├── CMakeLists.txt
├── LICENSE
├── LICENSE.NOTES.md
├── README.md
├── cmake
├── Config.cmake.in
├── FindQt5.cmake
├── QtCanpoolAPI.cmake
├── QtCanpoolAPIInternal.cmake
├── QtCanpoolBranding.cmake
├── QtCanpoolDocumentation.cmake
├── QtCanpoolTranslations.cmake
├── QtCanpoolUtils.cmake
├── QtcSeparateDebugInfo.Info.plist.in
└── QtcSeparateDebugInfo.cmake
├── demos
├── CMakeLists.txt
├── demos.pro
├── helloworld
│ ├── helloworld.pro
│ ├── main.cpp
│ ├── mainwindow.cpp
│ └── mainwindow.h
├── qcanpool
│ ├── CMakeLists.txt
│ ├── fancydemo
│ │ ├── CMakeLists.txt
│ │ ├── fancydemo.pro
│ │ ├── fancydemo.qrc
│ │ ├── fancydemo.rc
│ │ ├── logo.ico
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── res
│ │ │ ├── main
│ │ │ └── logo.png
│ │ │ ├── qss
│ │ │ ├── classic.css
│ │ │ └── flatdark.css
│ │ │ ├── qtc
│ │ │ ├── close.svg
│ │ │ ├── close_dark.svg
│ │ │ ├── max.svg
│ │ │ ├── max_dark.svg
│ │ │ ├── min.svg
│ │ │ ├── min_dark.svg
│ │ │ ├── restore.svg
│ │ │ └── restore_dark.svg
│ │ │ └── tools
│ │ │ ├── copy.png
│ │ │ ├── cut.png
│ │ │ ├── exit.png
│ │ │ ├── help.png
│ │ │ ├── menu.png
│ │ │ ├── new.png
│ │ │ ├── open.png
│ │ │ ├── option.png
│ │ │ ├── paste.png
│ │ │ ├── recent.png
│ │ │ ├── redo.png
│ │ │ ├── save.png
│ │ │ ├── save_all.png
│ │ │ ├── search.png
│ │ │ ├── start.png
│ │ │ ├── stop.png
│ │ │ ├── suspend.png
│ │ │ ├── undo.png
│ │ │ ├── zoom_in.png
│ │ │ └── zoom_out.png
│ ├── fancyribbon
│ │ ├── fancyribbon.pro
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── res
│ │ │ └── logo.png
│ │ └── resource.qrc
│ └── qcanpool.pro
├── qxwidget
│ ├── CMakeLists.txt
│ ├── dockdemo
│ │ ├── CMakeLists.txt
│ │ ├── dockdemo.pro
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── res.qrc
│ │ └── res
│ │ │ └── tab.svg
│ ├── qxwidget.pro
│ └── ribbondemo
│ │ ├── CMakeLists.txt
│ │ ├── aboutdialog.cpp
│ │ ├── aboutdialog.h
│ │ ├── logo.ico
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── res
│ │ ├── action.svg
│ │ ├── action2.svg
│ │ ├── action3.svg
│ │ ├── action4.svg
│ │ ├── align-bothside.svg
│ │ ├── align-center.svg
│ │ ├── align-left.svg
│ │ ├── align-right.svg
│ │ ├── bold.svg
│ │ ├── chinese-char.svg
│ │ ├── clipboard.svg
│ │ ├── copy.svg
│ │ ├── customize.svg
│ │ ├── cut.svg
│ │ ├── delete.svg
│ │ ├── deleteContext.svg
│ │ ├── disable.svg
│ │ ├── enableTest.svg
│ │ ├── file.svg
│ │ ├── folder-add.svg
│ │ ├── folder-checkmark.svg
│ │ ├── folder-cog.svg
│ │ ├── folder-star.svg
│ │ ├── folder-stats.svg
│ │ ├── folder-table.svg
│ │ ├── folder.svg
│ │ ├── gallery
│ │ │ ├── Adobe.svg
│ │ │ ├── Document-File.svg
│ │ │ ├── Download-File.svg
│ │ │ ├── Drive-File.svg
│ │ │ ├── Dropbox-File.svg
│ │ │ ├── Email-File.svg
│ │ │ ├── Encode-File.svg
│ │ │ ├── Favorit-File.svg
│ │ │ ├── File-Error.svg
│ │ │ ├── File-Readonly.svg
│ │ │ ├── File-Settings.svg
│ │ │ ├── Google-Maps.svg
│ │ │ ├── Illustrator.svg
│ │ │ ├── Internet-Explorer.svg
│ │ │ ├── Photoshop.svg
│ │ │ ├── Presentation-File.svg
│ │ │ └── Word.svg
│ │ ├── help.svg
│ │ ├── hide.svg
│ │ ├── hideRibbon.svg
│ │ ├── italic.svg
│ │ ├── largerFont.svg
│ │ ├── layout.svg
│ │ ├── logo.svg
│ │ ├── logo64.svg
│ │ ├── long-text.svg
│ │ ├── office2016blue.css
│ │ ├── printer.svg
│ │ ├── redo.svg
│ │ ├── remove-app-btn.svg
│ │ ├── remove.svg
│ │ ├── removePage.svg
│ │ ├── save.svg
│ │ ├── setText.svg
│ │ ├── show.svg
│ │ ├── showContext.svg
│ │ ├── smallFont.svg
│ │ ├── theme.svg
│ │ ├── undo.svg
│ │ ├── unlock.svg
│ │ ├── useCustomize.svg
│ │ ├── useqss.svg
│ │ ├── windowsflag-normal.svg
│ │ └── wordwrap.svg
│ │ ├── ribbonappwindow.cpp
│ │ ├── ribbonappwindow.h
│ │ ├── ribbondemo.pro
│ │ ├── ribbondemo.qrc
│ │ └── ribbondemo.rc
├── qxwindow
│ ├── mainwindow
│ │ ├── dark-style.css
│ │ ├── light-style.css
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── mainwindow.pro
│ │ └── mainwindow.qrc
│ ├── qxwindow.pro
│ └── shared
│ │ ├── resources
│ │ ├── app
│ │ │ ├── example.icns
│ │ │ ├── example.ico
│ │ │ └── example.png
│ │ ├── shared.qrc
│ │ └── window-bar
│ │ │ ├── close.svg
│ │ │ ├── fullscreen.svg
│ │ │ ├── maximize.svg
│ │ │ ├── minimize.svg
│ │ │ ├── more-line.svg
│ │ │ └── restore.svg
│ │ ├── shared.pri
│ │ └── widgetframe
│ │ ├── windowbar.cpp
│ │ ├── windowbar.h
│ │ ├── windowbar_p.h
│ │ ├── windowbutton.cpp
│ │ ├── windowbutton.h
│ │ └── windowbutton_p.h
└── thirdparty
│ ├── boostdemo
│ ├── boostdemo.pro
│ └── main.cpp
│ ├── ffmpegdemo
│ ├── ffmpegdemo.pro
│ └── main.cpp
│ ├── occQt
│ └── patch
│ │ ├── occQt.pro
│ │ └── patch.diff
│ ├── qtitandemo
│ ├── main.cpp
│ ├── qtitandemo.pro
│ ├── ribbondockwindow.cpp
│ ├── ribbondockwindow.h
│ └── src.pri
│ └── thirdparty.pro
├── doc
├── pics
│ ├── dockdemo.png
│ ├── extend.png
│ ├── fancydemo.png
│ ├── fancyribbon.png
│ ├── fancytitlebar.png
│ ├── fancytoolbutton.png
│ ├── mycad.png
│ ├── mycad2.png
│ ├── qxwindowdemo.png
│ ├── ribbondemo.gif
│ ├── ribbondemo.png
│ └── run.png
├── snippet
│ ├── dock_snippet.cpp
│ └── dock_snippet.h
└── sponsor
│ ├── sponsor.md
│ └── sponsor.png
├── examples
├── examples.pro
├── qcanpool
│ ├── extensionbutton
│ │ ├── extensionbutton.pro
│ │ └── mainwindow.cpp
│ ├── fancytitlebar
│ │ ├── fancytitlebar.pro
│ │ └── mainwindow.cpp
│ ├── fancytoolbutton
│ │ ├── fancytoolbutton.pro
│ │ └── mainwindow.cpp
│ ├── minitabwidget
│ │ ├── mainwindow.cpp
│ │ └── minitabwidget.pro
│ ├── qcanpool.pro
│ ├── tinytabbar
│ │ ├── mainwindow.cpp
│ │ └── tinytabbar.pro
│ ├── tinytabwidget
│ │ ├── mainwindow.cpp
│ │ └── tinytabwidget.pro
│ ├── windowlogo
│ │ ├── mainwindow.cpp
│ │ └── windowlogo.pro
│ └── windowtoolbar
│ │ ├── mainwindow.cpp
│ │ └── windowtoolbar.pro
├── qxdock
│ ├── autohide
│ │ ├── autohide.pro
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── mainwindow.ui
│ ├── centralwidget
│ │ ├── centralwidget.pro
│ │ ├── mainwindow.cpp
│ │ └── mainwindow.h
│ ├── configflags
│ │ ├── configflags.pro
│ │ └── mainwindow.cpp
│ ├── deleteonclose
│ │ ├── deleteonclose.pro
│ │ └── main.cpp
│ ├── dockindock
│ │ ├── dockindock.pro
│ │ ├── mainwindow.cpp
│ │ └── mainwindow.h
│ ├── emptydockarea
│ │ ├── emptydockarea.pro
│ │ └── mainwindow.cpp
│ ├── hideshow
│ │ ├── hideshow.pro
│ │ ├── mainwindow.cpp
│ │ └── mainwindow.h
│ ├── qxdock.pro
│ ├── shared
│ │ ├── main.cpp
│ │ └── shared.pri
│ ├── sidebar
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── mainwindow.ui
│ │ └── sidebar.pro
│ └── widgettopanel
│ │ ├── mainwindow.cpp
│ │ └── widgettopanel.pro
├── qxribbon
│ ├── coloricon
│ │ ├── coloricon.pro
│ │ └── mainwindow.cpp
│ ├── customizedialogmodeless
│ │ ├── customizedialogmodeless.pro
│ │ ├── mainwindow.cpp
│ │ └── mainwindow.h
│ ├── customizewidget
│ │ ├── customizewidget.pro
│ │ ├── mainwindow.cpp
│ │ └── mainwindow.h
│ ├── groupautolayout
│ │ ├── groupautolayout.pro
│ │ ├── mainwindow.cpp
│ │ └── mainwindow.h
│ ├── pagecontext
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── pagecontext.pro
│ ├── qxribbon.pro
│ ├── ribbonbar
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── ribbonbar.pro
│ ├── ribbonbuttongroup
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── ribbonbuttongroup.pro
│ ├── ribbongallery
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── ribbongallery.pro
│ ├── ribbonmenu
│ │ ├── colorbutton.cpp
│ │ ├── colorbutton.h
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── ribbonmenu.pro
│ ├── ribbonquickaccessbar
│ │ ├── mainwindow.cpp
│ │ └── ribbonquickaccessbar.pro
│ ├── shared
│ │ ├── main.cpp
│ │ └── shared.pri
│ └── simple
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── simple.pro
└── shared
│ ├── main.cpp
│ ├── mainwindow.h
│ ├── res.qrc
│ ├── res
│ └── logo.png
│ └── shared.pri
├── projects
├── README.md
└── template
│ ├── config.pri
│ ├── qtproject.pri
│ ├── src
│ ├── app
│ │ ├── app.pro
│ │ ├── app.qrc
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ └── resource
│ │ │ └── image
│ │ │ └── logo.png
│ ├── libs
│ │ ├── libs.pro
│ │ └── qcanpool
│ │ │ ├── qcanpool.pro
│ │ │ └── qcanpool_dependencies.pri
│ ├── qtlibrary.pri
│ └── src.pro
│ └── template.pro
├── qtcanpool.pro
├── qtconfig.pri
├── qtdata.pri
├── qtproject.pri
├── scripts
├── memcheck.sh
├── project.py
└── push.sh
├── src
├── CMakeLists.txt
├── libs
│ ├── CMakeLists.txt
│ ├── libs.pro
│ ├── qcanpool
│ │ ├── CHANGELOG
│ │ ├── CMakeLists.txt
│ │ ├── extensionbutton.cpp
│ │ ├── extensionbutton.h
│ │ ├── fancybar.cpp
│ │ ├── fancybar.h
│ │ ├── fancybar_p.h
│ │ ├── fancydialog.cpp
│ │ ├── fancydialog.h
│ │ ├── fancytabbar.cpp
│ │ ├── fancytabbar.h
│ │ ├── fancytabbar_p.h
│ │ ├── fancytabwidget.cpp
│ │ ├── fancytabwidget.h
│ │ ├── fancytitlebar.cpp
│ │ ├── fancytitlebar.h
│ │ ├── fancytitlebar_p.h
│ │ ├── fancytoolbutton.cpp
│ │ ├── fancytoolbutton.h
│ │ ├── fancywindow.cpp
│ │ ├── fancywindow.h
│ │ ├── header.list
│ │ ├── menuaccessbutton.cpp
│ │ ├── menuaccessbutton.h
│ │ ├── menubutton.cpp
│ │ ├── menubutton.h
│ │ ├── minitabbar.cpp
│ │ ├── minitabbar.h
│ │ ├── minitabwidget.cpp
│ │ ├── minitabwidget.h
│ │ ├── qcanpool-lib.pri
│ │ ├── qcanpool.h
│ │ ├── qcanpool.pro
│ │ ├── qcanpool.qrc
│ │ ├── qcanpool_dependencies.pri
│ │ ├── quickaccessbar.cpp
│ │ ├── quickaccessbar.h
│ │ ├── quickaccessbar_p.h
│ │ ├── res
│ │ │ ├── arrow_down.png
│ │ │ ├── arrow_up.png
│ │ │ └── group_option.png
│ │ ├── ribbonbar.cpp
│ │ ├── ribbonbar.h
│ │ ├── ribbonbar_p.h
│ │ ├── ribboncontainers.cpp
│ │ ├── ribboncontainers.h
│ │ ├── ribbongroup.cpp
│ │ ├── ribbongroup.h
│ │ ├── ribbongroup_p.h
│ │ ├── ribbonpage.cpp
│ │ ├── ribbonpage.h
│ │ ├── ribbonpage_p.h
│ │ ├── ribbonwindow.cpp
│ │ ├── ribbonwindow.h
│ │ ├── tinynavbar.cpp
│ │ ├── tinynavbar.h
│ │ ├── tinynavbar_p.h
│ │ ├── tinytabbar.cpp
│ │ ├── tinytabbar.h
│ │ ├── tinytabbar_p.h
│ │ ├── tinytabwidget.cpp
│ │ ├── tinytabwidget.h
│ │ ├── windowlogo.cpp
│ │ ├── windowlogo.h
│ │ ├── windowtoolbar.cpp
│ │ ├── windowtoolbar.h
│ │ └── windowtoolbar_p.h
│ ├── qxdock
│ │ ├── CHANGELOG
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE.ads
│ │ ├── dockautohidecontainer.cpp
│ │ ├── dockautohidecontainer.h
│ │ ├── dockbutton.cpp
│ │ ├── dockbutton.h
│ │ ├── dockcontainer.cpp
│ │ ├── dockcontainer.h
│ │ ├── dockfloatingcontainer.cpp
│ │ ├── dockfloatingcontainer.h
│ │ ├── dockfloatingpreview.cpp
│ │ ├── dockfloatingpreview.h
│ │ ├── dockfloatingwidget.cpp
│ │ ├── dockfloatingwidget.h
│ │ ├── dockfocuscontroller.cpp
│ │ ├── dockfocuscontroller.h
│ │ ├── dockgroup.cpp
│ │ ├── dockgroup.h
│ │ ├── dockgroupmanager.cpp
│ │ ├── dockgroupmanager.h
│ │ ├── dockgroupmanager_p.h
│ │ ├── dockiconprovider.cpp
│ │ ├── dockiconprovider.h
│ │ ├── docklabel.cpp
│ │ ├── docklabel.h
│ │ ├── dockmanager.cpp
│ │ ├── dockmanager.h
│ │ ├── dockoverlay.cpp
│ │ ├── dockoverlay.h
│ │ ├── dockpanel.cpp
│ │ ├── dockpanel.h
│ │ ├── dockresizehandle.cpp
│ │ ├── dockresizehandle.h
│ │ ├── docksidebar.cpp
│ │ ├── docksidebar.h
│ │ ├── docksidetab.cpp
│ │ ├── docksidetab.h
│ │ ├── docksplitter.cpp
│ │ ├── docksplitter.h
│ │ ├── dockstatereader.cpp
│ │ ├── dockstatereader.h
│ │ ├── docksubwindow.cpp
│ │ ├── docksubwindow.h
│ │ ├── docktab.cpp
│ │ ├── docktab.h
│ │ ├── docktabbar.cpp
│ │ ├── docktabbar.h
│ │ ├── docktitlebar.cpp
│ │ ├── docktitlebar.h
│ │ ├── docktitlebar_p.h
│ │ ├── dockutils.cpp
│ │ ├── dockutils.h
│ │ ├── dockwidget.cpp
│ │ ├── dockwidget.h
│ │ ├── dockwindow.cpp
│ │ ├── dockwindow.h
│ │ ├── header.list
│ │ ├── linux
│ │ │ ├── dockfloatingtitlebar.cpp
│ │ │ └── dockfloatingtitlebar.h
│ │ ├── qxdock-lib.pri
│ │ ├── qxdock.pro
│ │ ├── qxdock_dependencies.pri
│ │ ├── qxdock_global.h
│ │ ├── res.qrc
│ │ └── res
│ │ │ ├── images
│ │ │ ├── close-button-disabled.svg
│ │ │ ├── close-button-focused.svg
│ │ │ ├── close-button.svg
│ │ │ ├── detach-button-disabled.svg
│ │ │ ├── detach-button.svg
│ │ │ ├── maximize-button-focused.svg
│ │ │ ├── maximize-button.svg
│ │ │ ├── minimize-button-focused.svg
│ │ │ ├── minimize-button.svg
│ │ │ ├── pin-button-big.svg
│ │ │ ├── pin-button.svg
│ │ │ ├── restore-button-focused.svg
│ │ │ ├── restore-button.svg
│ │ │ ├── tabs-menu-button.svg
│ │ │ ├── vs-pin-button-disabled.svg
│ │ │ ├── vs-pin-button-pinned-focused.svg
│ │ │ ├── vs-pin-button-pinned.svg
│ │ │ ├── vs-pin-button.svg
│ │ │ └── vs-pin-button_45.svg
│ │ │ └── stylesheets
│ │ │ ├── default.css
│ │ │ ├── default_linux.css
│ │ │ ├── focus_highlighting.css
│ │ │ └── focus_highlighting_linux.css
│ ├── qxribbon
│ │ ├── CHANGELOG
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── framelesshelper.cpp
│ │ ├── framelesshelper.h
│ │ ├── header.list
│ │ ├── qxribbon-lib.pri
│ │ ├── qxribbon.pro
│ │ ├── qxribbon_dependencies.pri
│ │ ├── qxribbon_global.h
│ │ ├── res.qrc
│ │ ├── res
│ │ │ ├── arrow_down.png
│ │ │ ├── arrow_more.png
│ │ │ ├── arrow_up.png
│ │ │ ├── group_option.png
│ │ │ ├── lighter
│ │ │ │ ├── arrow_down.png
│ │ │ │ ├── arrow_more.png
│ │ │ │ ├── arrow_up.png
│ │ │ │ ├── group_option.png
│ │ │ │ ├── qaccess_button.png
│ │ │ │ ├── titlebar_close.svg
│ │ │ │ ├── titlebar_close_hover.svg
│ │ │ │ ├── titlebar_max.svg
│ │ │ │ ├── titlebar_min.svg
│ │ │ │ ├── titlebar_normal.svg
│ │ │ │ ├── titlebar_shade.svg
│ │ │ │ └── titlebar_unshade.svg
│ │ │ ├── qaccess_button.png
│ │ │ ├── stylesheets
│ │ │ │ ├── dark_wps.css
│ │ │ │ ├── light_classic.css
│ │ │ │ ├── light_fancy.css
│ │ │ │ ├── light_office2013.css
│ │ │ │ └── light_yellow.css
│ │ │ ├── titlebar_close.svg
│ │ │ ├── titlebar_close_hover.svg
│ │ │ ├── titlebar_max.svg
│ │ │ ├── titlebar_min.svg
│ │ │ ├── titlebar_normal.svg
│ │ │ ├── titlebar_shade.svg
│ │ │ └── titlebar_unshade.svg
│ │ ├── ribbonactionsmanager.cpp
│ │ ├── ribbonactionsmanager.h
│ │ ├── ribbonactionsmanager_p.h
│ │ ├── ribbonapplicationbutton.cpp
│ │ ├── ribbonapplicationbutton.h
│ │ ├── ribbonbar.cpp
│ │ ├── ribbonbar.h
│ │ ├── ribbonbar_p.h
│ │ ├── ribbonbutton.cpp
│ │ ├── ribbonbutton.h
│ │ ├── ribbonbutton_p.h
│ │ ├── ribbonbuttongroup.cpp
│ │ ├── ribbonbuttongroup.h
│ │ ├── ribboncolorbutton.cpp
│ │ ├── ribboncolorbutton.h
│ │ ├── ribboncolorbutton_p.h
│ │ ├── ribboncontainers.cpp
│ │ ├── ribboncontainers.h
│ │ ├── ribboncontrols.cpp
│ │ ├── ribboncontrols.h
│ │ ├── ribboncustomizedata.cpp
│ │ ├── ribboncustomizedata.h
│ │ ├── ribboncustomizedialog.cpp
│ │ ├── ribboncustomizedialog.h
│ │ ├── ribboncustomizewidget.cpp
│ │ ├── ribboncustomizewidget.h
│ │ ├── ribboncustomizewidget_p.h
│ │ ├── ribbonfactory.cpp
│ │ ├── ribbonfactory.h
│ │ ├── ribbongallery.cpp
│ │ ├── ribbongallery.h
│ │ ├── ribbongallery_p.h
│ │ ├── ribbongallerygroup.cpp
│ │ ├── ribbongallerygroup.h
│ │ ├── ribbongallerygroup_p.h
│ │ ├── ribbongroup.cpp
│ │ ├── ribbongroup.h
│ │ ├── ribbongroup_p.h
│ │ ├── ribbongrouplayout.cpp
│ │ ├── ribbongrouplayout.h
│ │ ├── ribbonmanager.cpp
│ │ ├── ribbonmanager.h
│ │ ├── ribbonmenu.cpp
│ │ ├── ribbonmenu.h
│ │ ├── ribbonpage.cpp
│ │ ├── ribbonpage.h
│ │ ├── ribbonpage_p.h
│ │ ├── ribbonpagecontext.cpp
│ │ ├── ribbonpagecontext.h
│ │ ├── ribbonquickaccessbar.cpp
│ │ ├── ribbonquickaccessbar.h
│ │ ├── ribbonquickaccessbar_p.h
│ │ ├── ribbonstyleoption.cpp
│ │ ├── ribbonstyleoption.h
│ │ ├── ribbontabbar.cpp
│ │ ├── ribbontabbar.h
│ │ ├── ribbontheme.cpp
│ │ ├── ribbontheme.h
│ │ ├── ribbonutils.cpp
│ │ ├── ribbonutils.h
│ │ ├── ribbonwindow.cpp
│ │ ├── ribbonwindow.h
│ │ ├── windowbuttongroup.cpp
│ │ ├── windowbuttongroup.h
│ │ └── windowbuttongroup_p.h
│ └── qxwindow
│ │ ├── CHANGELOG
│ │ ├── CMakeLists.txt
│ │ ├── LICENSE
│ │ ├── header.list
│ │ ├── qxwindow-lib.pri
│ │ ├── qxwindow.pro
│ │ ├── qxwindow_dependencies.pri
│ │ ├── qxwindow_global.h
│ │ ├── style
│ │ ├── CMakeLists.txt
│ │ ├── header.list
│ │ ├── style.pri
│ │ ├── windowstyleagent.cpp
│ │ ├── windowstyleagent.h
│ │ ├── windowstyleagent_linux.cpp
│ │ ├── windowstyleagent_mac.mm
│ │ ├── windowstyleagent_p.h
│ │ └── windowstyleagent_win.cpp
│ │ ├── widgetitemdelegate.cpp
│ │ ├── widgetitemdelegate_p.h
│ │ ├── windowagentbase.cpp
│ │ ├── windowagentbase.h
│ │ ├── windowagentbase_p.h
│ │ ├── windowagentwidget.cpp
│ │ ├── windowagentwidget.h
│ │ ├── windowagentwidget_mac.cpp
│ │ ├── windowagentwidget_p.h
│ │ ├── windowagentwidget_win.cpp
│ │ ├── windowcontext.cpp
│ │ ├── windowcontext_cocoa.mm
│ │ ├── windowcontext_p.h
│ │ ├── windowcontext_qt.cpp
│ │ ├── windowcontext_win.cpp
│ │ ├── windowevent.cpp
│ │ ├── windowevent_p.h
│ │ ├── windowitemdelegate.cpp
│ │ ├── windowitemdelegate_p.h
│ │ ├── windowkit_linux.h
│ │ ├── windowkit_p.h
│ │ ├── windowkit_win.cpp
│ │ ├── windowkit_win.h
│ │ ├── windowkit_win_p.h
│ │ └── windowsystem_p.h
├── modules
│ └── .gitplacer
├── plugins
│ ├── CMakeLists.txt
│ └── plugins.pro
├── qtlibrary.pri
├── qtplugin.pri
├── qttool.pri
├── rpath.pri
├── shared
│ ├── CMakeLists.txt
│ ├── qtproject_gui_pch.h
│ └── qtproject_pch.h
├── src.pro
└── tools
│ └── tools.pro
├── tests
├── CMakeLists.txt
├── common
│ ├── common.pri
│ ├── tst_global.cpp
│ └── tst_global.h
├── helloworld
│ ├── helloworld.pro
│ ├── qlineedit
│ │ ├── qlineedit.pro
│ │ └── tst_qlineedit.cpp
│ └── qstring
│ │ ├── qstring.pro
│ │ └── tst_qstring.cpp
├── qxdock
│ ├── auto
│ │ ├── auto.pro
│ │ ├── main.cpp
│ │ ├── tst_dockbutton.cpp
│ │ ├── tst_dockcontainer.cpp
│ │ ├── tst_docklabel.cpp
│ │ ├── tst_dockpanel.cpp
│ │ ├── tst_docktab.cpp
│ │ ├── tst_dockwidget.cpp
│ │ └── tst_dockwindow.cpp
│ └── qxdock.pro
├── qxribbon
│ ├── auto
│ │ ├── auto.pro
│ │ ├── main.cpp
│ │ ├── tst_ribbonactionsmanager.cpp
│ │ ├── tst_ribbonbar.cpp
│ │ ├── tst_ribbonbutton.cpp
│ │ ├── tst_ribboncustomizedialog.cpp
│ │ ├── tst_ribbongallery.cpp
│ │ ├── tst_ribbongroup.cpp
│ │ ├── tst_ribbonpage.cpp
│ │ ├── tst_ribbonpagecontext.cpp
│ │ └── tst_ribbonquickaccessbar.cpp
│ └── qxribbon.pro
└── tests.pro
└── thirdparty
├── README.md
├── boost
├── README.md
└── boost.pri
├── ffmpeg
├── README.md
└── ffmpeg.pri
├── opencascade
├── README.md
└── opencascade.pri
├── qtitan
└── qtitan.pri
└── thirdparty.pro
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.sh text eol=lf
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # C++ objects and libs
2 | *.slo
3 | *.lo
4 | *.o
5 | *.a
6 | *.la
7 | *.lai
8 | *.so
9 | *.so.*
10 | *.dll
11 | *.dylib
12 |
13 | # Qt-es
14 | object_script.*.Release
15 | object_script.*.Debug
16 | *_plugin_import.cpp
17 | /.qmake.cache
18 | /.qmake.stash
19 | *.pro.user
20 | *.pro.user.*
21 | *.qbs.user
22 | *.qbs.user.*
23 | *.moc
24 | moc_*.cpp
25 | moc_*.h
26 | qrc_*.cpp
27 | ui_*.h
28 | *.qmlc
29 | *.jsc
30 | Makefile*
31 | *build-*
32 | *.qm
33 | *.prl
34 |
35 | # Qt unit tests
36 | target_wrapper.*
37 |
38 | # QtCreator
39 | *.autosave
40 |
41 | # QtCreator Qml
42 | *.qmlproject.user
43 | *.qmlproject.user.*
44 |
45 | # QtCreator CMake
46 | CMakeLists.txt.user*
47 |
48 | # QtCreator 4.8< compilation database
49 | compile_commands.json
50 |
51 | # QtCreator local machine specific files for imported projects
52 | *creator.user*
53 |
54 | *_qmlcache.qrc
55 |
56 | # others
57 | .idea
58 | .vscode
59 | bak
60 | build
61 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/.gitmodules
--------------------------------------------------------------------------------
/LICENSE.NOTES.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | - [说明](#说明)
4 | - [许可](#许可)
5 | - [MulanPSL-2.0](#mulanpsl-20)
6 | - [MulanPSL-2.0 + LGPL-2.1](#mulanpsl-20--lgpl-21)
7 | - [MIT](#mit)
8 | - [Apache-2.0](#apache-20)
9 |
10 |
11 |
12 | ## 说明
13 |
14 | qtcanpool 集成了一些第三方组件,这些组件具有自己的许可协议,与 qtcanpool 遵循的许可协议可能存在使用冲突。
15 |
16 | 本说明文档会以不同的许可协议进行分类,罗列遵循这些许可协议的组件,用户可根据许可协议按需使用相关组件。
17 |
18 | ## 许可
19 |
20 | ### MulanPSL-2.0
21 |
22 | - src/libs/qcanpool
23 | - projects/template
24 |
25 | ### MulanPSL-2.0 + LGPL-2.1
26 |
27 | - src/libs/qxdock
28 |
29 | ### MIT
30 |
31 | - src/libs/qxribbon
32 |
33 | ### Apache-2.0
34 |
35 | - src/libs/qxwindow
36 |
--------------------------------------------------------------------------------
/cmake/Config.cmake.in:
--------------------------------------------------------------------------------
1 | @PACKAGE_INIT@
2 |
3 | if (NOT TARGET QtCanpool::@target_name@)
4 | include ("${CMAKE_CURRENT_LIST_DIR}/@export@Targets.cmake")
5 | endif()
6 |
--------------------------------------------------------------------------------
/cmake/QtCanpoolBranding.cmake:
--------------------------------------------------------------------------------
1 | set(QTPROJECT_VERSION "2.2.0") # The IDE version.
2 | set(QTPROJECT_COMPAT_VERSION "2.1.0") # The IDE Compatibility version.
3 | set(QTPROJECT_DISPLAY_VERSION "2.2.0") # The IDE display version.
4 | set(QTPROJECT_COPYRIGHT_YEAR "2022") # The IDE current copyright year.
5 |
6 | set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation.
7 | set(IDE_DISPLAY_NAME "Qt Canpool") # The IDE display name.
8 | set(IDE_ID "qtcanpool") # The IDE id (no spaces, lowercase!)
9 | set(IDE_CASED_ID "QtCanpool") # The cased IDE id (no spaces!)
10 | set(IDE_BUNDLE_IDENTIFIER "org.qt-project.${IDE_ID}") # The macOS application bundle identifier.
11 |
12 | set(PROJECT_USER_FILE_EXTENSION .user)
13 | set(IDE_DOC_FILE "qtcanpool/qtcanpool.qdocconf")
14 | set(IDE_DOC_FILE_ONLINE "qtcanpool/qtcanpool-online.qdocconf")
15 |
--------------------------------------------------------------------------------
/cmake/QtCanpoolUtils.cmake:
--------------------------------------------------------------------------------
1 | function (env_with_default envName varToSet default)
2 | if(DEFINED ENV{${envName}})
3 | set(${varToSet} $ENV{${envName}} PARENT_SCOPE)
4 | else()
5 | set(${varToSet} ${default} PARENT_SCOPE)
6 | endif()
7 | endfunction()
8 |
--------------------------------------------------------------------------------
/cmake/QtcSeparateDebugInfo.Info.plist.in:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleIdentifier
6 | com.apple.xcode.dsym.${BUNDLE_ID}
7 | CFBundlePackageType
8 | dSYM
9 | CFBundleSignature
10 | ????
11 | CFBundleShortVersionString
12 | ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
13 | CFBundleVersion
14 | ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}
15 |
16 |
17 |
--------------------------------------------------------------------------------
/demos/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_subdirectory(qcanpool)
2 | add_subdirectory(qxwidget)
3 |
--------------------------------------------------------------------------------
/demos/demos.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | qcanpool \
6 | qxwidget \
7 | qxwindow
8 |
9 | DEMO_OTHERS_ENABLE = 0
10 | equals(DEMO_OTHERS_ENABLE, 1) {
11 | SUBDIRS += helloworld
12 | }
13 |
--------------------------------------------------------------------------------
/demos/helloworld/helloworld.pro:
--------------------------------------------------------------------------------
1 | include(../../qtproject.pri)
2 |
3 | QT += core gui
4 |
5 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
6 |
7 | CONFIG += c++11
8 | DESTDIR = $$IDE_APP_PATH
9 |
10 | # You can make your code fail to compile if it uses deprecated APIs.
11 | # In order to do so, uncomment the following line.
12 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
13 |
14 | SOURCES += \
15 | main.cpp \
16 | mainwindow.cpp
17 |
18 | HEADERS += \
19 | mainwindow.h
20 |
21 | # Default rules for deployment.
22 | qnx: target.path = /tmp/$${TARGET}/bin
23 | else: unix:!android: target.path = /opt/$${TARGET}/bin
24 | !isEmpty(target.path): INSTALLS += target
25 |
--------------------------------------------------------------------------------
/demos/helloworld/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QApplication a(argc, argv);
8 | MainWindow w;
9 | w.show();
10 | return a.exec();
11 | }
12 |
--------------------------------------------------------------------------------
/demos/helloworld/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | MainWindow::MainWindow(QWidget *parent)
5 | : QMainWindow(parent)
6 | {
7 | QLabel *label = new QLabel("I CAN DO IT");
8 | label->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter);
9 | setCentralWidget(label);
10 | }
11 |
12 | MainWindow::~MainWindow()
13 | {
14 | }
15 |
16 |
--------------------------------------------------------------------------------
/demos/helloworld/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 |
6 | class MainWindow : public QMainWindow
7 | {
8 | Q_OBJECT
9 |
10 | public:
11 | MainWindow(QWidget *parent = nullptr);
12 | ~MainWindow();
13 | };
14 | #endif // MAINWINDOW_H
15 |
--------------------------------------------------------------------------------
/demos/qcanpool/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_subdirectory(fancydemo)
2 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_qtc_executable(fancydemo
2 | DEPENDS qcanpool Qt5::Core Qt5::Widgets
3 | SOURCES
4 | fancydemo.qrc
5 | fancydemo.rc
6 | main.cpp
7 | mainwindow.cpp mainwindow.h
8 | )
9 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/fancydemo.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../../qtproject.pri)
3 |
4 | QT += core gui
5 |
6 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
7 |
8 | CONFIG += c++11
9 |
10 | TEMPLATE = app
11 | TARGET = fancydemo
12 | DESTDIR = $$IDE_APP_PATH
13 |
14 | # You can make your code fail to compile if it uses deprecated APIs.
15 | # In order to do so, uncomment the following line.
16 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
17 |
18 | include($$QTCANPOOL_DIR/src/rpath.pri)
19 |
20 | SOURCES += \
21 | main.cpp \
22 | mainwindow.cpp
23 |
24 | HEADERS += \
25 | mainwindow.h
26 |
27 | RESOURCES += \
28 | fancydemo.qrc
29 |
30 | RC_FILE = fancydemo.rc
31 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/fancydemo.rc:
--------------------------------------------------------------------------------
1 | IDI_ICON1 ICON "logo.ico"
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/logo.ico
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
8 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
9 | QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
10 | #endif
11 | QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
12 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
13 | QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
14 | #endif
15 | #endif
16 |
17 | QApplication a(argc, argv);
18 | a.setApplicationName("fancydemo");
19 | a.setOrganizationName("qtcanpool");
20 | MainWindow w;
21 | w.show();
22 | return a.exec();
23 | }
24 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/main/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/main/logo.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/close_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/max.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/max_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/min_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/restore.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/qtc/restore_dark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/copy.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/cut.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/cut.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/exit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/exit.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/help.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/help.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/menu.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/new.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/new.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/open.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/option.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/option.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/paste.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/paste.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/recent.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/recent.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/redo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/redo.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/save.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/save.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/save_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/save_all.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/search.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/search.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/start.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/start.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/stop.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/suspend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/suspend.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/undo.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/zoom_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/zoom_in.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancydemo/res/tools/zoom_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancydemo/res/tools/zoom_out.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancyribbon/fancyribbon.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../../qtproject.pri)
3 |
4 | QT += core gui
5 |
6 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
7 |
8 | TARGET = fancyribbon
9 | TEMPLATE = app
10 | DESTDIR = $$IDE_APP_PATH
11 |
12 | # The following define makes your compiler emit warnings if you use
13 | # any feature of Qt which has been marked as deprecated (the exact warnings
14 | # depend on your compiler). Please consult the documentation of the
15 | # deprecated API in order to know how to port your code away from it.
16 | DEFINES += QT_DEPRECATED_WARNINGS
17 |
18 | # You can also make your code fail to compile if you use deprecated APIs.
19 | # In order to do so, uncomment the following line.
20 | # You can also select to disable deprecated APIs only up to a certain version of Qt.
21 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
22 |
23 | CONFIG += c++11
24 |
25 | include($$QTCANPOOL_DIR/src/rpath.pri)
26 |
27 | INCLUDEPATH += ..
28 |
29 | SOURCES += \
30 | main.cpp \
31 | mainwindow.cpp
32 |
33 | HEADERS += \
34 | mainwindow.h
35 |
36 | RESOURCES += \
37 | resource.qrc
38 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancyribbon/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QApplication a(argc, argv);
8 | MainWindow w;
9 | w.show();
10 | return a.exec();
11 | }
12 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancyribbon/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qcanpool/ribbonwindow.h"
5 |
6 | class QToolButton;
7 |
8 | QCANPOOL_USE_NAMESPACE
9 |
10 | class MainWindow : public RibbonWindow
11 | {
12 | Q_OBJECT
13 |
14 | public:
15 | MainWindow(QWidget *parent = nullptr);
16 | ~MainWindow();
17 |
18 | private:
19 | QToolButton *createToolButton(const QIcon &icon, const QString &text);
20 |
21 | private slots:
22 | void slotChangeStyle(QAction *action);
23 | void slotSetFrameless(bool frameless);
24 | };
25 |
26 | #endif // MAINWINDOW_H
27 |
--------------------------------------------------------------------------------
/demos/qcanpool/fancyribbon/res/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qcanpool/fancyribbon/res/logo.png
--------------------------------------------------------------------------------
/demos/qcanpool/fancyribbon/resource.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/logo.png
4 |
5 |
6 |
--------------------------------------------------------------------------------
/demos/qcanpool/qcanpool.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | fancydemo \
6 | fancyribbon
7 |
--------------------------------------------------------------------------------
/demos/qxwidget/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_subdirectory(ribbondemo)
2 | add_subdirectory(dockdemo)
3 |
--------------------------------------------------------------------------------
/demos/qxwidget/dockdemo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_qtc_executable(DockDemo
2 | DEPENDS qxdock Qt5::Core Qt5::Widgets
3 | SOURCES
4 | main.cpp
5 | mainwindow.cpp mainwindow.h
6 | res.qrc
7 | )
8 |
--------------------------------------------------------------------------------
/demos/qxwidget/dockdemo/dockdemo.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../../../qtproject.pri)
3 |
4 | QT += core gui
5 |
6 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
7 |
8 | CONFIG += c++17
9 |
10 | TARGET = DockDemo
11 | TEMPLATE = app
12 | DESTDIR = $$IDE_APP_PATH
13 |
14 | # You can make your code fail to compile if it uses deprecated APIs.
15 | # In order to do so, uncomment the following line.
16 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
17 |
18 | SOURCES += \
19 | $$PWD/main.cpp \
20 | $$PWD/mainwindow.cpp
21 |
22 | HEADERS += \
23 | $$PWD/mainwindow.h
24 |
25 | # Default rules for deployment.
26 | qnx: target.path = /tmp/$${TARGET}/bin
27 | else: unix:!android: target.path = /opt/$${TARGET}/bin
28 | !isEmpty(target.path): INSTALLS += target
29 |
30 | RESOURCES += \
31 | $$PWD/res.qrc
32 |
--------------------------------------------------------------------------------
/demos/qxwidget/dockdemo/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | MainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/demos/qxwidget/dockdemo/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxdock/qxdock_global.h"
5 | #include
6 |
7 | QX_DOCK_BEGIN_NAMESPACE
8 | class DockWidget;
9 | class DockWindow;
10 | QX_DOCK_END_NAMESPACE
11 |
12 | QX_DOCK_USE_NAMESPACE
13 |
14 | class MainWindow : public QMainWindow
15 | {
16 | Q_OBJECT
17 | public:
18 | MainWindow(QWidget *parent = nullptr);
19 | ~MainWindow();
20 |
21 | void saveState();
22 | void restoreState();
23 |
24 | protected:
25 | virtual void closeEvent(QCloseEvent *event) override;
26 |
27 | private:
28 | DockWindow *m_dockWindow = nullptr;
29 | };
30 | #endif // MAINWINDOW_H
31 |
--------------------------------------------------------------------------------
/demos/qxwidget/dockdemo/res.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/tab.svg
4 |
5 |
6 |
--------------------------------------------------------------------------------
/demos/qxwidget/dockdemo/res/tab.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/qxwidget.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | ribbondemo \
6 | dockdemo
7 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_qtc_executable(RibbonDemo
2 | DEPENDS qxribbon Qt5::Core Qt5::Widgets
3 | SOURCES
4 | aboutdialog.cpp aboutdialog.h
5 | editablecontainer.cpp editablecontainer.h
6 | main.cpp
7 | mainwindow.cpp mainwindow.h
8 | ribbondemo.qrc
9 | ribbondemo.rc
10 | )
11 |
12 | extend_qtc_executable(RibbonDemo
13 | CONDITION WIN32
14 | DEFINES QXRIBBON_USE_APPWINDOW
15 | DEPENDS qxwindow
16 | SOURCES
17 | ribbonappwindow.cpp ribbonappwindow.h
18 | )
19 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/aboutdialog.h:
--------------------------------------------------------------------------------
1 | #ifndef ABOUTDIALOG_H
2 | #define ABOUTDIALOG_H
3 |
4 | #include
5 |
6 | class AboutDialog : public QDialog
7 | {
8 | Q_OBJECT
9 | public:
10 | explicit AboutDialog(const QString &softlogo, const QString &softname, const QString &softver,
11 | const QString &softdesc, QWidget *parent = nullptr);
12 | virtual ~AboutDialog();
13 | };
14 |
15 | #endif // ABOUTDIALOG_H
16 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/logo.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qxwidget/ribbondemo/logo.ico
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/action2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/action3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/action4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/align-bothside.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/align-center.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/align-left.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/align-right.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/copy.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/delete.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/deleteContext.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/disable.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/folder-add.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/folder-checkmark.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/folder-star.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/folder-stats.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/folder-table.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/folder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/italic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/largerFont.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/redo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/remove.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/removePage.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/setText.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/smallFont.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/theme.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/undo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/useqss.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/windowsflag-normal.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/res/wordwrap.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwidget/ribbondemo/ribbondemo.rc:
--------------------------------------------------------------------------------
1 | IDI_ICON1 ICON "logo.ico"
--------------------------------------------------------------------------------
/demos/qxwindow/mainwindow/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "mainwindow.h"
4 |
5 | int main(int argc, char *argv[]) {
6 | qputenv("QT_WIN_DEBUG_CONSOLE", "attach");
7 | qputenv("QSG_INFO", "1");
8 | #if 0
9 | qputenv("QT_WIDGETS_RHI", "1");
10 | qputenv("QSG_RHI_BACKEND", "d3d12");
11 | qputenv("QSG_RHI_HDR", "scrgb");
12 | qputenv("QT_QPA_DISABLE_REDIRECTION_SURFACE", "1");
13 | #endif
14 |
15 | #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
16 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
17 | QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
18 | #endif
19 | QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
20 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
21 | QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
22 | #endif
23 | #endif
24 |
25 | QApplication a(argc, argv);
26 |
27 | #if 0 && defined(Q_OS_WINDOWS) && QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
28 | QApplication::setFont([]() {
29 | QFont f("Microsoft YaHei");
30 | f.setStyleStrategy(QFont::PreferAntialias);
31 | f.setPixelSize(15);
32 | return f;
33 | }());
34 | #endif
35 |
36 | MainWindow w;
37 | w.show();
38 | return a.exec();
39 | }
40 |
--------------------------------------------------------------------------------
/demos/qxwindow/mainwindow/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 |
7 | QX_WINDOW_BEGIN_NAMESPACE
8 | class WindowAgentWidget;
9 | class WindowStyleAgent;
10 | QX_WINDOW_END_NAMESPACE
11 |
12 | class MainWindow : public QMainWindow {
13 | Q_OBJECT
14 | public:
15 | explicit MainWindow(QWidget *parent = nullptr);
16 | ~MainWindow() override;
17 |
18 | enum Theme {
19 | Dark,
20 | Light,
21 | };
22 | Q_ENUM(Theme)
23 |
24 | Q_SIGNALS:
25 | void themeChanged();
26 |
27 | protected:
28 | bool event(QEvent *event) override;
29 |
30 | private:
31 | void installWindowAgent();
32 | void loadStyleSheet(Theme theme);
33 |
34 | Theme currentTheme{};
35 |
36 | QX_WINDOW_PREPEND_NAMESPACE(WindowAgentWidget) *windowAgent;
37 | };
38 |
39 | #endif // MAINWINDOW_H
40 |
--------------------------------------------------------------------------------
/demos/qxwindow/mainwindow/mainwindow.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxwindow
2 | include(../../../qtproject.pri)
3 |
4 | QT += core gui
5 |
6 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
7 |
8 | CONFIG += c++17
9 | TARGET = QxWindow_MainWindow
10 | DESTDIR = $$IDE_APP_PATH
11 |
12 | # You can make your code fail to compile if it uses deprecated APIs.
13 | # In order to do so, uncomment the following line.
14 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
15 |
16 | SOURCES += \
17 | $$PWD/main.cpp \
18 | $$PWD/mainwindow.cpp
19 |
20 | HEADERS += \
21 | $$PWD/mainwindow.h
22 |
23 | include($$PWD/../shared/shared.pri)
24 |
25 | # Default rules for deployment.
26 | qnx: target.path = /tmp/$${TARGET}/bin
27 | else: unix:!android: target.path = /opt/$${TARGET}/bin
28 | !isEmpty(target.path): INSTALLS += target
29 |
30 | RESOURCES += \
31 | $$PWD/mainwindow.qrc
32 |
--------------------------------------------------------------------------------
/demos/qxwindow/mainwindow/mainwindow.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | dark-style.css
4 | light-style.css
5 |
6 |
7 |
--------------------------------------------------------------------------------
/demos/qxwindow/qxwindow.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | mainwindow \
6 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/app/example.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qxwindow/shared/resources/app/example.icns
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/app/example.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qxwindow/shared/resources/app/example.ico
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/app/example.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/demos/qxwindow/shared/resources/app/example.png
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/shared.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | window-bar/close.svg
4 | window-bar/fullscreen.svg
5 | window-bar/maximize.svg
6 | window-bar/minimize.svg
7 | window-bar/restore.svg
8 | window-bar/more-line.svg
9 | app/example.png
10 |
11 |
12 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/window-bar/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/window-bar/maximize.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/window-bar/minimize.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/window-bar/more-line.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/resources/window-bar/restore.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/shared.pri:
--------------------------------------------------------------------------------
1 | INCLUDEPATH += $$PWD
2 |
3 | HEADERS += \
4 | $$PWD/widgetframe/windowbar.h \
5 | $$PWD/widgetframe/windowbar_p.h \
6 | $$PWD/widgetframe/windowbutton.h \
7 | $$PWD/widgetframe/windowbutton_p.h
8 |
9 | SOURCES += \
10 | $$PWD/widgetframe/windowbar.cpp \
11 | $$PWD/widgetframe/windowbutton.cpp
12 |
13 | RESOURCES += \
14 | $$PWD/resources/shared.qrc
15 |
--------------------------------------------------------------------------------
/demos/qxwindow/shared/widgetframe/windowbutton_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023-2024 maminjie
3 | * SPDX-License-Identifier: Apache-2.0
4 | **/
5 | #ifndef WINDOWBUTTONPRIVATE_H
6 | #define WINDOWBUTTONPRIVATE_H
7 |
8 | #include "windowbutton.h"
9 |
10 | QX_WINDOW_BEGIN_NAMESPACE
11 |
12 | class WindowButtonPrivate
13 | {
14 | Q_DECLARE_PUBLIC(WindowButton)
15 | public:
16 | WindowButtonPrivate();
17 | virtual ~WindowButtonPrivate();
18 |
19 | void init();
20 |
21 | WindowButton *q_ptr;
22 |
23 | QIcon iconNormal;
24 | QIcon iconChecked;
25 | QIcon iconDisabled;
26 |
27 | void reloadIcon();
28 | };
29 |
30 | QX_WINDOW_END_NAMESPACE
31 |
32 | #endif // WINDOWBUTTONPRIVATE_H
--------------------------------------------------------------------------------
/demos/thirdparty/boostdemo/boostdemo.pro:
--------------------------------------------------------------------------------
1 | TOPDIR = ../../..
2 | include($$TOPDIR/qtproject.pri)
3 | include($$TOPDIR/thirdparty/boost/boost.pri)
4 |
5 | QT += core
6 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
7 |
8 | TARGET = boostdemo
9 | TEMPLATE = app
10 | DESTDIR = $$IDE_APP_PATH
11 |
12 | DEFINES += QT_DEPRECATED_WARNINGS
13 |
14 | # two ways to link
15 | LIBS += $$boostLibraryName(libboost_system) \
16 | -l$$boostLibraryName(boost_date_time)
17 |
18 | win32 {
19 | LIBS += -lWs2_32
20 | }
21 |
22 | SOURCES += main.cpp
23 |
--------------------------------------------------------------------------------
/demos/thirdparty/boostdemo/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | int main(int argc, char *argv[])
10 | {
11 | QApplication a(argc, argv);
12 |
13 | qDebug() << BOOST_LIB_VERSION;
14 | qDebug() << BOOST_VERSION;
15 |
16 | // error code
17 | boost::system::error_code ec;
18 | std::string hostname = boost::asio::ip::host_name(ec);
19 | std::cout << hostname << std::endl;
20 | std::cout << ec.value() << std::endl;
21 |
22 | // date time
23 | boost::gregorian::date d = boost::gregorian::day_clock::universal_day();
24 | std::cout << d.year() << std::endl;
25 | std::cout << d.month() << std::endl;
26 | std::cout << d.day() << std::endl;
27 |
28 | d = boost::gregorian::date_from_iso_string("20100131");
29 | std::cout << d.year() << std::endl;
30 | std::cout << d.month() << std::endl;
31 | std::cout << d.day() << std::endl;
32 |
33 | return a.exec();
34 | }
35 |
--------------------------------------------------------------------------------
/demos/thirdparty/ffmpegdemo/ffmpegdemo.pro:
--------------------------------------------------------------------------------
1 | TOPDIR = ../../..
2 | include($$TOPDIR/thirdparty/ffmpeg/ffmpeg.pri)
3 |
4 | QT += core
5 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
6 |
7 | TARGET = ffmpegdemo
8 | TEMPLATE = app
9 | DESTDIR = $$IDE_APP_PATH
10 |
11 | DEFINES += QT_DEPRECATED_WARNINGS
12 |
13 | # auto copy dll to STATIC_OUTPUT_BASE
14 | STATIC_OUTPUT_BASE = $$DESTDIR
15 | include($$TOPDIR/qtdata.pri)
16 |
17 | SOURCES += main.cpp
18 |
--------------------------------------------------------------------------------
/demos/thirdparty/ffmpegdemo/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | extern "C" {
5 | #include
6 | }
7 |
8 | int main(int argc, char *argv[])
9 | {
10 | QApplication a(argc, argv);
11 |
12 | qDebug() << avcodec_configuration();
13 | unsigned int version = avcodec_version();
14 | qDebug() << "version:" << version;
15 |
16 | return a.exec();
17 | }
18 |
--------------------------------------------------------------------------------
/demos/thirdparty/occQt/patch/patch.diff:
--------------------------------------------------------------------------------
1 | diff --git a/occView.cpp b/occView.cpp
2 | index e2d6362..a9b2854 100644
3 | --- a/occView.cpp
4 | +++ b/occView.cpp
5 | @@ -96,7 +96,7 @@ void OccView::init()
6 | #endif
7 |
8 | // Create V3dViewer and V3d_View
9 | - myViewer = new V3d_Viewer(GetGraphicDriver(), Standard_ExtString("viewer3d"));
10 | + myViewer = new V3d_Viewer(GetGraphicDriver());
11 |
12 | myView = myViewer->CreateView();
13 |
14 |
--------------------------------------------------------------------------------
/demos/thirdparty/qtitandemo/main.cpp:
--------------------------------------------------------------------------------
1 |
2 | #include
3 | #include "ribbondockwindow.h"
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QApplication app(argc, argv);
8 | RibbonDockWindow w;
9 | w.show();
10 | return app.exec();
11 | }
12 |
--------------------------------------------------------------------------------
/demos/thirdparty/qtitandemo/qtitandemo.pro:
--------------------------------------------------------------------------------
1 | TOPDIR = ../../..
2 | include($$TOPDIR/qtproject.pri)
3 | include($$TOPDIR/thirdparty/qtitan/qtitan.pri)
4 |
5 | QT += core gui
6 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
7 |
8 | TARGET = RibbonDockDemo
9 | TEMPLATE = app
10 | DESTDIR = $$IDE_APP_PATH
11 |
12 | DEFINES += QT_DEPRECATED_WARNINGS
13 |
14 | LIBS += -l$$QtitanLibraryName(qtitan)
15 |
16 | HEADERS += \
17 | $$PWD/ribbondockwindow.h
18 |
19 | SOURCES += \
20 | $$PWD/main.cpp \
21 | $$PWD/ribbondockwindow.cpp
22 |
23 | macx {
24 | CONFIG-=app_bundle
25 | }
26 |
27 | !lessThan(QT_VER_MAJ, 5) {
28 | QT += printsupport
29 | }
30 |
--------------------------------------------------------------------------------
/demos/thirdparty/qtitandemo/ribbondockwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef RIBBONDOCKWINDOW_H
2 | #define RIBBONDOCKWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 |
11 | /* RibbonDockWindow */
12 | class RibbonDockWindow : public Qtitan::DockMainWindow
13 | {
14 | public:
15 | RibbonDockWindow(QWidget *parent = Q_NULL);
16 | virtual ~RibbonDockWindow();
17 |
18 | private:
19 | Q_DISABLE_COPY(RibbonDockWindow)
20 | };
21 |
22 | #endif // RIBBONDOCKWINDOW_H
23 |
--------------------------------------------------------------------------------
/demos/thirdparty/qtitandemo/src.pri:
--------------------------------------------------------------------------------
1 | HEADERS += \
2 | $$PWD/ribbondockwindow.h
3 |
4 | SOURCES += \
5 | $$PWD/main.cpp \
6 | $$PWD/ribbondockwindow.cpp
7 |
--------------------------------------------------------------------------------
/demos/thirdparty/thirdparty.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | ffmpegdemo
6 |
7 | win32 {
8 | win32-g++ {
9 | SUBDIRS += \
10 | boostdemo
11 | }
12 | win32-msvc {
13 | exists($$PWD/occQt/occQt.pro) {
14 | SUBDIRS += \
15 | occQt
16 | }
17 | SUBDIRS += \
18 | qtitandemo
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/doc/pics/dockdemo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/dockdemo.png
--------------------------------------------------------------------------------
/doc/pics/extend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/extend.png
--------------------------------------------------------------------------------
/doc/pics/fancydemo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/fancydemo.png
--------------------------------------------------------------------------------
/doc/pics/fancyribbon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/fancyribbon.png
--------------------------------------------------------------------------------
/doc/pics/fancytitlebar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/fancytitlebar.png
--------------------------------------------------------------------------------
/doc/pics/fancytoolbutton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/fancytoolbutton.png
--------------------------------------------------------------------------------
/doc/pics/mycad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/mycad.png
--------------------------------------------------------------------------------
/doc/pics/mycad2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/mycad2.png
--------------------------------------------------------------------------------
/doc/pics/qxwindowdemo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/qxwindowdemo.png
--------------------------------------------------------------------------------
/doc/pics/ribbondemo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/ribbondemo.gif
--------------------------------------------------------------------------------
/doc/pics/ribbondemo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/ribbondemo.png
--------------------------------------------------------------------------------
/doc/pics/run.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/pics/run.png
--------------------------------------------------------------------------------
/doc/snippet/dock_snippet.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #include "docksnippet.h"
6 |
7 | QX_DOCK_BEGIN_NAMESPACE
8 |
9 | class DockSnippetPrivate
10 | {
11 | public:
12 | QX_DECLARE_PUBLIC(DockSnippet)
13 | public:
14 | DockSnippetPrivate();
15 | };
16 |
17 | DockSnippetPrivate::DockSnippetPrivate()
18 | {
19 | }
20 |
21 | DockSnippet::DockSnippet(QObject *parent)
22 | : QObject(parent)
23 | {
24 | QX_INIT_PRIVATE(DockSnippet);
25 | }
26 |
27 | DockSnippet::~DockSnippet()
28 | {
29 | QX_FINI_PRIVATE();
30 | }
31 |
32 | QX_DOCK_END_NAMESPACE
33 |
--------------------------------------------------------------------------------
/doc/snippet/dock_snippet.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qxdock_global.h"
8 | #include
9 |
10 | QX_DOCK_BEGIN_NAMESPACE
11 |
12 | class DockSnippetPrivate;
13 |
14 | class QX_DOCK_EXPORT DockSnippet : public QObject
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit DockSnippet(QObject *parent = nullptr);
19 | virtual ~DockSnippet();
20 |
21 | private:
22 | QX_DECLARE_PRIVATE(DockSnippet)
23 | };
24 |
25 | QX_DOCK_END_NAMESPACE
26 |
--------------------------------------------------------------------------------
/doc/sponsor/sponsor.md:
--------------------------------------------------------------------------------
1 | 以下是为 qtcanpool 赞助过的民族企业家、社会精英、高效学生……,愿你们心想事成。
2 |
3 | |赞助者|金额(元)|时间|备注|
4 | |:---|:---|:---|:---|
5 | |**瑜|100|2018-03-01|支付宝账号|
6 | |**传|66|2018-03-01|支付宝账号|
7 | |*宇|120|2018-03-02|支付宝账号|
8 | |**柳|150|2018-03-02|支付宝账号|
9 | |Golden|100|2018-03-02|微信账号|
10 | |**博|100|2018-03-02|支付宝账号|
11 | |*鹏|100|2018-03-02|支付宝账号|
12 | |**海|66.66|2018-03-03|支付宝账号,qq289779880|
13 | |**胜|100|2018-03-21|支付宝账号|
14 | |wangzht|100|2018-03-30|支付宝账号|
15 | |邹菲菲|150|2018-04-18|支付宝账号|
16 | |yi2015|10|2018-08-01|码云账号|
17 | |**锦|500|2019-02-22|微信账号|
18 | |sky_fengyu|10|2021-01-22|码云账号|
19 | |T.C|100|2023-07-06|码云账号|
20 | |YangQing|100|2023-08-02|码云账号|
21 | |*n|50|2024-10-31|微信账号,qq185369785|
22 | |*欢|50|2025-01-20|微信账号,chhsgithub|
23 |
24 | 备注:由于年久,可能遗漏了某些赞助者。
25 |
26 | 同时,也要感谢使用者和反馈者,愿祖国昌盛,国泰民安!
27 |
--------------------------------------------------------------------------------
/doc/sponsor/sponsor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/doc/sponsor/sponsor.png
--------------------------------------------------------------------------------
/examples/examples.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | qcanpool \
6 | qxdock \
7 | qxribbon
8 |
--------------------------------------------------------------------------------
/examples/qcanpool/extensionbutton/extensionbutton.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_ExtensionButton
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qcanpool/extensionbutton/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 | #include
5 |
6 | #include "qcanpool/extensionbutton.h"
7 |
8 | QCANPOOL_USE_NAMESPACE
9 |
10 | MainWindow::MainWindow(QWidget *parent)
11 | : QMainWindow(parent)
12 | {
13 | QIcon icon(":/logo");
14 |
15 | QToolBar *tb = addToolBar(tr("tb"));
16 | tb->addAction(icon, tr("act1"));
17 |
18 | QMenu *menu = new QMenu(this);
19 | menu->addAction(icon, tr("action1"));
20 | menu->addAction(icon, tr("action2"));
21 | menu->addAction(icon, tr("action3"));
22 |
23 | ExtensionButton *btn = new ExtensionButton(this);
24 | connect(tb, &QToolBar::orientationChanged, btn, &ExtensionButton::setOrientation);
25 | btn->setMenu(menu);
26 | tb->addWidget(btn);
27 |
28 | tb->addAction(icon, tr("act2"));
29 |
30 | setWindowTitle(tr("ExtensionButton Example"));
31 | setWindowIcon(icon);
32 | resize(400, 200);
33 | }
34 |
35 | MainWindow::~MainWindow()
36 | {
37 | }
38 |
39 |
--------------------------------------------------------------------------------
/examples/qcanpool/fancytitlebar/fancytitlebar.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_FancyTitleBar
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
9 | win32 {
10 | DEFINES += USE_NATIVE
11 | LIBS += -lUser32
12 | }
13 |
--------------------------------------------------------------------------------
/examples/qcanpool/fancytoolbutton/fancytoolbutton.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_FancyToolButton
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qcanpool/minitabwidget/minitabwidget.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_MiniTabWidget
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qcanpool/qcanpool.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | tinytabbar \
6 | tinytabwidget \
7 | windowlogo \
8 | windowtoolbar \
9 | extensionbutton \
10 | fancytoolbutton \
11 | fancytitlebar \
12 | minitabwidget
13 |
--------------------------------------------------------------------------------
/examples/qcanpool/tinytabbar/tinytabbar.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_TinyTabBar
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qcanpool/tinytabwidget/tinytabwidget.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_TinyTabWidget
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qcanpool/windowlogo/windowlogo.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_WindowLogo
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qcanpool/windowtoolbar/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 |
5 | #include "qcanpool/windowtoolbar.h"
6 |
7 | QCANPOOL_USE_NAMESPACE
8 |
9 | MainWindow::MainWindow(QWidget *parent)
10 | : QMainWindow(parent)
11 | {
12 | QIcon icon(":/logo");
13 | WindowToolBar *wtb = new WindowToolBar(this);
14 |
15 | setMenuWidget(wtb);
16 |
17 | wtb->addAction(icon, tr("action1"));
18 | wtb->addSeparator();
19 | QAction *act = wtb->addAction(icon, tr("action2"));
20 | wtb->insertAction(act, new QAction(icon, tr("action3")));
21 |
22 | setWindowTitle(tr("WindowToolBar Example"));
23 | setWindowIcon(icon);
24 | resize(400, 200);
25 | }
26 |
27 | MainWindow::~MainWindow()
28 | {
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/examples/qcanpool/windowtoolbar/windowtoolbar.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qcanpool
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_WindowToolBar
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qxdock/autohide/autohide.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_AutoHide
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
14 | FORMS += \
15 | $$PWD/mainwindow.ui
16 |
--------------------------------------------------------------------------------
/examples/qxdock/autohide/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include "qxdock/dockwindow.h"
9 |
10 | QT_BEGIN_NAMESPACE
11 | namespace Ui
12 | {
13 | class MainWindow;
14 | }
15 | QT_END_NAMESPACE
16 |
17 | class MainWindow : public QMainWindow
18 | {
19 | Q_OBJECT
20 | public:
21 | MainWindow(QWidget *parent = nullptr);
22 | ~MainWindow();
23 | protected:
24 | virtual void closeEvent(QCloseEvent *event) override;
25 | private:
26 | Ui::MainWindow *ui;
27 | QxDock::DockWindow *m_window;
28 | };
29 | #endif // MAINWINDOW_H
30 |
--------------------------------------------------------------------------------
/examples/qxdock/centralwidget/centralwidget.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_CentralWidget
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxdock/centralwidget/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | #include "qxdock/qxdock_global.h"
10 |
11 | QX_DOCK_BEGIN_NAMESPACE
12 | class DockWindow;
13 | class DockPanel;
14 | class DockWidget;
15 | QX_DOCK_END_NAMESPACE
16 |
17 | QX_DOCK_USE_NAMESPACE
18 |
19 | class MainWindow : public QMainWindow
20 | {
21 | Q_OBJECT
22 | public:
23 | MainWindow(QWidget *parent = nullptr);
24 | ~MainWindow();
25 | private slots:
26 | void savePerspective();
27 | protected:
28 | virtual void closeEvent(QCloseEvent *event) override;
29 | private:
30 | void createPerspectiveUi();
31 | private:
32 | DockWindow *m_window;
33 | QToolBar *m_toolBar;
34 | QAction *m_savePerspectiveAction = nullptr;
35 | QWidgetAction *m_perspectiveListAction = nullptr;
36 | QComboBox *m_perspectiveComboBox = nullptr;
37 | };
38 | #endif // MAINWINDOW_H
39 |
--------------------------------------------------------------------------------
/examples/qxdock/configflags/configflags.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_ConfigFlags
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qxdock/deleteonclose/deleteonclose.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../../../qtproject.pri)
3 |
4 | QT += core gui
5 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
6 |
7 | CONFIG += c++11
8 | DESTDIR = $$IDE_APP_PATH
9 | TARGET = Example_Dock_DeleteOnClose
10 |
11 | include($$QTCANPOOL_DIR/src/rpath.pri)
12 |
13 | INCLUDEPATH += $$PWD
14 |
15 | SOURCES += \
16 | $$PWD/main.cpp
17 |
--------------------------------------------------------------------------------
/examples/qxdock/dockindock/dockindock.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_DockInDock
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxdock/dockindock/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 |
6 | #include "qxdock/qxdock_global.h"
7 | #include
8 |
9 | QX_DOCK_BEGIN_NAMESPACE
10 | class DockGroup;
11 | class DockGroupManager;
12 | QX_DOCK_END_NAMESPACE
13 |
14 | QX_DOCK_USE_NAMESPACE
15 |
16 | class MainWindow : public QMainWindow
17 | {
18 | Q_OBJECT
19 | public:
20 | MainWindow(QWidget *parent = nullptr);
21 | ~MainWindow();
22 | private:
23 | DockGroup *m_group;
24 | std::unique_ptr m_groupManager;
25 | };
26 | #endif // MAINWINDOW_H
27 |
--------------------------------------------------------------------------------
/examples/qxdock/emptydockarea/emptydockarea.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_EmptyDockArea
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qxdock/hideshow/hideshow.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_HideShow
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxdock/hideshow/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 |
6 | #include "qxdock/qxdock_global.h"
7 |
8 | class QStackedLayout;
9 |
10 | QX_DOCK_BEGIN_NAMESPACE
11 | class DockWindow;
12 | QX_DOCK_END_NAMESPACE
13 |
14 | QX_DOCK_USE_NAMESPACE
15 |
16 | class MainWindow : public QMainWindow
17 | {
18 | Q_OBJECT
19 | public:
20 | MainWindow(QWidget *parent = nullptr);
21 | ~MainWindow();
22 | private slots:
23 | void openProject();
24 | void closeProject();
25 | private:
26 | DockWindow *m_window;
27 | QWidget *m_welcomeWidget;
28 | QStackedLayout *m_layout;
29 | QAction *m_actionOpen;
30 | QAction *m_actionClose;
31 | QMenu *m_menuView;
32 | };
33 | #endif // MAINWINDOW_H
34 |
--------------------------------------------------------------------------------
/examples/qxdock/qxdock.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | configflags \
6 | emptydockarea \
7 | hideshow \
8 | widgettopanel \
9 | deleteonclose \
10 | sidebar \
11 | autohide \
12 | dockindock \
13 | centralwidget
14 |
--------------------------------------------------------------------------------
/examples/qxdock/shared/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
8 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
9 | QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
10 | #endif
11 | QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
12 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
13 | QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
14 | #endif
15 | #endif
16 |
17 | QApplication a(argc, argv);
18 | MainWindow w;
19 | w.show();
20 | return a.exec();
21 | }
22 |
--------------------------------------------------------------------------------
/examples/qxdock/shared/shared.pri:
--------------------------------------------------------------------------------
1 | include(../../../qtproject.pri)
2 |
3 | QT += core gui
4 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
5 |
6 | CONFIG += c++11
7 | DESTDIR = $$IDE_APP_PATH
8 |
9 | include($$QTCANPOOL_DIR/src/rpath.pri)
10 |
11 | INCLUDEPATH += $$PWD
12 |
13 | SOURCES += \
14 | $$PWD/main.cpp
15 |
16 | RESOURCES += \
17 | $$PWD/../../shared/res.qrc
18 |
--------------------------------------------------------------------------------
/examples/qxdock/sidebar/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include "qxdock/dockwindow.h"
6 |
7 | QT_BEGIN_NAMESPACE
8 | namespace Ui {
9 | class MainWindow;
10 | }
11 | QT_END_NAMESPACE
12 |
13 | QX_DOCK_USE_NAMESPACE
14 |
15 | /**
16 | * This example shows, how to place a dock widget container and a static
17 | * sidebar into a QMainWindow
18 | */
19 | class MainWindow : public QMainWindow
20 | {
21 | Q_OBJECT
22 |
23 | public:
24 | explicit MainWindow(QWidget *parent = 0);
25 | ~MainWindow();
26 |
27 | protected:
28 | virtual void closeEvent(QCloseEvent *event) override;
29 |
30 | private:
31 | Ui::MainWindow *ui;
32 | DockWindow *m_window;
33 | };
34 |
35 | #endif // MAINWINDOW_H
36 |
--------------------------------------------------------------------------------
/examples/qxdock/sidebar/sidebar.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_SideBar
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
14 | FORMS += \
15 | $$PWD/mainwindow.ui
16 |
--------------------------------------------------------------------------------
/examples/qxdock/widgettopanel/widgettopanel.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_Dock_WidgetToPanel
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
--------------------------------------------------------------------------------
/examples/qxribbon/coloricon/coloricon.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_ColorIcon
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
9 |
--------------------------------------------------------------------------------
/examples/qxribbon/coloricon/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include "qxribbon/ribbonutils.h"
4 |
5 | #include
6 | #include
7 | #include
8 |
9 | QX_RIBBON_USE_NAMESPACE
10 |
11 | MainWindow::MainWindow(QWidget *parent)
12 | : QMainWindow(parent)
13 | {
14 | QIcon icon(":/logo");
15 |
16 | QToolBar *tb = addToolBar(tr("tb"));
17 | tb->addAction(icon, tr("action1"));
18 | tb->addAction(QxRibbon::colorIcon(QColor(), tb->iconSize()), tr("action2"));
19 | tb->addAction(colorIcon(QColor(255, 128, 128), tb->iconSize()), tr("action3"));
20 | tb->addAction(colorIcon(Qt::green, tb->iconSize()), tr("action4"));
21 |
22 | resize(400, 200);
23 | }
24 |
25 | MainWindow::~MainWindow()
26 | {
27 | }
28 |
29 |
--------------------------------------------------------------------------------
/examples/qxribbon/customizedialogmodeless/customizedialogmodeless.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_CustomizeDialogModeless
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxribbon/customizedialogmodeless/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include "qxribbon/ribbonbar.h"
4 | #include "qxribbon/ribbonpage.h"
5 | #include "qxribbon/ribbongroup.h"
6 | #include "qxribbon/ribboncustomizedialog.h"
7 |
8 | #include
9 |
10 | QX_RIBBON_USE_NAMESPACE
11 |
12 | MainWindow::MainWindow(QWidget *parent)
13 | : RibbonWindow(parent)
14 | {
15 | QIcon icon(":/logo");
16 |
17 | RibbonBar *rb = ribbonBar();
18 |
19 | RibbonPage *page = rb->addPage(tr("page1"));
20 | RibbonGroup *group = page->addGroup(tr("group1"));
21 | group->addLargeAction(new QAction(icon, tr("La"), this));
22 | group->addMediumAction(new QAction(icon, tr("Ma1"), this));
23 |
24 | setCentralWidget(new RibbonCustomizeDialog(rb)); // modeless
25 |
26 | resize(800, 400);
27 | }
28 |
29 | MainWindow::~MainWindow()
30 | {
31 | }
32 |
--------------------------------------------------------------------------------
/examples/qxribbon/customizedialogmodeless/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | class MainWindow : public QxRibbon::RibbonWindow
7 | {
8 | Q_OBJECT
9 | public:
10 | MainWindow(QWidget *parent = nullptr);
11 | ~MainWindow();
12 | };
13 | #endif // MAINWINDOW_H
14 |
--------------------------------------------------------------------------------
/examples/qxribbon/customizewidget/customizewidget.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_CustomizeWidget
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxribbon/customizewidget/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | QX_RIBBON_BEGIN_NAMESPACE
7 | class RibbonActionsManager;
8 | QX_RIBBON_END_NAMESPACE
9 |
10 | class MainWindow : public QxRibbon::RibbonWindow
11 | {
12 | Q_OBJECT
13 | public:
14 | MainWindow(QWidget *parent = nullptr);
15 | ~MainWindow();
16 | private slots:
17 | void onActionCustomizeTriggered();
18 | private:
19 | void createActionsManager();
20 |
21 | QAction *createAction(const QIcon &icon, const QString &text, QObject *parent = nullptr);
22 | private:
23 | QxRibbon::RibbonActionsManager *m_actMgr;
24 | int m_actionTagText;
25 | int m_actionTagWithIcon;
26 | QString m_customizeXml;
27 | };
28 | #endif // MAINWINDOW_H
29 |
--------------------------------------------------------------------------------
/examples/qxribbon/groupautolayout/groupautolayout.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_GroupAutoLayout
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxribbon/groupautolayout/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | QX_RIBBON_BEGIN_NAMESPACE
7 | class RibbonGroup;
8 | QX_RIBBON_END_NAMESPACE
9 |
10 | class MainWindow : public QxRibbon::RibbonWindow
11 | {
12 | Q_OBJECT
13 | public:
14 | MainWindow(QWidget *parent = nullptr);
15 | ~MainWindow();
16 |
17 | QAction *createAction(const QIcon &icon, const QString &text);
18 | QAction *createAction(const QString &text);
19 |
20 | void addMediumAction(QxRibbon::RibbonGroup *group, QAction *action);
21 | void addSmallAction(QxRibbon::RibbonGroup *group, QAction *action);
22 | };
23 |
24 | #endif // MAINWINDOW_H
25 |
--------------------------------------------------------------------------------
/examples/qxribbon/pagecontext/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include "qxribbon/ribbonbar.h"
4 | #include "qxribbon/ribbonpage.h"
5 | #include "qxribbon/ribbonpagecontext.h"
6 |
7 | QX_RIBBON_USE_NAMESPACE
8 |
9 | MainWindow::MainWindow(QWidget *parent)
10 | : RibbonWindow(parent)
11 | {
12 | RibbonBar *rb = ribbonBar();
13 |
14 | for (int i = 1; i <= 8; ++i) {
15 | RibbonPageContext *pc = rb->addPageContext(tr("context%1").arg(i));
16 | pc->addPage(tr("page1"));
17 | pc->addPage(tr("page2"));
18 | rb->showPageContext(pc);
19 | }
20 |
21 | resize(800, 400);
22 | }
23 |
24 | MainWindow::~MainWindow()
25 | {
26 | }
27 |
--------------------------------------------------------------------------------
/examples/qxribbon/pagecontext/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | class MainWindow : public QxRibbon::RibbonWindow
7 | {
8 | Q_OBJECT
9 | public:
10 | MainWindow(QWidget *parent = nullptr);
11 | ~MainWindow();
12 | };
13 | #endif // MAINWINDOW_H
14 |
--------------------------------------------------------------------------------
/examples/qxribbon/pagecontext/pagecontext.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_PageContext
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxribbon/qxribbon.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | simple \
6 | groupautolayout \
7 | coloricon \
8 | customizedialogmodeless \
9 | customizewidget \
10 | pagecontext \
11 | ribbonmenu \
12 | ribbonbar \
13 | ribbonbuttongroup \
14 | ribbongallery \
15 | ribbonquickaccessbar
16 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonbar/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | QX_RIBBON_BEGIN_NAMESPACE
7 | class RibbonPage;
8 | QX_RIBBON_END_NAMESPACE
9 |
10 | class MainWindow : public QxRibbon::RibbonWindow
11 | {
12 | Q_OBJECT
13 | public:
14 | MainWindow(QWidget *parent = nullptr);
15 | ~MainWindow();
16 |
17 | void createQuickAccessBar();
18 | void createStyleGroup(QxRibbon::RibbonPage *page);
19 |
20 | private slots:
21 | void onStyleClicked(int id);
22 | };
23 | #endif // MAINWINDOW_H
24 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonbar/ribbonbar.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_RibbonBar
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonbuttongroup/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | class MainWindow : public QxRibbon::RibbonWindow
7 | {
8 | Q_OBJECT
9 | public:
10 | MainWindow(QWidget *parent = nullptr);
11 | ~MainWindow();
12 | };
13 | #endif // MAINWINDOW_H
14 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonbuttongroup/ribbonbuttongroup.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_ButtonGroup
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbongallery/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | class MainWindow : public QxRibbon::RibbonWindow
7 | {
8 | Q_OBJECT
9 | public:
10 | MainWindow(QWidget *parent = nullptr);
11 | ~MainWindow();
12 | };
13 | #endif // MAINWINDOW_H
14 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbongallery/ribbongallery.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_Gallery
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonmenu/colorbutton.cpp:
--------------------------------------------------------------------------------
1 | #include "colorbutton.h"
2 | #include "qxribbon/ribbonutils.h"
3 |
4 | QX_RIBBON_USE_NAMESPACE
5 |
6 | ColorButton::ColorButton(const QColor &color, QWidget *parent)
7 | : QToolButton(parent)
8 | , m_color(color)
9 | {
10 | setAutoRaise(true);
11 | setMouseTracking(true);
12 | setIcon(colorIcon(m_color, iconSize()));
13 |
14 | connect(this, &QToolButton::clicked, this, [=](bool checked) {
15 | emit colorClicked(m_color, checked);
16 | });
17 | }
18 |
19 | const QColor &ColorButton::color() const
20 | {
21 | return m_color;
22 | }
23 |
24 | void ColorButton::setColor(const QColor &color)
25 | {
26 | m_color = color;
27 | setIcon(colorIcon(m_color, iconSize()));
28 | }
29 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonmenu/colorbutton.h:
--------------------------------------------------------------------------------
1 | #ifndef COLORBUTTON_H
2 | #define COLORBUTTON_H
3 |
4 | #include
5 |
6 | class ColorButton : public QToolButton
7 | {
8 | Q_OBJECT
9 | public:
10 | explicit ColorButton(const QColor &color, QWidget *parent = nullptr);
11 |
12 | const QColor &color() const;
13 |
14 | signals:
15 | void colorClicked(const QColor &color, bool checked = false);
16 | public slots:
17 | void setColor(const QColor &color);
18 | private:
19 | QColor m_color;
20 | };
21 |
22 | #endif // COLORBUTTON_H
23 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonmenu/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | class ColorButton;
7 |
8 | class MainWindow : public QxRibbon::RibbonWindow
9 | {
10 | Q_OBJECT
11 | public:
12 | MainWindow(QWidget *parent = nullptr);
13 | ~MainWindow();
14 |
15 | ColorButton *createColorButton(const QColor &color, const QString &text);
16 | };
17 | #endif // MAINWINDOW_H
18 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonmenu/ribbonmenu.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_Menu
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h \
10 | $$PWD/colorbutton.h
11 |
12 | SOURCES += \
13 | $$PWD/mainwindow.cpp \
14 | $$PWD/colorbutton.cpp
15 |
--------------------------------------------------------------------------------
/examples/qxribbon/ribbonquickaccessbar/ribbonquickaccessbar.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../../shared/shared.pri)
3 |
4 | TARGET = Example_RibbonQuickAccessBar
5 |
6 | SOURCES += \
7 | $$PWD/mainwindow.cpp
8 |
9 |
--------------------------------------------------------------------------------
/examples/qxribbon/shared/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
8 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
9 | QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
10 | #endif
11 | QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
12 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
13 | QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
14 | #endif
15 | #endif
16 |
17 | QApplication a(argc, argv);
18 | MainWindow w;
19 | w.show();
20 | return a.exec();
21 | }
22 |
--------------------------------------------------------------------------------
/examples/qxribbon/shared/shared.pri:
--------------------------------------------------------------------------------
1 | include(../../../qtproject.pri)
2 |
3 | QT += core gui
4 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
5 |
6 | CONFIG += c++11
7 | DESTDIR = $$IDE_APP_PATH
8 |
9 | include($$QTCANPOOL_DIR/src/rpath.pri)
10 |
11 | INCLUDEPATH += $$PWD
12 |
13 | SOURCES += \
14 | $$PWD/main.cpp
15 |
16 | RESOURCES += \
17 | $$PWD/../../shared/res.qrc
18 |
--------------------------------------------------------------------------------
/examples/qxribbon/simple/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include "qxribbon/ribbonwindow.h"
5 |
6 | class MainWindow : public QxRibbon::RibbonWindow
7 | {
8 | Q_OBJECT
9 | public:
10 | MainWindow(QWidget *parent = nullptr);
11 | ~MainWindow();
12 | };
13 | #endif // MAINWINDOW_H
14 |
--------------------------------------------------------------------------------
/examples/qxribbon/simple/simple.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../shared/shared.pri)
3 |
4 | TARGET = Example_Ribbon_Simple
5 |
6 | INCLUDEPATH += $$PWD
7 |
8 | HEADERS += \
9 | $$PWD/mainwindow.h
10 |
11 | SOURCES += \
12 | $$PWD/mainwindow.cpp
13 |
--------------------------------------------------------------------------------
/examples/shared/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
8 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
9 | QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
10 | #endif
11 | QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
12 | #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
13 | QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
14 | #endif
15 | #endif
16 |
17 | QApplication a(argc, argv);
18 | MainWindow w;
19 | w.show();
20 | return a.exec();
21 | }
22 |
--------------------------------------------------------------------------------
/examples/shared/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 |
6 | class MainWindow : public QMainWindow
7 | {
8 | Q_OBJECT
9 | public:
10 | MainWindow(QWidget *parent = nullptr);
11 | ~MainWindow();
12 | };
13 | #endif // MAINWINDOW_H
14 |
--------------------------------------------------------------------------------
/examples/shared/res.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/logo.png
4 |
5 |
6 |
--------------------------------------------------------------------------------
/examples/shared/res/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/examples/shared/res/logo.png
--------------------------------------------------------------------------------
/examples/shared/shared.pri:
--------------------------------------------------------------------------------
1 | include(../../qtproject.pri)
2 |
3 | QT += core gui
4 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
5 |
6 | CONFIG += c++11
7 | DESTDIR = $$IDE_APP_PATH
8 |
9 | include($$QTCANPOOL_DIR/src/rpath.pri)
10 |
11 | INCLUDEPATH += $$PWD
12 |
13 | SOURCES += \
14 | $$PWD/main.cpp
15 |
16 | HEADERS += \
17 | $$PWD/mainwindow.h
18 |
19 | RESOURCES += \
20 | $$PWD/res.qrc
21 |
--------------------------------------------------------------------------------
/projects/README.md:
--------------------------------------------------------------------------------
1 | ### 模板说明
2 |
3 | - template
4 | - 采用 app + lib 模式
5 |
--------------------------------------------------------------------------------
/projects/template/config.pri:
--------------------------------------------------------------------------------
1 | !isEmpty(CONFIG_PRI_INCLUDED):error("config.pri already included")
2 | CONFIG_PRI_INCLUDED = 1
3 |
4 | isEmpty(QTPROJECT_VERSION): QTPROJECT_VERSION = 2.0.0
5 | isEmpty(QTPROJECT_COMPAT_VERSION): QTPROJECT_COMPAT_VERSION = 2.0.0
6 | isEmpty(QTPROJECT_DISPLAY_VERSION): QTPROJECT_DISPLAY_VERSION = 2.0.0
7 | isEmpty(QTPROJECT_COPYRIGHT_YEAR): QTPROJECT_COPYRIGHT_YEAR = 2022
8 |
9 | isEmpty(QTPROJECT_DIR): QTPROJECT_DIR = $$PWD
10 | isEmpty(QTPROJECT_OUT_PWD): QTPROJECT_OUT_PWD = $$OUT_PWD
11 | isEmpty(QTPROJECT_PRO_FILE_PWD): QTPROJECT_PRO_FILE_PWD = $$_PRO_FILE_PWD_
12 | isEmpty(QTPROJECT_PRO_FILE): QTPROJECT_PRO_FILE = $$_PRO_FILE_
13 |
14 | isEmpty(QTCANPOOL_DIR): QTCANPOOL_DIR = $$quote($$PWD/../..)
15 |
16 | !exists($$QTCANPOOL_DIR) {
17 | error("QTCANPOOL_DIR was not configured correctly")
18 | }
19 |
20 | include($$QTCANPOOL_DIR/qtconfig.pri)
21 |
--------------------------------------------------------------------------------
/projects/template/qtproject.pri:
--------------------------------------------------------------------------------
1 | include(config.pri)
2 | include($$QTCANPOOL_DIR/qtproject.pri)
3 |
--------------------------------------------------------------------------------
/projects/template/src/app/app.pro:
--------------------------------------------------------------------------------
1 | include(../../qtproject.pri)
2 | include($$QTCANPOOL_DIR/src/rpath.pri)
3 |
4 | QT += core gui
5 |
6 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
7 |
8 | TARGET = app
9 | TEMPLATE = app
10 | DESTDIR = $$IDE_APP_PATH
11 |
12 | # The following define makes your compiler emit warnings if you use
13 | # any feature of Qt which has been marked as deprecated (the exact warnings
14 | # depend on your compiler). Please consult the documentation of the
15 | # deprecated API in order to know how to port your code away from it.
16 | DEFINES += QT_DEPRECATED_WARNINGS
17 |
18 | # You can also make your code fail to compile if you use deprecated APIs.
19 | # In order to do so, uncomment the following line.
20 | # You can also select to disable deprecated APIs only up to a certain version of Qt.
21 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
22 |
23 | CONFIG += c++11
24 |
25 | # lib
26 | LIBS *= -l$$qtLibraryName(qcanpool)
27 |
28 | SOURCES += \
29 | main.cpp \
30 | mainwindow.cpp
31 |
32 | HEADERS += \
33 | mainwindow.h
34 |
35 | RESOURCES += \
36 | app.qrc
37 |
--------------------------------------------------------------------------------
/projects/template/src/app/app.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | resource/image/logo.png
4 |
5 |
6 |
--------------------------------------------------------------------------------
/projects/template/src/app/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | MainWindow w;
8 | w.show();
9 |
10 | return a.exec();
11 | }
12 |
--------------------------------------------------------------------------------
/projects/template/src/app/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 |
6 | class MainWindow : public QMainWindow
7 | {
8 | Q_OBJECT
9 |
10 | public:
11 | MainWindow(QWidget *parent = nullptr);
12 | ~MainWindow();
13 | };
14 |
15 | #endif // MAINWINDOW_H
16 |
--------------------------------------------------------------------------------
/projects/template/src/app/resource/image/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/projects/template/src/app/resource/image/logo.png
--------------------------------------------------------------------------------
/projects/template/src/libs/libs.pro:
--------------------------------------------------------------------------------
1 | include(../../qtproject.pri)
2 |
3 | TEMPLATE = subdirs
4 |
5 | SUBDIRS = \
6 | qcanpool
7 |
8 | for(l, SUBDIRS) {
9 | QTC_LIB_DEPENDS =
10 | include($$l/$${l}_dependencies.pri)
11 | lv = $${l}.depends
12 | $$lv = $$QTC_LIB_DEPENDS
13 | }
14 |
--------------------------------------------------------------------------------
/projects/template/src/libs/qcanpool/qcanpool.pro:
--------------------------------------------------------------------------------
1 | include(../../qtlibrary.pri)
2 | include($$qtcLibrarySource(qcanpool))
3 |
--------------------------------------------------------------------------------
/projects/template/src/libs/qcanpool/qcanpool_dependencies.pri:
--------------------------------------------------------------------------------
1 | QTC_LIB_NAME = qcanpool
2 | QTC_LIB_VERSION = 2.0.0
3 |
--------------------------------------------------------------------------------
/projects/template/src/qtlibrary.pri:
--------------------------------------------------------------------------------
1 | isEmpty(QTLIBRARY_PRO_FILE_PWD): QTLIBRARY_PRO_FILE_PWD = $$_PRO_FILE_PWD_
2 |
3 | include(../config.pri)
4 | include($$QTCANPOOL_DIR/src/qtlibrary.pri)
5 |
--------------------------------------------------------------------------------
/projects/template/src/src.pro:
--------------------------------------------------------------------------------
1 | include(../qtproject.pri)
2 |
3 | TEMPLATE = subdirs
4 | CONFIG += ordered
5 |
6 | SUBDIRS += \
7 | libs \
8 | app
9 |
10 |
--------------------------------------------------------------------------------
/projects/template/template.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS += src \
5 |
6 |
7 |
--------------------------------------------------------------------------------
/qtcanpool.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | src \
6 | demos \
7 | examples \
8 |
9 |
10 | TEST_BUILD_ENABLE = 1
11 | equals(TEST_BUILD_ENABLE, 1) {
12 | SUBDIRS += tests
13 | }
14 |
--------------------------------------------------------------------------------
/qtconfig.pri:
--------------------------------------------------------------------------------
1 | # This pri file is used by the template project to reference
2 | # qtcanpool library or plugin source code
3 | #
4 | # Usage: config.pri include this file after defining QTCANPOOL_DIR
5 | #
6 | # The replace function is then called in the pro file, such as:
7 | #
8 | # - reference qcanpool library:
9 | # include($$qtcLibrarySource(qcanpool))
10 | #
11 | # - reference coreplugin plugin:
12 | # include($$qtcPluginSource(coreplugin))
13 | #
14 | # NOTE:
15 | # - the library must provide the LIBNAME-lib.pri file
16 | # - the plugin must provide the PLUGINNAME-plugin.pri file
17 | #
18 |
19 | defineReplace(qtcLibrarySource) {
20 | LIB_PRI = $$absolute_path($$QTCANPOOL_DIR/src/libs/$$1/$$1-lib.pri)
21 | return($$LIB_PRI)
22 | }
23 |
24 | defineReplace(qtcPluginSource) {
25 | PLUGIN_PRI = $$absolute_path($$QTCANPOOL_DIR/src/plugins/$$1/$$1-plugin.pri)
26 | return($$PLUGIN_PRI)
27 | }
28 |
--------------------------------------------------------------------------------
/scripts/memcheck.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # Copyright (c) 2023 maminjie
3 | # SPDX-License-Identifier: MulanPSL-2.0
4 |
5 | # on openeuler:
6 | # dnf install valgrind glibc-debuginfo
7 | # example:
8 | # bash memcheck.sh ./PROGRAM 2>&1 | tee memcheck.log
9 | valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes --smc-check=all --track-origins=yes $@
10 |
--------------------------------------------------------------------------------
/scripts/push.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # Copyright (c) 2023 maminjie
3 | # SPDX-License-Identifier: MulanPSL-2.0
4 |
5 | while true; do
6 | # push code to github
7 | git push github
8 | if [ $? -eq 0 ]; then
9 | break
10 | fi
11 | sleep 1
12 | done
13 |
14 | # push code to gitee (default)
15 | git push
16 |
--------------------------------------------------------------------------------
/src/libs/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | option(WITH_QCANPOOL "Build qcanpool library" ON)
2 | option(WITH_QXRIBBON "Build qxribbon library" ON)
3 | option(WITH_QXDOCK "Build qxdock library" ON)
4 | option(WITH_QXWINDOW "Build qxwindow library" ON)
5 |
6 | if (WITH_QCANPOOL)
7 | add_subdirectory(qcanpool)
8 | endif()
9 |
10 | if (WITH_QXRIBBON)
11 | add_subdirectory(qxribbon)
12 | endif()
13 |
14 | if (WITH_QXDOCK)
15 | add_subdirectory(qxdock)
16 | endif()
17 |
18 | if (WITH_QXWINDOW)
19 | add_subdirectory(qxwindow)
20 | endif()
21 |
--------------------------------------------------------------------------------
/src/libs/libs.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS = \
4 | qcanpool \
5 | qxribbon \
6 | qxdock \
7 | qxwindow
8 |
9 | for(l, SUBDIRS) {
10 | QTC_LIB_DEPENDS =
11 | include($$l/$${l}_dependencies.pri)
12 | lv = $${l}.depends
13 | $$lv = $$QTC_LIB_DEPENDS
14 | }
15 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/CHANGELOG:
--------------------------------------------------------------------------------
1 | 2.0.2
2 | ---
3 | - FancyTitleBar: paint window border
4 | - FancyToolButton: allow disable forced center alignment
5 | - FancyTabBar: set orientation
6 | - FancyTitleBar: set frame changed on WM_SIZE
7 |
8 | 2.0.1
9 | ---
10 | - Don't support windows native features on qt6 for FancyTitleBar
11 |
12 | 2.0.0
13 | ---
14 | Feature
15 | - Support windows native features for FancyTitleBar
16 | - Support simple ribbon control
17 | - Simplify implement of qcanpool
18 | - Merge qcanpool-1.1.0 and qlite-1.1.0
19 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_qtc_library(qcanpool
2 | DEPENDS Qt5::Core Qt5::Widgets
3 | SOURCES
4 | extensionbutton.cpp extensionbutton.h
5 | fancybar.cpp fancybar.h fancybar_p.h
6 | fancydialog.cpp fancydialog.h
7 | fancytabbar.cpp fancytabbar.h fancytabbar_p.h
8 | fancytabwidget.cpp fancytabwidget.h
9 | fancytitlebar.cpp fancytitlebar.h fancytitlebar_p.h
10 | fancytoolbutton.cpp fancytoolbutton.h
11 | fancywindow.cpp fancywindow.h
12 | menuaccessbutton.cpp menuaccessbutton.h
13 | menubutton.cpp menubutton.h
14 | minitabbar.cpp minitabbar.h
15 | minitabwidget.cpp minitabwidget.h
16 | qcanpool.h
17 | qcanpool.qrc
18 | quickaccessbar.cpp quickaccessbar.h quickaccessbar_p.h
19 | ribbonbar.cpp ribbonbar.h ribbonbar_p.h
20 | ribboncontainers.cpp ribboncontainers.h
21 | ribbongroup.cpp ribbongroup.h ribbongroup_p.h
22 | ribbonpage.cpp ribbonpage.h ribbonpage_p.h
23 | ribbonwindow.cpp ribbonwindow.h
24 | tinynavbar.cpp tinynavbar.h tinynavbar_p.h
25 | tinytabbar.cpp tinytabbar.h tinytabbar_p.h
26 | tinytabwidget.cpp tinytabwidget.h
27 | windowlogo.cpp windowlogo.h
28 | windowtoolbar.cpp windowtoolbar.h windowtoolbar_p.h
29 | )
30 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/extensionbutton.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #ifndef EXTENSIONBUTTON_H
6 | #define EXTENSIONBUTTON_H
7 |
8 | #include "qcanpool.h"
9 | #include
10 |
11 | QCANPOOL_BEGIN_NAMESPACE
12 |
13 | class ExtensionButtonPrivate;
14 |
15 | class QCANPOOL_SHARED_EXPORT ExtensionButton : public QToolButton
16 | {
17 | Q_OBJECT
18 | public:
19 | explicit ExtensionButton(QWidget *parent = nullptr);
20 | ~ExtensionButton();
21 |
22 | QSize sizeHint() const override;
23 |
24 | public Q_SLOTS:
25 | void setOrientation(Qt::Orientation o);
26 |
27 | protected:
28 | void paintEvent(QPaintEvent *) override;
29 | bool event(QEvent *event) override;
30 | private:
31 | QCP_DECLARE_PRIVATE(ExtensionButton)
32 | };
33 |
34 | QCANPOOL_END_NAMESPACE
35 |
36 | #endif // EXTENSIONBUTTON_H
37 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/fancywindow.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2018-2022 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #ifndef FANCYWINDOW_H
6 | #define FANCYWINDOW_H
7 |
8 | #include "qcanpool.h"
9 | #include
10 |
11 | QCANPOOL_BEGIN_NAMESPACE
12 |
13 | class FancyBar;
14 | class FancyWindowPrivate;
15 |
16 | /* FancyWindow */
17 | class QCANPOOL_SHARED_EXPORT FancyWindow : public QMainWindow
18 | {
19 | Q_OBJECT
20 | public:
21 | explicit FancyWindow(QWidget *parent = nullptr);
22 | virtual ~FancyWindow();
23 |
24 | FancyBar *fancyBar() const;
25 |
26 | void setFixedSize(const QSize &s);
27 | void setFixedSize(int w, int h);
28 | void setFixedWidth(int w);
29 | void setFixedHeight(int h);
30 |
31 | void setWindowFlags(Qt::WindowFlags type);
32 |
33 | Q_SIGNALS:
34 | void resizable(bool resizable);
35 |
36 | private:
37 | FancyWindowPrivate *d;
38 | };
39 |
40 | QCANPOOL_END_NAMESPACE
41 |
42 | #endif // FANCYWINDOW_H
43 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/header.list:
--------------------------------------------------------------------------------
1 | extensionbutton.h
2 | fancybar.h
3 | fancydialog.h
4 | fancytabbar.h
5 | fancytabwidget.h
6 | fancytitlebar.h
7 | fancytoolbutton.h
8 | fancywindow.h
9 | menuaccessbutton.h
10 | menubutton.h
11 | minitabbar.h
12 | minitabwidget.h
13 | qcanpool.h
14 | quickaccessbar.h
15 | ribbonbar.h
16 | ribboncontainers.h
17 | ribbongroup.h
18 | ribbonpage.h
19 | ribbonwindow.h
20 | tinynavbar.h
21 | tinytabbar.h
22 | tinytabwidget.h
23 | windowlogo.h
24 | windowtoolbar.h
--------------------------------------------------------------------------------
/src/libs/qcanpool/menuaccessbutton.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include
9 |
10 | QCANPOOL_BEGIN_NAMESPACE
11 |
12 | class MenuAccessButtonPrivate;
13 |
14 | /* MenuAccessButton */
15 | class QCANPOOL_SHARED_EXPORT MenuAccessButton : public QToolButton
16 | {
17 | Q_OBJECT
18 | public:
19 | explicit MenuAccessButton(QWidget* parent = Q_NULLPTR);
20 | virtual ~MenuAccessButton();
21 | public:
22 | virtual QSize sizeHint() const;
23 | public Q_SLOTS:
24 | void setOrientation(Qt::Orientation orientation);
25 | private:
26 | QCP_DECLARE_PRIVATE(MenuAccessButton)
27 | };
28 |
29 | QCANPOOL_END_NAMESPACE
30 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/menubutton.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #include "menubutton.h"
6 |
7 | #include
8 | #include
9 | #include
10 |
11 | QCANPOOL_BEGIN_NAMESPACE
12 |
13 | MenuButton::MenuButton(QWidget *parent)
14 | : QToolButton(parent)
15 | {
16 | setAutoRaise(true);
17 | setFocusPolicy(Qt::NoFocus);
18 | setPopupMode(QToolButton::InstantPopup);
19 | }
20 |
21 | MenuButton::MenuButton(const QString &text, QWidget *parent)
22 | : MenuButton(parent)
23 | {
24 | setText(text);
25 | }
26 |
27 | MenuButton::MenuButton(const QIcon &icon, const QString &text, QWidget *parent)
28 | : MenuButton(text, parent)
29 | {
30 | setIcon(icon);
31 | }
32 |
33 | MenuButton::~MenuButton()
34 | {
35 |
36 | }
37 |
38 | void MenuButton::paintEvent(QPaintEvent *event)
39 | {
40 | Q_UNUSED(event);
41 | QStylePainter p(this);
42 | QStyleOptionToolButton opt;
43 | initStyleOption(&opt);
44 | // We do not need to draw both extension arrows
45 | opt.features &= ~QStyleOptionToolButton::HasMenu;
46 | p.drawComplexControl(QStyle::CC_ToolButton, opt);
47 | }
48 |
49 | QCANPOOL_END_NAMESPACE
50 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/menubutton.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include
9 |
10 | QCANPOOL_BEGIN_NAMESPACE
11 |
12 | class QCANPOOL_SHARED_EXPORT MenuButton : public QToolButton
13 | {
14 | Q_OBJECT
15 | public:
16 | explicit MenuButton(QWidget *parent = Q_NULLPTR);
17 | explicit MenuButton(const QString &text, QWidget *parent = Q_NULLPTR);
18 | MenuButton(const QIcon &icon, const QString &text, QWidget *parent = Q_NULLPTR);
19 | ~MenuButton();
20 |
21 | protected:
22 | void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
23 | };
24 |
25 | QCANPOOL_END_NAMESPACE
26 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/minitabbar.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include
9 |
10 | QCANPOOL_BEGIN_NAMESPACE
11 |
12 | class QCANPOOL_SHARED_EXPORT MiniTabBar : public QTabBar
13 | {
14 | Q_OBJECT
15 | public:
16 | explicit MiniTabBar(QWidget *parent = nullptr);
17 | ~MiniTabBar();
18 |
19 | protected:
20 | virtual QSize tabSizeHint(int index) const;
21 | virtual void paintEvent(QPaintEvent *event) override;
22 | };
23 |
24 | QCANPOOL_END_NAMESPACE
25 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/minitabwidget.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #include "minitabwidget.h"
6 | #include "minitabbar.h"
7 |
8 | QCANPOOL_BEGIN_NAMESPACE
9 |
10 | MiniTabWidget::MiniTabWidget(QWidget *parent)
11 | : QTabWidget{parent}
12 | {
13 | setTabBar(new MiniTabBar(this));
14 | }
15 |
16 | QCANPOOL_END_NAMESPACE
17 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/minitabwidget.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include
9 |
10 | QCANPOOL_BEGIN_NAMESPACE
11 |
12 | class QCANPOOL_SHARED_EXPORT MiniTabWidget : public QTabWidget
13 | {
14 | Q_OBJECT
15 | public:
16 | explicit MiniTabWidget(QWidget *parent = nullptr);
17 | };
18 |
19 | QCANPOOL_END_NAMESPACE
20 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/qcanpool.pro:
--------------------------------------------------------------------------------
1 | include(../../qtlibrary.pri)
2 | include(qcanpool-lib.pri)
3 |
4 | # deploy header files
5 | qcanpool.files = $$PUBLIC_HEADERS
6 | qcanpool.path = $$IDE_INC_PATH/qcanpool
7 | INSTALLS += qcanpool
8 |
9 | CONFIG(release, debug|release) {
10 | COPIES += qcanpool
11 | }
12 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/qcanpool.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | res/group_option.png
4 | res/arrow_up.png
5 | res/arrow_down.png
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/qcanpool_dependencies.pri:
--------------------------------------------------------------------------------
1 | QTC_LIB_NAME = qcanpool
2 | QTC_LIB_VERSION = 2.0.2
3 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/quickaccessbar.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2021-2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #ifndef QUICKACCESSBAR_H
6 | #define QUICKACCESSBAR_H
7 |
8 | #include "qcanpool.h"
9 | #include
10 | #include
11 |
12 | QCANPOOL_BEGIN_NAMESPACE
13 |
14 | class QuickAccessBarPrivate;
15 |
16 | /* QuickAccessBar */
17 | class QCANPOOL_SHARED_EXPORT QuickAccessBar : public QToolBar
18 | {
19 | Q_OBJECT
20 | public:
21 | explicit QuickAccessBar(QWidget *parent = Q_NULLPTR);
22 | virtual ~QuickAccessBar();
23 |
24 | public:
25 | QAction *actionCustomizeButton() const;
26 | void setActionVisible(QAction *action, bool visible);
27 | bool isActionVisible(QAction *action) const;
28 | int visibleCount() const;
29 |
30 | QByteArray state() const;
31 | void setState(const QByteArray &s);
32 |
33 | Q_SIGNALS:
34 | void showCustomizeMenu(QMenu *menu);
35 | void customizeActionChanged();
36 |
37 | protected:
38 | virtual bool event(QEvent *event);
39 | virtual void actionEvent(QActionEvent *event);
40 |
41 | private:
42 | QuickAccessBarPrivate *d;
43 | };
44 |
45 | QCANPOOL_END_NAMESPACE
46 |
47 | #endif // QUICKACCESSBAR_H
48 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/res/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qcanpool/res/arrow_down.png
--------------------------------------------------------------------------------
/src/libs/qcanpool/res/arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qcanpool/res/arrow_up.png
--------------------------------------------------------------------------------
/src/libs/qcanpool/res/group_option.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qcanpool/res/group_option.png
--------------------------------------------------------------------------------
/src/libs/qcanpool/ribbonwindow.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2021-2022 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #ifndef RIBBONWINDOW_H
6 | #define RIBBONWINDOW_H
7 |
8 | #include "qcanpool.h"
9 | #include
10 |
11 | QCANPOOL_BEGIN_NAMESPACE
12 |
13 | class RibbonBar;
14 | class RibbonWindowPrivate;
15 |
16 | /* RibbonWindow */
17 | class QCANPOOL_SHARED_EXPORT RibbonWindow : public QMainWindow
18 | {
19 | Q_OBJECT
20 | public:
21 | explicit RibbonWindow(QWidget *parent = nullptr);
22 | virtual ~RibbonWindow();
23 |
24 | RibbonBar *ribbonBar() const;
25 |
26 | void setFrameless(bool frameless);
27 |
28 | private:
29 | RibbonWindowPrivate *d;
30 | };
31 |
32 | QCANPOOL_END_NAMESPACE
33 |
34 | #endif // RIBBONWINDOW_H
35 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/tinynavbar.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include "tinytabbar.h"
9 |
10 | QCANPOOL_BEGIN_NAMESPACE
11 |
12 | class TinyNavBarPrivate;
13 |
14 | class QCANPOOL_SHARED_EXPORT TinyNavBar : public TinyTabBar
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit TinyNavBar(QWidget *parent = Q_NULLPTR);
19 | virtual ~TinyNavBar();
20 | public:
21 | QAction *actionCustomizeButton() const;
22 | int visibleCount() const;
23 | Q_SIGNALS:
24 | void showCustomizeMenu(QMenu *menu);
25 | void customizeTabChanged();
26 | protected:
27 | virtual void actionEvent(QActionEvent *event);
28 | private:
29 | Q_DECLARE_PRIVATE(TinyNavBar)
30 | Q_DISABLE_COPY(TinyNavBar)
31 | };
32 |
33 | QCANPOOL_END_NAMESPACE
34 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/tinynavbar_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include "tinytabbar_p.h"
9 | #include "tinynavbar.h" // must, for Q_DECLARE_PUBLIC -> static_cast
10 | #include
11 | #include
12 |
13 | class QMenu;
14 |
15 | QCANPOOL_BEGIN_NAMESPACE
16 |
17 | class MenuAccessButton;
18 | class TinyNavBar;
19 |
20 | class TinyNavBarPrivate : public TinyTabBarPrivate
21 | {
22 | Q_OBJECT
23 | public:
24 | Q_DECLARE_PUBLIC(TinyNavBar)
25 | public:
26 | TinyNavBarPrivate();
27 | public:
28 | void init();
29 | private Q_SLOTS:
30 | void customizeAction(QAction *action);
31 | void aboutToShowCustomizeMenu();
32 | void aboutToHideCustomizeMenu();
33 | public:
34 | QMenu *m_menu;
35 | QAction *m_actionAccessPopup;
36 | QActionGroup *m_customizeGroup;
37 | MenuAccessButton *m_accessPopup;
38 | QList m_actionList;
39 | QMap m_actionMap; // lowAction,checkAction
40 | bool m_removingAction : 1;
41 | };
42 |
43 | QCANPOOL_END_NAMESPACE
44 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/tinytabbar_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include
9 | #include
10 |
11 | class QAction;
12 | class QActionGroup;
13 | class QToolButton;
14 |
15 | QCANPOOL_BEGIN_NAMESPACE
16 |
17 | class TinyTabBar;
18 |
19 | class TinyTabBarPrivate : public QObject
20 | {
21 | Q_OBJECT
22 | public:
23 | QCP_DECLARE_PUBLIC(TinyTabBar)
24 | public:
25 | TinyTabBarPrivate();
26 | virtual ~TinyTabBarPrivate();
27 |
28 | void init();
29 | bool validIndex(int index) const
30 | { return index >= 0 && index < m_tabs.count(); }
31 |
32 | int indexOf(QAction *action);
33 |
34 | void layoutActions();
35 |
36 | private Q_SLOTS:
37 | void onTriggered(QAction *action);
38 | void onOrientationChanged(Qt::Orientation orientation);
39 | public:
40 | QList m_tabs;
41 | QActionGroup *m_group;
42 | int m_currentIndex;
43 | bool m_togglable;
44 | };
45 |
46 | QCANPOOL_END_NAMESPACE
47 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/windowlogo.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 | #include
9 |
10 | QCANPOOL_BEGIN_NAMESPACE
11 |
12 | class WindowLogoPrivate;
13 | /* WindowLogo */
14 | class QCANPOOL_SHARED_EXPORT WindowLogo : public QWidget
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit WindowLogo(const QPixmap &pixmap, QWidget *parent = Q_NULLPTR);
19 | ~WindowLogo();
20 |
21 | void setPixmap(const QPixmap &pixmap);
22 | QPixmap pixmap() const;
23 |
24 | void setHasMenu(bool has);
25 | bool hasMenu();
26 |
27 | void setRound(bool round);
28 |
29 | virtual QSize sizeHint() const;
30 | virtual QSize minimumSizeHint() const;
31 | Q_SIGNALS:
32 | void menuTriggered(QMouseEvent *e);
33 | void clicked();
34 | protected:
35 | virtual void mousePressEvent(QMouseEvent *event);
36 | virtual void mouseReleaseEvent(QMouseEvent *event);
37 | virtual void paintEvent(QPaintEvent *event);
38 | private:
39 | QCP_DECLARE_PRIVATE(WindowLogo)
40 | };
41 |
42 | QCANPOOL_END_NAMESPACE
43 |
--------------------------------------------------------------------------------
/src/libs/qcanpool/windowtoolbar_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qcanpool.h"
8 |
9 | #include
10 | #include
11 |
12 | class QToolBar;
13 | class QAction;
14 |
15 | QCANPOOL_BEGIN_NAMESPACE
16 |
17 | class WindowToolBar;
18 |
19 | class WindowToolBarPrivate : public QObject
20 | {
21 | Q_OBJECT
22 | QCP_DECLARE_PUBLIC(WindowToolBar)
23 | public:
24 | WindowToolBarPrivate();
25 |
26 | void init();
27 | void windowStateChange(QObject *obj);
28 | void setWindowStates(Qt::WindowStates states);
29 |
30 | public Q_SLOTS:
31 | void buttonClicked();
32 | public:
33 | QToolBar *m_toolBar;
34 | QAction *m_minimizeAction;
35 | QAction *m_maximizeAction;
36 | QAction *m_closeAction;
37 | QIcon m_maximizeIcon;
38 | QIcon m_normalIcon;
39 | QString m_maximizeTip;
40 | QString m_normalTip;
41 | bool m_signalEnabled;
42 | };
43 |
44 | QCANPOOL_END_NAMESPACE
45 |
--------------------------------------------------------------------------------
/src/libs/qxdock/CHANGELOG:
--------------------------------------------------------------------------------
1 | 0.2.0
2 | ---
3 | - Annotate and perfect components
4 | - add perspective and group
5 | - fix: restoreState causes programe crash
6 | - fix build failure on linux, qt6, qt5.11.1
7 |
8 | 0.1.0
9 | ---
10 | - Powered by ads 952131a1e9730636e0ee87e99fcc8bdb259f6451
11 |
--------------------------------------------------------------------------------
/src/libs/qxdock/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | file(GLOB DOCK_SOURCES "*.cpp")
2 | file(GLOB DOCK_HEADERS "*.h")
3 | file(GLOB DOCK_QRCFILES "*.qrc")
4 |
5 | list(REMOVE_ITEM DEFAULT_DEFINES
6 | QT_NO_JAVA_STYLE_ITERATORS
7 | QT_RESTRICTED_CAST_FROM_ASCII
8 | QT_NO_CAST_TO_ASCII
9 | )
10 |
11 | add_qtc_library(qxdock
12 | VERSION 0.2.0
13 | DEFINES QX_DOCK_LIBRARY
14 | DEPENDS Qt5::Core Qt5::Widgets
15 | SOURCES
16 | ${DOCK_SOURCES}
17 | ${DOCK_HEADERS}
18 | ${DOCK_QRCFILES}
19 | )
20 |
--------------------------------------------------------------------------------
/src/libs/qxdock/dockbutton.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qxdock_global.h"
8 | #include
9 |
10 | QX_DOCK_BEGIN_NAMESPACE
11 |
12 | class DockButtonPrivate;
13 |
14 | class QX_DOCK_EXPORT DockButton : public QPushButton
15 | {
16 | Q_OBJECT
17 | public:
18 | using QPushButton::QPushButton;
19 |
20 | enum Orientation {
21 | Horizontal,
22 | VerticalTopToBottom,
23 | VerticalBottomToTop
24 | };
25 | public:
26 | explicit DockButton(QWidget *parent = nullptr);
27 | virtual ~DockButton();
28 |
29 | virtual QSize sizeHint() const override;
30 |
31 | Orientation buttonOrientation() const;
32 | void setButtonOrientation(Orientation orientation);
33 |
34 | protected:
35 | virtual void paintEvent(QPaintEvent *event) override;
36 |
37 | private:
38 | QX_DECLARE_PRIVATE(DockButton)
39 | };
40 |
41 | QX_DOCK_END_NAMESPACE
42 |
--------------------------------------------------------------------------------
/src/libs/qxdock/dockfloatingwidget.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 |
6 | #include "dockfloatingwidget.h"
7 |
8 | QX_DOCK_BEGIN_NAMESPACE
9 |
10 |
11 | QX_DOCK_END_NAMESPACE
12 |
--------------------------------------------------------------------------------
/src/libs/qxdock/dockiconprovider.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 |
6 | #include "dockiconprovider.h"
7 |
8 | #include
9 |
10 | QX_DOCK_BEGIN_NAMESPACE
11 |
12 | class DockIconProviderPrivate
13 | {
14 | public:
15 | QX_DECLARE_PUBLIC(DockIconProvider)
16 | public:
17 | DockIconProviderPrivate();
18 | public:
19 | QVector m_userIcons{Qx::NDockIconSizes, QIcon()};
20 | };
21 |
22 | DockIconProviderPrivate::DockIconProviderPrivate()
23 | {
24 | }
25 |
26 | DockIconProvider::DockIconProvider()
27 | {
28 | QX_INIT_PRIVATE(DockIconProvider);
29 | }
30 |
31 | DockIconProvider::~DockIconProvider()
32 | {
33 | QX_FINI_PRIVATE();
34 | }
35 |
36 | QIcon DockIconProvider::customIcon(Qx::DockIcon id) const
37 | {
38 | Q_D(const DockIconProvider);
39 | Q_ASSERT(id < d->m_userIcons.size());
40 | return d->m_userIcons[id];
41 | }
42 |
43 | void DockIconProvider::registerCustomIcon(Qx::DockIcon id, const QIcon &icon)
44 | {
45 | Q_D(DockIconProvider);
46 | Q_ASSERT(id < d->m_userIcons.size());
47 | d->m_userIcons[id] = icon;
48 | }
49 |
50 | QX_DOCK_END_NAMESPACE
51 |
--------------------------------------------------------------------------------
/src/libs/qxdock/dockiconprovider.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qxdock_global.h"
8 | #include
9 |
10 | QX_DOCK_BEGIN_NAMESPACE
11 |
12 | class DockIconProviderPrivate;
13 |
14 | class QX_DOCK_EXPORT DockIconProvider
15 | {
16 | public:
17 | DockIconProvider();
18 | ~DockIconProvider();
19 |
20 | QIcon customIcon(Qx::DockIcon id) const;
21 | void registerCustomIcon(Qx::DockIcon id, const QIcon &icon);
22 |
23 | private:
24 | QX_DECLARE_PRIVATE(DockIconProvider)
25 | };
26 |
27 | QX_DOCK_END_NAMESPACE
28 |
--------------------------------------------------------------------------------
/src/libs/qxdock/docksplitter.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qxdock_global.h"
8 | #include
9 |
10 | QX_DOCK_BEGIN_NAMESPACE
11 |
12 | class DockSplitterPrivate;
13 |
14 | class QX_DOCK_EXPORT DockSplitter : public QSplitter
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit DockSplitter(QWidget *parent = nullptr);
19 | explicit DockSplitter(Qt::Orientation orientation, QWidget *parent = nullptr);
20 | virtual ~DockSplitter();
21 |
22 | bool hasVisibleContent() const;
23 |
24 | QWidget *firstWidget() const;
25 | QWidget *lastWidget() const;
26 |
27 | bool isResizingWithContainer() const;
28 | private:
29 | QX_DECLARE_PRIVATE(DockSplitter)
30 | };
31 |
32 | QX_DOCK_END_NAMESPACE
33 |
--------------------------------------------------------------------------------
/src/libs/qxdock/dockstatereader.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #include "dockstatereader.h"
6 |
7 | QX_DOCK_BEGIN_NAMESPACE
8 |
9 | void DockStateReader::setFileVersion(int fileVersion)
10 | {
11 | m_fileVersion = fileVersion;
12 | }
13 |
14 | int DockStateReader::fileVersion() const
15 | {
16 | return m_fileVersion;
17 | }
18 |
19 | QX_DOCK_END_NAMESPACE
20 |
--------------------------------------------------------------------------------
/src/libs/qxdock/dockstatereader.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2024 maminjie
3 | * SPDX-License-Identifier: MulanPSL-2.0
4 | **/
5 | #pragma once
6 |
7 | #include "qxdock_global.h"
8 | #include
9 |
10 | QX_DOCK_BEGIN_NAMESPACE
11 |
12 | /**
13 | * Extends QXmlStreamReader with file version information
14 | */
15 | class DockStateReader : public QXmlStreamReader
16 | {
17 | public:
18 | using QXmlStreamReader::QXmlStreamReader;
19 |
20 | void setFileVersion(int fileVersion);
21 | int fileVersion() const;
22 |
23 | private:
24 | int m_fileVersion;
25 | };
26 |
27 | QX_DOCK_END_NAMESPACE
28 |
--------------------------------------------------------------------------------
/src/libs/qxdock/header.list:
--------------------------------------------------------------------------------
1 | qxdock_global.h
2 | dockcontainer.h
3 | dockfocuscontroller.h
4 | dockpanel.h
5 | dockwidget.h
6 | dockwindow.h
7 | docksplitter.h
8 | dockoverlay.h
9 | docktitlebar.h
10 | docktabbar.h
11 | docktab.h
12 | dockutils.h
13 | dockmanager.h
14 | dockiconprovider.h
15 | docklabel.h
16 | dockfloatingwidget.h
17 | dockfloatingcontainer.h
18 | dockfloatingpreview.h
19 | dockbutton.h
20 | docksidebar.h
21 | docksidetab.h
22 | dockautohidecontainer.h
23 | dockresizehandle.h
24 | dockgroup.h
25 | dockgroupmanager.h
26 | docksubwindow.h
--------------------------------------------------------------------------------
/src/libs/qxdock/qxdock.pro:
--------------------------------------------------------------------------------
1 | include(../../qtlibrary.pri)
2 | include(qxdock-lib.pri)
3 |
4 | # deploy header files
5 | qxdock.files = $$PUBLIC_HEADERS
6 | qxdock.path = $$IDE_INC_PATH/qxdock
7 | INSTALLS += qxdock
8 |
9 | CONFIG(release, debug|release) {
10 | COPIES += qxdock
11 | }
12 |
--------------------------------------------------------------------------------
/src/libs/qxdock/qxdock_dependencies.pri:
--------------------------------------------------------------------------------
1 | QTC_LIB_NAME = qxdock
2 | QTC_LIB_VERSION = 0.2.0
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/minimize-button-focused.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/minimize-button.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/pin-button-big.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/vs-pin-button-disabled.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/vs-pin-button-pinned-focused.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/vs-pin-button-pinned.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/vs-pin-button.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxdock/res/images/vs-pin-button_45.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 canpool
4 | Copyright (c) 2020 czyt1988
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in all
14 | copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22 | SOFTWARE.
23 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/header.list:
--------------------------------------------------------------------------------
1 | qxribbon_global.h
2 | ribbonactionsmanager.h
3 | ribbonapplicationbutton.h
4 | ribbonbar.h
5 | ribbonbutton.h
6 | ribbonbuttongroup.h
7 | ribboncolorbutton.h
8 | ribboncontainers.h
9 | ribboncontrols.h
10 | ribboncustomizedialog.h
11 | ribbonfactory.h
12 | ribbongallery.h
13 | ribbongallerygroup.h
14 | ribbongroup.h
15 | ribbonmanager.h
16 | ribbonmenu.h
17 | ribbonpage.h
18 | ribbonpagecontext.h
19 | ribbonquickaccessbar.h
20 | ribbonstyleoption.h
21 | ribbontheme.h
22 | ribbonutils.h
23 | ribbonwindow.h
24 | windowbuttongroup.h
--------------------------------------------------------------------------------
/src/libs/qxribbon/qxribbon.pro:
--------------------------------------------------------------------------------
1 | include(../../qtlibrary.pri)
2 | include(qxribbon-lib.pri)
3 |
4 | # deploy header files
5 | qxribbon.files = $$PUBLIC_HEADERS
6 | qxribbon.path = $$IDE_INC_PATH/qxribbon
7 | INSTALLS += qxribbon
8 |
9 | CONFIG(release, debug|release) {
10 | COPIES += qxribbon
11 | }
12 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/qxribbon_dependencies.pri:
--------------------------------------------------------------------------------
1 | QTC_LIB_NAME = qxribbon
2 | QTC_LIB_VERSION = 0.9.1
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/arrow_down.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/arrow_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/arrow_more.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/arrow_up.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/group_option.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/group_option.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/arrow_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/lighter/arrow_down.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/arrow_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/lighter/arrow_more.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/arrow_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/lighter/arrow_up.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/group_option.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/lighter/group_option.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/qaccess_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/lighter/qaccess_button.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/titlebar_close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/titlebar_close_hover.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/titlebar_max.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/titlebar_min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/titlebar_normal.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/titlebar_shade.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/lighter/titlebar_unshade.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/qaccess_button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/libs/qxribbon/res/qaccess_button.png
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/titlebar_close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/titlebar_close_hover.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/titlebar_max.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/titlebar_min.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/titlebar_normal.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/titlebar_shade.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/res/titlebar_unshade.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonapplicationbutton.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #include "ribbonapplicationbutton.h"
6 |
7 | QX_RIBBON_BEGIN_NAMESPACE
8 |
9 | RibbonApplicationButton::RibbonApplicationButton(QWidget *parent)
10 | : RibbonApplicationButton(QIcon(), QString(), parent)
11 | {
12 | }
13 |
14 | RibbonApplicationButton::RibbonApplicationButton(const QString &text, QWidget *parent)
15 | : RibbonApplicationButton(QIcon(), text, parent)
16 | {
17 | }
18 |
19 | RibbonApplicationButton::RibbonApplicationButton(const QIcon &icon, const QString &text, QWidget *parent)
20 | : QPushButton(icon, text, parent)
21 | {
22 | setFocusPolicy(Qt::NoFocus);
23 | setFlat(true);
24 | setMinimumWidth(40);
25 | }
26 |
27 | QX_RIBBON_END_NAMESPACE
28 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonapplicationbutton.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 |
10 | QX_RIBBON_BEGIN_NAMESPACE
11 |
12 | class QX_RIBBON_EXPORT RibbonApplicationButton : public QPushButton
13 | {
14 | Q_OBJECT
15 | public:
16 | explicit RibbonApplicationButton(QWidget *parent = Q_NULLPTR);
17 | explicit RibbonApplicationButton(const QString &text, QWidget *parent = Q_NULLPTR);
18 | RibbonApplicationButton(const QIcon &icon, const QString &text, QWidget *parent = Q_NULLPTR);
19 | };
20 |
21 | QX_RIBBON_END_NAMESPACE
22 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribboncolorbutton.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include "ribbonbutton.h"
9 |
10 | QX_RIBBON_BEGIN_NAMESPACE
11 |
12 | class RibbonColorButtonPrivate;
13 |
14 | class QX_RIBBON_EXPORT RibbonColorButton : public RibbonButton
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit RibbonColorButton(QWidget *parent = nullptr);
19 | explicit RibbonColorButton(QAction *defaultAction, QWidget *parent = nullptr);
20 | virtual ~RibbonColorButton();
21 |
22 | const QColor &color() const;
23 | Q_SIGNALS:
24 | void colorChanged(const QColor &color);
25 | void colorClicked(const QColor &color, bool checked = false);
26 | public Q_SLOTS:
27 | void setColor(const QColor &color);
28 | private Q_SLOTS:
29 | void onButtonClicked(bool checked = false);
30 | private:
31 | Q_DECLARE_PRIVATE(RibbonColorButton)
32 | };
33 |
34 | QX_RIBBON_END_NAMESPACE
35 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribboncolorbutton_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "ribbonbutton_p.h"
8 | #include "ribboncolorbutton.h"
9 |
10 | #include
11 |
12 | QX_RIBBON_BEGIN_NAMESPACE
13 |
14 | class RibbonColorButton;
15 |
16 | class RibbonColorButtonPrivate : public RibbonButtonPrivate
17 | {
18 | public:
19 | Q_DECLARE_PUBLIC(RibbonColorButton)
20 | public:
21 | RibbonColorButtonPrivate();
22 |
23 | QPixmap createIconPixmap(const QStyleOptionToolButton &opt, const QSize &iconsize) Q_DECL_OVERRIDE;
24 | public:
25 | QColor m_color;
26 | };
27 |
28 | QX_RIBBON_END_NAMESPACE
29 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribboncontrols.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #include "ribboncontrols.h"
6 |
7 | QX_RIBBON_BEGIN_NAMESPACE
8 |
9 | /* RibbonControl */
10 | RibbonControl::RibbonControl(QWidget *parent) : QWidget(parent)
11 | {
12 |
13 | }
14 |
15 | /* RibbonCheckBox */
16 | RibbonCheckBox::RibbonCheckBox(QWidget *parent) : QCheckBox(parent)
17 | {
18 | }
19 |
20 | /* RibbonComboBox */
21 | RibbonComboBox::RibbonComboBox(QWidget *parent) : QComboBox(parent)
22 | {
23 | }
24 |
25 | /* RibbonControlButton */
26 | RibbonControlButton::RibbonControlButton(QWidget *parent) : QToolButton(parent)
27 | {
28 | }
29 |
30 | /* RibbonLineEdit */
31 | RibbonLineEdit::RibbonLineEdit(QWidget *parent) : QLineEdit(parent)
32 | {
33 | }
34 |
35 | QX_RIBBON_END_NAMESPACE
36 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonfactory.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #include "ribbonfactory.h"
6 | #include "ribboncontrols.h"
7 |
8 | QX_RIBBON_BEGIN_NAMESPACE
9 |
10 | RibbonFactory::RibbonFactory()
11 | : m_opt(new RibbonStyleOption())
12 | {
13 | }
14 |
15 | RibbonFactory::~RibbonFactory()
16 | {
17 | }
18 |
19 | RibbonControlButton *RibbonFactory::createHideGroupButton(QWidget *parent)
20 | {
21 | RibbonControlButton *btn = new RibbonControlButton(parent);
22 | btn->setAutoRaise(false);
23 | btn->setObjectName(QStringLiteral("RibbonBarHideGroupButton"));
24 | btn->setToolButtonStyle(Qt::ToolButtonIconOnly);
25 | return btn;
26 | }
27 |
28 | RibbonStyleOption &RibbonFactory::getRibbonStyleOption()
29 | {
30 | return *m_opt;
31 | }
32 |
33 | void RibbonFactory::setRibbonStyleOption(RibbonStyleOption *opt)
34 | {
35 | m_opt.reset(opt);
36 | }
37 |
38 | QX_RIBBON_END_NAMESPACE
39 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonfactory.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include "ribbonstyleoption.h"
9 |
10 | #include
11 |
12 | QX_RIBBON_BEGIN_NAMESPACE
13 |
14 | class RibbonControlButton;
15 |
16 | class QX_RIBBON_EXPORT RibbonFactory
17 | {
18 | public:
19 | RibbonFactory();
20 | virtual ~RibbonFactory();
21 |
22 | virtual RibbonControlButton *createHideGroupButton(QWidget *parent);
23 |
24 | RibbonStyleOption &getRibbonStyleOption();
25 | void setRibbonStyleOption(RibbonStyleOption *opt);
26 |
27 | private:
28 | QScopedPointer m_opt;
29 | };
30 |
31 | QX_RIBBON_END_NAMESPACE
32 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbongallery_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 |
10 | class QLabel;
11 |
12 | QX_RIBBON_BEGIN_NAMESPACE
13 |
14 | class RibbonGalleryViewportPrivate;
15 | /* RibbonGalleryViewport */
16 | class QX_RIBBON_EXPORT RibbonGalleryViewport : public QWidget
17 | {
18 | Q_OBJECT
19 | public:
20 | RibbonGalleryViewport(QWidget *parent);
21 | ~RibbonGalleryViewport();
22 | public:
23 | void addWidget(QWidget *w);
24 | void addWidget(QWidget *w, const QString &title);
25 | void removeWidget(QWidget *w);
26 | QLabel *getWidgetTitleLabel(QWidget *w);
27 | public Q_SLOTS:
28 | void widgetTitleChanged(QWidget *w, const QString &title);
29 | private:
30 | QX_DECLARE_PRIVATE(RibbonGalleryViewport)
31 | };
32 |
33 | QX_RIBBON_END_NAMESPACE
34 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonmanager.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #include "ribbonmanager.h"
6 |
7 | QX_RIBBON_BEGIN_NAMESPACE
8 |
9 | RibbonManager::RibbonManager()
10 | : m_factory(new RibbonFactory())
11 | {
12 | }
13 |
14 | RibbonManager::~RibbonManager()
15 | {
16 | if (m_factory) {
17 | delete m_factory;
18 | }
19 | m_factory = Q_NULLPTR;
20 | }
21 |
22 | RibbonManager *RibbonManager::instance()
23 | {
24 | static RibbonManager s_instance;
25 |
26 | return &s_instance;
27 | }
28 |
29 | RibbonFactory *RibbonManager::factory()
30 | {
31 | return m_factory;
32 | }
33 |
34 | void RibbonManager::setupFactory(RibbonFactory *factory)
35 | {
36 | if (m_factory) {
37 | delete m_factory;
38 | }
39 | m_factory = factory;
40 | }
41 |
42 | QX_RIBBON_END_NAMESPACE
43 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonmanager.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include "ribbonfactory.h"
9 |
10 | QX_RIBBON_BEGIN_NAMESPACE
11 |
12 | class QX_RIBBON_EXPORT RibbonManager
13 | {
14 | protected:
15 | RibbonManager();
16 | public:
17 | virtual ~RibbonManager();
18 | static RibbonManager *instance();
19 | RibbonFactory *factory();
20 | void setupFactory(RibbonFactory *factory);
21 | private:
22 | RibbonFactory *m_factory;
23 | };
24 |
25 | #ifndef RibbonElementMgr
26 | #define RibbonElementMgr RibbonManager::instance()
27 | #endif
28 |
29 | #ifndef RibbonElementFactory
30 | #define RibbonElementFactory RibbonElementMgr->factory()
31 | #endif
32 |
33 | #ifndef RibbonElementStyleOpt
34 | #define RibbonElementStyleOpt RibbonElementFactory->getRibbonStyleOption()
35 | #endif
36 |
37 | QX_RIBBON_END_NAMESPACE
38 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonmenu.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 |
10 | QX_RIBBON_BEGIN_NAMESPACE
11 |
12 | /* RibbonMenu */
13 | class QX_RIBBON_EXPORT RibbonMenu : public QMenu
14 | {
15 | Q_OBJECT
16 | public:
17 | explicit RibbonMenu(QWidget *parent = Q_NULLPTR);
18 | explicit RibbonMenu(const QString &title, QWidget *parent = Q_NULLPTR);
19 |
20 | QAction *addRibbonMenu(RibbonMenu *menu);
21 | RibbonMenu *addRibbonMenu(const QString &title);
22 | RibbonMenu *addRibbonMenu(const QIcon &icon, const QString &title);
23 | QAction *addWidget(QWidget *w);
24 | };
25 |
26 | QX_RIBBON_END_NAMESPACE
27 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonquickaccessbar.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2021-2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 | #include
10 |
11 | QX_RIBBON_BEGIN_NAMESPACE
12 |
13 | class RibbonQuickAccessBarPrivate;
14 |
15 | /* RibbonQuickAccessBar */
16 | class QX_RIBBON_EXPORT RibbonQuickAccessBar : public QToolBar
17 | {
18 | Q_OBJECT
19 | public:
20 | explicit RibbonQuickAccessBar(QWidget *parent = Q_NULLPTR);
21 | virtual ~RibbonQuickAccessBar();
22 |
23 | public:
24 | QAction *actionCustomizeButton() const;
25 | void setActionVisible(QAction *action, bool visible);
26 | bool isActionVisible(QAction *action) const;
27 | int visibleCount() const;
28 |
29 | QByteArray state() const;
30 | void setState(const QByteArray &s);
31 |
32 | Q_SIGNALS:
33 | void showCustomizeMenu(QMenu *menu);
34 | void customizeActionChanged();
35 |
36 | protected:
37 | virtual bool event(QEvent *event);
38 | virtual void actionEvent(QActionEvent *event);
39 |
40 | private:
41 | QX_DECLARE_PRIVATE(RibbonQuickAccessBar)
42 | };
43 |
44 | QX_RIBBON_END_NAMESPACE
45 |
46 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonstyleoption.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include "ribbonbar.h"
9 | #include
10 |
11 | QX_RIBBON_BEGIN_NAMESPACE
12 |
13 | class RibbonStyleOptionPrivate;
14 |
15 | /**
16 | * @brief 定义了 ribbon 所有尺寸相关信息,ribbon 的建立都基于此类的尺寸,如果想调整,
17 | * 可以通过 @ref RibbonFactory(通过 RibbonManager 单例管理) 的 @ref setRibbonStyleOption
18 | * 函数设置自己的 RibbonStyleOption
19 | *
20 | * @sa RibbonManager
21 | *
22 | * 一般 RibbonFactory::setRibbonStyleOption 函数最好在 ribbonbar 构建之前调用
23 | *
24 | * @note 此类定义了 ribbonbar 和 group 的高度信息,并通过字体提前计算好一些布局信息
25 | *
26 | * @todo 后续开发通过配置文件定义 ribbon 的尺寸布局
27 | */
28 | class QX_RIBBON_EXPORT RibbonStyleOption
29 | {
30 | public:
31 | RibbonStyleOption();
32 | virtual ~RibbonStyleOption();
33 | public:
34 | virtual int ribbonBarHeight(RibbonBar::RibbonStyle s) const;
35 | virtual int titleBarHeight() const;
36 | virtual int tabBarHeight() const;
37 | virtual void recalc();
38 | private:
39 | QX_DECLARE_PRIVATE(RibbonStyleOption)
40 | };
41 |
42 | QX_RIBBON_EXPORT QDebug operator<<(QDebug debug, const RibbonStyleOption &c);
43 |
44 | QX_RIBBON_END_NAMESPACE
45 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbontabbar.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 | #include
10 |
11 | QX_RIBBON_BEGIN_NAMESPACE
12 |
13 | class RibbonTabBar : public QTabBar
14 | {
15 | Q_OBJECT
16 | public:
17 | explicit RibbonTabBar(QWidget *parent = Q_NULLPTR);
18 |
19 | const QMargins &tabMargin() const;
20 | void setTabMargin(const QMargins &margin);
21 |
22 | int insertTab(int index, const QString &text);
23 |
24 | int currentIndex() const;
25 | int count() const;
26 |
27 | public Q_SLOTS:
28 | void setCurrentIndex(int index);
29 |
30 | private:
31 | QMargins m_tabMargin;
32 | };
33 |
34 | QX_RIBBON_END_NAMESPACE
35 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbontheme.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 |
10 | class QWidget;
11 |
12 | QX_RIBBON_BEGIN_NAMESPACE
13 |
14 | class QX_RIBBON_EXPORT RibbonTheme : public QObject
15 | {
16 | Q_OBJECT
17 | public:
18 | enum ThemeStyle {
19 | LightYellowTheme,
20 | LightOffice2013Theme,
21 | LightClassicTheme,
22 | LightFancyTheme,
23 | DarkWpsTheme,
24 | CustomTheme,
25 | };
26 | Q_ENUM(ThemeStyle)
27 | public:
28 | /** If the widget is nullptr, css/qss will be applied to QApplication */
29 | static void loadTheme(const QString &themeFile, QWidget *widget = nullptr);
30 |
31 | /** If you have a custom theme, please use loadTheme */
32 | static void setTheme(int themeStyle, QWidget *widget = nullptr);
33 | };
34 |
35 | QX_RIBBON_END_NAMESPACE
36 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonutils.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #include "ribbonutils.h"
6 | #include
7 |
8 | namespace QxRibbon {
9 |
10 | QIcon colorIcon(const QColor &color, const QSize &size)
11 | {
12 | return QIcon(colorPixmap(color, size));
13 | }
14 |
15 | QPixmap colorPixmap(const QColor &color, const QSize &size)
16 | {
17 | QPixmap res(size);
18 | res.fill(Qt::transparent);
19 | QPainter painter(&res);
20 | QRect pr(1, 1, res.height() - 2, res.width() - 2);
21 | if (color.isValid()) {
22 | painter.fillRect(pr, color);
23 | } else {
24 | QPen pen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap);
25 | painter.setPen(pen);
26 | painter.drawRect(pr);
27 | pen.setColor(Qt::red);
28 | painter.setPen(pen);
29 | painter.setRenderHint(QPainter::SmoothPixmapTransform, true);
30 | painter.setRenderHint(QPainter::Antialiasing, true);
31 | painter.drawLine(QPoint(1, size.height()), QPoint(size.width() - 1, 1));
32 | }
33 | return res;
34 | }
35 |
36 | } // namespace QxRibbon
37 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/ribbonutils.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 |
10 | namespace QxRibbon {
11 |
12 | /* color */
13 | QX_RIBBON_EXPORT QIcon colorIcon(const QColor &color, const QSize &size);
14 | QX_RIBBON_EXPORT QPixmap colorPixmap(const QColor &color, const QSize &size);
15 |
16 | } // namespace QxRibbon
17 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/windowbuttongroup.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023-2025 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 |
10 | QX_RIBBON_BEGIN_NAMESPACE
11 |
12 | class WindowButtonGroupPrivate;
13 |
14 | class QX_RIBBON_EXPORT WindowButtonGroup : public QWidget
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit WindowButtonGroup(QWidget *parent, Qt::WindowFlags flags = Qt::WindowFlags());
19 | ~WindowButtonGroup();
20 |
21 | void updateWindowFlags(Qt::WindowFlags flags);
22 |
23 | void setIconScale(qreal scale = 0.5);
24 | void setWindowStates(Qt::WindowStates s);
25 |
26 | virtual QSize sizeHint() const Q_DECL_OVERRIDE;
27 |
28 | QWidget *widgetForMaximizeButton() const;
29 |
30 | /** default is disabled */
31 | bool signalIsEnabled() const;
32 |
33 | public Q_SLOTS:
34 | void setSignalEnabled(bool enable);
35 |
36 | Q_SIGNALS:
37 | void buttonMinimizeClicked();
38 | void buttonMaximzieClicked();
39 | void buttonCloseClicked();
40 |
41 | private:
42 | QX_DECLARE_PRIVATE(WindowButtonGroup)
43 | };
44 |
45 | QX_RIBBON_END_NAMESPACE
46 |
--------------------------------------------------------------------------------
/src/libs/qxribbon/windowbuttongroup_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyleft (C) 2023-2025 maminjie
3 | * SPDX-License-Identifier: MIT
4 | **/
5 | #pragma once
6 |
7 | #include "qxribbon_global.h"
8 | #include
9 |
10 | QX_RIBBON_BEGIN_NAMESPACE
11 |
12 | class WindowButtonGroup;
13 |
14 | class WindowButton : public QToolButton
15 | {
16 | Q_OBJECT
17 | public:
18 | explicit WindowButton(QWidget *p = Q_NULLPTR);
19 | };
20 |
21 | class WindowButtonGroupPrivate : public QObject
22 | {
23 | Q_OBJECT
24 | QX_DECLARE_PUBLIC(WindowButtonGroup)
25 | public:
26 | WindowButtonGroupPrivate();
27 |
28 | void init();
29 | void updateButton(Qt::WindowFlags flags);
30 | void updateButtonIconSize();
31 | QSize sizeHint() const;
32 | int groupHeight() const;
33 |
34 | public Q_SLOTS:
35 | void buttonClicked();
36 |
37 | public:
38 | WindowButton *m_closeButton;
39 | WindowButton *m_minimizeButton;
40 | WindowButton *m_maximizeButton;
41 | qreal m_iconScale;
42 | bool m_signalEnabled;
43 | };
44 |
45 | QX_RIBBON_END_NAMESPACE
46 |
47 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/CHANGELOG:
--------------------------------------------------------------------------------
1 | 0.1.2
2 | ---
3 | - Port to Qt 5.12.12 6.8.1
4 | - Remove WidgetWindowAgent that was replaced by WindowAgentWidget
5 | - Qt: fix coverage taskbar when widget is maximized on secondary screen
6 |
7 | 0.1.1
8 | - Add addCaptionClassName interface for custom caption
9 |
10 | 0.1.0
11 | ---
12 | - Optimize window native feature on Qt 6.5.3
13 | - Support window native feature on mingw compiler
14 | - Rename files and classes
15 | - Powered by qwindowkit baaefab217758ffe51322ad16b6f12a05228db8c
16 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/header.list:
--------------------------------------------------------------------------------
1 | qxwindow_global.h
2 | windowagentbase.h
3 | windowagentwidget.h
--------------------------------------------------------------------------------
/src/libs/qxwindow/qxwindow.pro:
--------------------------------------------------------------------------------
1 | include(../../qtlibrary.pri)
2 |
3 | QX_WINDOW_CONFIG_NATIVE = 1
4 | QX_WINDOW_CONFIG_ENABLE_SYSTEM_BORDERS = 1
5 | QX_WINDOW_CONFIG_ENABLE_STYLE_AGENT = 0
6 |
7 | include(qxwindow-lib.pri)
8 |
9 | # deploy header files
10 | qxwindow.files = $$PUBLIC_HEADERS
11 | qxwindow.path = $$IDE_INC_PATH/qxwindow
12 | INSTALLS += qxwindow
13 |
14 | CONFIG(release, debug|release) {
15 | COPIES += qxwindow
16 | }
17 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/qxwindow_dependencies.pri:
--------------------------------------------------------------------------------
1 | QTC_LIB_NAME = qxwindow
2 | QTC_LIB_VERSION = 0.1.2
3 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/style/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | list(APPEND STYLE_SOURCES windowstyleagent.cpp windowstyleagent.h windowstyleagent_p.h)
2 |
3 | if (APPLE)
4 | list(APPEND STYLE_SOURCES windowstyleagent_mac.cpp)
5 | endif()
6 |
7 | if (UNIX)
8 | list(APPEND STYLE_SOURCES windowstyleagent_linux.cpp)
9 | endif()
10 |
11 | if (WIN32)
12 | list(APPEND STYLE_SOURCES windowstyleagent_win.cpp)
13 | endif()
14 |
15 | extend_qtc_library(qxwindow
16 | SOURCES_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}
17 | DEFINES QX_WINDOW_ENABLE_STYLE_AGENT
18 | SOURCES ${STYLE_SOURCES}
19 | )
20 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/style/header.list:
--------------------------------------------------------------------------------
1 | windowstyleagent.h
--------------------------------------------------------------------------------
/src/libs/qxwindow/style/style.pri:
--------------------------------------------------------------------------------
1 | HEADERS += \
2 | $$PWD/windowstyleagent.h \
3 | $$PWD/windowstyleagent_p.h
4 |
5 | SOURCES += \
6 | $$PWD/windowstyleagent.cpp \
7 |
8 | win32 {
9 | SOURCES += \
10 | $$PWD/windowstyleagent_win.cpp \
11 |
12 | }
13 |
14 | linux* {
15 | SOURCES += \
16 | $$PWD/windowstyleagent_linux.cpp \
17 |
18 | }
19 |
20 | macx {
21 | SOURCES += \
22 | $$PWD/windowstyleagent_mac.cpp \
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/style/windowstyleagent.h:
--------------------------------------------------------------------------------
1 | #ifndef WINDOWSTYLEAGENT_H
2 | #define WINDOWSTYLEAGENT_H
3 |
4 | #include "qxwindow/qxwindow_global.h"
5 | #include
6 | #include
7 | #include
8 |
9 | QX_WINDOW_BEGIN_NAMESPACE
10 |
11 | class WindowStyleAgentPrivate;
12 |
13 | class QX_WINDOW_EXPORT WindowStyleAgent : public QObject
14 | {
15 | Q_OBJECT
16 | Q_DECLARE_PRIVATE(WindowStyleAgent)
17 | public:
18 | explicit WindowStyleAgent(QObject *parent = nullptr);
19 | ~WindowStyleAgent() override;
20 |
21 | enum SystemTheme {
22 | Unknown,
23 | Light,
24 | Dark,
25 | HighContrast,
26 | };
27 | Q_ENUM(SystemTheme)
28 | public:
29 | SystemTheme systemTheme() const;
30 |
31 | Q_SIGNALS:
32 | void systemThemeChanged();
33 | protected:
34 | WindowStyleAgent(WindowStyleAgentPrivate &d, QObject *parent = nullptr);
35 |
36 | const std::unique_ptr d_ptr;
37 | };
38 |
39 | QX_WINDOW_END_NAMESPACE
40 |
41 | #endif // WINDOWSTYLEAGENT_H
42 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/style/windowstyleagent_linux.cpp:
--------------------------------------------------------------------------------
1 | #include "windowstyleagent_p.h"
2 | #include
3 |
4 | QX_WINDOW_BEGIN_NAMESPACE
5 |
6 | void WindowStyleAgentPrivate::setupSystemThemeHook()
7 | {
8 | }
9 |
10 | void WindowStyleAgentPrivate::removeSystemThemeHook()
11 | {
12 | }
13 |
14 | QX_WINDOW_END_NAMESPACE
15 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/style/windowstyleagent_p.h:
--------------------------------------------------------------------------------
1 | #ifndef STYLEAGENTPRIVATE_H
2 | #define STYLEAGENTPRIVATE_H
3 |
4 | //
5 | // W A R N I N G !!!
6 | // -----------------
7 | //
8 | // This file is not part of the QxWindow API. It is used purely as an
9 | // implementation detail. This header file may change from version to
10 | // version without notice, or may even be removed.
11 | //
12 |
13 | #include "windowstyleagent.h"
14 | #include
15 |
16 | QX_WINDOW_BEGIN_NAMESPACE
17 |
18 | class WindowStyleAgentPrivate : public QObject
19 | {
20 | Q_DECLARE_PUBLIC(WindowStyleAgent)
21 | public:
22 | WindowStyleAgentPrivate();
23 | ~WindowStyleAgentPrivate() override;
24 |
25 | void init();
26 |
27 | WindowStyleAgent *q_ptr;
28 |
29 | WindowStyleAgent::SystemTheme systemTheme = WindowStyleAgent::Unknown;
30 |
31 | void setupSystemThemeHook();
32 | void removeSystemThemeHook();
33 |
34 | void notifyThemeChanged(WindowStyleAgent::SystemTheme theme);
35 | };
36 |
37 | QX_WINDOW_END_NAMESPACE
38 |
39 | #endif // STYLEAGENTPRIVATE_H
--------------------------------------------------------------------------------
/src/libs/qxwindow/windowagentbase.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023-2024 maminjie
3 | * SPDX-License-Identifier: Apache-2.0
4 | **/
5 | #ifndef WINDOWAGENTBASE_H
6 | #define WINDOWAGENTBASE_H
7 |
8 | #include "qxwindow_global.h"
9 | #include
10 |
11 | QX_WINDOW_BEGIN_NAMESPACE
12 |
13 | class WindowAgentBasePrivate;
14 |
15 | class QX_WINDOW_EXPORT WindowAgentBase : public QObject
16 | {
17 | Q_OBJECT
18 | Q_DECLARE_PRIVATE(WindowAgentBase)
19 | public:
20 | ~WindowAgentBase() override;
21 |
22 | enum SystemButton {
23 | Unknown,
24 | WindowIcon,
25 | Help,
26 | Minimize,
27 | Maximize,
28 | Close,
29 | };
30 | Q_ENUM(SystemButton)
31 |
32 | QVariant windowAttribute(const QString &key) const;
33 | Q_INVOKABLE bool setWindowAttribute(const QString &key, const QVariant &attribute);
34 |
35 | public Q_SLOTS:
36 | void showSystemMenu(const QPoint &pos); // Only available on Windows now
37 | void centralize();
38 | void raise();
39 | protected:
40 | explicit WindowAgentBase(WindowAgentBasePrivate &d, QObject *parent = nullptr);
41 |
42 | WindowAgentBasePrivate *d_ptr;
43 | };
44 |
45 | QX_WINDOW_END_NAMESPACE
46 |
47 | #endif // WINDOWAGENTBASE_H
48 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/windowagentbase_p.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023-2024 maminjie
3 | * SPDX-License-Identifier: Apache-2.0
4 | **/
5 | #ifndef WINDOWAGENTBASEPRIVATE_H
6 | #define WINDOWAGENTBASEPRIVATE_H
7 |
8 | //
9 | // W A R N I N G !!!
10 | // -----------------
11 | //
12 | // This file is not part of the QxWindow API. It is used purely as an
13 | // implementation detail. This header file may change from version to
14 | // version without notice, or may even be removed.
15 | //
16 |
17 | #include "windowcontext_p.h"
18 | #include "windowagentbase.h"
19 |
20 | QX_WINDOW_BEGIN_NAMESPACE
21 |
22 | class WindowAgentBasePrivate
23 | {
24 | Q_DECLARE_PUBLIC(WindowAgentBase)
25 | public:
26 | WindowAgentBasePrivate();
27 | virtual ~WindowAgentBasePrivate();
28 |
29 | void init();
30 |
31 | WindowAgentBase *q_ptr; // no need to initialize
32 |
33 | virtual WindowContext *createContext() const;
34 |
35 | void setup(QObject *host, WindowItemDelegate *delegate);
36 |
37 | std::unique_ptr m_context;
38 | private:
39 | Q_DISABLE_COPY(WindowAgentBasePrivate)
40 | };
41 |
42 | QX_WINDOW_END_NAMESPACE
43 |
44 | #endif // WINDOWAGENTBASEPRIVATE_H
45 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/windowitemdelegate.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023-2024 maminjie
3 | * SPDX-License-Identifier: Apache-2.0
4 | **/
5 | #include "windowitemdelegate_p.h"
6 |
7 | QX_WINDOW_BEGIN_NAMESPACE
8 |
9 | WindowItemDelegate::WindowItemDelegate() = default;
10 |
11 | WindowItemDelegate::~WindowItemDelegate() = default;
12 |
13 | void WindowItemDelegate::resetQtGrabbedControl(QObject *host) const
14 | {
15 | Q_UNUSED(host);
16 | }
17 |
18 | QX_WINDOW_END_NAMESPACE
19 |
--------------------------------------------------------------------------------
/src/libs/qxwindow/windowkit_linux.h:
--------------------------------------------------------------------------------
1 | #ifndef WINDOWKIT_LINUX_H
2 | #define WINDOWKIT_LINUX_H
3 |
4 |
5 | #endif // WINDOWKIT_LINUX_H
6 |
--------------------------------------------------------------------------------
/src/modules/.gitplacer:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/canpool/qtcanpool/207125132020bdb8422af72b4538075f74733f5d/src/modules/.gitplacer
--------------------------------------------------------------------------------
/src/plugins/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Level 0:
2 |
3 | # Level 1: (only depends of Level 0)
4 |
5 | # Level 2: (only depends on Level 1 and below)
6 |
7 | # Level 3: (only depends on Level 2 and below)
8 |
9 | # Level 4: (only depends on Level 3 and below)
10 |
11 | # Level 5:
12 |
13 | # Level 6:
14 |
15 | # Level 7:
16 |
17 | # Level 8:
18 |
--------------------------------------------------------------------------------
/src/plugins/plugins.pro:
--------------------------------------------------------------------------------
1 | include(../../qtproject.pri)
2 |
3 | TEMPLATE = subdirs
4 |
5 | SUBDIRS =
6 |
7 | for(p, SUBDIRS) {
8 | QTC_PLUGIN_DEPENDS =
9 | include($$p/$${p}_dependencies.pri)
10 | pv = $${p}.depends
11 | $$pv = $$QTC_PLUGIN_DEPENDS
12 | }
13 |
14 | QMAKE_EXTRA_TARGETS += deployqt # dummy
15 |
--------------------------------------------------------------------------------
/src/qtlibrary.pri:
--------------------------------------------------------------------------------
1 | isEmpty(QTLIBRARY_PRO_FILE_PWD): QTLIBRARY_PRO_FILE_PWD = $$_PRO_FILE_PWD_
2 |
3 | include($$replace(QTLIBRARY_PRO_FILE_PWD, ([^/]+$), \\1/\\1_dependencies.pri))
4 | TARGET = $$QTC_LIB_NAME
5 |
6 | include(../qtproject.pri)
7 |
8 | # use precompiled header for libraries by default
9 | isEmpty(PRECOMPILED_HEADER):PRECOMPILED_HEADER = $$PWD/shared/qtproject_pch.h
10 |
11 | win32 {
12 | DLLDESTDIR = $$IDE_APP_PATH
13 | }
14 |
15 | DESTDIR = $$IDE_LIBRARY_PATH
16 |
17 | osx {
18 | QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/
19 | QMAKE_LFLAGS += -compatibility_version $$QTPROJECT_COMPAT_VERSION
20 | }
21 |
22 | RPATH_BASE = $$IDE_LIBRARY_PATH
23 | include(rpath.pri)
24 |
25 | TARGET = $$qtLibraryTargetName($$TARGET)
26 |
27 | TEMPLATE = lib
28 | CONFIG += shared dll
29 |
30 | contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
31 |
32 | win32 {
33 | dlltarget.path = $$INSTALL_BIN_PATH
34 | INSTALLS += dlltarget
35 | } else {
36 | target.path = $$INSTALL_LIBRARY_PATH
37 | INSTALLS += target
38 | }
39 |
--------------------------------------------------------------------------------
/src/qttool.pri:
--------------------------------------------------------------------------------
1 | include(../qtproject.pri)
2 |
3 | TEMPLATE = app
4 |
5 | CONFIG += console
6 | CONFIG -= app_bundle
7 |
8 | DESTDIR = $$IDE_LIBEXEC_PATH
9 |
10 | RPATH_BASE = $$IDE_LIBEXEC_PATH
11 | include(rpath.pri)
12 |
13 | target.path = $$INSTALL_LIBEXEC_PATH
14 | INSTALLS += target
15 |
--------------------------------------------------------------------------------
/src/rpath.pri:
--------------------------------------------------------------------------------
1 | # set RPATH_BASE to the IDE_..._PATH of the target
2 |
3 | isEmpty(RPATH_BASE) {
4 | RPATH_BASE = $$IDE_BIN_PATH
5 | #message("The default RPATH_BASE is IDE_BIN_PATH")
6 | }
7 |
8 | REL_PATH_TO_LIBS = $$relative_path($$IDE_LIBRARY_PATH, $$RPATH_BASE)
9 | REL_PATH_TO_PLUGINS = $$relative_path($$IDE_PLUGIN_PATH, $$RPATH_BASE)
10 |
11 | macos {
12 | QMAKE_LFLAGS += -Wl,-rpath,@loader_path/$$REL_PATH_TO_LIBS,-rpath,@loader_path/$$REL_PATH_TO_PLUGINS
13 | } else:linux-* {
14 | #do the rpath by hand since it's not possible to use ORIGIN in QMAKE_RPATHDIR
15 | # this expands to $ORIGIN (after qmake and make), it does NOT read a qmake var
16 | QMAKE_RPATHDIR += \$\$ORIGIN
17 | QMAKE_RPATHDIR += \$\$ORIGIN/$$REL_PATH_TO_LIBS
18 | QMAKE_RPATHDIR += \$\$ORIGIN/$$REL_PATH_TO_PLUGINS
19 |
20 | IDE_PLUGIN_RPATH = $$join(QMAKE_RPATHDIR, ":")
21 | QMAKE_LFLAGS += -Wl,-z,origin \'-Wl,-rpath,$${IDE_PLUGIN_RPATH}\'
22 | QMAKE_RPATHDIR =
23 | }
24 |
--------------------------------------------------------------------------------
/src/shared/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # add subdirectory
2 |
3 | # PCHs used by qmake based plugin builds
4 | qtc_add_public_header(qtproject_pch.h)
5 | qtc_add_public_header(qtproject_gui_pch.h)
6 |
--------------------------------------------------------------------------------
/src/shared/qtproject_gui_pch.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * Copyright (C) 2016 The Qt Company Ltd.
4 | * SPDX-License-Identifier: GPL-3.0
5 | **/
6 |
7 | /*
8 | * This is a precompiled header file for use in Xcode / Mac GCC /
9 | * GCC >= 3.4 / VC to greatly speed the building of Qt Creator.
10 | *
11 | * The define below is checked in source code. Do not replace with #pragma once!
12 | */
13 |
14 | #ifndef QTPROJECT_GUI_PCH_H
15 | #define QTPROJECT_GUI_PCH_H
16 |
17 | #include "qtproject_pch.h"
18 |
19 | #if defined __cplusplus
20 |
21 | #include
22 | #include
23 | #include
24 | #include
25 | #include
26 | #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
27 | #include
28 | #endif
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include
35 |
36 | #endif
37 |
38 | #endif // QTPROJECT_GUI_PCH_H
39 |
--------------------------------------------------------------------------------
/src/shared/qtproject_pch.h:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (C) 2023 maminjie
3 | * Copyright (C) 2016 The Qt Company Ltd.
4 | * SPDX-License-Identifier: GPL-3.0
5 | **/
6 |
7 | /*
8 | * This is a precompiled header file for use in Xcode / Mac GCC /
9 | * GCC >= 3.4 / VC to greatly speed the building of Qt Creator.
10 | *
11 | * The define below is checked in source code. Do not replace with #pragma once!
12 | */
13 |
14 | #ifndef QTPROJECT_PCH_H
15 | #define QTPROJECT_PCH_H
16 |
17 | #if defined __cplusplus
18 | #include
19 |
20 | #ifdef Q_WS_WIN
21 | # define _POSIX_
22 | # include
23 | # undef _POSIX_
24 | #endif
25 |
26 | #include
27 | #include
28 | #include
29 | #include
30 | #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
31 | #include
32 | #else
33 | #include
34 | #endif
35 | #include
36 | #include
37 | #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
38 | #include
39 | #endif
40 | #include
41 | #include
42 | #include
43 | #include
44 |
45 | #include
46 | #endif
47 |
48 | #endif // QTPROJECT_PCH_H
49 |
--------------------------------------------------------------------------------
/src/src.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS = \
5 | libs \
6 | tools
7 |
--------------------------------------------------------------------------------
/src/tools/tools.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS =
4 |
--------------------------------------------------------------------------------
/tests/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/tests/common/common.pri:
--------------------------------------------------------------------------------
1 | QT += testlib
2 |
3 | INCLUDEPATH += $$PWD
4 |
5 | HEADERS += \
6 | $$PWD/tst_global.h
7 |
8 | SOURCES += \
9 | $$PWD/tst_global.cpp
10 |
--------------------------------------------------------------------------------
/tests/common/tst_global.cpp:
--------------------------------------------------------------------------------
1 | #include "tst_global.h"
2 |
3 | UnitTest::UnitTest()
4 | {
5 | s_testObjects.clear();
6 | }
7 |
8 | UnitTest::~UnitTest()
9 | {
10 | qDeleteAll(s_testObjects);
11 | s_testObjects.clear();
12 | }
13 |
14 | UnitTest &UnitTest::instance()
15 | {
16 | static UnitTest s_testInstance;
17 | return s_testInstance;
18 | }
19 |
20 | void UnitTest::add(QObject *obj)
21 | {
22 | if (obj) {
23 | s_testObjects.append(obj);
24 | }
25 | }
26 |
27 | void UnitTest::run(int argc, char *argv[])
28 | {
29 | for (QObject *obj : s_testObjects) {
30 | QTest::qExec(obj, argc, argv);
31 | }
32 | qDeleteAll(s_testObjects);
33 | s_testObjects.clear();
34 | }
35 |
36 | TestInfo::TestInfo(QObject *obj)
37 | {
38 | UnitTest::instance().add(obj);
39 | }
40 |
--------------------------------------------------------------------------------
/tests/helloworld/helloworld.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS = \
4 | qstring \
5 | qlineedit
6 |
--------------------------------------------------------------------------------
/tests/helloworld/qlineedit/qlineedit.pro:
--------------------------------------------------------------------------------
1 | QT += widgets testlib
2 |
3 | SOURCES += \
4 | tst_qlineedit.cpp
5 |
--------------------------------------------------------------------------------
/tests/helloworld/qlineedit/tst_qlineedit.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | class tst_QLineEdit: public QObject
5 | {
6 | Q_OBJECT
7 |
8 | private slots:
9 | void setText();
10 | };
11 |
12 | void tst_QLineEdit::setText()
13 | {
14 | QLineEdit lineEdit;
15 | QTest::keyClicks(&lineEdit, "hello world");
16 | QCOMPARE(lineEdit.text(), QString("hello world"));
17 | }
18 |
19 | QTEST_MAIN(tst_QLineEdit)
20 |
21 | #include "tst_qlineedit.moc"
22 |
--------------------------------------------------------------------------------
/tests/helloworld/qstring/qstring.pro:
--------------------------------------------------------------------------------
1 | QT += core testlib
2 |
3 | SOURCES += \
4 | tst_qstring.cpp
5 |
--------------------------------------------------------------------------------
/tests/helloworld/qstring/tst_qstring.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | class tst_QString: public QObject
4 | {
5 | Q_OBJECT
6 |
7 | private slots:
8 | void toUpper();
9 | };
10 |
11 | void tst_QString::toUpper()
12 | {
13 | QString str = "Hello";
14 | QVERIFY(str.toUpper() == "HELLO");
15 | }
16 |
17 | QTEST_MAIN(tst_QString)
18 |
19 | #include "tst_qstring.moc"
20 |
--------------------------------------------------------------------------------
/tests/qxdock/auto/auto.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxdock
2 | include(../../../qtproject.pri)
3 |
4 | QT += widgets testlib
5 |
6 | CONFIG += c++11
7 | TARGET = tst_qxdock
8 | DESTDIR = $$IDE_APP_PATH
9 |
10 | include($$QTCANPOOL_DIR/src/rpath.pri)
11 |
12 | include($$QTCANPOOL_DIR/tests/common/common.pri)
13 |
14 | SOURCES += \
15 | $$files($$PWD/*.cpp)
16 |
--------------------------------------------------------------------------------
/tests/qxdock/auto/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "tst_global.h"
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QApplication app(argc, argv);
8 |
9 | TEST_RUN_ALL();
10 |
11 | return 0;
12 | }
13 |
--------------------------------------------------------------------------------
/tests/qxdock/auto/tst_docktab.cpp:
--------------------------------------------------------------------------------
1 | #include "tst_global.h"
2 |
3 | #include "qxdock/docktab.h"
4 | #include "qxdock/dockwidget.h"
5 |
6 | QX_DOCK_USE_NAMESPACE
7 |
8 | class tst_DockTab : public QObject
9 | {
10 | Q_OBJECT
11 | private slots:
12 | void tab();
13 | void active();
14 | };
15 |
16 | void tst_DockTab::tab()
17 | {
18 | DockWidget dw("dw");
19 | DockTab tab(&dw);
20 |
21 | QCOMPARE(tab.dockWidget(), &dw);
22 | QCOMPARE(tab.dockPanel(), nullptr);
23 | }
24 |
25 | void tst_DockTab::active()
26 | {
27 | DockWidget dw("dw");
28 | DockTab tab(&dw);
29 |
30 | int i = 0;
31 | connect(&tab, &DockTab::activeTabChanged, this, [&i](){
32 | ++i;
33 | });
34 |
35 | QCOMPARE(tab.isActive(), false);
36 |
37 | tab.setActive(true);
38 | QCOMPARE(tab.isActive(), true);
39 | QCOMPARE(i, 1);
40 | }
41 |
42 | TEST_ADD(tst_DockTab)
43 |
44 | #include "tst_docktab.moc"
45 |
--------------------------------------------------------------------------------
/tests/qxdock/auto/tst_dockwidget.cpp:
--------------------------------------------------------------------------------
1 | #include "tst_global.h"
2 |
3 | #include "qxdock/dockwidget.h"
4 |
5 | QX_DOCK_USE_NAMESPACE
6 |
7 | class tst_DockWidget : public QObject
8 | {
9 | Q_OBJECT
10 | private slots:
11 | void feature();
12 | };
13 |
14 | void tst_DockWidget::feature()
15 | {
16 | DockWidget dw("dock1");
17 | QCOMPARE(DockWidget::DefaultDockWidgetFeatures, dw.features());
18 | }
19 |
20 | TEST_ADD(tst_DockWidget)
21 |
22 | #include "tst_dockwidget.moc"
23 |
--------------------------------------------------------------------------------
/tests/qxdock/qxdock.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS = \
4 | auto
5 |
--------------------------------------------------------------------------------
/tests/qxribbon/auto/auto.pro:
--------------------------------------------------------------------------------
1 | QTC_LIB_DEPENDS += qxribbon
2 | include(../../../qtproject.pri)
3 |
4 | QT += widgets testlib
5 |
6 | CONFIG += c++11
7 | TARGET = tst_qxribbon
8 | DESTDIR = $$IDE_APP_PATH
9 |
10 | include($$QTCANPOOL_DIR/src/rpath.pri)
11 |
12 | include($$QTCANPOOL_DIR/tests/common/common.pri)
13 |
14 | SOURCES += \
15 | $$files($$PWD/*.cpp)
16 |
--------------------------------------------------------------------------------
/tests/qxribbon/auto/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "tst_global.h"
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | QApplication app(argc, argv);
8 |
9 | TEST_RUN_ALL();
10 |
11 | return 0;
12 | }
13 |
--------------------------------------------------------------------------------
/tests/qxribbon/auto/tst_ribbonbutton.cpp:
--------------------------------------------------------------------------------
1 | #include "tst_global.h"
2 |
3 | #include "qxribbon/ribbonbutton.h"
4 |
5 | QX_RIBBON_USE_NAMESPACE
6 |
7 | class tst_RibbonButton : public QObject
8 | {
9 | Q_OBJECT
10 | private slots:
11 | void buttonType();
12 | void size();
13 | };
14 |
15 | void tst_RibbonButton::buttonType()
16 | {
17 | RibbonButton btn;
18 |
19 | RibbonButton::RibbonButtonType type = btn.buttonType();
20 | QCOMPARE(type, RibbonButton::SmallButton);
21 | QCOMPARE(btn.toolButtonStyle(), Qt::ToolButtonTextBesideIcon);
22 |
23 | QCOMPARE(btn.largeButtonType(), RibbonButton::Normal);
24 |
25 | btn.setButtonType(RibbonButton::LargeButton);
26 | QCOMPARE(btn.buttonType(), RibbonButton::LargeButton);
27 | QCOMPARE(btn.toolButtonStyle(), Qt::ToolButtonTextUnderIcon);
28 |
29 | QCOMPARE(btn.largeButtonType(), RibbonButton::Normal);
30 |
31 | btn.setLargeButtonType(RibbonButton::Lite);
32 | QCOMPARE(btn.largeButtonType(), RibbonButton::Lite);
33 | }
34 |
35 | void tst_RibbonButton::size()
36 | {
37 | RibbonButton btn;
38 | QCOMPARE(btn.sizeHint(), btn.minimumSizeHint());
39 | }
40 |
41 | TEST_ADD(tst_RibbonButton)
42 |
43 | #include "tst_ribbonbutton.moc"
44 |
--------------------------------------------------------------------------------
/tests/qxribbon/auto/tst_ribbonquickaccessbar.cpp:
--------------------------------------------------------------------------------
1 | #include "tst_global.h"
2 |
3 | #include "qxribbon/ribbonquickaccessbar.h"
4 |
5 | QX_RIBBON_USE_NAMESPACE
6 |
7 | class tst_RibbonQuickAccessBar : public QObject
8 | {
9 | Q_OBJECT
10 | private slots:
11 | void visibleCount();
12 | void addAction();
13 | };
14 |
15 | void tst_RibbonQuickAccessBar::visibleCount()
16 | {
17 | RibbonQuickAccessBar qab;
18 | QVERIFY(qab.visibleCount() == 0);
19 | }
20 |
21 | void tst_RibbonQuickAccessBar::addAction()
22 | {
23 | RibbonQuickAccessBar qab;
24 |
25 | {
26 | QAction action(0);
27 |
28 | QCOMPARE(qab.actions().count(), 1); // actionCustomizeButton
29 | qab.addAction(&action);
30 | QCOMPARE(qab.actions().count(), 2);
31 | QCOMPARE(qab.actions()[0], &action);
32 | QCOMPARE(qab.visibleCount(), 1);
33 |
34 | qab.clear();
35 | QCOMPARE(qab.actions().count(), 1);
36 | QCOMPARE(qab.visibleCount(), 0);
37 | }
38 | }
39 |
40 | TEST_ADD(tst_RibbonQuickAccessBar)
41 |
42 | #include "tst_ribbonquickaccessbar.moc"
43 |
--------------------------------------------------------------------------------
/tests/qxribbon/qxribbon.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS = \
4 | auto
5 |
--------------------------------------------------------------------------------
/tests/tests.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS = \
4 | helloworld \
5 | qxdock \
6 | qxribbon
7 |
--------------------------------------------------------------------------------
/thirdparty/README.md:
--------------------------------------------------------------------------------
1 | # 说明
2 | 本目录主要提供一些链接第三方库进行开发的方法
3 |
4 | # 形式
5 | 通常,第三方库是以 include 和 lib 等非源码的形式提供
6 |
7 | # 位置
8 | 默认,第三方库放置在与 qtcanpool 同级的目录 3rdparty 中,形如:
9 | ```
10 | 3rdparty
11 | Boost
12 | ...
13 | qtcanpool
14 | ...
15 | thirdparty
16 | boost
17 | ...
18 | ```
19 | 可以根据实际情况放置,同时修改相关库的 pri 文件中的路径即可
20 |
--------------------------------------------------------------------------------
/thirdparty/ffmpeg/README.md:
--------------------------------------------------------------------------------
1 | # ffmpeg库
2 | - 官网:https://ffmpeg.org/download.html#build-windows
3 | - 版本:6.1-full_build-www.gyan.dev
4 | - 架构:x86_64
5 | - 压缩包:ffmpeg-6.1-full_build-shared.7z
6 | - 下载地址:https://www.gyan.dev/ffmpeg/builds/#release-builds
7 |
8 | # 使用
9 | 由于 ffmpeg 库较大,只提供连接库文件 ffmpeg.pri,如果要使用 ffmpeg,只需下载上述压缩包,然后解压到 qtcanpool 的同级目录 3rdparty 目录下的 ffmpeg 目录中。
10 |
11 | 目录结构示例如下:
12 | ```
13 | 3rdparty
14 | ffmpeg
15 | ffmpeg-6.1-full_build-shared
16 | qtcanpool
17 | thirdparty
18 | ffmpeg
19 | ffmpeg.pri
20 | ```
--------------------------------------------------------------------------------
/thirdparty/qtitan/qtitan.pri:
--------------------------------------------------------------------------------
1 | # Copyright (c) 2024 maminjie
2 | # SPDX-License-Identifier: MulanPSL-2.0
3 |
4 | QTITAN_VERSION = 1.5.1
5 | QTITAN_ROOT = $$PWD/../../../3rdparty/qtitan-$$QTITAN_VERSION
6 | QTITAN_ROOT = $$absolute_path($$QTITAN_ROOT)
7 |
8 | !exists($$QTITAN_ROOT) {
9 | error("$$QTITAN_ROOT: No such directory")
10 | }
11 |
12 | # msvc 2019 on Qt 5.15.2
13 | QTITAN_LIB_VERSION_LIST = $$split(QTITAN_VERSION, ".")
14 | QTITAN_LIB_VERSION = $$member(QTITAN_LIB_VERSION_LIST, 0)
15 |
16 | QTITAN_INC_PATH = $$QTITAN_ROOT/include
17 | QTITAN_LIB_PATH = $$QTITAN_ROOT/lib
18 |
19 | DEFINES += QTN_NAMESPACE
20 |
21 | INCLUDEPATH += $$QTITAN_INC_PATH
22 | LIBS *= -L$$QTITAN_LIB_PATH
23 |
24 | defineReplace(QtitanLibraryTargetName) {
25 | unset(LIBRARY_NAME)
26 | LIBRARY_NAME = $$1
27 | RET = $$LIBRARY_NAME
28 | CONFIG(debug, debug|release) {
29 | !debug_and_release|build_pass {
30 | win32:RET = $$member(RET, 0)d
31 | }
32 | }
33 | !isEmpty(QTITAN_LIB_VERSION):{
34 | RET = $$member(RET)$$member(QTITAN_LIB_VERSION)
35 | }
36 | return($$RET)
37 | }
38 |
39 | defineReplace(QtitanLibraryName) {
40 | RET = $$QtitanLibraryTargetName($$1)
41 | return($$RET)
42 | }
43 |
--------------------------------------------------------------------------------
/thirdparty/thirdparty.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 | CONFIG += ordered
3 |
4 | SUBDIRS +=
5 |
--------------------------------------------------------------------------------