{"id":14982562,"url":"https://github.com/mfreiholz/qt-advanced-docking-system","last_synced_at":"2025-04-08T09:12:16.737Z","repository":{"id":5766834,"uuid":"47689142","full_name":"mfreiholz/Qt-Advanced-Docking-System","owner":"mfreiholz","description":"Advanced Docking System for Qt","archived":false,"fork":false,"pushed_at":"2024-08-19T05:37:55.000Z","size":498,"stargazers_count":770,"open_issues_count":29,"forks_count":805,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-04-08T09:12:05.729Z","etag":null,"topics":["cpp","docking","qt","qt4","qt5","widget","window","wtfpl"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mfreiholz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.png","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-12-09T12:11:06.000Z","updated_at":"2025-04-07T08:02:01.000Z","dependencies_parsed_at":"2023-02-13T22:35:13.668Z","dependency_job_id":"68e1cfa1-ea0b-4edd-89cc-1b3848a314f0","html_url":"https://github.com/mfreiholz/Qt-Advanced-Docking-System","commit_stats":{"total_commits":117,"total_committers":3,"mean_commits":39.0,"dds":0.4871794871794872,"last_synced_commit":"abc8468989fab7b0ae1168dcf40e601583ba04e6"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfreiholz%2FQt-Advanced-Docking-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfreiholz%2FQt-Advanced-Docking-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfreiholz%2FQt-Advanced-Docking-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mfreiholz%2FQt-Advanced-Docking-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mfreiholz","download_url":"https://codeload.github.com/mfreiholz/Qt-Advanced-Docking-System/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809964,"owners_count":20999816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","docking","qt","qt4","qt5","widget","window","wtfpl"],"created_at":"2024-09-24T14:05:39.309Z","updated_at":"2025-04-08T09:12:16.701Z","avatar_url":"https://github.com/mfreiholz.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advanced Docking System for Qt\r\n[![Gitter](https://badges.gitter.im/mfreiholz/Qt-Advanced-Docking-System.svg)](https://gitter.im/mfreiholz/Qt-Advanced-Docking-System?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\r\n\r\nManages content widgets more like Visual Studio or similar programs.\r\nI also try to get everything done with basic Qt functionality.\r\nBasic usage of QWidgets an QLayouts and using basic styles as much as possible.\r\n\r\n![Layout of widgets](preview.png)\r\n![Dropping widgets](preview-dragndrop.png)\r\n\r\n## Tested Compatible Environments\r\n- Windows 7 / 8 / 8.1 / 10\r\n- Ubuntu 15.10\r\n\r\n## Build\r\nOpen the `build.pro` with QtCreator and start the build, that's it.\r\nYou can run the demo project and test it yourself.\r\n\r\n## Release \u0026 Development\r\nThe `master` branch is not guaranteed to be stable or does not even build, since it is the main working branch.\r\nIf you want a version that builds, you should always use a release/beta tag.\r\n\r\n## Getting started / Example\r\nThe following example shows the minimum code required to use ADS.\r\n\r\n_MyWindow.h_\r\n```cpp\r\n#include \u003cQMainWindow\u003e\r\n#include \"ads/API.h\"\r\n#include \"ads/ContainerWidget.h\"\r\n#include \"ads/SectionContent.h\"\r\nclass MyWindow : public QMainWindow\r\n{\r\n\tQ_OBJECT\r\npublic:\r\n\tMyWindow(QWidget* parent);\r\n\t\r\nprivate:\r\n\t// The main container for dockings.\r\n\tADS_NS::ContainerWidget* _container;\r\n\t\r\n\t// You always want to keep a reference of your content,\r\n\t// in case you need to perform any action on it (show, hide, ...)\r\n\tADS_NS::SectionContent::RefPtr _sc1; \r\n};\r\n```\r\n\r\n_MyWindow.cpp_\r\n```cpp\r\n#include \"MyWindow.h\"\r\n#include \u003cQLabel\u003e\r\nMyWindow::MyWindow(QWidget* parent) : QMainWindow(parent)\r\n{\r\n\t_container = new ADS_NS::ContainerWidget();\r\n\tsetCentralWidget(_container);\r\n\t\r\n\t_sc1 = ADS_NS::SectionContent::newSectionContent(QString(\"Unique-Internal-Name\"), _container, new QLabel(\"Visible Title\"), new QLabel(\"Content Widget\"));\r\n\t_container-\u003eaddSectionContent(_sc1, NULL, ADS_NS::CenterDropArea);\r\n}\r\n\r\nstatic void initStyleSheet(QApplication\u0026 a)\r\n{\r\n\t//Q_INIT_RESOURCE(ads); // If static linked.\r\n\tQFile f(\":ads/stylesheets/default-windows.css\");\r\n\tif (f.open(QFile::ReadOnly))\r\n\t{\r\n\t\tconst QByteArray ba = f.readAll();\r\n\t\tf.close();\r\n\t\ta.setStyleSheet(QString(ba));\r\n\t}\r\n}\r\n\r\nint main(int argc, char *argv[])\r\n{\r\n\tQApplication a(argc, argv);\r\n\ta.setQuitOnLastWindowClosed(true);\r\n\tinitStyleSheet(a);\r\n\r\n\tMainWindow mw;\r\n\tmw.show();\r\n\treturn a.exec();\r\n}\r\n```\r\n\r\n## Developers\r\n[Manuel Freiholz](https://mfreiholz.de), Project Maintainer\r\n\r\n## License information\r\n![WTFPL](license.png)\r\n\r\nThis projects uses the [WTFPL license](http://www.wtfpl.net/)\r\n(Do **W**hat **T**he **F**uck You Want To **P**ublic **L**icense)\r\n\r\nUsing it? Let us know by creating a [new issue](https://github.com/mfreiholz/qt-docks/issues/new) (You don't have to, of course).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfreiholz%2Fqt-advanced-docking-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmfreiholz%2Fqt-advanced-docking-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmfreiholz%2Fqt-advanced-docking-system/lists"}