Advanced Docking System for Qt
Go to file
mfreiholz 032a5d6cdf Memleak fixes
* Set parent of title- and content-widget to associated container-widget
* inside FloatingWidget::takeContent(...)

Restore state
* Restore all contents as visible and then call hideSectionContent(...) at
* the end. This is more consistent and uses same code (public API).
* Pass version to sub-methods to handle different formats
* Fix serialization, if nothing is visible (no sections, only hidden
* contents)
2016-02-19 12:00:39 +01:00
AdvancedDockingSystem Memleak fixes 2016-02-19 12:00:39 +01:00
AdvancedDockingSystemDemo Refactors: Move save/restore impl into separate methods. 2016-02-17 14:42:46 +01:00
.gitignore Init commit for GitHub. 2015-12-09 12:21:38 +01:00
build.pro Refactoring: Renames saveGeometry to saveState.. same for restore. 2016-02-12 11:43:34 +01:00
preview01.png Adds previews. 2016-02-17 10:57:28 +01:00
preview02.png Adds previews. 2016-02-17 10:57:28 +01:00
README.md Memleak fixes 2016-02-19 12:00:39 +01:00

Advanced Docking System

Manages content widgets more like Visual Studio or similar programs. I also try to get everything done with basic Qt functionality. Basic usage of QWidgets an QLayouts and using basic styles as much as possible.

Layout of widgets Dropping widgets

Tested with - Requirements

Windows

  • >= Qt 5.5, VC12 or MinGW
  • >= Qt 4.5.3 VC9 - not as good...

Linux

  • Not yet tested

Build

Open the build.pro with QtCreator and start the build, that's it.

Release & Development

The master branch is not guaranteed to be stable or does even build, since it is the main working branch. If you want a version that builds you should always use a release/beta tag.

Notes

  • SectionContent class may safe a "size-type" property, which defines how the size of the widget should be handled.
    • PerCent: Resize in proportion to other widgets.
    • Fixed: Width or height are fixed (based on orientation).

TODOs

Sorted by priority

Beta 0.1

  • Improve FloatingWidget (Remove maximize button, only support close-button which hides the widget)
  • Serialize and Deserialize state/size/positions of dockings
  • Make compatible with Qt 4.5 (*ROFL!*)
  • Save and restore FloatingWidget states
  • Restore: Manage new or deleted SectionContent objects, which are not available
  • Working with outer-edge-drops sometimes leaves empty splitters #BUG
  • Clean up of unused e.g. count()<=1 QSplitters doesn't work well #BUG
  • Show close button on right corner of SectionWidget. How to safe last section position?
  • Serialize state of _hiddenSectionContents
  • It would be easier when the SectionTitleWidget and SectionContentWidget are created inside the "SectionContent::newSectionContent(..)" method. This would make sure, that those two objects always exists.
  • ContainerWidget::showSectionContent needs to insert the SC at the correct preferred position of SW
  • Empty splitters, if only 2 or 1 items are in container
  • Restore: Handle out-of-screen geometry for floating widgets

Some day...

  • Drop indicator images should be fully visible over the DropOverlay rectangle
  • Pin contents: Pins a content and its title widget to the edge and opens on click/hover as long as it has focus
  • API: Make it possible to use custom drop images
  • API: Add possibility to make a SectionContent element floatable (ContainerWidget::setFloating(SectionContent*)?)

Credits

License

Not sure yet... It's in development status anyway.