Advanced Docking System for Qt
Go to file
2018-10-15 08:29:30 +02:00
.settings Fixed a bug in restore functionality that caused application crash, added initial support for perspectives 2018-02-13 12:00:58 +01:00
demo Added minimumSizeHint function to DockWidget to prevent jumping of the height of a dock area when switching between dock widgets, fixed use of findParent function in DockWidget - non current dock widgets do not have a parent so this function will fail 2018-10-15 08:29:30 +02:00
src Added minimumSizeHint function to DockWidget to prevent jumping of the height of a dock area when switching between dock widgets, fixed use of findParent function in DockWidget - non current dock widgets do not have a parent so this function will fail 2018-10-15 08:29:30 +02:00
.cproject Fixed a bug in restore functionality that caused application crash, added initial support for perspectives 2018-02-13 12:00:58 +01:00
.gitignore Started refactoring to improve code quality, overall designa nd to gain knowledge of the impolemented functionality 2017-01-17 07:57:24 +01:00
.project Implemented proper hiding and showing of dock widgets 2017-03-23 10:23:53 +01:00
ads.pro Fixed some bugs that caused problems when calling toggleView() with the same state, some refactorings to improve code 2018-09-26 09:57:36 +02:00
floating-widget-dragndrop.png Fixed a bug with shoing and hiding empty splitters, added some pictures to main page 2017-03-29 15:45:36 +02:00
gnu-lgpl-v2.1.md Changed license to LGPL v2.1 2017-06-09 22:04:02 +02:00
grouped-dragging.png Fixed a bug with shoing and hiding empty splitters, added some pictures to main page 2017-03-29 15:45:36 +02:00
LICENSE.md Changed license to LGPL v2.1 2017-06-09 22:04:02 +02:00
perspectives.png Updated README.md and removed superfluous files 2018-02-13 12:50:35 +01:00
preview-dragndrop.png Removed external dependencies for build, fixed build system, updated preview images to reflect the current state of the library 2017-03-29 12:18:49 +02:00
preview.png Removed external dependencies for build, fixed build system, updated preview images to reflect the current state of the library 2017-03-29 12:18:49 +02:00
README.md Fixed a typo in README.md 2018-02-13 12:56:33 +01:00

Advanced Docking System for Qt

Qt Advanced Docking System lets you create customizable layouts using a full featured window docking system similar to what is found in many popular integrated development environements (IDEs) such as Visual Studio. Everything is implemented with standard Qt functionality without any platform specific code. Basic usage of QWidgets an QLayouts and using basic styles as much as possible.

This work is based on and inspired by the Advanced Docking System for Qt from Manuel Freiholz. I did an almost complete rewrite of his code to improve code quality, readibility and to fix all issues from the issue tracker of his docking system project.

Features

Docking everywhere - no central widget

There is no central widget like in the Qt docking system. You can dock on every border of the main window or you can dock into each dock area - so you are free to dock almost everywhere.

Layout of widgets

Dropping widgets

Docking inside floating windows

There is no difference between the main window and a floating window. Docking into floating windows is supported.

Docking inside floating windows

Grouped dragging

When dragging the titlebar of a dock, all the tabs that are tabbed with it are going to be dragged. So you can move complete groups of tabbed widgets into a floating widget or from one dock area to another one.

Grouped dragging

Perspectives for fast switching of the complete main window layout

A perspective defines the set and layout of dock windows in the main window. You can save the current layout of the dockmanager into a named perspective to make your own custom perspective. Later you can simply select a perspective from the perspective list to quickly switch the complete main window layout.

Perspective

Tested Compatible Environments

  • Windows 10

Build

Open the ads.pro with QtCreator and start the build, that's it. You can run the demo project and test it yourself.

Developers

  • Uwe Kindler, Project Maintainer
  • Manuel Freiholz

License information

This project uses the LGPLv2.1 license