├── .appveyor.yml
├── .clang-format
├── .gitattributes
├── .github
└── workflows
│ └── linux-builds.yml
├── .gitignore
├── .project
├── .travis.yml
├── CMakeLists.txt
├── LICENSE
├── MANIFEST.in
├── README.md
├── ads.pri
├── ads.pro
├── adsConfig.cmake
├── cmake
└── modules
│ ├── GetGitRevisionDescription.cmake
│ └── GetGitRevisionDescription.cmake.in
├── demo
├── CMakeLists.txt
├── ImageViewer.cpp
├── ImageViewer.h
├── MainWindow.cpp
├── MainWindow.h
├── MyDockAreaTitleBar.h
├── RenderWidget.cpp
├── RenderWidget.h
├── StatusDialog.cpp
├── StatusDialog.h
├── StatusDialog.ui
├── app.css
├── app.ico
├── app.rc
├── demo.pro
├── demo.qrc
├── images
│ ├── ads_icon.svg
│ ├── ads_icon2.svg
│ ├── ads_logo.svg
│ ├── ads_tile_blue.svg
│ ├── ads_tile_blue_light.svg
│ ├── ads_tile_green.svg
│ ├── ads_tile_orange.svg
│ ├── color_lens.svg
│ ├── create_floating_editor.svg
│ ├── create_floating_table.svg
│ ├── crop_original.svg
│ ├── custom-menu-button.svg
│ ├── date_range.svg
│ ├── docked_editor.svg
│ ├── edit.svg
│ ├── find_in_page.svg
│ ├── folder.svg
│ ├── folder_open.svg
│ ├── font_download.svg
│ ├── fullscreen.svg
│ ├── grid_on.svg
│ ├── help_outline.svg
│ ├── lock.svg
│ ├── lock_open.svg
│ ├── lock_outline.svg
│ ├── material_icons_license.txt
│ ├── note_add.svg
│ ├── panorama.svg
│ ├── perm_media.svg
│ ├── photo.svg
│ ├── picture_in_picture.svg
│ ├── plus.svg
│ ├── restore.svg
│ ├── save.svg
│ ├── tab.svg
│ ├── zoom_in.svg
│ ├── zoom_out.svg
│ └── zoom_out_map.svg
├── main.cpp
├── main.py
├── mainwindow.ui
├── res
│ └── visual_studio_light.css
└── status_dialog.py
├── doc
├── AutoHide_Animation.gif
├── AutoHide_Change_Sidebar.gif
├── AutoHide_Context_Menu.png
├── AutoHide_Drag_DockArea.gif
├── AutoHide_Drag_to_Float_or_Dock.gif
├── AutoHide_Drag_to_Sidebar.gif
├── AutoHide_Movie.gif
├── AutoHide_PinTo.png
├── AutoHide_Sort_Tabs.gif
├── AutoHide_Tab_Insert_Order.gif
├── DockArea_Tab_Insertion_Order.gif
├── Feature_ImageViewer.png
├── TabMenu.png
├── TabMenu_dark.png
├── ads_icon.svg
├── ads_icon_256.png
├── ads_icon_512.png
├── ads_logo.svg
├── ads_logo_ukraine.jpg
├── ads_qt_marketplace_description.md
├── ads_qt_marketplace_manifest.json
├── advanced-docking_video.png
├── autohide-feature-demo.png
├── central_widget.gif
├── cfg_flag_ActiveTabHasCloseButton_false.png
├── cfg_flag_ActiveTabHasCloseButton_true.png
├── cfg_flag_AllTabsHaveCloseButton_true.png
├── cfg_flag_AlwaysShowTabs_false_true.png
├── cfg_flag_AutoHideCloseButtonCollapsesDock_false.gif
├── cfg_flag_AutoHideCloseButtonCollapsesDock_true.gif
├── cfg_flag_AutoHideHasCloseButton.png
├── cfg_flag_AutoHideHasMinimizeButton.png
├── cfg_flag_AutoHideOpenOnDragHover.gif
├── cfg_flag_AutoHideSideBarsIconOnly_false.png
├── cfg_flag_AutoHideSideBarsIconOnly_true.png
├── cfg_flag_DisableTabTextEliding_false.png
├── cfg_flag_DisableTabTextEliding_true.png
├── cfg_flag_DockAreaDynamicTabsMenuButtonVisibility_true_hidden.png
├── cfg_flag_DockAreaDynamicTabsMenuButtonVisibility_true_visible.png
├── cfg_flag_DockAreaHasAutoHideButton.png
├── cfg_flag_DockAreaHasCloseButton_false.png
├── cfg_flag_DockAreaHasCloseButton_true.png
├── cfg_flag_DockAreaHasTabsMenuButton_false_true.png
├── cfg_flag_DockAreaHasUndockButton_false_true.png
├── cfg_flag_DockAreaHideDisabledButtons_false.png
├── cfg_flag_DockAreaHideDisabledButtons_true.png
├── cfg_flag_DragPreviewHasWindowFrame_true.png
├── cfg_flag_DragPreviewShowsContentPixmap_false.png
├── cfg_flag_DragPreviewShowsContentPixmap_true.png
├── cfg_flag_EqualSplitOnInsertion_false.png
├── cfg_flag_EqualSplitOnInsertion_true.png
├── cfg_flag_FloatingContainerForceNativeTitleBar_false.png
├── cfg_flag_FloatingContainerForceNativeTitleBar_true.png
├── cfg_flag_FloatingContainerHasWidgetIcon_false.png
├── cfg_flag_FloatingContainerHasWidgetIcon_true.png
├── cfg_flag_FloatingContainerHasWidgetTitle_false.png
├── cfg_flag_FloatingContainerHasWidgetTitle_true.png
├── cfg_flag_FocusHighlighting.gif
├── cfg_flag_HideSingleCentralWidgetTitleBar_false.png
├── cfg_flag_HideSingleCentralWidgetTitleBar_true.png
├── cfg_flag_MiddleMouseButtonClosesTab.gif
├── cfg_flag_RetainTabSizeWhenCloseButtonHidden_true.png
├── cfg_flag_ShowTabTextOnlyForActiveTab_true.png
├── donate.png
├── dynamic_drag_preview.gif
├── floating-widget-dragndrop.png
├── floating-widget-dragndrop_dark.png
├── grouped-dragging.gif
├── grouped-dragging.png
├── grouped-dragging_dark.png
├── linux_kubuntu_1804.png
├── linux_ubuntu_1910.png
├── macos.png
├── non_opaque_resizing.gif
├── non_opaque_undocking.gif
├── opaque_resizing.gif
├── opaque_undocking.gif
├── perspectives.gif
├── perspectives.png
├── perspectives_dark.png
├── preview-dragndrop.png
├── preview-dragndrop_dark.png
├── preview_dark.png
├── python_logo.png
├── showcase_adtf.png
├── showcase_d-tect-x.jpg
├── showcase_d-tect-x.png
├── showcase_dream3d_nx.png
├── showcase_ezEngine_editor.png
├── showcase_hivewe.png
├── showcase_labplot.png
├── showcase_metgem.png
├── showcase_notepad_next.png
├── showcase_plot_juggler.png
├── showcase_pre_workbench.png
├── showcase_qmix_elements.png
├── showcase_qt_design_studio.png
├── showcase_qt_design_studio_video.png
├── showcase_qtcreator.png
├── showcase_ramses_composer.png
├── showcase_resinsight.png
├── showcase_robox_ide.png
├── tab_menu.gif
├── taiwan_ukraine.jpg
├── ukraine.jpg
└── user-guide.md
├── examples
├── CMakeLists.txt
├── autohide
│ ├── CMakeLists.txt
│ ├── autohide.pro
│ ├── main.cpp
│ ├── main.py
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ └── mainwindow.ui
├── autohidedragndrop
│ ├── CMakeLists.txt
│ ├── autohidedragndrop.pro
│ ├── droppableitem.cpp
│ ├── droppableitem.h
│ ├── main.cpp
│ ├── main.py
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ └── mainwindow.ui
├── centralwidget
│ ├── CMakeLists.txt
│ ├── centralwidget.pro
│ ├── main.cpp
│ ├── main.py
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ └── mainwindow.ui
├── configflags
│ ├── CMakeLists.txt
│ ├── configflags.pro
│ ├── main.cpp
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ └── mainwindow.ui
├── deleteonclose
│ ├── CMakeLists.txt
│ ├── deleteonclose.pro
│ ├── main.cpp
│ └── main.py
├── dockindock
│ ├── CMakeLists.txt
│ ├── dockindock.cpp
│ ├── dockindock.h
│ ├── dockindock.pro
│ ├── dockindock.py
│ ├── dockindockmanager.cpp
│ ├── dockindockmanager.h
│ ├── dockindockmanager.py
│ ├── main.cpp
│ ├── main.py
│ ├── mainframe.cpp
│ ├── mainframe.h
│ ├── perspectiveactions.cpp
│ ├── perspectiveactions.h
│ ├── perspectiveactions.py
│ ├── perspectives.cpp
│ ├── perspectives.h
│ └── perspectives.py
├── emptydockarea
│ ├── CMakeLists.txt
│ ├── emptydockarea.pro
│ ├── main.cpp
│ ├── main.py
│ ├── mainwindow.cpp
│ ├── mainwindow.h
│ └── mainwindow.ui
├── examples.pro
├── hideshow
│ ├── CMakeLists.txt
│ ├── MainWindow.cpp
│ ├── MainWindow.h
│ ├── MainWindow.ui
│ ├── hideshow.pro
│ └── main.cpp
├── sidebar
│ ├── CMakeLists.txt
│ ├── MainWindow.cpp
│ ├── MainWindow.h
│ ├── MainWindow.ui
│ ├── main.cpp
│ ├── main.py
│ └── sidebar.pro
└── simple
│ ├── CMakeLists.txt
│ ├── MainWindow.cpp
│ ├── MainWindow.h
│ ├── MainWindow.ui
│ ├── main.cpp
│ ├── main.py
│ └── simple.pro
├── gnu-lgpl-v2.1.md
├── persist
└── perspectives.ini
├── project.py
├── pyproject.toml
├── sip
├── AutoHideDockContainer.sip
├── AutoHideSideBar.sip
├── AutoHideTab.sip
├── DockAreaTabBar.sip
├── DockAreaTitleBar.sip
├── DockAreaTitleBar_p.sip
├── DockAreaWidget.sip
├── DockComponentsFactory.sip
├── DockContainerWidget.sip
├── DockFocusController.sip
├── DockManager.sip
├── DockOverlay.sip
├── DockSplitter.sip
├── DockWidget.sip
├── DockWidgetTab.sip
├── DockingStateReader.sip
├── ElidingLabel.sip
├── FloatingDockContainer.sip
├── FloatingDragPreview.sip
├── IconProvider.sip
├── PushButton.sip
├── ResizeHandle.sip
├── ads.sip
├── ads_globals.sip
└── linux
│ └── FloatingWidgetTitleBar.sip
└── src
├── AutoHideDockContainer.cpp
├── AutoHideDockContainer.h
├── AutoHideSideBar.cpp
├── AutoHideSideBar.h
├── AutoHideTab.cpp
├── AutoHideTab.h
├── CMakeLists.txt
├── DockAreaTabBar.cpp
├── DockAreaTabBar.h
├── DockAreaTitleBar.cpp
├── DockAreaTitleBar.h
├── DockAreaTitleBar_p.h
├── DockAreaWidget.cpp
├── DockAreaWidget.h
├── DockComponentsFactory.cpp
├── DockComponentsFactory.h
├── DockContainerWidget.cpp
├── DockContainerWidget.h
├── DockFocusController.cpp
├── DockFocusController.h
├── DockManager.cpp
├── DockManager.h
├── DockOverlay.cpp
├── DockOverlay.h
├── DockSplitter.cpp
├── DockSplitter.h
├── DockWidget.cpp
├── DockWidget.h
├── DockWidgetTab.cpp
├── DockWidgetTab.h
├── DockingStateReader.cpp
├── DockingStateReader.h
├── ElidingLabel.cpp
├── ElidingLabel.h
├── FloatingDockContainer.cpp
├── FloatingDockContainer.h
├── FloatingDragPreview.cpp
├── FloatingDragPreview.h
├── IconProvider.cpp
├── IconProvider.h
├── PushButton.cpp
├── PushButton.h
├── ResizeHandle.cpp
├── ResizeHandle.h
├── ads.qrc
├── ads_globals.cpp
├── ads_globals.h
├── 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
├── linux
├── FloatingWidgetTitleBar.cpp
└── FloatingWidgetTitleBar.h
├── qtadvanceddockingConfig.cmake
├── src.pro
└── stylesheets
├── default.css
├── default_linux.css
├── focus_highlighting.css
└── focus_highlighting_linux.css
/.gitattributes:
--------------------------------------------------------------------------------
1 | PyQtAds/_version.py export-subst
2 |
--------------------------------------------------------------------------------
/.github/workflows/linux-builds.yml:
--------------------------------------------------------------------------------
1 | name: linux-builds
2 |
3 | on: [push]
4 |
5 | jobs:
6 | build_ubuntu_2204_cmake:
7 | runs-on: ubuntu-22.04
8 |
9 | env:
10 | QT_VERSION: 6.4.2
11 | QT_DIR: ${{ github.workspace }}/Qt
12 |
13 | steps:
14 | - name: Checkout source
15 | uses: actions/checkout@v4
16 | with:
17 | fetch-depth: 0 # Fetch full history and tags
18 |
19 | - name: Install dependencies
20 | run: |
21 | sudo apt-get update
22 | sudo apt-get install -y build-essential cmake ninja-build libgl1-mesa-dev libxkbcommon-x11-0 libx11-dev
23 |
24 | - name: Install Qt
25 | uses: jurplel/install-qt-action@v3
26 | with:
27 | version: ${{ env.QT_VERSION }}
28 | target: desktop
29 | host: linux
30 | arch: gcc_64
31 | dir: ${{ env.QT_DIR }}
32 | setup-python: false
33 |
34 | - name: Configure with CMake
35 | run: |
36 | cmake -S . -B build \
37 | -DCMAKE_PREFIX_PATH="${{ env.QT_DIR }}/Qt/${{ env.QT_VERSION }}/gcc_64" \
38 | -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install \
39 | -DCMAKE_BUILD_TYPE=Release \
40 | -G Ninja
41 |
42 | - name: Build
43 | run: cmake --build build
44 |
45 | - name: Run CMake install (optional)
46 | run: cmake --install build
47 |
48 | build_ubuntu_2204:
49 | runs-on: ubuntu-22.04
50 | steps:
51 | - uses: actions/checkout@v2
52 | - name: Cache Qt
53 | id: cache-qt-6-4
54 | uses: actions/cache@v3
55 | with:
56 | path: ../Qt/6.4.2
57 | key: ${{ runner.os }}-QtCache-Qt6-4
58 |
59 | - name: Install Qt
60 | uses: jurplel/install-qt-action@v2
61 | with:
62 | version: '6.4.2'
63 | host: 'linux'
64 | target: 'desktop'
65 | install-deps: true
66 | cached: ${{ steps.cache-qt-6-4.outputs.cache-hit }}
67 | setup-python: true
68 | tools: ''
69 | tools-only: false
70 |
71 | - name: Install needed xkbcommon symlink
72 | run: sudo apt-get install libxkbcommon-dev -y
73 |
74 | - name: Ubuntu and Qt version
75 | run: |
76 | cat /etc/issue
77 | echo number of processors: $(nproc)
78 | qmake -v
79 | - name: qmake
80 | run: qmake
81 | - name: make
82 | run: make -j$(nproc)
83 |
--------------------------------------------------------------------------------
/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | QtAdvancedDockingSystem
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.cdt.managedbuilder.core.genmakebuilder
10 | clean,full,incremental,
11 |
12 |
13 |
14 |
15 | org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
16 | full,incremental,
17 |
18 |
19 |
20 |
21 |
22 | org.eclipse.cdt.core.cnature
23 | org.eclipse.cdt.core.ccnature
24 | org.eclipse.cdt.managedbuilder.core.managedBuildNature
25 | org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
26 |
27 |
28 |
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
3 | if (POLICY CMP0091)
4 | cmake_policy(SET CMP0091 NEW)
5 | endif (POLICY CMP0091)
6 |
7 | # By default, the version information is extracted from the git index. However,
8 | # we can override this behavior by explicitly setting ADS_VERSION and
9 | # skipping the git checks. This is useful for cases where this project is being
10 | # used independently of its original git repo (e.g. vendored in another project)
11 | if(NOT ADS_VERSION)
12 | set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
13 | include(GetGitRevisionDescription)
14 | git_describe(GitTagVersion --tags)
15 | string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GitTagVersion}")
16 | string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GitTagVersion}")
17 | string(REGEX REPLACE "^[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GitTagVersion}")
18 | set(VERSION_SHORT "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
19 | else()
20 | string(REGEX MATCHALL "[\.]" VERSION_DOT_MATCHES ${ADS_VERSION})
21 | list(LENGTH VERSION_DOT_MATCHES VERSION_DOT_COUNT)
22 | if(VERSION_DOT_COUNT EQUAL 2)
23 | set(VERSION_SHORT ${ADS_VERSION})
24 | else()
25 | message(FATAL_ERROR "ADS_VERSION must be in major.minor.patch format, e.g. 3.8.1. Got ${ADS_VERSION}")
26 | endif()
27 | endif()
28 |
29 |
30 | project(QtADS LANGUAGES CXX VERSION ${VERSION_SHORT})
31 |
32 | option(BUILD_STATIC "Build the static library" OFF)
33 | option(BUILD_EXAMPLES "Build the examples" ON)
34 |
35 | if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
36 | set(ads_PlatformDir "x86")
37 | else()
38 | set(ads_PlatformDir "x64")
39 | endif()
40 |
41 | add_subdirectory(src)
42 |
43 | if(BUILD_EXAMPLES)
44 | add_subdirectory(examples)
45 | add_subdirectory(demo)
46 | endif()
47 |
48 |
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include versioneer.py
2 | include PyQtAds/_version.py
3 |
--------------------------------------------------------------------------------
/ads.pri:
--------------------------------------------------------------------------------
1 |
2 | CONFIG(debug, debug|release){
3 | win32-g++ {
4 | versionAtLeast(QT_VERSION, 5.15.0) {
5 | LIBS += -lqtadvanceddocking
6 | }
7 | else {
8 | LIBS += -lqtadvanceddockingd
9 | }
10 | }
11 | else:msvc {
12 | LIBS += -lqtadvanceddockingd
13 | }
14 | else:mac {
15 | LIBS += -lqtadvanceddocking_debug
16 | }
17 | else {
18 | LIBS += -lqtadvanceddocking
19 | }
20 | }
21 | else{
22 | LIBS += -lqtadvanceddocking
23 | }
24 |
25 |
26 | unix:!macx {
27 | LIBS += -lxcb
28 | }
29 |
--------------------------------------------------------------------------------
/ads.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS = \
4 | src \
5 | demo \
6 | examples
7 |
8 | demo.depends = src
9 | examples.depends = src
10 |
--------------------------------------------------------------------------------
/adsConfig.cmake:
--------------------------------------------------------------------------------
1 | include(CMakeFindDependencyMacro)
2 | find_dependency(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
3 | find_dependency(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
4 | find_dependency(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
5 | include("${CMAKE_CURRENT_LIST_DIR}/adsTargets.cmake")
--------------------------------------------------------------------------------
/cmake/modules/GetGitRevisionDescription.cmake.in:
--------------------------------------------------------------------------------
1 | #
2 | # Internal file for GetGitRevisionDescription.cmake
3 | #
4 | # Requires CMake 2.6 or newer (uses the 'function' command)
5 | #
6 | # Original Author:
7 | # 2009-2010 Ryan Pavlik
8 | # http://academic.cleardefinition.com
9 | # Iowa State University HCI Graduate Program/VRAC
10 | #
11 | # Copyright Iowa State University 2009-2010.
12 | # Distributed under the Boost Software License, Version 1.0.
13 | # (See accompanying file LICENSE_1_0.txt or copy at
14 | # http://www.boost.org/LICENSE_1_0.txt)
15 |
16 | set(HEAD_HASH)
17 |
18 | file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024)
19 |
20 | string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS)
21 | if(HEAD_CONTENTS MATCHES "ref")
22 | # named branch
23 | string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}")
24 | if(EXISTS "@GIT_DIR@/${HEAD_REF}")
25 | configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY)
26 | else()
27 | configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY)
28 | file(READ "@GIT_DATA@/packed-refs" PACKED_REFS)
29 | if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}")
30 | set(HEAD_HASH "${CMAKE_MATCH_1}")
31 | endif()
32 | endif()
33 | else()
34 | # detached HEAD
35 | configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY)
36 | endif()
37 |
38 | if(NOT HEAD_HASH)
39 | file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024)
40 | string(STRIP "${HEAD_HASH}" HEAD_HASH)
41 | endif()
42 |
--------------------------------------------------------------------------------
/demo/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_demo VERSION ${VERSION_SHORT})
3 |
4 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
5 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets Quick QuickWidgets REQUIRED)
6 | if(WIN32 AND QT_VERSION_MAJOR LESS 6)
7 | find_package(Qt${QT_VERSION_MAJOR} COMPONENTS AxContainer REQUIRED)
8 | endif()
9 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
10 | set(ads_demo_SRCS
11 | main.cpp
12 | MainWindow.cpp
13 | mainwindow.ui
14 | StatusDialog.cpp
15 | StatusDialog.ui
16 | ImageViewer.cpp
17 | RenderWidget.cpp
18 | demo.qrc
19 | )
20 | add_executable(AdvancedDockingSystemDemo WIN32 ${ads_demo_SRCS})
21 | target_include_directories(AdvancedDockingSystemDemo PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../src")
22 | target_link_libraries(AdvancedDockingSystemDemo PUBLIC Qt${QT_VERSION_MAJOR}::Core
23 | Qt${QT_VERSION_MAJOR}::Gui
24 | Qt${QT_VERSION_MAJOR}::Widgets
25 | Qt${QT_VERSION_MAJOR}::Quick
26 | Qt${QT_VERSION_MAJOR}::QuickWidgets)
27 | if(WIN32 AND QT_VERSION_MAJOR LESS 6)
28 | target_link_libraries(AdvancedDockingSystemDemo PUBLIC Qt${QT_VERSION_MAJOR}::AxContainer)
29 | endif()
30 | target_link_libraries(AdvancedDockingSystemDemo PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
31 | set_target_properties(AdvancedDockingSystemDemo PROPERTIES
32 | AUTOMOC ON
33 | AUTORCC ON
34 | AUTOUIC ON
35 | CXX_STANDARD 14
36 | CXX_STANDARD_REQUIRED ON
37 | CXX_EXTENSIONS OFF
38 | VERSION ${VERSION_SHORT}
39 | EXPORT_NAME "Qt Advanced Docking System Demo"
40 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
41 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
42 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
43 | )
44 | #if(BUILD_STATIC)
45 | # target_compile_definitions(AdvancedDockingSystemDemo PRIVATE ADS_STATIC)
46 | #endif()
47 |
48 |
--------------------------------------------------------------------------------
/demo/ImageViewer.h:
--------------------------------------------------------------------------------
1 | #ifndef ImageViewerH
2 | #define ImageViewerH
3 | //============================================================================
4 | /// \file ImageViewer.h
5 | /// \author Uwe Kindler
6 | /// \date 04.11.2022
7 | /// \brief Declaration of CImageViewer
8 | //============================================================================
9 |
10 | //============================================================================
11 | // INCLUDES
12 | //============================================================================
13 | #include
14 |
15 | QT_BEGIN_NAMESPACE
16 | class QLabel;
17 | QT_END_NAMESPACE
18 |
19 |
20 | struct ImageViewerPrivate;
21 |
22 | /**
23 | * Tiny simple image viewer for showing images in demo
24 | */
25 | class CImageViewer : public QScrollArea
26 | {
27 | Q_OBJECT
28 | public:
29 | using Super = QScrollArea;
30 |
31 | explicit CImageViewer(QWidget *parent = nullptr);
32 | virtual ~CImageViewer();
33 |
34 | bool loadFile(const QString& Filename);
35 | void setImage(const QImage &newImage);
36 |
37 | public Q_SLOTS:
38 | void open();
39 | void zoomIn();
40 | void zoomOut();
41 | void normalSize();
42 | void fitToWindow();
43 |
44 | protected:
45 | /**
46 | * @brief Reimplemented from QScrollArea to adjust image scaling if m_AutoFit is
47 | * true.
48 | */
49 | virtual void resizeEvent(QResizeEvent* ResizeEvent);
50 |
51 | /**
52 | * @brief Handle mouse press events.
53 | */
54 | virtual void mousePressEvent(QMouseEvent* Event);
55 |
56 | /**
57 | * @brief Handles mouse release events.
58 | */
59 | virtual void mouseReleaseEvent(QMouseEvent* Event);
60 |
61 | /**
62 | * @brief Handle mouse move events.
63 | */
64 | virtual void mouseMoveEvent(QMouseEvent* Event);
65 |
66 | /**
67 | * @brief Use mouse wheel to change scaling of the image.
68 | */
69 | virtual void wheelEvent(QWheelEvent* Event);
70 |
71 | private:
72 | /**
73 | * @brief Create the wiget actions.
74 | */
75 | void createActions();
76 |
77 | /**
78 | * @brief Adjust size of render widget in case of image size change.
79 | * @param[in] Image The new image that may have a different image size.
80 | */
81 | void adjustDisplaySize(const QImage& Image);
82 |
83 | ImageViewerPrivate* d;
84 | friend ImageViewerPrivate;
85 | };
86 |
87 | //---------------------------------------------------------------------------
88 | #endif // ImageViewerH
89 |
--------------------------------------------------------------------------------
/demo/MainWindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 | /*******************************************************************************
4 | ** Qt Advanced Docking System
5 | ** Copyright (C) 2017 Uwe Kindler
6 | **
7 | ** This library is free software; you can redistribute it and/or
8 | ** modify it under the terms of the GNU Lesser General Public
9 | ** License as published by the Free Software Foundation; either
10 | ** version 2.1 of the License, or (at your option) any later version.
11 | **
12 | ** This library is distributed in the hope that it will be useful,
13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | ** Lesser General Public License for more details.
16 | **
17 | ** You should have received a copy of the GNU Lesser General Public
18 | ** License along with this library; If not, see .
19 | ******************************************************************************/
20 |
21 |
22 | //============================================================================
23 | /// \file MainWindow.h
24 | /// \author Uwe Kindler
25 | /// \date 13.02.2018
26 | /// \brief Declaration of CMainWindow class
27 | //============================================================================
28 |
29 |
30 | //============================================================================
31 | // INCLUDES
32 | //============================================================================
33 | #include
34 |
35 |
36 |
37 | struct MainWindowPrivate;
38 |
39 |
40 | /**
41 | * Simple main window for demo
42 | */
43 | class CMainWindow : public QMainWindow
44 | {
45 | Q_OBJECT
46 | private:
47 | MainWindowPrivate* d;///< private data - pimpl
48 | friend struct MainWindowPrivate;
49 |
50 | protected:
51 | virtual void closeEvent(QCloseEvent* event) override;
52 |
53 | public:
54 | explicit CMainWindow(QWidget *parent = 0);
55 | virtual ~CMainWindow();
56 |
57 | private slots:
58 | void on_actionSaveState_triggered(bool);
59 | void on_actionRestoreState_triggered(bool);
60 | void savePerspective();
61 | void onViewToggled(bool Open);
62 | void onViewVisibilityChanged(bool Visible);
63 | void createEditor();
64 | void createTable();
65 | void onEditorCloseRequested();
66 | void onImageViewerCloseRequested();
67 | void showStatusDialog();
68 | void toggleDockWidgetWindowTitle();
69 | void applyVsStyle();
70 | void createImageViewer();
71 | void lockWorkspace(bool Value);
72 | };
73 |
74 | #endif // MAINWINDOW_H
75 |
--------------------------------------------------------------------------------
/demo/MyDockAreaTitleBar.h:
--------------------------------------------------------------------------------
1 | #ifndef QTADS_MYDOCKAREATITLEBAR_H
2 | #define QTADS_MYDOCKAREATITLEBAR_H
3 | /*******************************************************************************
4 | ** Qt Advanced Docking System
5 | ** Copyright (C) 2017 Uwe Kindler
6 | **
7 | ** This library is free software; you can redistribute it and/or
8 | ** modify it under the terms of the GNU Lesser General Public
9 | ** License as published by the Free Software Foundation; either
10 | ** version 2.1 of the License, or (at your option) any later version.
11 | **
12 | ** This library is distributed in the hope that it will be useful,
13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | ** Lesser General Public License for more details.
16 | **
17 | ** You should have received a copy of the GNU Lesser General Public
18 | ** License along with this library; If not, see .
19 | ******************************************************************************/
20 |
21 |
22 | //============================================================================
23 | // INCLUDES
24 | //============================================================================
25 | #include
26 |
27 |
28 | /**
29 | * Custom DockAreaTitleBar that adds a custom context menu
30 | */
31 | class MyDockAreaTitleBar : public ads::CDockAreaTitleBar
32 | {
33 | public:
34 | explicit MyDockAreaTitleBar(ads::CDockAreaWidget *parent) :
35 | CDockAreaTitleBar(parent)
36 | {
37 | }
38 |
39 | QMenu* buildContextMenu(QMenu*) override
40 | {
41 | auto menu = ads::CDockAreaTitleBar::buildContextMenu(nullptr);
42 | menu->addSeparator();
43 | auto action = menu->addAction(tr("Format HardDrive"));
44 |
45 | connect(action, &QAction::triggered, this, [this]()
46 | {
47 | QMessageBox msgBox;
48 | msgBox.setText("No, just kidding");
49 | msgBox.setStandardButtons(QMessageBox::Abort);
50 | msgBox.setDefaultButton(QMessageBox::Abort);
51 | msgBox.exec();
52 | });
53 |
54 | return menu;
55 | }
56 | };
57 |
58 | #endif // QTADS_MYDOCKAREATITLEBAR_H
59 |
--------------------------------------------------------------------------------
/demo/StatusDialog.h:
--------------------------------------------------------------------------------
1 | #ifndef StatusDialogH
2 | #define StatusDialogH
3 | //============================================================================
4 | /// \file StatusDialog.h
5 | /// \author Uwe Kindler
6 | /// \date 13.04.2020
7 | /// \brief Declaration of CStatusDialog class
8 | //============================================================================
9 |
10 | //============================================================================
11 | // INCLUDES
12 | //============================================================================
13 | #include
14 |
15 | namespace ads {class CDockManager;}
16 | struct StatusDialogPrivate;
17 |
18 | /**
19 | * Displays status info about dock widgets
20 | */
21 | class CStatusDialog : public QDialog
22 | {
23 | Q_OBJECT
24 | private:
25 | StatusDialogPrivate* d; ///< private data (pimpl)
26 | friend struct StatusDialogPrivate;
27 |
28 | private slots:
29 | void on_dockWidgetsComboBox_currentIndexChanged(int index);
30 |
31 | protected:
32 | public:
33 | using Super = QDialog;
34 | /**
35 | * Default Constructor
36 | */
37 | CStatusDialog(ads::CDockManager* parent);
38 |
39 | /**
40 | * Virtual Destructor
41 | */
42 | virtual ~CStatusDialog();
43 | }; // class StatusDialog
44 |
45 | // namespace namespace_name
46 | //-----------------------------------------------------------------------------
47 | #endif // StatusDialogH
48 |
--------------------------------------------------------------------------------
/demo/app.css:
--------------------------------------------------------------------------------
1 | ads--CTitleBarButton::menu-indicator
2 | {
3 | image: none;
4 | }
--------------------------------------------------------------------------------
/demo/app.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/demo/app.ico
--------------------------------------------------------------------------------
/demo/app.rc:
--------------------------------------------------------------------------------
1 | IDI_ICON1 ICON DISCARDABLE "app.ico"
2 |
--------------------------------------------------------------------------------
/demo/demo.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/..
2 |
3 | TARGET = AdvancedDockingSystemDemo
4 | DESTDIR = $${ADS_OUT_ROOT}/lib
5 | QT += core gui widgets quick quickwidgets
6 |
7 | include(../ads.pri)
8 |
9 | lessThan(QT_MAJOR_VERSION, 6) {
10 | win32 {
11 | QT += axcontainer
12 | }
13 | }
14 |
15 | CONFIG += c++14
16 | CONFIG += debug_and_release
17 | DEFINES += QT_DEPRECATED_WARNINGS
18 | RC_FILE += app.rc
19 |
20 | adsBuildStatic {
21 | DEFINES += ADS_STATIC
22 | }
23 |
24 |
25 | HEADERS += \
26 | MainWindow.h \
27 | StatusDialog.h \
28 | ImageViewer.h \
29 | RenderWidget.h
30 |
31 | SOURCES += \
32 | main.cpp \
33 | MainWindow.cpp \
34 | StatusDialog.cpp \
35 | ImageViewer.cpp \
36 | RenderWidget.cpp
37 |
38 | FORMS += \
39 | mainwindow.ui \
40 | StatusDialog.ui
41 |
42 | RESOURCES += demo.qrc
43 |
44 |
45 | LIBS += -L$${ADS_OUT_ROOT}/lib
46 |
47 |
48 | INCLUDEPATH += ../src
49 | DEPENDPATH += ../src
50 |
--------------------------------------------------------------------------------
/demo/demo.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | images/folder.svg
4 | images/folder_open.svg
5 | images/note_add.svg
6 | images/picture_in_picture.svg
7 | images/restore.svg
8 | images/save.svg
9 | images/date_range.svg
10 | images/edit.svg
11 | images/grid_on.svg
12 | images/custom-menu-button.svg
13 | app.css
14 | images/plus.svg
15 | images/help_outline.svg
16 | images/fullscreen.svg
17 | images/create_floating_editor.svg
18 | images/create_floating_table.svg
19 | images/docked_editor.svg
20 | images/tab.svg
21 | res/visual_studio_light.css
22 | images/color_lens.svg
23 | images/ads_icon.svg
24 | images/ads_logo.svg
25 | images/find_in_page.svg
26 | images/perm_media.svg
27 | images/zoom_in.svg
28 | images/zoom_out.svg
29 | images/zoom_out_map.svg
30 | images/ads_tile_blue.svg
31 | images/ads_tile_blue_light.svg
32 | images/ads_tile_green.svg
33 | images/ads_tile_orange.svg
34 | images/photo.svg
35 | images/crop_original.svg
36 | images/panorama.svg
37 | images/ads_icon2.svg
38 | images/font_download.svg
39 | images/lock_outline.svg
40 | images/lock.svg
41 | images/lock_open.svg
42 |
43 |
44 |
--------------------------------------------------------------------------------
/demo/images/ads_icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/demo/images/ads_icon2.svg:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/demo/images/ads_logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
13 |
--------------------------------------------------------------------------------
/demo/images/color_lens.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/crop_original.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/date_range.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/docked_editor.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/edit.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/find_in_page.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/folder.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/folder_open.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/font_download.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/fullscreen.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/grid_on.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/help_outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/lock.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/lock_open.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/lock_outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/note_add.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/panorama.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/perm_media.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/photo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/picture_in_picture.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/restore.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/save.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/tab.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/zoom_in.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/zoom_out.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/images/zoom_out_map.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/demo/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include
5 | #include
6 |
7 | #include
8 |
9 |
10 |
11 | void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
12 | {
13 | QByteArray localMsg = msg.toLocal8Bit();
14 | switch (type) {
15 | case QtDebugMsg:
16 | fprintf(stdout, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
17 | break;
18 | case QtInfoMsg:
19 | fprintf(stdout, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
20 | break;
21 | case QtWarningMsg:
22 | fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
23 | break;
24 | case QtCriticalMsg:
25 | fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
26 | break;
27 | case QtFatalMsg:
28 | fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
29 | abort();
30 | }
31 |
32 | fflush(stderr);
33 | fflush(stdout);
34 | }
35 |
36 | int main(int argc, char *argv[])
37 | {
38 | #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
39 | QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
40 | #if QT_VERSION >= 0x050600
41 | QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
42 | #endif
43 | #endif
44 | std::shared_ptr b;
45 | QApplication a(argc, argv);
46 | a.setApplicationName("Advanced Docking System Demo");
47 | a.setQuitOnLastWindowClosed(true);
48 | a.setWindowIcon(QIcon(":/adsdemo/images/ads_icon2.svg"));
49 |
50 | qInstallMessageHandler(myMessageOutput);
51 | qDebug() << "Message handler test";
52 |
53 | CMainWindow mw;
54 | mw.show();
55 |
56 | QFile StyleSheetFile(":/adsdemo/app.css");
57 | StyleSheetFile.open(QIODevice::ReadOnly);
58 | QTextStream StyleSheetStream(&StyleSheetFile);
59 | a.setStyleSheet(StyleSheetStream.readAll());
60 | StyleSheetFile.close();
61 | return a.exec();
62 | }
63 |
--------------------------------------------------------------------------------
/demo/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 400
10 | 300
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 | QMainWindow::AllowTabbedDocks
18 |
19 |
20 |
21 |
57 |
58 |
59 | toolBar
60 |
61 |
62 | TopToolBarArea
63 |
64 |
65 | false
66 |
67 |
68 |
69 |
70 | Exit
71 |
72 |
73 |
74 |
75 | Save State
76 |
77 |
78 |
79 |
80 | Restore State
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
--------------------------------------------------------------------------------
/demo/status_dialog.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 |
4 | from PyQt5 import uic
5 | import PyQtAds as QtAds
6 |
7 | UI_FILE = os.path.join(os.path.dirname(__file__), 'StatusDialog.ui')
8 | StatusDialogUI, StatusDialogBase = uic.loadUiType(UI_FILE)
9 |
10 | class CStatusDialog(StatusDialogUI, StatusDialogBase):
11 |
12 | def __init__(self, dock_manager: QtAds.CDockManager, parent=None):
13 | super().__init__(parent)
14 |
15 | self.setupUi(self)
16 |
17 | self.dock_manager = dock_manager
18 | self.dock_widgets = self.dock_manager.dockWidgetsMap()
19 |
20 | for key, widget in self.dock_widgets.items():
21 | self.dockWidgetsComboBox.addItem(key, widget)
22 |
23 | def on_dockWidgetsComboBox_currentIndexChanged(self, index: int):
24 | if not isinstance(index, int):
25 | return
26 | if index < 0:
27 | return
28 |
29 | dock_widget = self.dockWidgetsComboBox.currentData()
30 | self.isClosedCheckBox.setChecked(dock_widget.isClosed())
31 | self.isFloatingCheckBox.setChecked(dock_widget.isFloating())
32 | self.tabbedCheckBox.setChecked(dock_widget.isTabbed())
33 | self.isCurrentTabCheckBox.setChecked(dock_widget.isCurrentTab())
34 | self.closableCheckBox.setChecked(dock_widget.features() & QtAds.CDockWidget.DockWidgetClosable)
35 | self.movableCheckBox.setChecked(dock_widget.features() & QtAds.CDockWidget.DockWidgetMovable)
36 | self.floatableCheckBox.setChecked(dock_widget.features() & QtAds.CDockWidget.DockWidgetFloatable)
37 | self.deleteOnCloseCheckBox.setChecked(dock_widget.features() & QtAds.CDockWidget.DockWidgetDeleteOnClose)
38 | self.customCloseHandlingCheckBox.setChecked(dock_widget.features() & QtAds.CDockWidget.CustomCloseHandling)
39 |
--------------------------------------------------------------------------------
/doc/AutoHide_Animation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Animation.gif
--------------------------------------------------------------------------------
/doc/AutoHide_Change_Sidebar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Change_Sidebar.gif
--------------------------------------------------------------------------------
/doc/AutoHide_Context_Menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Context_Menu.png
--------------------------------------------------------------------------------
/doc/AutoHide_Drag_DockArea.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Drag_DockArea.gif
--------------------------------------------------------------------------------
/doc/AutoHide_Drag_to_Float_or_Dock.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Drag_to_Float_or_Dock.gif
--------------------------------------------------------------------------------
/doc/AutoHide_Drag_to_Sidebar.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Drag_to_Sidebar.gif
--------------------------------------------------------------------------------
/doc/AutoHide_Movie.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Movie.gif
--------------------------------------------------------------------------------
/doc/AutoHide_PinTo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_PinTo.png
--------------------------------------------------------------------------------
/doc/AutoHide_Sort_Tabs.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Sort_Tabs.gif
--------------------------------------------------------------------------------
/doc/AutoHide_Tab_Insert_Order.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/AutoHide_Tab_Insert_Order.gif
--------------------------------------------------------------------------------
/doc/DockArea_Tab_Insertion_Order.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/DockArea_Tab_Insertion_Order.gif
--------------------------------------------------------------------------------
/doc/Feature_ImageViewer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/Feature_ImageViewer.png
--------------------------------------------------------------------------------
/doc/TabMenu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/TabMenu.png
--------------------------------------------------------------------------------
/doc/TabMenu_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/TabMenu_dark.png
--------------------------------------------------------------------------------
/doc/ads_icon_256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/ads_icon_256.png
--------------------------------------------------------------------------------
/doc/ads_icon_512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/ads_icon_512.png
--------------------------------------------------------------------------------
/doc/ads_logo_ukraine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/ads_logo_ukraine.jpg
--------------------------------------------------------------------------------
/doc/ads_qt_marketplace_manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "http://qt.io/schema/extension-schema-v1#",
3 | "title": "Qt Advanced Docking System",
4 | "extensionType": [
5 | "library"
6 | ],
7 | "version": "3.8.2",
8 | "vendor": {
9 | "name": "githubuser0xFFFF",
10 | "url": "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System"
11 | },
12 | "contact": "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/issues",
13 | "icon": "https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/master/doc/ads_icon.svg",
14 | "licenses": [
15 | { "licenseType": "LGPL-2.1-only",
16 | "licenseUrl": "https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html" }
17 | ],
18 | "created": "2017-03-30",
19 | "lastUpdate": "2022-03-02",
20 | "platforms": [
21 | "Windows 7-11", "Kubuntu 18.04", "Kubuntu 19.10", "Ubuntu 19.10", "Ubuntu 20.04"
22 | ],
23 | "qtVersions": [
24 | "5.5.1 or newer"
25 | ],
26 | "tags": [
27 | "Widgets", "Docking"],
28 | "bugUrl": "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/issues",
29 | "sourceRepoUrl": "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System"
30 | }
31 |
--------------------------------------------------------------------------------
/doc/advanced-docking_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/advanced-docking_video.png
--------------------------------------------------------------------------------
/doc/autohide-feature-demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/autohide-feature-demo.png
--------------------------------------------------------------------------------
/doc/central_widget.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/central_widget.gif
--------------------------------------------------------------------------------
/doc/cfg_flag_ActiveTabHasCloseButton_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_ActiveTabHasCloseButton_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_ActiveTabHasCloseButton_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_ActiveTabHasCloseButton_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_AllTabsHaveCloseButton_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AllTabsHaveCloseButton_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_AlwaysShowTabs_false_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AlwaysShowTabs_false_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_AutoHideCloseButtonCollapsesDock_false.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AutoHideCloseButtonCollapsesDock_false.gif
--------------------------------------------------------------------------------
/doc/cfg_flag_AutoHideCloseButtonCollapsesDock_true.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AutoHideCloseButtonCollapsesDock_true.gif
--------------------------------------------------------------------------------
/doc/cfg_flag_AutoHideHasCloseButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AutoHideHasCloseButton.png
--------------------------------------------------------------------------------
/doc/cfg_flag_AutoHideHasMinimizeButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AutoHideHasMinimizeButton.png
--------------------------------------------------------------------------------
/doc/cfg_flag_AutoHideOpenOnDragHover.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AutoHideOpenOnDragHover.gif
--------------------------------------------------------------------------------
/doc/cfg_flag_AutoHideSideBarsIconOnly_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AutoHideSideBarsIconOnly_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_AutoHideSideBarsIconOnly_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_AutoHideSideBarsIconOnly_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DisableTabTextEliding_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DisableTabTextEliding_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DisableTabTextEliding_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DisableTabTextEliding_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaDynamicTabsMenuButtonVisibility_true_hidden.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaDynamicTabsMenuButtonVisibility_true_hidden.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaDynamicTabsMenuButtonVisibility_true_visible.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaDynamicTabsMenuButtonVisibility_true_visible.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaHasAutoHideButton.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaHasAutoHideButton.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaHasCloseButton_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaHasCloseButton_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaHasCloseButton_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaHasCloseButton_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaHasTabsMenuButton_false_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaHasTabsMenuButton_false_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaHasUndockButton_false_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaHasUndockButton_false_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaHideDisabledButtons_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaHideDisabledButtons_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DockAreaHideDisabledButtons_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DockAreaHideDisabledButtons_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DragPreviewHasWindowFrame_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DragPreviewHasWindowFrame_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DragPreviewShowsContentPixmap_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DragPreviewShowsContentPixmap_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_DragPreviewShowsContentPixmap_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_DragPreviewShowsContentPixmap_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_EqualSplitOnInsertion_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_EqualSplitOnInsertion_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_EqualSplitOnInsertion_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_EqualSplitOnInsertion_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_FloatingContainerForceNativeTitleBar_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_FloatingContainerForceNativeTitleBar_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_FloatingContainerForceNativeTitleBar_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_FloatingContainerForceNativeTitleBar_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_FloatingContainerHasWidgetIcon_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_FloatingContainerHasWidgetIcon_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_FloatingContainerHasWidgetIcon_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_FloatingContainerHasWidgetIcon_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_FloatingContainerHasWidgetTitle_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_FloatingContainerHasWidgetTitle_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_FloatingContainerHasWidgetTitle_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_FloatingContainerHasWidgetTitle_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_FocusHighlighting.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_FocusHighlighting.gif
--------------------------------------------------------------------------------
/doc/cfg_flag_HideSingleCentralWidgetTitleBar_false.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_HideSingleCentralWidgetTitleBar_false.png
--------------------------------------------------------------------------------
/doc/cfg_flag_HideSingleCentralWidgetTitleBar_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_HideSingleCentralWidgetTitleBar_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_MiddleMouseButtonClosesTab.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_MiddleMouseButtonClosesTab.gif
--------------------------------------------------------------------------------
/doc/cfg_flag_RetainTabSizeWhenCloseButtonHidden_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_RetainTabSizeWhenCloseButtonHidden_true.png
--------------------------------------------------------------------------------
/doc/cfg_flag_ShowTabTextOnlyForActiveTab_true.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/cfg_flag_ShowTabTextOnlyForActiveTab_true.png
--------------------------------------------------------------------------------
/doc/donate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/donate.png
--------------------------------------------------------------------------------
/doc/dynamic_drag_preview.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/dynamic_drag_preview.gif
--------------------------------------------------------------------------------
/doc/floating-widget-dragndrop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/floating-widget-dragndrop.png
--------------------------------------------------------------------------------
/doc/floating-widget-dragndrop_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/floating-widget-dragndrop_dark.png
--------------------------------------------------------------------------------
/doc/grouped-dragging.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/grouped-dragging.gif
--------------------------------------------------------------------------------
/doc/grouped-dragging.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/grouped-dragging.png
--------------------------------------------------------------------------------
/doc/grouped-dragging_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/grouped-dragging_dark.png
--------------------------------------------------------------------------------
/doc/linux_kubuntu_1804.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/linux_kubuntu_1804.png
--------------------------------------------------------------------------------
/doc/linux_ubuntu_1910.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/linux_ubuntu_1910.png
--------------------------------------------------------------------------------
/doc/macos.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/macos.png
--------------------------------------------------------------------------------
/doc/non_opaque_resizing.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/non_opaque_resizing.gif
--------------------------------------------------------------------------------
/doc/non_opaque_undocking.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/non_opaque_undocking.gif
--------------------------------------------------------------------------------
/doc/opaque_resizing.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/opaque_resizing.gif
--------------------------------------------------------------------------------
/doc/opaque_undocking.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/opaque_undocking.gif
--------------------------------------------------------------------------------
/doc/perspectives.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/perspectives.gif
--------------------------------------------------------------------------------
/doc/perspectives.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/perspectives.png
--------------------------------------------------------------------------------
/doc/perspectives_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/perspectives_dark.png
--------------------------------------------------------------------------------
/doc/preview-dragndrop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/preview-dragndrop.png
--------------------------------------------------------------------------------
/doc/preview-dragndrop_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/preview-dragndrop_dark.png
--------------------------------------------------------------------------------
/doc/preview_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/preview_dark.png
--------------------------------------------------------------------------------
/doc/python_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/python_logo.png
--------------------------------------------------------------------------------
/doc/showcase_adtf.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_adtf.png
--------------------------------------------------------------------------------
/doc/showcase_d-tect-x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_d-tect-x.jpg
--------------------------------------------------------------------------------
/doc/showcase_d-tect-x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_d-tect-x.png
--------------------------------------------------------------------------------
/doc/showcase_dream3d_nx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_dream3d_nx.png
--------------------------------------------------------------------------------
/doc/showcase_ezEngine_editor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_ezEngine_editor.png
--------------------------------------------------------------------------------
/doc/showcase_hivewe.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_hivewe.png
--------------------------------------------------------------------------------
/doc/showcase_labplot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_labplot.png
--------------------------------------------------------------------------------
/doc/showcase_metgem.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_metgem.png
--------------------------------------------------------------------------------
/doc/showcase_notepad_next.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_notepad_next.png
--------------------------------------------------------------------------------
/doc/showcase_plot_juggler.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_plot_juggler.png
--------------------------------------------------------------------------------
/doc/showcase_pre_workbench.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_pre_workbench.png
--------------------------------------------------------------------------------
/doc/showcase_qmix_elements.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_qmix_elements.png
--------------------------------------------------------------------------------
/doc/showcase_qt_design_studio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_qt_design_studio.png
--------------------------------------------------------------------------------
/doc/showcase_qt_design_studio_video.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_qt_design_studio_video.png
--------------------------------------------------------------------------------
/doc/showcase_qtcreator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_qtcreator.png
--------------------------------------------------------------------------------
/doc/showcase_ramses_composer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_ramses_composer.png
--------------------------------------------------------------------------------
/doc/showcase_resinsight.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_resinsight.png
--------------------------------------------------------------------------------
/doc/showcase_robox_ide.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/showcase_robox_ide.png
--------------------------------------------------------------------------------
/doc/tab_menu.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/tab_menu.gif
--------------------------------------------------------------------------------
/doc/taiwan_ukraine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/taiwan_ukraine.jpg
--------------------------------------------------------------------------------
/doc/ukraine.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/githubuser0xFFFF/Qt-Advanced-Docking-System/ec196715e0af356d8cbafaf9cfaabb392f036540/doc/ukraine.jpg
--------------------------------------------------------------------------------
/examples/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(QtADSExamples LANGUAGES CXX VERSION ${VERSION_SHORT})
3 | add_subdirectory(simple)
4 | add_subdirectory(hideshow)
5 | add_subdirectory(sidebar)
6 | add_subdirectory(deleteonclose)
7 | add_subdirectory(centralwidget)
8 | add_subdirectory(autohide)
9 | add_subdirectory(autohidedragndrop)
10 | add_subdirectory(emptydockarea)
11 | add_subdirectory(dockindock)
12 |
--------------------------------------------------------------------------------
/examples/autohide/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_autohide VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(AutoHideExample WIN32
7 | main.cpp
8 | mainwindow.cpp
9 | mainwindow.ui
10 | )
11 | target_include_directories(AutoHideExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
12 | target_link_libraries(AutoHideExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
13 | target_link_libraries(AutoHideExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
14 | Qt${QT_VERSION_MAJOR}::Gui
15 | Qt${QT_VERSION_MAJOR}::Widgets)
16 | set_target_properties(AutoHideExample PROPERTIES
17 | AUTOMOC ON
18 | AUTORCC ON
19 | AUTOUIC ON
20 | CXX_STANDARD 14
21 | CXX_STANDARD_REQUIRED ON
22 | CXX_EXTENSIONS OFF
23 | VERSION ${VERSION_SHORT}
24 | EXPORT_NAME "Qt Advanced Docking System Auto Hide Example"
25 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
26 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
28 | )
29 |
--------------------------------------------------------------------------------
/examples/autohide/autohide.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = AutoHideExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any Qt feature that has been marked deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | SOURCES += \
21 | main.cpp \
22 | mainwindow.cpp
23 |
24 | HEADERS += \
25 | mainwindow.h
26 |
27 | FORMS += \
28 | mainwindow.ui
29 |
30 | LIBS += -L$${ADS_OUT_ROOT}/lib
31 | include(../../ads.pri)
32 | INCLUDEPATH += ../../src
33 | DEPENDPATH += ../../src
34 |
35 |
--------------------------------------------------------------------------------
/examples/autohide/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | CMainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/examples/autohide/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include "DockManager.h"
9 | #include "DockAreaWidget.h"
10 | #include "DockWidget.h"
11 |
12 | QT_BEGIN_NAMESPACE
13 | namespace Ui { class CMainWindow; }
14 | QT_END_NAMESPACE
15 |
16 | class CMainWindow : public QMainWindow
17 | {
18 | Q_OBJECT
19 |
20 | public:
21 | CMainWindow(QWidget *parent = nullptr);
22 | ~CMainWindow();
23 |
24 | protected:
25 | virtual void closeEvent(QCloseEvent* event) override;
26 |
27 | private:
28 | QAction* SavePerspectiveAction = nullptr;
29 | QWidgetAction* PerspectiveListAction = nullptr;
30 | QComboBox* PerspectiveComboBox = nullptr;
31 |
32 | Ui::CMainWindow *ui;
33 |
34 | ads::CDockManager* DockManager;
35 | ads::CDockAreaWidget* StatusDockArea;
36 | ads::CDockWidget* TimelineDockWidget;
37 |
38 | void createPerspectiveUi();
39 |
40 | private slots:
41 | void savePerspective();
42 | };
43 | #endif // MAINWINDOW_H
44 |
--------------------------------------------------------------------------------
/examples/autohide/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | CMainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 1284
10 | 757
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
33 |
34 |
35 | toolBar
36 |
37 |
38 | TopToolBarArea
39 |
40 |
41 | false
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/examples/autohidedragndrop/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_autohide_dragndrop VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(AutoHideDragNDropExample WIN32
7 | main.cpp
8 | mainwindow.cpp
9 | mainwindow.ui
10 | droppableitem.cpp
11 | )
12 | target_include_directories(AutoHideDragNDropExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
13 | target_link_libraries(AutoHideDragNDropExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
14 | target_link_libraries(AutoHideDragNDropExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
15 | Qt${QT_VERSION_MAJOR}::Gui
16 | Qt${QT_VERSION_MAJOR}::Widgets)
17 | set_target_properties(AutoHideDragNDropExample PROPERTIES
18 | AUTOMOC ON
19 | AUTORCC ON
20 | AUTOUIC ON
21 | CXX_STANDARD 14
22 | CXX_STANDARD_REQUIRED ON
23 | CXX_EXTENSIONS OFF
24 | VERSION ${VERSION_SHORT}
25 | EXPORT_NAME "Qt Advanced Docking System Auto Hide With Drag N Drop Example"
26 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
28 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
29 | )
30 |
--------------------------------------------------------------------------------
/examples/autohidedragndrop/autohidedragndrop.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = AutoHideDragNDropExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any Qt feature that has been marked deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | SOURCES += \
21 | main.cpp \
22 | mainwindow.cpp \
23 | droppableitem.cpp
24 |
25 | HEADERS += \
26 | mainwindow.h \
27 | droppableitem.h
28 |
29 | FORMS += \
30 | mainwindow.ui
31 |
32 | LIBS += -L$${ADS_OUT_ROOT}/lib
33 | include(../../ads.pri)
34 | INCLUDEPATH += ../../src
35 | DEPENDPATH += ../../src
36 |
37 |
--------------------------------------------------------------------------------
/examples/autohidedragndrop/droppableitem.cpp:
--------------------------------------------------------------------------------
1 | #include "droppableitem.h"
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 | #include
8 |
9 | DroppableItem::DroppableItem(const QString& text, QWidget* parent)
10 | : QPushButton(text, parent)
11 | {
12 | setAcceptDrops(true);
13 | setSizePolicy(QSizePolicy::Policy::Expanding, QSizePolicy::Policy::Expanding);
14 | }
15 |
16 | void DroppableItem::dragEnterEvent(QDragEnterEvent* event)
17 | {
18 | if (event->mimeData()->hasText())
19 | {
20 | event->acceptProposedAction();
21 | setCursor(Qt::DragMoveCursor);
22 | }
23 | }
24 |
25 | void DroppableItem::dragLeaveEvent(QDragLeaveEvent* event)
26 | {
27 | Q_UNUSED(event);
28 | unsetCursor();
29 | }
30 |
31 | void DroppableItem::dropEvent(QDropEvent* event)
32 | {
33 | if (event->mimeData()->hasText())
34 | {
35 | event->acceptProposedAction();
36 | setText(event->mimeData()->text());
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/examples/autohidedragndrop/droppableitem.h:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | class QDragEnterEvent;
5 | class QDragLeaveEvent;
6 | class QDropEvent;
7 |
8 | class DroppableItem : public QPushButton
9 | {
10 | Q_OBJECT;
11 |
12 | public:
13 | DroppableItem(const QString& text = QString(), QWidget* parent = nullptr);
14 |
15 | protected:
16 | void dragEnterEvent(QDragEnterEvent* event) override;
17 | void dragLeaveEvent(QDragLeaveEvent* event) override;
18 | void dropEvent(QDropEvent* event) override;
19 | };
20 |
--------------------------------------------------------------------------------
/examples/autohidedragndrop/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | CMainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/examples/autohidedragndrop/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include "DockManager.h"
9 | #include "DockAreaWidget.h"
10 | #include "DockWidget.h"
11 |
12 | QT_BEGIN_NAMESPACE
13 | namespace Ui { class CMainWindow; }
14 | QT_END_NAMESPACE
15 |
16 | class CMainWindow : public QMainWindow
17 | {
18 | Q_OBJECT
19 |
20 | public:
21 | CMainWindow(QWidget *parent = nullptr);
22 | ~CMainWindow();
23 |
24 | protected:
25 | virtual void closeEvent(QCloseEvent* event) override;
26 |
27 | private:
28 | QAction* SavePerspectiveAction = nullptr;
29 | QWidgetAction* PerspectiveListAction = nullptr;
30 | QComboBox* PerspectiveComboBox = nullptr;
31 |
32 | Ui::CMainWindow *ui;
33 |
34 | ads::CDockManager* DockManager;
35 | ads::CDockAreaWidget* StatusDockArea;
36 | ads::CDockWidget* TimelineDockWidget;
37 |
38 | void createPerspectiveUi();
39 |
40 | private slots:
41 | void savePerspective();
42 | };
43 | #endif // MAINWINDOW_H
44 |
--------------------------------------------------------------------------------
/examples/autohidedragndrop/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | CMainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 1284
10 | 757
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
33 |
34 |
35 | toolBar
36 |
37 |
38 | TopToolBarArea
39 |
40 |
41 | false
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/examples/centralwidget/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_centralwidget VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(CentralWidgetExample WIN32
7 | main.cpp
8 | mainwindow.cpp
9 | mainwindow.ui
10 | )
11 | target_include_directories(CentralWidgetExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
12 | target_link_libraries(CentralWidgetExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
13 | target_link_libraries(CentralWidgetExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
14 | Qt${QT_VERSION_MAJOR}::Gui
15 | Qt${QT_VERSION_MAJOR}::Widgets)
16 | set_target_properties(CentralWidgetExample PROPERTIES
17 | AUTOMOC ON
18 | AUTORCC ON
19 | AUTOUIC ON
20 | CXX_STANDARD 14
21 | CXX_STANDARD_REQUIRED ON
22 | CXX_EXTENSIONS OFF
23 | VERSION ${VERSION_SHORT}
24 | EXPORT_NAME "Qt Advanced Docking System Central Widget Example"
25 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
26 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
28 | )
29 |
--------------------------------------------------------------------------------
/examples/centralwidget/centralwidget.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = CentralWidgetExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any Qt feature that has been marked deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | SOURCES += \
21 | main.cpp \
22 | mainwindow.cpp
23 |
24 | HEADERS += \
25 | mainwindow.h
26 |
27 | FORMS += \
28 | mainwindow.ui
29 |
30 | LIBS += -L$${ADS_OUT_ROOT}/lib
31 | include(../../ads.pri)
32 | INCLUDEPATH += ../../src
33 | DEPENDPATH += ../../src
34 |
35 |
--------------------------------------------------------------------------------
/examples/centralwidget/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | CMainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/examples/centralwidget/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include "DockManager.h"
9 | #include "DockAreaWidget.h"
10 | #include "DockWidget.h"
11 |
12 | QT_BEGIN_NAMESPACE
13 | namespace Ui { class CMainWindow; }
14 | QT_END_NAMESPACE
15 |
16 | class CMainWindow : public QMainWindow
17 | {
18 | Q_OBJECT
19 |
20 | public:
21 | CMainWindow(QWidget *parent = nullptr);
22 | ~CMainWindow();
23 |
24 | protected:
25 | virtual void closeEvent(QCloseEvent* event) override;
26 |
27 | private:
28 | QAction* SavePerspectiveAction = nullptr;
29 | QWidgetAction* PerspectiveListAction = nullptr;
30 | QComboBox* PerspectiveComboBox = nullptr;
31 |
32 | Ui::CMainWindow *ui;
33 |
34 | ads::CDockManager* DockManager;
35 | ads::CDockAreaWidget* StatusDockArea;
36 | ads::CDockWidget* TimelineDockWidget;
37 |
38 | void createPerspectiveUi();
39 |
40 | private slots:
41 | void savePerspective();
42 | };
43 | #endif // MAINWINDOW_H
44 |
--------------------------------------------------------------------------------
/examples/centralwidget/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | CMainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 1284
10 | 757
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
33 |
34 |
35 | toolBar
36 |
37 |
38 | TopToolBarArea
39 |
40 |
41 | false
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/examples/configflags/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_centralwidget VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(configFlagsExample WIN32
7 | main.cpp
8 | mainwindow.cpp
9 | mainwindow.ui
10 | )
11 | target_include_directories(CentralWidgetExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
12 | target_link_libraries(CentralWidgetExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
13 | target_link_libraries(CentralWidgetExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
14 | Qt${QT_VERSION_MAJOR}::Gui
15 | Qt${QT_VERSION_MAJOR}::Widgets)
16 | set_target_properties(CentralWidgetExample PROPERTIES
17 | AUTOMOC ON
18 | AUTORCC ON
19 | AUTOUIC ON
20 | CXX_STANDARD 14
21 | CXX_STANDARD_REQUIRED ON
22 | CXX_EXTENSIONS OFF
23 | VERSION ${VERSION_SHORT}
24 | EXPORT_NAME "Qt Advanced Docking System Central Widget Example"
25 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
26 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
28 | )
29 |
--------------------------------------------------------------------------------
/examples/configflags/configflags.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = ConfigFlagsExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any Qt feature that has been marked deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | SOURCES += \
21 | main.cpp \
22 | mainwindow.cpp
23 |
24 | HEADERS += \
25 | mainwindow.h
26 |
27 | FORMS += \
28 | mainwindow.ui
29 |
30 | LIBS += -L$${ADS_OUT_ROOT}/lib
31 | include(../../ads.pri)
32 | INCLUDEPATH += ../../src
33 | DEPENDPATH += ../../src
34 |
35 |
--------------------------------------------------------------------------------
/examples/configflags/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | CMainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/examples/configflags/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 |
3 | #include "ui_mainwindow.h"
4 |
5 | #include
6 | #include
7 |
8 | #include "DockAreaWidget.h"
9 | #include "DockAreaTitleBar.h"
10 |
11 |
12 | using namespace ads;
13 |
14 |
15 | CMainWindow::CMainWindow(QWidget *parent) :
16 | QMainWindow(parent),
17 | ui(new Ui::CMainWindow)
18 | {
19 | ui->setupUi(this);
20 |
21 | // Add the toolbar
22 | auto toolbar_ = addToolBar("Top Toolbar");
23 |
24 | // Create the dock manager
25 | ads::CDockManager::setConfigFlags(ads::CDockManager::DefaultOpaqueConfig);
26 | ads::CDockManager::setConfigFlag(ads::CDockManager::DockAreaHasCloseButton,
27 | false);
28 | ads::CDockManager::setConfigFlag(ads::CDockManager::DockAreaHasUndockButton,
29 | false);
30 | ads::CDockManager::setConfigFlag(
31 | ads::CDockManager::DockAreaHasTabsMenuButton, false);
32 | auto DockManager = new ads::CDockManager(this);
33 |
34 | // Create a dockable widget
35 | QLabel *l1 = new QLabel();
36 | l1->setWordWrap(true);
37 | l1->setAlignment(Qt::AlignTop | Qt::AlignLeft);
38 | l1->setText("Docking widget 1");
39 | ads::CDockWidget *dockWidget1 = new ads::CDockWidget("Dock 1");
40 | dockWidget1->setWidget(l1);
41 | DockManager->addDockWidget(ads::LeftDockWidgetArea, dockWidget1);
42 |
43 | QLabel *l2 = new QLabel();
44 | l2->setWordWrap(true);
45 | l2->setAlignment(Qt::AlignTop | Qt::AlignLeft);
46 | l2->setText("Docking widget 2");
47 | ads::CDockWidget *dockWidget2 = new ads::CDockWidget("Dock 2");
48 | dockWidget2->setWidget(l2);
49 | DockManager->addDockWidget(ads::RightDockWidgetArea, dockWidget2);
50 |
51 | // Add menu actions
52 | ui->menuView->addAction(dockWidget1->toggleViewAction());
53 | ui->menuView->addAction(dockWidget2->toggleViewAction());
54 | toolbar_->addAction(dockWidget1->toggleViewAction());
55 | toolbar_->addAction(dockWidget2->toggleViewAction());
56 | }
57 |
58 |
59 | CMainWindow::~CMainWindow()
60 | {
61 | delete ui;
62 | }
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/examples/configflags/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include "DockManager.h"
9 | #include "DockAreaWidget.h"
10 | #include "DockWidget.h"
11 |
12 | QT_BEGIN_NAMESPACE
13 | namespace Ui { class CMainWindow; }
14 | QT_END_NAMESPACE
15 |
16 | class CMainWindow : public QMainWindow
17 | {
18 | Q_OBJECT
19 |
20 | public:
21 | CMainWindow(QWidget *parent = nullptr);
22 | ~CMainWindow();
23 |
24 | private:
25 | Ui::CMainWindow *ui;
26 | };
27 | #endif // MAINWINDOW_H
28 |
--------------------------------------------------------------------------------
/examples/configflags/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | CMainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 1284
10 | 757
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
33 |
34 |
35 | toolBar
36 |
37 |
38 | TopToolBarArea
39 |
40 |
41 | false
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/examples/deleteonclose/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_deleteonclose VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(DeleteOnCloseTest WIN32
7 | main.cpp
8 | )
9 | target_include_directories(DeleteOnCloseTest PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
10 | target_link_libraries(DeleteOnCloseTest PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
11 | target_link_libraries(DeleteOnCloseTest PUBLIC Qt${QT_VERSION_MAJOR}::Core
12 | Qt${QT_VERSION_MAJOR}::Gui
13 | Qt${QT_VERSION_MAJOR}::Widgets)
14 | set_target_properties(DeleteOnCloseTest PROPERTIES
15 | AUTOMOC ON
16 | CXX_STANDARD 14
17 | CXX_STANDARD_REQUIRED ON
18 | CXX_EXTENSIONS OFF
19 | VERSION ${VERSION_SHORT}
20 | EXPORT_NAME "Qt Advanced Docking System Delete on Close Example"
21 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
22 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
23 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
24 | )
25 |
--------------------------------------------------------------------------------
/examples/deleteonclose/deleteonclose.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = DeleteOnCloseTest
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | DEFINES += QT_DEPRECATED_WARNINGS
15 |
16 | SOURCES += main.cpp
17 |
18 |
19 | LIBS += -L$${ADS_OUT_ROOT}/lib
20 | include(../../ads.pri)
21 | INCLUDEPATH += ../../src
22 | DEPENDPATH += ../../src
23 |
24 |
--------------------------------------------------------------------------------
/examples/deleteonclose/main.py:
--------------------------------------------------------------------------------
1 | import sys
2 |
3 | import PyQtAds as QtAds
4 | from PyQt5.QtGui import QCloseEvent
5 | from PyQt5.QtCore import (qDebug, pyqtSlot, QObject, pyqtSignal)
6 | from PyQt5.QtWidgets import (QMainWindow, QAction, QTextEdit, QApplication,
7 | QMenuBar)
8 |
9 |
10 | class MainWindow(QMainWindow):
11 | dock_manager = None
12 |
13 | def closeEvent(self, event: QCloseEvent):
14 | super().closeEvent(event)
15 | if self.dock_manager is not None:
16 | self.dock_manager.deleteLater()
17 |
18 | def setDockManager(self, dock_manager: QtAds.CDockManager):
19 | self.dock_manager = dock_manager
20 |
21 |
22 | if __name__ == '__main__':
23 | app = QApplication(sys.argv)
24 | w = MainWindow()
25 |
26 | QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.FocusHighlighting, True)
27 | QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.AllTabsHaveCloseButton, True)
28 | dock_manager = QtAds.CDockManager(w)
29 | w.setDockManager(dock_manager)
30 |
31 | count = 0
32 |
33 | def on_focused_dock_widget_changed(old: QtAds.CDockWidget, now: QtAds.CDockWidget):
34 | global count
35 | qDebug( "{:d} CDockManager::focusedDockWidgetChanged old: {} now: {} visible: {}".format(
36 | count,
37 | old.objectName() if old else "-",
38 | now.objectName(),
39 | now.isVisible()))
40 | count += 1
41 | now.widget().setFocus()
42 |
43 | dock_manager.focusedDockWidgetChanged.connect(on_focused_dock_widget_changed)
44 |
45 | action = QAction("New Delete On Close", w)
46 | w.menuBar().addAction(action)
47 |
48 | i = 0
49 | def on_action_triggered():
50 | global i
51 | dw = QtAds.CDockWidget("test doc {:d}".format(i))
52 | i += 1
53 | editor = QTextEdit("lorem ipsum...", dw)
54 | dw.setWidget(editor)
55 | dw.setFeature(QtAds.CDockWidget.DockWidgetDeleteOnClose, True)
56 | area = dock_manager.addDockWidgetTab(QtAds.CenterDockWidgetArea, dw)
57 | qDebug("doc dock widget created! {} {}".format(dw, area))
58 | action.triggered.connect(on_action_triggered)
59 |
60 | action = QAction("New", w)
61 | w.menuBar().addAction(action)
62 | def on_action2_triggered():
63 | global i
64 | dw = QtAds.CDockWidget("test {:d}".format(i))
65 | i += 1
66 | editor = QTextEdit("lorem ipsum...", dw)
67 | dw.setWidget(editor)
68 | area = dock_manager.addDockWidgetTab(QtAds.CenterDockWidgetArea, dw)
69 | qDebug("dock widget created! {} {}".format(dw, area))
70 | action.triggered.connect(on_action2_triggered)
71 |
72 | w.show()
73 | app.exec_()
74 |
--------------------------------------------------------------------------------
/examples/dockindock/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_dockindock VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(DockInDockExample WIN32
7 | dockindock.cpp
8 | dockindockmanager.cpp
9 | perspectiveactions.cpp
10 | perspectives.cpp
11 | main.cpp
12 | mainframe.cpp
13 | )
14 | target_include_directories(DockInDockExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
15 | target_link_libraries(DockInDockExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
16 | target_link_libraries(DockInDockExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
17 | Qt${QT_VERSION_MAJOR}::Gui
18 | Qt${QT_VERSION_MAJOR}::Widgets)
19 | set_target_properties(DockInDockExample PROPERTIES
20 | AUTOMOC ON
21 | AUTORCC ON
22 | AUTOUIC ON
23 | CXX_STANDARD 14
24 | CXX_STANDARD_REQUIRED ON
25 | CXX_EXTENSIONS OFF
26 | VERSION ${VERSION_SHORT}
27 | EXPORT_NAME "Qt Advanced Docking System Simple Example"
28 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
29 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
30 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
31 | )
32 |
--------------------------------------------------------------------------------
/examples/dockindock/dockindock.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 |
6 | #include
7 | #include
8 |
9 | class QMenu;
10 |
11 | namespace ads
12 | {
13 | class CDockAreaWidget;
14 | }
15 |
16 | namespace QtAdsUtl
17 | {
18 |
19 | class DockInDockManager;
20 | class PerspectivesManager;
21 | // tab of tab example for https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/issues/306
22 | class DockInDockWidget : public QWidget
23 | {
24 | typedef QWidget baseClass;
25 |
26 | Q_OBJECT
27 |
28 | public:
29 | DockInDockWidget( QWidget* parent, bool canCreateNewGroups, PerspectivesManager* perspectivesManager );
30 | ~DockInDockWidget() override;
31 |
32 | ads::CDockAreaWidget* addTabWidget( QWidget* widget, const QString& name, ads::CDockAreaWidget* after );
33 | DockInDockWidget* createGroup( const QString& groupName, ads::CDockAreaWidget*& insertPos );
34 |
35 | ads::CDockAreaWidget* addTabWidget( QWidget* widget, const QString& name, QIcon icon, ads::CDockAreaWidget* after );
36 | DockInDockWidget* createGroup( const QString& groupName, QIcon icon, ads::CDockAreaWidget*& insertPos );
37 |
38 | QString getGroupNameError( const QString& groupName );
39 | void destroyGroup( DockInDockWidget* widget );
40 |
41 | /** Manually fill a given view menu */
42 | void setupViewMenu( QMenu* menu );
43 |
44 | /** Attach a view menu that will be automatically fill */
45 | void attachViewMenu( QMenu* menu );
46 |
47 | bool isTopLevel();
48 | void setupMenu( QMenu* menu, const std::vector& moveTo );
49 |
50 | inline DockInDockManager* getManager() { return m_mgr; }
51 | inline DockInDockWidget* getTopLevelDockWidget() { return m_topLevelDockWidget; }
52 |
53 | inline bool canCreateNewGroups() const { return m_canCreateNewGroups; }
54 |
55 | void dumpStatus( std::ostream& str, std::string tab = "" );
56 |
57 | inline PerspectivesManager* getPerspectivesManager() { return m_perspectivesManager; }
58 |
59 | void setNewPerspectiveDefaultName( const QString& defaultName );
60 |
61 | private slots:
62 | void autoFillAttachedViewMenu();
63 | void createPerspective();
64 |
65 | private:
66 | DockInDockManager* m_mgr;
67 | DockInDockWidget* m_topLevelDockWidget;
68 |
69 | bool m_canCreateNewGroups;
70 |
71 | DockInDockWidget( QWidget* parent, DockInDockWidget* topLevelDockWidget, PerspectivesManager* perspectivesManager );
72 |
73 | PerspectivesManager* m_perspectivesManager;
74 | QString m_newPerspectiveDefaultName;
75 |
76 | void fillPerspectivesMenu( QMenu* menu );
77 | };
78 |
79 | }
80 |
81 |
--------------------------------------------------------------------------------
/examples/dockindock/dockindock.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = DockInDock
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | DEFINES += QT_DEPRECATED_WARNINGS
15 |
16 | SOURCES += \
17 | dockindock.cpp \
18 | dockindockmanager.cpp \
19 | perspectiveactions.cpp \
20 | perspectives.cpp \
21 | main.cpp \
22 | mainframe.cpp
23 |
24 | HEADERS += \
25 | dockindock.h \
26 | dockindockmanager.h \
27 | perspectiveactions.h \
28 | perspectives.h \
29 | mainframe.h
30 |
31 | LIBS += -L$${ADS_OUT_ROOT}/lib
32 | include(../../ads.pri)
33 | INCLUDEPATH += ../../src
34 | DEPENDPATH += ../../src
35 |
36 |
--------------------------------------------------------------------------------
/examples/dockindock/dockindockmanager.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "DockManager.h"
4 |
5 | #include
6 | #include
7 |
8 | namespace QtAdsUtl
9 | {
10 |
11 | class DockInDockWidget;
12 | class DockInDockManager : public ads::CDockManager
13 | {
14 | Q_OBJECT
15 |
16 | typedef ads::CDockManager baseClass;
17 |
18 | public:
19 | DockInDockManager( DockInDockWidget& parent );
20 | ~DockInDockManager() override;
21 |
22 | void fillViewMenu( QMenu* menu, const std::vector& moveTo );
23 | void fillMoveMenu( QMenu* menu, const std::vector& moveTo );
24 |
25 | void addPerspectiveRec( const QString& name );
26 | void openPerspectiveRec( const QString& name );
27 | void removePerspectivesRec();
28 | void loadPerspectivesRec(QSettings& Settings);
29 | void savePerspectivesRec(QSettings& Settings) const;
30 |
31 | static DockInDockManager* dockInAManager( ads::CDockWidget* widget );
32 |
33 | inline DockInDockWidget& parent() { return m_parent; }
34 |
35 | void childManagers( std::vector& managers, bool rec ) const;
36 | std::vector allManagers( bool includeThis, bool rec ) const;
37 | std::vector> allDockWidgets( bool includeThis, bool rec ) const;
38 |
39 | QString getGroupName();
40 | QString getPersistGroupName();
41 | static QString getGroupNameFromPersistGroupName( QString persistGroupName );
42 |
43 | QMap getGroupContents();
44 |
45 | ads::CDockAreaWidget* getInsertDefaultPos();
46 |
47 | std::vector getWidgetsInGUIOrder() const;
48 |
49 | private:
50 | DockInDockWidget& m_parent;
51 | };
52 |
53 | class CreateChildDockAction : public QAction
54 | {
55 | Q_OBJECT
56 | public:
57 | CreateChildDockAction( DockInDockWidget& dockInDock, QMenu* menu );
58 |
59 | public slots:
60 | void createGroup();
61 |
62 | private:
63 | DockInDockWidget& m_dockInDock;
64 | };
65 |
66 | class DestroyGroupAction : public QAction
67 | {
68 | Q_OBJECT
69 | public:
70 | DestroyGroupAction( DockInDockWidget* widget, QMenu* menu );
71 |
72 | public slots:
73 | void destroyGroup();
74 |
75 | private:
76 | DockInDockWidget* m_widget;
77 | };
78 |
79 | class MoveDockWidgetAction : public QAction
80 | {
81 | Q_OBJECT
82 | public:
83 | MoveDockWidgetAction( ads::CDockWidget* widget, DockInDockManager* moveTo, QMenu* menu );
84 |
85 | static void move( ads::CDockWidget* widget, DockInDockManager* moveTo );
86 |
87 | public slots:
88 | void move();
89 |
90 | private:
91 | ads::CDockWidget* m_widget;
92 | DockInDockManager* m_moveTo;
93 | };
94 |
95 | }
96 |
97 |
--------------------------------------------------------------------------------
/examples/dockindock/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "mainframe.h"
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 |
--------------------------------------------------------------------------------
/examples/dockindock/mainframe.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 |
7 | #include
8 | namespace QtAdsUtl
9 | {
10 | class DockInDockWidget;
11 | class PerspectivesManager;
12 | }
13 |
14 | class MainWindow : public QMainWindow
15 | {
16 | Q_OBJECT
17 |
18 | public:
19 | explicit MainWindow(QWidget *parent = 0);
20 | ~MainWindow();
21 |
22 | QtAdsUtl::DockInDockWidget* m_dockManager;
23 | std::unique_ptr m_perspectivesManager;
24 | };
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/examples/dockindock/perspectiveactions.cpp:
--------------------------------------------------------------------------------
1 | #include "perspectiveactions.h"
2 | #include "dockindock.h"
3 | #include "perspectives.h"
4 |
5 | #include
6 |
7 | using namespace QtAdsUtl;
8 |
9 | //////////////////////////////
10 | // LoadPerspectiveAction
11 | //////////////////////////////
12 | LoadPerspectiveAction::LoadPerspectiveAction( QMenu* parent, const QString& name, QtAdsUtl::DockInDockWidget& dockManager ) :
13 | QAction( name, parent ),
14 | name( name ),
15 | dockManager( dockManager )
16 | {
17 | connect( this, SIGNAL(triggered()), this, SLOT(load()) );
18 | }
19 |
20 | void LoadPerspectiveAction::load()
21 | {
22 | dockManager.getPerspectivesManager()->openPerspective( name, dockManager );
23 | }
24 |
25 | //////////////////////////////
26 | // RemovePerspectiveAction
27 | //////////////////////////////
28 | RemovePerspectiveAction::RemovePerspectiveAction( QMenu* parent, const QString& name, QtAdsUtl::DockInDockWidget& dockManager ) :
29 | QAction( name, parent ),
30 | name( name ),
31 | dockManager( dockManager )
32 | {
33 | connect( this, SIGNAL(triggered()), this, SLOT(remove()) );
34 | }
35 |
36 | void RemovePerspectiveAction::remove()
37 | {
38 | dockManager.getPerspectivesManager()->removePerspective( name );
39 | }
40 |
--------------------------------------------------------------------------------
/examples/dockindock/perspectiveactions.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 |
5 | namespace QtAdsUtl
6 | {
7 |
8 | class DockInDockWidget;
9 | class LoadPerspectiveAction : public QAction
10 | {
11 | Q_OBJECT
12 | public:
13 | LoadPerspectiveAction( QMenu* parent, const QString& name, QtAdsUtl::DockInDockWidget& dockManager );
14 |
15 | public slots:
16 | void load();
17 |
18 | private:
19 | QString name;
20 | QtAdsUtl::DockInDockWidget& dockManager;
21 | };
22 |
23 | class RemovePerspectiveAction : public QAction
24 | {
25 | Q_OBJECT
26 | public:
27 | RemovePerspectiveAction( QMenu* parent, const QString& name, QtAdsUtl::DockInDockWidget& dockManager );
28 |
29 | public slots:
30 | void remove();
31 |
32 | private:
33 | QString name;
34 | QtAdsUtl::DockInDockWidget& dockManager;
35 | };
36 |
37 | }
38 |
39 |
--------------------------------------------------------------------------------
/examples/dockindock/perspectiveactions.py:
--------------------------------------------------------------------------------
1 | from PyQt5.QtWidgets import QAction, QMenu
2 |
3 |
4 | class LoadPerspectiveAction(QAction):
5 | def __init__(self, parent: QMenu, name: str, dock_manager: 'DockInDockWidget'):
6 | super().__init__(name, parent)
7 | self.name = name
8 | self.dock_manager = dock_manager
9 |
10 | self.triggered.connect(self.load)
11 |
12 | def load(self):
13 | self.dock_manager.getPerspectivesManager().openPerspective(self.name, self.dock_manager)
14 |
15 |
16 | class RemovePerspectiveAction(QAction):
17 | def __init__(self, parent: QMenu, name: str, dock_manager: 'DockInDockWidget'):
18 | super().__init__(name, parent)
19 | self.name = name
20 | self.dock_manager = dock_manager
21 |
22 | self.triggered.connect(self.remove)
23 |
24 | def remove(self):
25 | self.dock_manager.getPerspectivesManager().removePerspective(self.name)
--------------------------------------------------------------------------------
/examples/dockindock/perspectives.h:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include
4 | #include
5 | #include
6 |
7 | #include
8 |
9 | class QMenu;
10 | class QSettings;
11 |
12 | namespace QtAdsUtl
13 | {
14 |
15 | class DockInDockWidget;
16 | class PerspectivesManager : public QObject
17 | {
18 | Q_OBJECT
19 |
20 | public:
21 | PerspectivesManager( const QString& perspectivesFolder );
22 | virtual ~PerspectivesManager();
23 |
24 | QStringList perspectiveNames() const;
25 |
26 | void addPerspective( const QString& name, DockInDockWidget& widget );
27 | void openPerspective( const QString& name, DockInDockWidget& widget );
28 | void removePerspectives();
29 | void removePerspective( const QString& name );
30 |
31 | void loadPerspectives();
32 | void savePerspectives() const;
33 |
34 | signals:
35 | void perspectivesListChanged();
36 | void openingPerspective();
37 | void openedPerspective();
38 |
39 | private:
40 |
41 | // Partially bypass ADS perspective management, store list here
42 | // and then ADS will only have one perspective loaded
43 | // this is because all docking widgets must exist when a perspective is loaded
44 | // we will guarantee that!
45 | class PerspectiveInfo
46 | {
47 | public:
48 | std::shared_ptr settings;
49 | QMap groups;
50 | };
51 | QMap m_perspectives;
52 |
53 | QString m_perspectivesFolder;
54 | QString getSettingsFileName( const QString& perspective, bool temp ) const;
55 | std::shared_ptr getSettingsObject( const QString& filePath ) const;
56 | };
57 |
58 | }
59 |
60 |
--------------------------------------------------------------------------------
/examples/emptydockarea/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_centralwidget VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(EmptyDockAreaExample WIN32
7 | main.cpp
8 | mainwindow.cpp
9 | mainwindow.ui
10 | )
11 | target_include_directories(EmptyDockAreaExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
12 | target_link_libraries(EmptyDockAreaExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
13 | target_link_libraries(EmptyDockAreaExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
14 | Qt${QT_VERSION_MAJOR}::Gui
15 | Qt${QT_VERSION_MAJOR}::Widgets)
16 | set_target_properties(EmptyDockAreaExample PROPERTIES
17 | AUTOMOC ON
18 | AUTORCC ON
19 | AUTOUIC ON
20 | CXX_STANDARD 14
21 | CXX_STANDARD_REQUIRED ON
22 | CXX_EXTENSIONS OFF
23 | VERSION ${VERSION_SHORT}
24 | EXPORT_NAME "Qt Advanced Docking System Empty Dock Area Example"
25 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
26 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
28 | )
29 |
--------------------------------------------------------------------------------
/examples/emptydockarea/emptydockarea.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = EmptyDockareaExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any Qt feature that has been marked deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | SOURCES += \
21 | main.cpp \
22 | mainwindow.cpp
23 |
24 | HEADERS += \
25 | mainwindow.h
26 |
27 | FORMS += \
28 | mainwindow.ui
29 |
30 | LIBS += -L$${ADS_OUT_ROOT}/lib
31 | include(../../ads.pri)
32 | INCLUDEPATH += ../../src
33 | DEPENDPATH += ../../src
34 |
35 |
--------------------------------------------------------------------------------
/examples/emptydockarea/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | CMainWindow w;
8 | w.show();
9 | return a.exec();
10 | }
11 |
--------------------------------------------------------------------------------
/examples/emptydockarea/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include
7 |
8 | #include "DockManager.h"
9 | #include "DockAreaWidget.h"
10 | #include "DockWidget.h"
11 |
12 | QT_BEGIN_NAMESPACE
13 | namespace Ui { class CMainWindow; }
14 | QT_END_NAMESPACE
15 |
16 | class CMainWindow : public QMainWindow
17 | {
18 | Q_OBJECT
19 |
20 | public:
21 | CMainWindow(QWidget *parent = nullptr);
22 | ~CMainWindow();
23 |
24 | protected:
25 | virtual void closeEvent(QCloseEvent* event) override;
26 |
27 | private:
28 | QAction* SavePerspectiveAction = nullptr;
29 | QWidgetAction* PerspectiveListAction = nullptr;
30 | QComboBox* PerspectiveComboBox = nullptr;
31 |
32 | Ui::CMainWindow *ui;
33 |
34 | ads::CDockManager* DockManager;
35 | ads::CDockAreaWidget* StatusDockArea;
36 | ads::CDockWidget* TimelineDockWidget;
37 |
38 | void createPerspectiveUi();
39 |
40 | private slots:
41 | void savePerspective();
42 | };
43 | #endif // MAINWINDOW_H
44 |
--------------------------------------------------------------------------------
/examples/emptydockarea/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | CMainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 1284
10 | 757
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
33 |
34 |
35 | toolBar
36 |
37 |
38 | TopToolBarArea
39 |
40 |
41 | false
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/examples/examples.pro:
--------------------------------------------------------------------------------
1 | TEMPLATE = subdirs
2 |
3 | SUBDIRS = \
4 | autohide \
5 | autohidedragndrop \
6 | centralwidget \
7 | simple \
8 | hideshow \
9 | sidebar \
10 | deleteonclose \
11 | emptydockarea \
12 | dockindock \
13 | configflags
14 |
--------------------------------------------------------------------------------
/examples/hideshow/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_hideshow VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(HideShowExample WIN32
7 | main.cpp
8 | MainWindow.cpp
9 | MainWindow.ui
10 | )
11 | target_include_directories(HideShowExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
12 | target_link_libraries(HideShowExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
13 | target_link_libraries(HideShowExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
14 | Qt${QT_VERSION_MAJOR}::Gui
15 | Qt${QT_VERSION_MAJOR}::Widgets)
16 | set_target_properties(HideShowExample PROPERTIES
17 | AUTOMOC ON
18 | AUTORCC ON
19 | AUTOUIC ON
20 | CXX_STANDARD 14
21 | CXX_STANDARD_REQUIRED ON
22 | CXX_EXTENSIONS OFF
23 | VERSION ${VERSION_SHORT}
24 | EXPORT_NAME "Qt Advanced Docking System Hide,Show Example"
25 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
26 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
28 | )
29 |
--------------------------------------------------------------------------------
/examples/hideshow/MainWindow.cpp:
--------------------------------------------------------------------------------
1 | #include "../../examples/hideshow/MainWindow.h"
2 |
3 | #include "ui_MainWindow.h"
4 |
5 | #include
6 | #include
7 |
8 | using namespace ads;
9 |
10 | MainWindow::MainWindow(QWidget *parent) :
11 | QMainWindow(parent),
12 | ui(new Ui::MainWindow)
13 | {
14 | ui->setupUi(this);
15 |
16 | ui->centralWidget->setLayout( m_layout = new QStackedLayout() );
17 |
18 | m_welcomeWidget = new QWidget(this);
19 | auto welcomeLayout = new QVBoxLayout(m_welcomeWidget);
20 | welcomeLayout->addStretch();
21 | QPushButton* openButton = new QPushButton("Open project");
22 | welcomeLayout->addWidget( openButton );
23 | welcomeLayout->addStretch();
24 |
25 | connect( openButton, SIGNAL(clicked()), this, SLOT(openProject()) );
26 |
27 | m_DockManager = new ads::CDockManager(ui->centralWidget);
28 |
29 | // Create example content label - this can be any application specific
30 | // widget
31 | QLabel* l = new QLabel();
32 | l->setWordWrap(true);
33 | l->setAlignment(Qt::AlignTop | Qt::AlignLeft);
34 | l->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ");
35 |
36 | // Create a dock widget with the title Label 1 and set the created label
37 | // as the dock widget content
38 | ads::CDockWidget* DockWidget = new ads::CDockWidget("Label 1");
39 | DockWidget->setWidget(l);
40 |
41 | // Add the toggleViewAction of the dock widget to the menu to give
42 | // the user the possibility to show the dock widget if it has been closed
43 | ui->menuView->addAction(DockWidget->toggleViewAction());
44 |
45 | connect( ui->actionOpen, SIGNAL(triggered()), this, SLOT(openProject()) );
46 | connect( ui->actionClose, SIGNAL(triggered()), this, SLOT(closeProject()) );
47 |
48 | // Add the dock widget to the top dock widget area
49 | m_DockManager->addDockWidget(ads::TopDockWidgetArea, DockWidget);
50 |
51 | ui->centralWidget->layout()->addWidget( m_welcomeWidget );
52 | ui->centralWidget->layout()->addWidget( m_DockManager );
53 |
54 | closeProject();
55 | }
56 |
57 | MainWindow::~MainWindow()
58 | {
59 | delete ui;
60 | }
61 |
62 | void MainWindow::openProject()
63 | {
64 | ui->actionOpen->setEnabled(false);
65 | ui->actionClose->setEnabled(true);
66 | ui->menuView->setEnabled(true);
67 |
68 | m_layout->setCurrentWidget( m_DockManager );
69 | }
70 |
71 | void MainWindow::closeProject()
72 | {
73 | ui->actionOpen->setEnabled(true);
74 | ui->actionClose->setEnabled(false);
75 | ui->menuView->setEnabled(false);
76 |
77 | m_DockManager->hideManagerAndFloatingWidgets();
78 | m_layout->setCurrentWidget( m_welcomeWidget );
79 | }
80 |
81 |
--------------------------------------------------------------------------------
/examples/hideshow/MainWindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 | #include "DockManager.h"
7 |
8 | QT_BEGIN_NAMESPACE
9 | namespace Ui {
10 | class MainWindow;
11 | }
12 | QT_END_NAMESPACE
13 |
14 | class MainWindow : public QMainWindow
15 | {
16 | Q_OBJECT
17 |
18 | public:
19 | explicit MainWindow(QWidget *parent = 0);
20 | ~MainWindow();
21 |
22 | private slots:
23 | void openProject();
24 | void closeProject();
25 |
26 | private:
27 | Ui::MainWindow *ui;
28 | QWidget* m_welcomeWidget;
29 | ads::CDockManager* m_DockManager;
30 | QStackedLayout* m_layout;
31 | };
32 |
33 | #endif // MAINWINDOW_H
34 |
--------------------------------------------------------------------------------
/examples/hideshow/MainWindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 400
10 | 300
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
41 |
42 |
43 |
44 | Open project
45 |
46 |
47 |
48 |
49 | Close project
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/examples/hideshow/hideshow.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = HideShowExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | DEFINES += QT_DEPRECATED_WARNINGS
15 |
16 | SOURCES += \
17 | main.cpp \
18 | MainWindow.cpp
19 |
20 | HEADERS += \
21 | MainWindow.h
22 |
23 | FORMS += \
24 | MainWindow.ui
25 |
26 |
27 | LIBS += -L$${ADS_OUT_ROOT}/lib
28 | include(../../ads.pri)
29 | INCLUDEPATH += ../../src
30 | DEPENDPATH += ../../src
31 |
32 |
--------------------------------------------------------------------------------
/examples/hideshow/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "../../examples/hideshow/MainWindow.h"
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 |
--------------------------------------------------------------------------------
/examples/sidebar/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_sidebar VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(SidebarExample WIN32
7 | main.cpp
8 | MainWindow.cpp
9 | MainWindow.ui
10 | )
11 | target_include_directories(SidebarExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
12 | target_link_libraries(SidebarExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
13 | target_link_libraries(SidebarExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
14 | Qt${QT_VERSION_MAJOR}::Gui
15 | Qt${QT_VERSION_MAJOR}::Widgets)
16 | set_target_properties(SidebarExample PROPERTIES
17 | AUTOMOC ON
18 | AUTORCC ON
19 | AUTOUIC ON
20 | CXX_STANDARD 14
21 | CXX_STANDARD_REQUIRED ON
22 | CXX_EXTENSIONS OFF
23 | VERSION ${VERSION_SHORT}
24 | EXPORT_NAME "Qt Advanced Docking System Sidebar Example"
25 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
26 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
28 | )
29 |
--------------------------------------------------------------------------------
/examples/sidebar/MainWindow.cpp:
--------------------------------------------------------------------------------
1 | #include "MainWindow.h"
2 |
3 | #include "ui_MainWindow.h"
4 |
5 | #include
6 | #include
7 | #include
8 |
9 | MainWindow::MainWindow(QWidget *parent) :
10 | QMainWindow(parent),
11 | ui(new Ui::MainWindow)
12 | {
13 | ui->setupUi(this);
14 |
15 | // Create the dock manager. Because the parent parameter is a QMainWindow
16 | // the dock manager registers itself as the central widget.
17 | QVBoxLayout* Layout = new QVBoxLayout(ui->dockContainer);
18 | Layout->setContentsMargins(QMargins(0, 0, 0, 0));
19 | m_DockManager = new ads::CDockManager(ui->dockContainer);
20 | Layout->addWidget(m_DockManager);
21 |
22 | // Create example content label - this can be any application specific
23 | // widget
24 | QLabel* l = new QLabel();
25 | l->setWordWrap(true);
26 | l->setAlignment(Qt::AlignTop | Qt::AlignLeft);
27 | l->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ");
28 |
29 | // Create a dock widget with the title Label 1 and set the created label
30 | // as the dock widget content
31 | ads::CDockWidget* DockWidget = new ads::CDockWidget("Label 1");
32 | DockWidget->setWidget(l);
33 |
34 | // Add the toggleViewAction of the dock widget to the menu to give
35 | // the user the possibility to show the dock widget if it has been closed
36 | ui->menuView->addAction(DockWidget->toggleViewAction());
37 |
38 |
39 | // Add the dock widget to the top dock widget area
40 | m_DockManager->addDockWidget(ads::TopDockWidgetArea, DockWidget);
41 |
42 | // Create an example editor
43 | QPlainTextEdit* te = new QPlainTextEdit();
44 | te->setPlaceholderText("Please enter your text here into this QPlainTextEdit...");
45 | DockWidget = new ads::CDockWidget("Editor 1");
46 | DockWidget->setWidget(te);
47 | ui->menuView->addAction(DockWidget->toggleViewAction());
48 | m_DockManager->addDockWidget(ads::BottomDockWidgetArea, DockWidget);
49 | }
50 |
51 | MainWindow::~MainWindow()
52 | {
53 | delete ui;
54 | }
55 |
56 |
57 | void MainWindow::closeEvent(QCloseEvent *event)
58 | {
59 | QMainWindow::closeEvent(event);
60 | if (m_DockManager)
61 | {
62 | m_DockManager->deleteLater();
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/examples/sidebar/MainWindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include "DockManager.h"
6 |
7 | QT_BEGIN_NAMESPACE
8 | namespace Ui {
9 | class MainWindow;
10 | }
11 | QT_END_NAMESPACE
12 |
13 | /**
14 | * This example shows, how to place a dock widget container and a static
15 | * sidebar into a QMainWindow
16 | */
17 | class MainWindow : public QMainWindow
18 | {
19 | Q_OBJECT
20 |
21 | public:
22 | explicit MainWindow(QWidget *parent = 0);
23 | ~MainWindow();
24 |
25 | protected:
26 | virtual void closeEvent(QCloseEvent *event) override;
27 |
28 | private:
29 | Ui::MainWindow *ui;
30 | ads::CDockManager* m_DockManager;
31 | };
32 |
33 | #endif // MAINWINDOW_H
34 |
--------------------------------------------------------------------------------
/examples/sidebar/MainWindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 650
10 | 376
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 | -
19 |
20 |
-
21 |
22 |
23 | -
24 |
25 |
26 | PushButton
27 |
28 |
29 |
30 | -
31 |
32 |
33 |
34 | 0
35 | 0
36 |
37 |
38 |
39 |
40 | -
41 |
42 |
43 |
44 | 0
45 | 0
46 |
47 |
48 |
49 |
50 |
51 |
52 | -
53 |
54 |
55 |
56 | 0
57 | 0
58 |
59 |
60 |
61 |
62 |
63 |
64 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/examples/sidebar/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "../../examples/simple/MainWindow.h"
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 |
--------------------------------------------------------------------------------
/examples/sidebar/main.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 |
4 | from PyQt5 import uic
5 | from PyQt5.QtCore import Qt, QMargins
6 | from PyQt5.QtWidgets import QApplication, QLabel, QVBoxLayout, QPlainTextEdit
7 |
8 | import PyQtAds as QtAds
9 |
10 | UI_FILE = os.path.join(os.path.dirname(__file__), 'MainWindow.ui')
11 | MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
12 |
13 |
14 | class MainWindow(MainWindowUI, MainWindowBase):
15 |
16 | def __init__(self, parent=None):
17 | super().__init__(parent)
18 |
19 | self.setupUi(self)
20 |
21 | # Create the dock manager. Because the parent parameter is a QMainWindow
22 | # the dock manager registers itself as the central widget.
23 | layout = QVBoxLayout(self.dockContainer);
24 | layout.setContentsMargins(QMargins(0, 0, 0, 0))
25 | self.dock_manager = QtAds.CDockManager(self.dockContainer)
26 | layout.addWidget(self.dock_manager)
27 |
28 | # Create example content label - this can be any application specific
29 | # widget
30 | l = QLabel()
31 | l.setWordWrap(True)
32 | l.setAlignment(Qt.AlignTop | Qt.AlignLeft);
33 | l.setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ")
34 |
35 | # Create a dock widget with the title Label 1 and set the created label
36 | # as the dock widget content
37 | dock_widget = QtAds.CDockWidget("Label 1")
38 | dock_widget.setWidget(l)
39 |
40 | # Add the toggleViewAction of the dock widget to the menu to give
41 | # the user the possibility to show the dock widget if it has been closed
42 | self.menuView.addAction(dock_widget.toggleViewAction())
43 |
44 | # Add the dock widget to the top dock widget area
45 | self.dock_manager.addDockWidget(QtAds.TopDockWidgetArea, dock_widget)
46 |
47 | # Create an example editor
48 | te = QPlainTextEdit()
49 | te.setPlaceholderText("Please enter your text here into this QPlainTextEdit...")
50 | dock_widget = QtAds.CDockWidget("Editor 1")
51 | self.menuView.addAction(dock_widget.toggleViewAction())
52 | self.dock_manager.addDockWidget(QtAds.BottomDockWidgetArea, dock_widget)
53 |
54 |
55 | if __name__ == '__main__':
56 | app = QApplication(sys.argv)
57 |
58 | w = MainWindow()
59 | w.show()
60 | app.exec_()
61 |
--------------------------------------------------------------------------------
/examples/sidebar/sidebar.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = SidebarExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | DEFINES += QT_DEPRECATED_WARNINGS
15 |
16 | SOURCES += \
17 | main.cpp \
18 | MainWindow.cpp
19 |
20 | HEADERS += \
21 | MainWindow.h
22 |
23 | FORMS += \
24 | MainWindow.ui
25 |
26 |
27 | LIBS += -L$${ADS_OUT_ROOT}/lib
28 | include(../../ads.pri)
29 | INCLUDEPATH += ../../src
30 | DEPENDPATH += ../../src
31 |
32 |
--------------------------------------------------------------------------------
/examples/simple/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.16)
2 | project(ads_example_simple VERSION ${VERSION_SHORT})
3 | find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
4 | find_package(Qt${QT_VERSION_MAJOR} 5.5 COMPONENTS Core Gui Widgets REQUIRED)
5 | set(CMAKE_INCLUDE_CURRENT_DIR ON)
6 | add_executable(SimpleExample WIN32
7 | main.cpp
8 | MainWindow.cpp
9 | MainWindow.ui
10 | )
11 | target_include_directories(SimpleExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
12 | target_link_libraries(SimpleExample PRIVATE qtadvanceddocking-qt${QT_VERSION_MAJOR})
13 | target_link_libraries(SimpleExample PUBLIC Qt${QT_VERSION_MAJOR}::Core
14 | Qt${QT_VERSION_MAJOR}::Gui
15 | Qt${QT_VERSION_MAJOR}::Widgets)
16 | set_target_properties(SimpleExample PROPERTIES
17 | AUTOMOC ON
18 | AUTORCC ON
19 | AUTOUIC ON
20 | CXX_STANDARD 14
21 | CXX_STANDARD_REQUIRED ON
22 | CXX_EXTENSIONS OFF
23 | VERSION ${VERSION_SHORT}
24 | EXPORT_NAME "Qt Advanced Docking System Simple Example"
25 | ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
26 | LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
27 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
28 | )
29 |
--------------------------------------------------------------------------------
/examples/simple/MainWindow.cpp:
--------------------------------------------------------------------------------
1 | #include "../../examples/simple/MainWindow.h"
2 |
3 | #include "ui_MainWindow.h"
4 |
5 | #include
6 | #include
7 |
8 | MainWindow::MainWindow(QWidget *parent) :
9 | QMainWindow(parent),
10 | ui(new Ui::MainWindow)
11 | {
12 | ui->setupUi(this);
13 |
14 | // Create the dock manager. Because the parent parameter is a QMainWindow
15 | // the dock manager registers itself as the central widget.
16 | m_DockManager = new ads::CDockManager(this);
17 |
18 | // Create example content label - this can be any application specific
19 | // widget
20 | QLabel* l = new QLabel();
21 | l->setWordWrap(true);
22 | l->setAlignment(Qt::AlignTop | Qt::AlignLeft);
23 | l->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ");
24 |
25 | // Create a dock widget with the title Label 1 and set the created label
26 | // as the dock widget content
27 | ads::CDockWidget* DockWidget = new ads::CDockWidget("Label 1");
28 | DockWidget->setWidget(l);
29 |
30 | // Add the toggleViewAction of the dock widget to the menu to give
31 | // the user the possibility to show the dock widget if it has been closed
32 | ui->menuView->addAction(DockWidget->toggleViewAction());
33 |
34 | // Add the dock widget to the top dock widget area
35 | m_DockManager->addDockWidget(ads::TopDockWidgetArea, DockWidget);
36 | }
37 |
38 | MainWindow::~MainWindow()
39 | {
40 | delete ui;
41 | }
42 |
43 |
--------------------------------------------------------------------------------
/examples/simple/MainWindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include "DockManager.h"
6 |
7 | QT_BEGIN_NAMESPACE
8 | namespace Ui {
9 | class MainWindow;
10 | }
11 | QT_END_NAMESPACE
12 |
13 | class MainWindow : public QMainWindow
14 | {
15 | Q_OBJECT
16 |
17 | public:
18 | explicit MainWindow(QWidget *parent = 0);
19 | ~MainWindow();
20 |
21 | private:
22 | Ui::MainWindow *ui;
23 | ads::CDockManager* m_DockManager;
24 | };
25 |
26 | #endif // MAINWINDOW_H
27 |
--------------------------------------------------------------------------------
/examples/simple/MainWindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 400
10 | 300
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/examples/simple/main.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "../../examples/simple/MainWindow.h"
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 |
--------------------------------------------------------------------------------
/examples/simple/main.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 |
4 | from PyQt5 import uic
5 | from PyQt5.QtCore import Qt, QTimer
6 | from PyQt5.QtGui import QCloseEvent
7 | from PyQt5.QtWidgets import QApplication, QLabel
8 |
9 | import PyQtAds as QtAds
10 |
11 | UI_FILE = os.path.join(os.path.dirname(__file__), 'MainWindow.ui')
12 | MainWindowUI, MainWindowBase = uic.loadUiType(UI_FILE)
13 |
14 |
15 | class MainWindow(MainWindowUI, MainWindowBase):
16 |
17 | def __init__(self, parent=None):
18 | super().__init__(parent)
19 |
20 | self.setupUi(self)
21 |
22 | # Create the dock manager. Because the parent parameter is a QMainWindow
23 | # the dock manager registers itself as the central widget.
24 | self.dock_manager = QtAds.CDockManager(self)
25 |
26 | # Create example content label - this can be any application specific
27 | # widget
28 | l = QLabel()
29 | l.setWordWrap(True)
30 | l.setAlignment(Qt.AlignTop | Qt.AlignLeft);
31 | l.setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. ")
32 |
33 | # Create a dock widget with the title Label 1 and set the created label
34 | # as the dock widget content
35 | dock_widget = QtAds.CDockWidget("Label 1")
36 | dock_widget.setWidget(l)
37 |
38 |
39 | # Add the toggleViewAction of the dock widget to the menu to give
40 | # the user the possibility to show the dock widget if it has been closed
41 | self.menuView.addAction(dock_widget.toggleViewAction())
42 |
43 | # Add the dock widget to the top dock widget area
44 | self.dock_manager.addDockWidget(QtAds.TopDockWidgetArea, dock_widget)
45 |
46 |
47 | if __name__ == '__main__':
48 | app = QApplication(sys.argv)
49 |
50 | w = MainWindow()
51 | w.show()
52 | app.exec_()
53 |
--------------------------------------------------------------------------------
/examples/simple/simple.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/../..
2 |
3 | QT += core gui widgets
4 |
5 | TARGET = SimpleExample
6 | DESTDIR = $${ADS_OUT_ROOT}/lib
7 | TEMPLATE = app
8 | CONFIG += c++14
9 | CONFIG += debug_and_release
10 | adsBuildStatic {
11 | DEFINES += ADS_STATIC
12 | }
13 |
14 | DEFINES += QT_DEPRECATED_WARNINGS
15 |
16 | SOURCES += \
17 | main.cpp \
18 | MainWindow.cpp
19 |
20 | HEADERS += \
21 | MainWindow.h
22 |
23 | FORMS += \
24 | MainWindow.ui
25 |
26 |
27 | LIBS += -L$${ADS_OUT_ROOT}/lib
28 | include(../../ads.pri)
29 | INCLUDEPATH += ../../src
30 | DEPENDPATH += ../../src
31 |
32 |
--------------------------------------------------------------------------------
/persist/perspectives.ini:
--------------------------------------------------------------------------------
1 | [Perspectives]
2 | size=0
3 |
--------------------------------------------------------------------------------
/project.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 |
4 | from pyqtbuild import PyQtBindings, PyQtProject
5 | from sipbuild import Option
6 |
7 | class PyQtAds(PyQtProject):
8 | def __init__(self):
9 | """ Initialise the project. """
10 |
11 | super().__init__()
12 |
13 | self.bindings_factories = [ads]
14 |
15 | class ads(PyQtBindings):
16 | def __init__(self, project):
17 | """ Initialise the bindings. """
18 |
19 | super().__init__(project, 'ads')
20 |
21 | def get_options(self):
22 | """Our custom options that a user can pass to sip-build."""
23 | options = super().get_options()
24 | options += [
25 | Option('ads_incdir',
26 | help='the directory containing the ads header file',
27 | metavar='DIR'),
28 | Option('ads_libdir',
29 | help='the directory containing the ads library',
30 | metavar='DIR'),
31 | Option('ads_lib',
32 | help='the ads library',
33 | metavar='LIB'),
34 | ]
35 | return options
36 |
37 | def apply_user_defaults(self, tool):
38 | """ Set default values for user options that haven't been set yet. """
39 |
40 | resource_file = os.path.join(self.project.root_dir,'src','ads.qrc')
41 | print("Adding resource file to qmake project: ", resource_file)
42 | self.builder_settings.append('RESOURCES += '+resource_file)
43 |
44 | if self.ads_lib is not None:
45 | self.libraries.append(self.ads_lib)
46 |
47 | if self.ads_incdir is not None:
48 | self.include_dirs.append(self.ads_incdir)
49 |
50 | if self.ads_libdir is not None:
51 | self.library_dirs.append(self.ads_libdir)
52 |
53 | super().apply_user_defaults(tool)
54 |
--------------------------------------------------------------------------------
/pyproject.toml:
--------------------------------------------------------------------------------
1 | # Specify the build system.
2 | [build-system]
3 | requires = ["sip >=6.0.2", "PyQt-builder >=1.6", "PyQt5>=5.15", "PyQt5-sip>=12.8"]
4 | build-backend = "sipbuild.api"
5 |
6 | # Specify the PEP 566 metadata for the project.
7 | [tool.sip.metadata]
8 | name = "PyQtAds"
9 | version = "4.4.1"
10 | summary = "Python bindings for Qt Advanced Docking System"
11 | home-page = "https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System/"
12 | license = "LGPL v2.1"
13 | description-file = "README.md"
14 | requires-dist = "PyQt5 (>=5.15.4)"
15 | description-content-type = "text/markdown"
16 |
17 | [tool.sip.project]
18 | tag-prefix = "QtAds"
19 | dunder-init = true
20 |
21 | [tool.sip.bindings.ads]
22 | pep484-pyi = true
23 | define-macros = ["ADS_SHARED_EXPORT"]
24 | sip-file = "ads.sip"
25 | include-dirs = ["src"]
26 | qmake-QT = ["widgets", "gui-private; platform_system == 'Linux'"]
27 | headers = [
28 | "src/AutoHideDockContainer.h",
29 | "src/AutoHideSideBar.h",
30 | "src/AutoHideTab.h",
31 | "src/DockAreaTabBar.h",
32 | "src/DockAreaTitleBar.h",
33 | "src/DockAreaTitleBar_p.h",
34 | "src/DockAreaWidget.h",
35 | "src/DockComponentsFactory.h",
36 | "src/DockContainerWidget.h",
37 | "src/DockFocusController.h",
38 | "src/DockManager.h",
39 | "src/DockOverlay.h",
40 | "src/DockSplitter.h",
41 | "src/DockWidget.h",
42 | "src/DockWidgetTab.h",
43 | "src/DockingStateReader.h",
44 | "src/ElidingLabel.h",
45 | "src/FloatingDockContainer.h",
46 | "src/FloatingDragPreview.h",
47 | "src/IconProvider.h",
48 | "src/PushButton.h",
49 | "src/ResizeHandle.h",
50 | "src/ads_globals.h",
51 | "src/linux/FloatingWidgetTitleBar.h; platform_system == 'Linux'",
52 | ]
53 | sources = [
54 | "src/AutoHideTab.cpp",
55 | "src/AutoHideDockContainer.cpp",
56 | "src/AutoHideSideBar.cpp",
57 | "src/DockAreaTabBar.cpp",
58 | "src/DockAreaTitleBar.cpp",
59 | "src/DockAreaWidget.cpp",
60 | "src/DockComponentsFactory.cpp",
61 | "src/DockContainerWidget.cpp",
62 | "src/DockFocusController.cpp",
63 | "src/DockManager.cpp",
64 | "src/DockOverlay.cpp",
65 | "src/DockSplitter.cpp",
66 | "src/DockWidget.cpp",
67 | "src/DockWidgetTab.cpp",
68 | "src/DockingStateReader.cpp",
69 | "src/ElidingLabel.cpp",
70 | "src/FloatingDockContainer.cpp",
71 | "src/FloatingDragPreview.cpp",
72 | "src/IconProvider.cpp",
73 | "src/PushButton.cpp",
74 | "src/ResizeHandle.cpp",
75 | "src/ads_globals.cpp",
76 | "src/linux/FloatingWidgetTitleBar.cpp; platform_system == 'Linux'",
77 | ]
78 |
--------------------------------------------------------------------------------
/sip/AutoHideDockContainer.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CAutoHideDockContainer : QFrame
9 | {
10 |
11 | %TypeHeaderCode
12 | #include
13 | %End
14 |
15 | protected:
16 | virtual bool eventFilter(QObject* watched, QEvent* event);
17 | virtual void resizeEvent(QResizeEvent* event);
18 | virtual void leaveEvent(QEvent *event);
19 | virtual bool event(QEvent* event);
20 | void updateSize();
21 | void saveState(QXmlStreamWriter& Stream);
22 |
23 | public:
24 | CAutoHideDockContainer(ads::CDockWidget* DockWidget /Transfer/, ads::SideBarLocation area,
25 | ads::CDockContainerWidget* parent /TransferThis/);
26 | virtual ~CAutoHideDockContainer();
27 | ads::CAutoHideSideBar* autoHideSideBar() const;
28 | ads::CAutoHideTab* autoHideTab() const;
29 | ads::CDockWidget* dockWidget() const;
30 | int tabIndex() const;
31 | void addDockWidget(ads::CDockWidget* DockWidget /Transfer/);
32 | ads::SideBarLocation sideBarLocation() const;
33 | void setSideBarLocation(ads::SideBarLocation SideBarLocation);
34 | ads::CDockAreaWidget* dockAreaWidget() const;
35 | ads::CDockContainerWidget* dockContainer() const;
36 | void moveContentsToParent();
37 | void cleanupAndDelete();
38 | void toggleView(bool Enable);
39 | void collapseView(bool Enable);
40 | void toggleCollapseState();
41 | void setSize(int Size);
42 | void resetToInitialDockWidgetSize();
43 | Qt::Orientation orientation() const;
44 | void moveToNewSideBarLocation(ads::SideBarLocation);
45 | };
46 |
47 | };
48 |
49 | %End
--------------------------------------------------------------------------------
/sip/AutoHideSideBar.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 |
9 | class CAutoHideSideBar : QScrollArea
10 | {
11 |
12 | %TypeHeaderCode
13 | #include
14 | %End
15 |
16 | protected:
17 | virtual bool eventFilter(QObject *watched, QEvent *event);
18 | void saveState(QXmlStreamWriter& Stream) const;
19 | void insertTab(int Index, ads::CAutoHideTab* SideTab /Transfer/);
20 |
21 | public:
22 | CAutoHideSideBar(ads::CDockContainerWidget* parent /TransferThis/, SideBarLocation area);
23 | virtual ~CAutoHideSideBar();
24 | void removeTab(ads::CAutoHideTab* SideTab) /TransferBack/;
25 | ads::CAutoHideDockContainer* insertDockWidget(int Index, ads::CDockWidget* DockWidget /Transfer/);
26 | void removeAutoHideWidget(ads::CAutoHideDockContainer* AutoHideWidget) /TransferBack/;
27 | void addAutoHideWidget(ads::CAutoHideDockContainer* AutoHideWidget, int Index);
28 | Qt::Orientation orientation() const;
29 | ads::CAutoHideTab* tab(int index) const;
30 | int tabAt(const QPoint& Pos) const;
31 | int tabInsertIndexAt(const QPoint& Pos) const;
32 | int indexOfTab(const CAutoHideTab& Tab) const;
33 | int count() const;
34 | int visibleTabCount() const;
35 | bool hasVisibleTabs() const;
36 | ads::SideBarLocation sideBarLocation() const;
37 | virtual QSize minimumSizeHint() const;
38 | virtual QSize sizeHint() const;
39 | int spacing() const;
40 | void setSpacing(int Spacing);
41 | CDockContainerWidget* dockContainer() const;
42 | };
43 |
44 | };
45 |
46 | %End
--------------------------------------------------------------------------------
/sip/AutoHideTab.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CAutoHideTab : CPushButton
9 | {
10 |
11 | %TypeHeaderCode
12 | #include
13 | %End
14 |
15 | protected:
16 | void setSideBar(ads::CAutoHideSideBar *SideTabBar);
17 | void removeFromSideBar();
18 | virtual bool event(QEvent* event);
19 | virtual void contextMenuEvent(QContextMenuEvent* ev);
20 | virtual void mousePressEvent(QMouseEvent* ev);
21 | virtual void mouseReleaseEvent(QMouseEvent* ev);
22 | virtual void mouseMoveEvent(QMouseEvent* ev);
23 |
24 | public:
25 | CAutoHideTab(QWidget* parent /TransferThis/ = 0);
26 | virtual ~CAutoHideTab();
27 | void updateStyle();
28 | ads::SideBarLocation sideBarLocation() const;
29 | void setOrientation(Qt::Orientation Orientation);
30 | Qt::Orientation orientation() const;
31 | bool isActiveTab() const;
32 | ads::CDockWidget* dockWidget() const;
33 | void setDockWidget(ads::CDockWidget* DockWidget);
34 | bool iconOnly() const;
35 | ads::CAutoHideSideBar* sideBar() const;
36 | int tabIndex() const;
37 | void setDockWidgetFloating();
38 | void unpinDockWidget();
39 | void requestCloseDockWidget();
40 | };
41 |
42 | };
43 |
44 | %End
45 |
--------------------------------------------------------------------------------
/sip/DockAreaTabBar.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CDockAreaTabBar : QScrollArea
9 | {
10 | %TypeHeaderCode
11 | #include
12 | %End
13 |
14 | protected:
15 | virtual void wheelEvent(QWheelEvent* Event);
16 |
17 | public:
18 | CDockAreaTabBar(ads::CDockAreaWidget* parent /TransferThis/);
19 | virtual ~CDockAreaTabBar();
20 | void insertTab(int Index, ads::CDockWidgetTab* Tab /Transfer/);
21 | void removeTab(ads::CDockWidgetTab* Tab) /TransferBack/;
22 | int count() const;
23 | int currentIndex() const;
24 | ads::CDockWidgetTab* currentTab() const;
25 | ads::CDockWidgetTab* tab(int Index) const;
26 | int tabAt(const QPoint& Pos) const;
27 | int tabInsertIndexAt(const QPoint& Pos) const;
28 | virtual bool eventFilter(QObject *watched, QEvent *event);
29 | bool isTabOpen(int Index) const;
30 | virtual QSize minimumSizeHint() const;
31 | virtual QSize sizeHint() const;
32 | void elidedChanged(bool elided);
33 |
34 | public slots:
35 | void setCurrentIndex(int Index);
36 | void closeTab(int Index);
37 |
38 | signals:
39 | void currentChanging(int Index);
40 | void currentChanged(int Index);
41 | void tabBarClicked(int index);
42 | void tabCloseRequested(int index);
43 | void tabClosed(int index);
44 | void tabOpened(int index);
45 | void tabMoved(int from, int to);
46 | void removingTab(int index);
47 | void tabInserted(int index);
48 | };
49 |
50 | };
51 |
52 | %End
53 |
--------------------------------------------------------------------------------
/sip/DockAreaTitleBar.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CTitleBarButton : QToolButton
9 | {
10 | %TypeHeaderCode
11 | #include
12 | %End
13 |
14 | public:
15 | CTitleBarButton(bool ShowInTitleBar, bool HideWhenDisabled, TitleBarButton ButtonId,
16 | QWidget* /TransferThis/ = Q_NULLPTR );
17 | virtual void setVisible(bool);
18 | void setShowInTitleBar(bool);
19 |
20 | TitleBarButton buttonId() const;
21 | ads::CDockAreaTitleBar* titleBar() const;
22 | bool isInAutoHideArea() const;
23 |
24 | protected:
25 | bool event(QEvent *ev);
26 | };
27 |
28 | class CDockAreaTitleBar : QFrame
29 | {
30 | %TypeHeaderCode
31 | #include
32 | %End
33 |
34 | protected:
35 | virtual void mousePressEvent(QMouseEvent* ev);
36 | virtual void mouseReleaseEvent(QMouseEvent* ev);
37 | virtual void mouseMoveEvent(QMouseEvent* ev);
38 | virtual void mouseDoubleClickEvent(QMouseEvent *event);
39 | virtual void contextMenuEvent(QContextMenuEvent *event);
40 |
41 | public slots:
42 | void markTabsMenuOutdated();
43 |
44 |
45 | public:
46 | CDockAreaTitleBar(ads::CDockAreaWidget* parent /TransferThis/);
47 | virtual ~CDockAreaTitleBar();
48 | ads::CDockAreaTabBar* tabBar() const;
49 | ads::CTitleBarButton* button(ads::TitleBarButton which) const;
50 | ads::CElidingLabel* autoHideTitleLabel() const;
51 | ads::CDockAreaWidget* dockAreaWidget() const;
52 | void updateDockWidgetActionsButtons();
53 | virtual void setVisible(bool Visible);
54 | void insertWidget(int index, QWidget *widget /Transfer/ );
55 | int indexOf(QWidget *widget) const;
56 | QString titleBarButtonToolTip(ads::TitleBarButton Button) const;
57 | void setAreaFloating();
58 | void showAutoHideControls(bool Show);
59 | bool isAutoHide() const;
60 |
61 | signals:
62 | void tabBarClicked(int index);
63 | };
64 |
65 | };
66 |
67 | %End
68 |
--------------------------------------------------------------------------------
/sip/DockAreaTitleBar_p.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CSpacerWidget : QWidget
9 | {
10 | %TypeHeaderCode
11 | #include
12 | %End
13 |
14 | public:
15 | CSpacerWidget(QWidget* Parent /TransferThis/ = 0 );
16 | virtual QSize sizeHint() const;
17 | virtual QSize minimumSizeHint() const;
18 | };
19 |
20 | };
21 |
22 | %End
23 |
--------------------------------------------------------------------------------
/sip/DockComponentsFactory.sip:
--------------------------------------------------------------------------------
1 | %If (Qt_5_0_0 -)
2 |
3 | namespace ads
4 | {
5 |
6 | class CDockComponentsFactory
7 | {
8 |
9 | %TypeHeaderCode
10 | #include
11 | %End
12 |
13 | public:
14 | virtual ~CDockComponentsFactory();
15 | virtual CDockWidgetTab* createDockWidgetTab(CDockWidget* DockWidget /Transfer/ ) const;
16 | virtual CAutoHideTab* createDockWidgetSideTab(CDockWidget* DockWidget /Transfer/) const;
17 | virtual CDockAreaTabBar* createDockAreaTabBar(CDockAreaWidget* DockArea /Transfer/ ) const;
18 | virtual CDockAreaTitleBar* createDockAreaTitleBar(CDockAreaWidget* DockArea /Transfer/ ) const;
19 | static const CDockComponentsFactory* factory();
20 | static void setFactory(CDockComponentsFactory* Factory /KeepReference/);
21 | static void resetDefaultFactory();
22 |
23 | };
24 |
25 | };
26 |
27 | %End
28 |
--------------------------------------------------------------------------------
/sip/DockFocusController.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | /**
9 | * Manages focus styling of dock widgets and handling of focus changes
10 | */
11 | class CDockFocusController : QObject
12 | {
13 | %TypeHeaderCode
14 | #include
15 | %End
16 |
17 | public:
18 | CDockFocusController(ads::CDockManager* DockManager);
19 | virtual ~CDockFocusController();
20 |
21 | void notifyWidgetOrAreaRelocation(QWidget* RelocatedWidget);
22 | void notifyFloatingWidgetDrop(ads::CFloatingDockContainer* FloatingWidget);
23 | ads::CDockWidget* focusedDockWidget() const;
24 | void setDockWidgetTabFocused(ads::CDockWidgetTab* Tab);
25 | void clearDockWidgetFocus(ads::CDockWidget* dockWidget);
26 | void setDockWidgetTabPressed(bool Value);
27 |
28 | public slots:
29 | void setDockWidgetFocused(ads::CDockWidget* focusedNow);
30 |
31 | }; // class DockFocusController
32 | };
33 | // namespace ads
34 |
35 | %End
--------------------------------------------------------------------------------
/sip/DockOverlay.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CDockOverlay : public QFrame
9 | {
10 | %TypeHeaderCode
11 | #include
12 | %End
13 |
14 | public:
15 |
16 | enum eMode
17 | {
18 | ModeDockAreaOverlay,
19 | ModeContainerOverlay
20 | };
21 |
22 | CDockOverlay(QWidget* parent /TransferThis/, eMode Mode = ads::CDockOverlay::ModeDockAreaOverlay);
23 | virtual ~CDockOverlay();
24 | void setAllowedAreas(ads::DockWidgetAreas areas);
25 | void setAllowedArea(ads::DockWidgetArea area, bool Enable);
26 | ads::DockWidgetAreas allowedAreas() const;
27 | ads::DockWidgetArea dropAreaUnderCursor() const;
28 | int tabIndexUnderCursor() const;
29 | ads::DockWidgetArea visibleDropAreaUnderCursor() const;
30 | ads::DockWidgetArea showOverlay(QWidget* target);
31 | void hideOverlay();
32 | void enableDropPreview(bool Enable);
33 | bool dropPreviewEnabled() const;
34 | QRect dropOverlayRect() const;
35 | virtual bool event(QEvent *e);
36 |
37 | protected:
38 | virtual void paintEvent(QPaintEvent *e);
39 | virtual void showEvent(QShowEvent* e);
40 | virtual void hideEvent(QHideEvent* e);
41 | };
42 |
43 |
44 | class CDockOverlayCross : public QWidget
45 | {
46 |
47 | public:
48 | enum eIconColor
49 | {
50 | FrameColor,
51 | WindowBackgroundColor,
52 | OverlayColor,
53 | ArrowColor,
54 | ShadowColor
55 | };
56 |
57 | protected:
58 | QString iconColors() const;
59 | QColor iconColor() const;
60 | void setIconFrameColor(const QColor& Color);
61 | void setIconBackgroundColor(const QColor& Color);
62 | void setIconOverlayColor(const QColor& Color);
63 | void setIconArrowColor(const QColor& Color);
64 | void setIconShadowColor(const QColor& Color);
65 | virtual void showEvent(QShowEvent* e);
66 | void setAreaWidgets(const QHash& widgets);
67 |
68 | public:
69 | CDockOverlayCross(ads::CDockOverlay* overlay /TransferThis/);
70 | virtual ~CDockOverlayCross();
71 | void setIconColor(ads::CDockOverlayCross::eIconColor ColorIndex, const QColor& Color);
72 | QColor iconColor(ads::CDockOverlayCross::eIconColor ColorIndex) const;
73 | ads::DockWidgetArea cursorLocation() const;
74 | void setupOverlayCross(ads::CDockOverlay::eMode Mode);
75 | void updateOverlayIcons();
76 | void reset();
77 | void updatePosition();
78 | void setIconColors(const QString& Colors);
79 | };
80 |
81 | };
82 |
83 | %End
84 |
--------------------------------------------------------------------------------
/sip/DockSplitter.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CDockSplitter : QSplitter
9 | {
10 | %TypeHeaderCode
11 | #include
12 | %End
13 |
14 | public:
15 | CDockSplitter(QWidget *parent /TransferThis/ = 0);
16 | CDockSplitter(Qt::Orientation orientation, QWidget *parent /TransferThis/ = 0);
17 | virtual ~CDockSplitter();
18 | bool hasVisibleContent() const;
19 | QWidget* firstWidget() const;
20 | QWidget* lastWidget() const;
21 | bool isResizingWithContainer() const;
22 |
23 | };
24 |
25 | };
26 |
27 | %End
28 |
--------------------------------------------------------------------------------
/sip/DockWidgetTab.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CDockWidgetTab : QFrame
9 | {
10 | %TypeHeaderCode
11 | #include
12 | %End
13 |
14 | protected:
15 | virtual void mousePressEvent(QMouseEvent* ev);
16 | virtual void mouseReleaseEvent(QMouseEvent* ev);
17 | virtual void mouseMoveEvent(QMouseEvent* ev);
18 | virtual void contextMenuEvent(QContextMenuEvent* ev);
19 | virtual void mouseDoubleClickEvent(QMouseEvent *event);
20 |
21 | public:
22 | CDockWidgetTab(ads::CDockWidget* DockWidget /TransferThis/, QWidget* parent /TransferThis/ = 0);
23 | virtual ~CDockWidgetTab();
24 | bool isActiveTab() const;
25 | void setActiveTab(bool active);
26 | void setDockAreaWidget(ads::CDockAreaWidget* DockArea /Transfer/);
27 | ads::CDockAreaWidget* dockAreaWidget() const;
28 | ads::CDockWidget* dockWidget() const;
29 | void setIcon(const QIcon& Icon);
30 | const QIcon& icon() const;
31 | QString text() const;
32 | void setText(const QString& title);
33 | bool isTitleElided() const;
34 | bool isClosable() const;
35 | virtual bool event(QEvent *e);
36 | void setElideMode(Qt::TextElideMode mode);
37 | void updateStyle();
38 | QSize iconSize() const;
39 | void setIconSize(const QSize& Size);
40 |
41 | public slots:
42 | virtual void setVisible(bool visible);
43 |
44 | signals:
45 | void activeTabChanged();
46 | void clicked();
47 | void closeRequested();
48 | void closeOtherTabsRequested();
49 | void moved(const QPoint& GlobalPos);
50 | void elidedChanged(bool elided);
51 | }; // class DockWidgetTab
52 | };
53 | // namespace ads
54 |
55 | %End
56 |
--------------------------------------------------------------------------------
/sip/DockingStateReader.sip:
--------------------------------------------------------------------------------
1 | %If (Qt_5_0_0 -)
2 |
3 | namespace ads
4 | {
5 |
6 | class CDockingStateReader : QXmlStreamReader
7 | {
8 |
9 | %TypeHeaderCode
10 | #include
11 | %End
12 |
13 |
14 | public:
15 | void setFileVersion(int FileVersion);
16 | int fileVersion() const;
17 | };
18 |
19 | };
20 |
21 | %End
--------------------------------------------------------------------------------
/sip/ElidingLabel.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CElidingLabel : QLabel
9 | {
10 | %TypeHeaderCode
11 | #include
12 | %End
13 |
14 | protected:
15 | virtual void mouseReleaseEvent(QMouseEvent* event);
16 | virtual void resizeEvent( QResizeEvent *event );
17 | virtual void mouseDoubleClickEvent( QMouseEvent *ev );
18 |
19 | public:
20 | CElidingLabel(QWidget* parent /TransferThis/ = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags ());
21 | CElidingLabel(const QString& text, QWidget* parent /TransferThis/ = Q_NULLPTR, Qt::WindowFlags f = Qt::WindowFlags ());
22 | virtual ~CElidingLabel();
23 | Qt::TextElideMode elideMode() const;
24 | void setElideMode(Qt::TextElideMode mode);
25 | bool isElided() const;
26 |
27 | public:
28 | virtual QSize minimumSizeHint() const;
29 | virtual QSize sizeHint() const;
30 | void setText(const QString &text);
31 | QString text() const;
32 |
33 | signals:
34 | void clicked();
35 | void doubleClicked();
36 | void elidedChanged(bool elided);
37 | };
38 |
39 | };
40 |
41 | %End
42 |
--------------------------------------------------------------------------------
/sip/FloatingDragPreview.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CFloatingDragPreview : QWidget, ads::IFloatingWidget
9 | {
10 |
11 | %TypeHeaderCode
12 | #include
13 | %End
14 |
15 | protected:
16 | virtual void paintEvent(QPaintEvent *e);
17 | CFloatingDragPreview(QWidget* Content /TransferThis/, QWidget* parent /TransferThis/);
18 |
19 | public:
20 | CFloatingDragPreview(ads::CDockWidget* Content /TransferThis/ );
21 | CFloatingDragPreview(ads::CDockAreaWidget* Content /TransferThis/ );
22 |
23 | virtual ~CFloatingDragPreview();
24 |
25 | virtual bool eventFilter(QObject* watched, QEvent* event);
26 |
27 | public: // implements IFloatingWidget
28 | virtual void startFloating(const QPoint& DragStartMousePos, const QSize& Size,
29 | ads::eDragState DragState, QWidget* MouseEventHandler);
30 | virtual void moveFloating();
31 | virtual void finishDragging();
32 | void cleanupAutoHideContainerWidget(ads::DockWidgetArea ContainerDropArea);
33 |
34 | signals:
35 | void draggingCanceled();
36 |
37 | };
38 |
39 | };
40 |
41 | %End
42 |
--------------------------------------------------------------------------------
/sip/IconProvider.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CIconProvider
9 | {
10 |
11 | %TypeHeaderCode
12 | #include
13 | %End
14 |
15 |
16 | public:
17 | CIconProvider();
18 |
19 | virtual ~CIconProvider();
20 |
21 | QIcon customIcon(eIcon IconId);
22 |
23 | void registerCustomIcon(eIcon IconId, const QIcon& icon /TransferThis/ );
24 | };
25 |
26 | };
27 |
28 | %End
--------------------------------------------------------------------------------
/sip/PushButton.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 |
9 | class CPushButton : QPushButton
10 | {
11 | %TypeHeaderCode
12 | #include
13 | %End
14 |
15 | public:
16 | enum Orientation {
17 | Horizontal,
18 | VerticalTopToBottom,
19 | VerticalBottomToTop
20 | };
21 | virtual QSize sizeHint() const;
22 |
23 | ads::CPushButton::Orientation buttonOrientation() const;
24 | void setButtonOrientation(ads::CPushButton::Orientation orientation);
25 |
26 | };
27 |
28 | };
29 |
30 | %End
31 |
32 |
--------------------------------------------------------------------------------
/sip/ResizeHandle.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 |
8 | class CResizeHandle : QFrame
9 | {
10 |
11 | %TypeHeaderCode
12 | #include
13 | %End
14 |
15 | protected:
16 | void mouseMoveEvent(QMouseEvent *);
17 | void mousePressEvent(QMouseEvent *);
18 | void mouseReleaseEvent(QMouseEvent *);
19 |
20 | public:
21 | CResizeHandle(Qt::Edge HandlePosition, QWidget* parent /TransferThis/);
22 | virtual ~CResizeHandle();
23 | void setHandlePosition(Qt::Edge HandlePosition);
24 | Qt::Edge handlePostion() const;
25 | Qt::Orientation orientation() const;
26 | QSize sizeHint() const;
27 | bool isResizing() const;
28 | void setMinResizeSize(int MinSize);
29 | void setMaxResizeSize(int MaxSize);
30 | void setOpaqueResize(bool opaque = true);
31 | bool opaqueResize() const;
32 | };
33 |
34 | };
35 |
36 | %End
37 |
--------------------------------------------------------------------------------
/sip/ads.sip:
--------------------------------------------------------------------------------
1 | %Module(name=PyQtAds, call_super_init=True, keyword_arguments="Optional", use_limited_api=True)
2 | %HideNamespace(name=ads)
3 |
4 | %Import QtCore/QtCoremod.sip
5 | %DefaultSupertype sip.simplewrapper
6 |
7 | %Include ads_globals.sip
8 | %Include AutoHideDockContainer.sip
9 | %Include AutoHideSideBar.sip
10 | %Include AutoHideTab.sip
11 | %Include DockWidget.sip
12 | %Include DockAreaTabBar.sip
13 | %Include DockAreaTitleBar_p.sip
14 | %Include DockAreaTitleBar.sip
15 | %Include DockAreaWidget.sip
16 | %Include DockComponentsFactory.sip
17 | %Include DockContainerWidget.sip
18 | %Include DockingStateReader.sip
19 | %Include DockFocusController.sip
20 | %Include DockManager.sip
21 | %Include DockOverlay.sip
22 | %Include DockSplitter.sip
23 | %Include DockWidgetTab.sip
24 | %Include ElidingLabel.sip
25 | %Include FloatingDockContainer.sip
26 | %Include FloatingDragPreview.sip
27 | %Include IconProvider.sip
28 | %Include PushButton.sip
29 | %Include ResizeHandle.sip
30 | %If (WS_X11)
31 | %Include linux/FloatingWidgetTitleBar.sip
32 | %End
33 |
--------------------------------------------------------------------------------
/sip/linux/FloatingWidgetTitleBar.sip:
--------------------------------------------------------------------------------
1 | %Import QtWidgets/QtWidgetsmod.sip
2 |
3 | %If (Qt_5_0_0 -)
4 |
5 | namespace ads
6 | {
7 | %TypeHeaderCode
8 | #include
9 | %End
10 |
11 | class CFloatingWidgetTitleBar : QWidget
12 | {
13 |
14 | protected:
15 | virtual void mousePressEvent(QMouseEvent *ev);
16 | virtual void mouseReleaseEvent(QMouseEvent *ev);
17 | virtual void mouseMoveEvent(QMouseEvent *ev);
18 | virtual void mouseDoubleClickEvent(QMouseEvent *event);
19 |
20 | void setMaximizeIcon(const QIcon& Icon);
21 | QIcon maximizeIcon() const;
22 | void setNormalIcon(const QIcon& Icon);
23 | QIcon normalIcon() const;
24 |
25 | public:
26 | explicit CFloatingWidgetTitleBar(CFloatingDockContainer *parent /TransferThis/ = 0);
27 | virtual ~CFloatingWidgetTitleBar();
28 | void enableCloseButton(bool Enable);
29 | void setTitle(const QString &Text);
30 | void updateStyle();
31 | void setMaximizedIcon(bool maximized);
32 |
33 | signals:
34 | void closeRequested();
35 | void maximizeRequested();
36 | };
37 |
38 | };
39 |
40 | %End
41 |
--------------------------------------------------------------------------------
/src/DockAreaTitleBar_p.h:
--------------------------------------------------------------------------------
1 | #ifndef DockAreaTitleBar_pH
2 | #define DockAreaTitleBar_pH
3 | /*******************************************************************************
4 | ** Qt Advanced Docking System
5 | ** Copyright (C) 2017 Uwe Kindler
6 | **
7 | ** This library is free software; you can redistribute it and/or
8 | ** modify it under the terms of the GNU Lesser General Public
9 | ** License as published by the Free Software Foundation; either
10 | ** version 2.1 of the License, or (at your option) any later version.
11 | **
12 | ** This library is distributed in the hope that it will be useful,
13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | ** Lesser General Public License for more details.
16 | **
17 | ** You should have received a copy of the GNU Lesser General Public
18 | ** License along with this library; If not, see .
19 | ******************************************************************************/
20 |
21 |
22 | //============================================================================
23 | /// \file DockAreaTitleBar_p.h
24 | /// \author Uwe Kindler
25 | /// \date 12.10.2018
26 | /// \brief Declaration of classes CTitleBarButton and CSpacerWidget
27 | //============================================================================
28 |
29 |
30 | //============================================================================
31 | // INCLUDES
32 | //============================================================================
33 | #include
34 |
35 | #include "ads_globals.h"
36 |
37 | namespace ads
38 | {
39 |
40 |
41 |
42 | /**
43 | * This spacer widget is here because of the following problem.
44 | * The dock area title bar handles mouse dragging and moving the floating widget.
45 | * The problem is, that if the title bar becomes invisible, i.e. if the dock
46 | * area contains only one single dock widget and the dock area is moved
47 | * into a floating widget, then mouse events are not handled anymore and dragging
48 | * of the floating widget stops.
49 | */
50 | class CSpacerWidget : public QWidget
51 | {
52 | Q_OBJECT
53 | public:
54 | using Super = QWidget;
55 | CSpacerWidget(QWidget* Parent = nullptr);
56 | virtual QSize sizeHint() const override {return QSize(0, 0);}
57 | virtual QSize minimumSizeHint() const override {return QSize(0, 0);}
58 | };
59 |
60 | }
61 | // namespace ads
62 | //-----------------------------------------------------------------------------
63 | #endif // DockAreaTitleBar_pH
64 |
--------------------------------------------------------------------------------
/src/DockComponentsFactory.cpp:
--------------------------------------------------------------------------------
1 | //============================================================================
2 | /// \file DockComponentsFactory.cpp
3 | /// \author Uwe Kindler
4 | /// \date 10.02.2020
5 | /// \brief Implementation of DockComponentsFactory
6 | //============================================================================
7 |
8 | //============================================================================
9 | // INCLUDES
10 | //============================================================================
11 | #include
12 | #include "DockComponentsFactory.h"
13 |
14 | #include
15 |
16 | #include "DockWidgetTab.h"
17 | #include "DockAreaTabBar.h"
18 | #include "DockAreaTitleBar.h"
19 | #include "DockWidget.h"
20 | #include "DockAreaWidget.h"
21 |
22 | namespace ads
23 | {
24 |
25 | static QSharedPointer DefaultFactory;
26 |
27 |
28 | //============================================================================
29 | CDockWidgetTab* CDockComponentsFactory::createDockWidgetTab(CDockWidget* DockWidget) const
30 | {
31 | return new CDockWidgetTab(DockWidget);
32 | }
33 |
34 | //============================================================================
35 | CAutoHideTab* CDockComponentsFactory::createDockWidgetSideTab(CDockWidget *DockWidget) const
36 | {
37 | return new CAutoHideTab(DockWidget);
38 | }
39 |
40 |
41 | //============================================================================
42 | CDockAreaTabBar* CDockComponentsFactory::createDockAreaTabBar(CDockAreaWidget* DockArea) const
43 | {
44 | return new CDockAreaTabBar(DockArea);
45 | }
46 |
47 |
48 | //============================================================================
49 | CDockAreaTitleBar* CDockComponentsFactory::createDockAreaTitleBar(CDockAreaWidget* DockArea) const
50 | {
51 | return new CDockAreaTitleBar(DockArea);
52 | }
53 |
54 |
55 | //============================================================================
56 | QSharedPointer CDockComponentsFactory::factory()
57 | {
58 | if (!DefaultFactory)
59 | {
60 | DefaultFactory.reset(new CDockComponentsFactory());
61 | }
62 | return DefaultFactory;
63 | }
64 |
65 |
66 | //============================================================================
67 | void CDockComponentsFactory::setFactory(CDockComponentsFactory* Factory)
68 | {
69 | DefaultFactory.reset(Factory);
70 | }
71 |
72 |
73 | //============================================================================
74 | void CDockComponentsFactory::resetDefaultFactory()
75 | {
76 | DefaultFactory.reset(new CDockComponentsFactory());
77 | }
78 |
79 | } // namespace ads
80 |
81 | //---------------------------------------------------------------------------
82 | // EOF DockComponentsFactory.cpp
83 |
--------------------------------------------------------------------------------
/src/DockSplitter.h:
--------------------------------------------------------------------------------
1 | #ifndef DockSplitterH
2 | #define DockSplitterH
3 | /*******************************************************************************
4 | ** Qt Advanced Docking System
5 | ** Copyright (C) 2017 Uwe Kindler
6 | **
7 | ** This library is free software; you can redistribute it and/or
8 | ** modify it under the terms of the GNU Lesser General Public
9 | ** License as published by the Free Software Foundation; either
10 | ** version 2.1 of the License, or (at your option) any later version.
11 | **
12 | ** This library is distributed in the hope that it will be useful,
13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 | ** Lesser General Public License for more details.
16 | **
17 | ** You should have received a copy of the GNU Lesser General Public
18 | ** License along with this library; If not, see .
19 | ******************************************************************************/
20 |
21 |
22 | //============================================================================
23 | /// \file DockSplitter.h
24 | /// \author Uwe Kindler
25 | /// \date 24.03.2017
26 | /// \brief Declaration of CDockSplitter
27 | //============================================================================
28 |
29 | //============================================================================
30 | // INCLUDES
31 | //============================================================================
32 | #include
33 |
34 | #include "ads_globals.h"
35 |
36 | namespace ads
37 | {
38 | struct DockSplitterPrivate;
39 |
40 | /**
41 | * Splitter used internally instead of QSplitter with some additional
42 | * functionality.
43 | */
44 | class ADS_EXPORT CDockSplitter : public QSplitter
45 | {
46 | Q_OBJECT
47 | private:
48 | DockSplitterPrivate* d;
49 | friend struct DockSplitterPrivate;
50 |
51 | public:
52 | CDockSplitter(QWidget *parent = Q_NULLPTR);
53 | CDockSplitter(Qt::Orientation orientation, QWidget *parent = Q_NULLPTR);
54 |
55 | /**
56 | * Prints debug info
57 | */
58 | virtual ~CDockSplitter();
59 |
60 | /**
61 | * Returns true, if any of the internal widgets is visible
62 | */
63 | bool hasVisibleContent() const;
64 |
65 | /**
66 | * Returns first widget or nullptr if splitter is empty
67 | */
68 | QWidget* firstWidget() const;
69 |
70 | /**
71 | * Returns last widget of nullptr is splitter is empty
72 | */
73 | QWidget* lastWidget() const;
74 |
75 | /**
76 | * Returns true if the splitter contains central widget of dock manager.
77 | */
78 | bool isResizingWithContainer() const;
79 | }; // class CDockSplitter
80 |
81 | } // namespace ads
82 |
83 | //---------------------------------------------------------------------------
84 | #endif // DockSplitterH
85 |
--------------------------------------------------------------------------------
/src/DockingStateReader.cpp:
--------------------------------------------------------------------------------
1 | //============================================================================
2 | /// \file DockingStateReader.cpp
3 | /// \author Uwe Kindler
4 | /// \date 29.11.2019
5 | /// \brief Implementation of CDockingStateReader
6 | //============================================================================
7 |
8 | //============================================================================
9 | // INCLUDES
10 | //============================================================================
11 | #include "DockingStateReader.h"
12 |
13 | namespace ads
14 | {
15 |
16 | //============================================================================
17 | void CDockingStateReader::setFileVersion(int FileVersion)
18 | {
19 | m_FileVersion = FileVersion;
20 | }
21 |
22 | //============================================================================
23 | int CDockingStateReader::fileVersion() const
24 | {
25 | return m_FileVersion;
26 | }
27 | } // namespace ads
28 |
29 | //---------------------------------------------------------------------------
30 | // EOF DockingStateReader.cpp
31 |
--------------------------------------------------------------------------------
/src/DockingStateReader.h:
--------------------------------------------------------------------------------
1 | #ifndef DockingStateReaderH
2 | #define DockingStateReaderH
3 | //============================================================================
4 | /// \file DockingStateReader.h
5 | /// \author Uwe Kindler
6 | /// \date 29.11.2019
7 | /// \brief Declaration of CDockingStateReader
8 | //============================================================================
9 |
10 | //============================================================================
11 | // INCLUDES
12 | //============================================================================
13 | #include
14 |
15 | namespace ads
16 | {
17 |
18 | /**
19 | * Extends QXmlStreamReader with file version information
20 | */
21 | class CDockingStateReader : public QXmlStreamReader
22 | {
23 | private:
24 | int m_FileVersion;
25 |
26 | public:
27 | using QXmlStreamReader::QXmlStreamReader;
28 |
29 | /**
30 | * Set the file version for this state reader
31 | */
32 | void setFileVersion(int FileVersion);
33 |
34 | /**
35 | * Returns the file version set via setFileVersion
36 | */
37 | int fileVersion() const;
38 | };
39 |
40 | } // namespace ads
41 |
42 | //---------------------------------------------------------------------------
43 | #endif // DockingStateReaderH
44 |
--------------------------------------------------------------------------------
/src/IconProvider.cpp:
--------------------------------------------------------------------------------
1 | //============================================================================
2 | /// \file IconProvider.cpp
3 | /// \author Uwe Kindler
4 | /// \date 18.10.2019
5 | /// \brief Implementation of CIconProvider
6 | //============================================================================
7 |
8 | //============================================================================
9 | // INCLUDES
10 | //============================================================================
11 | #include "IconProvider.h"
12 | #include
13 |
14 | namespace ads
15 | {
16 | /**
17 | * Private data class (pimpl)
18 | */
19 | struct IconProviderPrivate
20 | {
21 | CIconProvider *_this;
22 | QVector UserIcons{IconCount, QIcon()};
23 |
24 | /**
25 | * Private data constructor
26 | */
27 | IconProviderPrivate(CIconProvider *_public);
28 | };
29 | // struct LedArrayPanelPrivate
30 |
31 | //============================================================================
32 | IconProviderPrivate::IconProviderPrivate(CIconProvider *_public) :
33 | _this(_public)
34 | {
35 |
36 | }
37 |
38 | //============================================================================
39 | CIconProvider::CIconProvider() :
40 | d(new IconProviderPrivate(this))
41 | {
42 |
43 | }
44 |
45 | //============================================================================
46 | CIconProvider::~CIconProvider()
47 | {
48 | delete d;
49 | }
50 |
51 |
52 | //============================================================================
53 | QIcon CIconProvider::customIcon(eIcon IconId) const
54 | {
55 | Q_ASSERT(IconId < d->UserIcons.size());
56 | return d->UserIcons[IconId];
57 | }
58 |
59 |
60 | //============================================================================
61 | void CIconProvider::registerCustomIcon(eIcon IconId, const QIcon &icon)
62 | {
63 | Q_ASSERT(IconId < d->UserIcons.size());
64 | d->UserIcons[IconId] = icon;
65 | }
66 |
67 | } // namespace ads
68 |
69 |
70 |
71 |
72 | //---------------------------------------------------------------------------
73 | // EOF IconProvider.cpp
74 |
--------------------------------------------------------------------------------
/src/IconProvider.h:
--------------------------------------------------------------------------------
1 | #ifndef IconProviderH
2 | #define IconProviderH
3 | //============================================================================
4 | /// \file IconProvider.h
5 | /// \author Uwe Kindler
6 | /// \date 18.10.2019
7 | /// \brief Declaration of CIconProvider
8 | //============================================================================
9 |
10 | //============================================================================
11 | // INCLUDES
12 | //============================================================================
13 | #include
14 |
15 | #include "ads_globals.h"
16 |
17 | namespace ads
18 | {
19 |
20 | struct IconProviderPrivate;
21 |
22 | /**
23 | * This object provides all icons that are required by the advanced docking
24 | * system.
25 | * The IconProvider enables the user to register custom icons in case using
26 | * stylesheets is not an option.
27 | */
28 | class ADS_EXPORT CIconProvider
29 | {
30 | private:
31 | IconProviderPrivate* d; ///< private data (pimpl)
32 | friend struct IconProviderPrivate;
33 |
34 | public:
35 | /**
36 | * Default Constructor
37 | */
38 | CIconProvider();
39 |
40 | /**
41 | * Virtual Destructor
42 | */
43 | virtual ~CIconProvider();
44 |
45 | /**
46 | * The function returns a custom icon if one is registered and a null Icon
47 | * if no custom icon is registered
48 | */
49 | QIcon customIcon(eIcon IconId) const;
50 |
51 | /**
52 | * Registers a custom icon for the given IconId
53 | */
54 | void registerCustomIcon(eIcon IconId, const QIcon &icon);
55 | }; // class IconProvider
56 |
57 | } // namespace ads
58 |
59 |
60 | //---------------------------------------------------------------------------
61 | #endif // IconProviderH
62 |
--------------------------------------------------------------------------------
/src/PushButton.cpp:
--------------------------------------------------------------------------------
1 | //============================================================================
2 | /// \file PushButton.cpp
3 | /// \author Uwe Kindler
4 | /// \date 18.10.2022
5 | /// \brief Implementation of CPushButton
6 | //============================================================================
7 |
8 | //============================================================================
9 | // INCLUDES
10 | //============================================================================
11 | #include "PushButton.h"
12 |
13 | #include
14 | #include
15 | #include
16 | #include
17 |
18 |
19 | namespace ads
20 | {
21 | QSize CPushButton::sizeHint() const
22 | {
23 | QSize sh = QPushButton::sizeHint();
24 |
25 | if (m_Orientation != CPushButton::Horizontal)
26 | {
27 | sh.transpose();
28 | }
29 |
30 | return sh;
31 | }
32 |
33 | void CPushButton::paintEvent(QPaintEvent *event)
34 | {
35 | Q_UNUSED(event);
36 |
37 | QStylePainter painter(this);
38 | QStyleOptionButton option;
39 | initStyleOption(&option);
40 |
41 | if (m_Orientation == CPushButton::VerticalTopToBottom)
42 | {
43 | painter.rotate(90);
44 | painter.translate(0, -1 * width());
45 | option.rect = option.rect.transposed();
46 | }
47 | else if (m_Orientation == CPushButton::VerticalBottomToTop)
48 | {
49 | painter.rotate(-90);
50 | painter.translate(-1 * height(), 0);
51 | option.rect = option.rect.transposed();
52 | }
53 |
54 | painter.drawControl(QStyle::CE_PushButton, option);
55 | }
56 |
57 | CPushButton::Orientation CPushButton::buttonOrientation() const
58 | {
59 | return m_Orientation;
60 | }
61 |
62 | void CPushButton::setButtonOrientation(Orientation orientation)
63 | {
64 | m_Orientation = orientation;
65 | updateGeometry();
66 | }
67 | } // namespace ads
68 |
69 | //---------------------------------------------------------------------------
70 | // EOF PushButton.cpp
71 |
--------------------------------------------------------------------------------
/src/PushButton.h:
--------------------------------------------------------------------------------
1 | #ifndef PushButtonH
2 | #define PushButtonH
3 | //============================================================================
4 | /// \file PushButton.h
5 | /// \author Uwe Kindler
6 | /// \date 18.10.2022
7 | /// \brief Declaration of CPushButton
8 | //============================================================================
9 |
10 | //============================================================================
11 | // INCLUDES
12 | //============================================================================
13 | #include "ads_globals.h"
14 |
15 | #include
16 |
17 | namespace ads
18 | {
19 |
20 | /**
21 | * ADS specific push button class with orientation support
22 | */
23 | class ADS_EXPORT CPushButton : public QPushButton
24 | {
25 | Q_OBJECT
26 | public:
27 | enum Orientation {
28 | Horizontal,
29 | VerticalTopToBottom,
30 | VerticalBottomToTop
31 | };
32 |
33 | using QPushButton::QPushButton;
34 |
35 | virtual QSize sizeHint() const override;
36 |
37 | /**
38 | * Returns the current orientation
39 | */
40 | Orientation buttonOrientation() const;
41 |
42 | /**
43 | * Set the orientation of this button
44 | */
45 | void setButtonOrientation(Orientation orientation);
46 |
47 | protected:
48 | virtual void paintEvent(QPaintEvent *event) override;
49 |
50 | private:
51 | Orientation m_Orientation = Horizontal;
52 | };
53 |
54 | } // namespace ads
55 |
56 | //---------------------------------------------------------------------------
57 | #endif // PushButtonH
58 |
59 |
--------------------------------------------------------------------------------
/src/ads.qrc:
--------------------------------------------------------------------------------
1 |
2 |
3 | stylesheets/default.css
4 | images/close-button.svg
5 | images/pin-button.svg
6 | images/close-button-disabled.svg
7 | stylesheets/default_linux.css
8 | images/close-button-focused.svg
9 | stylesheets/focus_highlighting.css
10 | stylesheets/focus_highlighting_linux.css
11 | images/tabs-menu-button.svg
12 | images/detach-button.svg
13 | images/detach-button-disabled.svg
14 | images/maximize-button.svg
15 | images/maximize-button-focused.svg
16 | images/restore-button.svg
17 | images/restore-button-focused.svg
18 | images/vs-pin-button.svg
19 | images/vs-pin-button-pinned.svg
20 | images/vs-pin-button-pinned-focused.svg
21 | images/vs-pin-button_45.svg
22 | images/pin-button-big.svg
23 | images/minimize-button.svg
24 | images/minimize-button-focused.svg
25 | images/vs-pin-button-disabled.svg
26 |
27 |
28 |
--------------------------------------------------------------------------------
/src/images/minimize-button-focused.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/images/minimize-button.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/images/pin-button-big.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/images/pin-button.svg:
--------------------------------------------------------------------------------
1 |
2 |
54 |
--------------------------------------------------------------------------------
/src/images/vs-pin-button-disabled.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/images/vs-pin-button-pinned-focused.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/images/vs-pin-button-pinned.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/images/vs-pin-button.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/images/vs-pin-button_45.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/src/qtadvanceddockingConfig.cmake:
--------------------------------------------------------------------------------
1 | include(CMakeFindDependencyMacro)
2 | include("${CMAKE_CURRENT_LIST_DIR}/adsTargets.cmake")
--------------------------------------------------------------------------------
/src/src.pro:
--------------------------------------------------------------------------------
1 | ADS_OUT_ROOT = $${OUT_PWD}/..
2 | CONFIG += c++14
3 | CONFIG += debug_and_release
4 | TARGET = $$qtLibraryTarget(qtadvanceddocking)
5 | DEFINES += QT_DEPRECATED_WARNINGS
6 | TEMPLATE = lib
7 | DESTDIR = $${ADS_OUT_ROOT}/lib
8 | QT += core gui widgets
9 |
10 | !adsBuildStatic {
11 | CONFIG += shared
12 | DEFINES += ADS_SHARED_EXPORT
13 | }
14 | adsBuildStatic {
15 | CONFIG += staticlib
16 | DEFINES += ADS_STATIC
17 | }
18 |
19 | windows {
20 | # MinGW
21 | *-g++* {
22 | QMAKE_CXXFLAGS += -Wall -Wextra -pedantic
23 | }
24 | # MSVC
25 | *-msvc* {
26 | QMAKE_CXXFLAGS += /utf-8
27 | }
28 | }
29 |
30 | RESOURCES += ads.qrc
31 |
32 | HEADERS += \
33 | ads_globals.h \
34 | DockAreaWidget.h \
35 | DockAreaTabBar.h \
36 | DockContainerWidget.h \
37 | DockManager.h \
38 | DockWidget.h \
39 | DockWidgetTab.h \
40 | DockingStateReader.h \
41 | FloatingDockContainer.h \
42 | FloatingDragPreview.h \
43 | DockOverlay.h \
44 | DockSplitter.h \
45 | DockAreaTitleBar_p.h \
46 | DockAreaTitleBar.h \
47 | ElidingLabel.h \
48 | IconProvider.h \
49 | DockComponentsFactory.h \
50 | DockFocusController.h \
51 | AutoHideDockContainer.h \
52 | AutoHideSideBar.h \
53 | AutoHideTab.h \
54 | PushButton.h \
55 | ResizeHandle.h
56 |
57 |
58 | SOURCES += \
59 | ads_globals.cpp \
60 | DockAreaWidget.cpp \
61 | DockAreaTabBar.cpp \
62 | DockContainerWidget.cpp \
63 | DockManager.cpp \
64 | DockWidget.cpp \
65 | DockingStateReader.cpp \
66 | DockWidgetTab.cpp \
67 | FloatingDockContainer.cpp \
68 | FloatingDragPreview.cpp \
69 | DockOverlay.cpp \
70 | DockSplitter.cpp \
71 | DockAreaTitleBar.cpp \
72 | ElidingLabel.cpp \
73 | IconProvider.cpp \
74 | DockComponentsFactory.cpp \
75 | DockFocusController.cpp \
76 | AutoHideDockContainer.cpp \
77 | AutoHideSideBar.cpp \
78 | AutoHideTab.cpp \
79 | PushButton.cpp \
80 | ResizeHandle.cpp
81 |
82 |
83 | unix:!macx {
84 | HEADERS += linux/FloatingWidgetTitleBar.h
85 | SOURCES += linux/FloatingWidgetTitleBar.cpp
86 | LIBS += -lxcb
87 | QT += gui-private
88 | }
89 |
90 | isEmpty(PREFIX){
91 | PREFIX=../installed
92 | warning("Install Prefix not set")
93 | }
94 | headers.path=$$PREFIX/include
95 | headers.files=$$HEADERS
96 | target.path=$$PREFIX/lib
97 | INSTALLS += headers target
98 |
99 | DISTFILES +=
100 |
--------------------------------------------------------------------------------