2016-01-19 19:21:06 +08:00
|
|
|
# Advanced Docking System
|
2016-02-15 19:27:23 +08:00
|
|
|
Manages content widgets more like Visual Studio or similar programs.
|
2016-02-02 21:35:51 +08:00
|
|
|
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.
|
2016-01-19 19:21:06 +08:00
|
|
|
|
2016-02-17 17:57:28 +08:00
|
|
|
![Layout of widgets](preview01.png)
|
|
|
|
![Dropping widgets](preview02.png)
|
|
|
|
|
2016-02-19 19:41:15 +08:00
|
|
|
## Tested Compatible Environments
|
|
|
|
- Windows 10 / Qt 5.5.1 / VC12
|
|
|
|
- Windows 10 / Qt 5.5.1 / MinGW
|
|
|
|
- Windows 10 / Qt 4.5.3 / VC9
|
|
|
|
- Ubuntu 15.10
|
2016-02-02 21:35:51 +08:00
|
|
|
|
|
|
|
## Build
|
|
|
|
Open the `build.pro` with QtCreator and start the build, that's it.
|
2016-02-19 19:41:15 +08:00
|
|
|
You can run the demo project and test it yourself.
|
2016-01-19 19:21:06 +08:00
|
|
|
|
2016-02-18 22:06:00 +08:00
|
|
|
## Release & Development
|
2016-02-19 19:41:15 +08:00
|
|
|
The `master` branch is not guaranteed to be stable or does not even build, since it is the main working branch.
|
|
|
|
If you want a version that builds, you should always use a release/beta tag.
|
2016-02-18 22:06:00 +08:00
|
|
|
|
2016-02-19 19:41:15 +08:00
|
|
|
## Developers
|
|
|
|
[Manuel Freiholz](https://mfreiholz.de), Project Maintainer
|
2016-01-19 19:21:06 +08:00
|
|
|
|
2016-02-19 19:41:15 +08:00
|
|
|
## License information
|
|
|
|
![WTFPL](license.png)
|
|
|
|
|
|
|
|
This projects uses the [WTFPL license](http://www.wtfpl.net/)
|
|
|
|
(Do **W**hat **T**he **F**uck You Want To **P**ublic **L**icense)
|
|
|
|
|
|
|
|
Using it? Let us know by creating a [new issue](https://github.com/mfreiholz/qt-docks/issues/new) (You don't have to, of course).
|
|
|
|
|
|
|
|
## Credits
|
|
|
|
- Drop indicator images from [Code Project Article](http://www.codeproject.com/Articles/140209/Building-a-Docking-Window-Management-Solution-in-W)
|
|
|
|
|
|
|
|
## ToDo List & Changelog
|
|
|
|
Items sorted by priority
|
|
|
|
|
|
|
|
### Beta 0.2
|
|
|
|
- [ ] 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
|
2016-02-17 21:52:22 +08:00
|
|
|
|
|
|
|
### Beta 0.1
|
2016-02-17 17:57:28 +08:00
|
|
|
- [x] Improve FloatingWidget (Remove maximize button, only support close-button which hides the widget)
|
|
|
|
- [x] Serialize and Deserialize state/size/positions of dockings
|
|
|
|
- [x] Make compatible with Qt 4.5 (\*ROFL!\*)
|
|
|
|
- [x] Save and restore FloatingWidget states
|
2016-02-17 21:42:46 +08:00
|
|
|
- [x] Restore: Manage new or deleted SectionContent objects, which are not available
|
2016-02-17 21:52:22 +08:00
|
|
|
- [x] Working with outer-edge-drops sometimes leaves empty splitters #BUG
|
|
|
|
- [x] Clean up of unused e.g. count()<=1 QSplitters doesn't work well #BUG
|
2016-02-19 19:00:39 +08:00
|
|
|
- [x] Show close button on right corner of SectionWidget. How to safe last section position?
|
|
|
|
- [x] Serialize state of `_hiddenSectionContents`
|
2016-02-17 21:52:22 +08:00
|
|
|
|
|
|
|
### Some day...
|
2016-02-17 17:57:28 +08:00
|
|
|
- [ ] 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
|
2016-02-17 21:58:47 +08:00
|
|
|
- [ ] API: Make it possible to use custom drop images
|
|
|
|
- [ ] API: Add possibility to make a SectionContent element floatable (`ContainerWidget::setFloating(SectionContent*)`?)
|
2016-02-02 20:49:10 +08:00
|
|
|
|
2016-02-19 19:41:15 +08:00
|
|
|
## 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).
|