Advanced Docking System for Qt
Go to file
mfreiholz 14a80f1753 fix: FloatingWidget calls ContainerWidget::hideSectionContent(...) instead
of it's own close() method to be consistent in the way of hiding and
showing contents.
2016-04-11 07:15:42 +02:00
AdvancedDockingSystem fix: FloatingWidget calls ContainerWidget::hideSectionContent(...) instead 2016-04-11 07:15:42 +02:00
AdvancedDockingSystemDemo Issue #15 2016-04-11 07:08:40 +02:00
AdvancedDockingSystemUnitTests adds read() for SectionIndexData 2016-04-05 13:23:01 +02:00
.astylerc Adds possibility to remove section contents. 2016-03-14 15:12:34 +01:00
.gitignore Init commit for GitHub. 2015-12-09 12:21:38 +01:00
.travis.yml Updates travis build script 2016-04-05 07:45:12 +02:00
build.pro Build 2016-04-01 11:49:16 +02:00
license.png Updates README, adds license. 2016-02-19 12:41:15 +01:00
preview-dragndrop.png Updates default stylesheet and demo app 2016-03-08 14:24:33 +01:00
preview.png Updates default stylesheet and demo app 2016-03-08 14:24:33 +01:00
README.md fixes file name letter case for builds on linux 2016-04-05 08:01:14 +02:00

Advanced Docking System

Travis Build

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 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

Build

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

Release & Development

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.

Getting started / Example

The following example shows the minimum code required to use ADS.

MyWindow.h

#include <QMainWindow>
#include "ads/API.h"
#include "ads/ContainerWidget.h"
#include "ads/SectionContent.h"
class MyWindow : public QMainWindow
{
	Q_OBJECT
public:
	MyWindow(QWidget* parent);
	
private:
	// The main container for dockings.
	ADS_NS::ContainerWidget* _container;
	
	// You always want to keep a reference of your content,
	// in case you need to perform any action on it (show, hide, ...)
	ADS_NS::SectionContent::RefPtr _sc1; 
};

MyWindow.cpp

#include "MyWindow.h"
#include <QLabel>
MyWindow::MyWindow(QWidget* parent) : QMainWindow(parent)
{
	_container = new ADS_NS::ContainerWidget();
	setCentralWidget(_container);
	
	_sc1 = ADS_NS::SectionContent::newSectionContent(QString("Unique-Internal-Name"), _container, new QLabel("Visible Title"), new QLabel("Content Widget"));
	_container->addSectionContent(_sc1, NULL, ADS_NS::CenterDropArea);
}

Developers

Manuel Freiholz, Project Maintainer

License information

WTFPL

This projects uses the WTFPL license (Do What The Fuck You Want To Public License)

Using it? Let us know by creating a new issue (You don't have to, of course).

Credits