From 07464ce05c7d97d8173ff220c5129ca71a88236b Mon Sep 17 00:00:00 2001 From: Uwe Kindler Date: Thu, 7 May 2020 14:39:02 +0200 Subject: [PATCH] Added new SidebarExample --- .cproject | 74 +++++++++++----- CMakeLists.txt | 3 +- ads.pro | 4 +- examples/examples.pro | 5 ++ examples/sidebar/CMakeLists.txt | 46 ++++++++++ examples/sidebar/MainWindow.cpp | 53 ++++++++++++ examples/sidebar/MainWindow.h | 29 +++++++ examples/sidebar/MainWindow.ui | 85 +++++++++++++++++++ {example => examples/sidebar}/main.cpp | 2 +- examples/sidebar/sidebar.pro | 47 ++++++++++ {example => examples/simple}/CMakeLists.txt | 14 +-- {example => examples/simple}/MainWindow.cpp | 3 +- {example => examples/simple}/MainWindow.h | 0 {example => examples/simple}/MainWindow.ui | 0 examples/simple/main.cpp | 11 +++ .../example.pro => examples/simple/simple.pro | 8 +- .../example.py => examples/simple/simple.py | 0 17 files changed, 349 insertions(+), 35 deletions(-) create mode 100644 examples/examples.pro create mode 100644 examples/sidebar/CMakeLists.txt create mode 100644 examples/sidebar/MainWindow.cpp create mode 100644 examples/sidebar/MainWindow.h create mode 100644 examples/sidebar/MainWindow.ui rename {example => examples/sidebar}/main.cpp (76%) create mode 100644 examples/sidebar/sidebar.pro rename {example => examples/simple}/CMakeLists.txt (78%) rename {example => examples/simple}/MainWindow.cpp (96%) rename {example => examples/simple}/MainWindow.h (100%) rename {example => examples/simple}/MainWindow.ui (100%) create mode 100644 examples/simple/main.cpp rename example/example.pro => examples/simple/simple.pro (85%) rename example/example.py => examples/simple/simple.py (100%) diff --git a/.cproject b/.cproject index f651fa3..cdd20b3 100644 --- a/.cproject +++ b/.cproject @@ -14,13 +14,13 @@ - + - - - + + + + + + + + + @@ -83,7 +92,6 @@ make - clean false true @@ -122,6 +130,7 @@ make + clean false true @@ -160,7 +169,6 @@ make - clean false true @@ -177,7 +185,6 @@ qmake -recursive ../../example/example.pro - true false false @@ -200,6 +207,7 @@ make + clean false true @@ -228,6 +236,46 @@ false false + + mingw32-make + -j + all + false + false + false + + + make + + clean + false + true + false + + + mingw32-make + -j6 + debug + false + false + false + + + qmake + -recursive ../../../examples/sidebar/sidebar.pro + + true + false + false + + + mingw32-make + -j4 + release + false + false + false + mingw32-make -j @@ -238,7 +286,6 @@ make - clean false true @@ -277,7 +324,6 @@ make - clean false true @@ -316,7 +362,6 @@ make - clean false true @@ -347,13 +392,4 @@ - - - - - - - - - diff --git a/CMakeLists.txt b/CMakeLists.txt index 578dfc1..73a0b10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -123,7 +123,8 @@ set_target_properties(qtadvanceddocking PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin" ) if(BUILD_EXAMPLES) - add_subdirectory(example) + add_subdirectory(examples/simple) + add_subdirectory(examples/sidebar) add_subdirectory(demo) endif() diff --git a/ads.pro b/ads.pro index b798785..c532407 100644 --- a/ads.pro +++ b/ads.pro @@ -3,7 +3,7 @@ TEMPLATE = subdirs SUBDIRS = \ src \ demo \ - example + examples demo.depends = src -example.depends = src +examples.depends = src diff --git a/examples/examples.pro b/examples/examples.pro new file mode 100644 index 0000000..418dd9d --- /dev/null +++ b/examples/examples.pro @@ -0,0 +1,5 @@ +TEMPLATE = subdirs + +SUBDIRS = \ + simple \ + sidebar diff --git a/examples/sidebar/CMakeLists.txt b/examples/sidebar/CMakeLists.txt new file mode 100644 index 0000000..a050e88 --- /dev/null +++ b/examples/sidebar/CMakeLists.txt @@ -0,0 +1,46 @@ +cmake_minimum_required(VERSION 3.3) +set (CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) +set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTOUIC ON) +project(ads_example VERSION "1.0") +set(REQUIRED_QT_VERSION 5.5.0) +find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED) +find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED) +find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED) +set(ads_example_LIBS ${ads_example_LIBS} ${Qt5Core_LIBRARIES}) +set(ads_example_INCLUDE ${ads_example_INCLUDE} ${Qt5Core_INCLUDE_DIRS}) +set(ads_example_COMPILE_DEFINE ${ads_example_COMPILE_DEFINE} ${Qt5Core_COMPILE_DEFINITIONS} ) +set(ads_example_LIBS ${ads_example_LIBS} ${Qt5Gui_LIBRARIES}) +set(ads_example_INCLUDE ${ads_example_INCLUDE} ${Qt5Gui_INCLUDE_DIRS}) +set(ads_example_COMPILE_DEFINE ${ads_example_COMPILE_DEFINE} ${Qt5Gui_COMPILE_DEFINITIONS}) +set(ads_example_LIBS ${ads_example_LIBS} ${Qt5Widgets_LIBRARIES}) +set(ads_example_INCLUDE ${ads_example_INCLUDE} ${Qt5Widgets_INCLUDE_DIRS}) +set(ads_example_COMPILE_DEFINE ${ads_example_COMPILE_DEFINE} ${Qt5Widgets_COMPILE_DEFINITIONS}) +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(ads_example_SRCS + main.cpp + MainWindow.cpp + MainWindow.ui +) +add_executable(SidebarExample WIN32 ${ads_example_SRCS}) +if(BUILD_STATIC) + set(ads_example_DEFINE ${ads_example_DEFINE} ADS_STATIC) +endif() +add_dependencies(SidebarExample qtadvanceddocking) +target_include_directories(SidebarExample PUBLIC + $ + $ + ) +target_include_directories(SidebarExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src" ${ads_example_INCLUDE}) +target_link_libraries(SidebarExample PRIVATE qtadvanceddocking ${ads_example_LIBS}) +target_compile_definitions(SidebarExample PRIVATE ${ads_example_DEFINE}) +set_target_properties(SidebarExample PROPERTIES + VERSION "1.0" + SOVERSION 1 + EXPORT_NAME "Qt Advanced Docking System Example" + ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib" + LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib" + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin" +) diff --git a/examples/sidebar/MainWindow.cpp b/examples/sidebar/MainWindow.cpp new file mode 100644 index 0000000..880a5d0 --- /dev/null +++ b/examples/sidebar/MainWindow.cpp @@ -0,0 +1,53 @@ +#include "../../examples/simple/MainWindow.h" + +#include "ui_MainWindow.h" + +#include +#include +#include + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + ui->setupUi(this); + + // Create the dock manager. Because the parent parameter is a QMainWindow + // the dock manager registers itself as the central widget. + QVBoxLayout* Layout = new QVBoxLayout(ui->dockContainer); + Layout->setContentsMargins(QMargins(0, 0, 0, 0)); + m_DockManager = new ads::CDockManager(ui->dockContainer); + Layout->addWidget(m_DockManager); + + // Create example content label - this can be any application specific + // widget + QLabel* l = new QLabel(); + l->setWordWrap(true); + l->setAlignment(Qt::AlignTop | Qt::AlignLeft); + l->setText("Lorem ipsum dolor sit amet, consectetuer adipiscing elit. "); + + // Create a dock widget with the title Label 1 and set the created label + // as the dock widget content + ads::CDockWidget* DockWidget = new ads::CDockWidget("Label 1"); + DockWidget->setWidget(l); + + // Add the toggleViewAction of the dock widget to the menu to give + // the user the possibility to show the dock widget if it has been closed + ui->menuView->addAction(DockWidget->toggleViewAction()); + + + // Add the dock widget to the top dock widget area + m_DockManager->addDockWidget(ads::TopDockWidgetArea, DockWidget); + + // Create an example editor + QPlainTextEdit* te = new QPlainTextEdit(); + te->setPlaceholderText("Please enter your text here into this QPlainTextEdit..."); + DockWidget = new ads::CDockWidget("Editor 1"); + ui->menuView->addAction(DockWidget->toggleViewAction()); + m_DockManager->addDockWidget(ads::BottomDockWidgetArea, DockWidget); +} + +MainWindow::~MainWindow() +{ + delete ui; +} diff --git a/examples/sidebar/MainWindow.h b/examples/sidebar/MainWindow.h new file mode 100644 index 0000000..bb6148f --- /dev/null +++ b/examples/sidebar/MainWindow.h @@ -0,0 +1,29 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include "DockManager.h" + +namespace Ui { +class MainWindow; +} + + +/** + * This example shows, how to place a dock widget container and a static + * sidebar into a QMainWindow + */ +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + +private: + Ui::MainWindow *ui; + ads::CDockManager* m_DockManager; +}; + +#endif // MAINWINDOW_H diff --git a/examples/sidebar/MainWindow.ui b/examples/sidebar/MainWindow.ui new file mode 100644 index 0000000..9bcac64 --- /dev/null +++ b/examples/sidebar/MainWindow.ui @@ -0,0 +1,85 @@ + + + MainWindow + + + + 0 + 0 + 650 + 376 + + + + MainWindow + + + + + + + + + + + + PushButton + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + + + + 0 + 0 + + + + + + + + + + 0 + 0 + 650 + 21 + + + + + View + + + + + + + + + + diff --git a/example/main.cpp b/examples/sidebar/main.cpp similarity index 76% rename from example/main.cpp rename to examples/sidebar/main.cpp index af9caac..83e8bb7 100644 --- a/example/main.cpp +++ b/examples/sidebar/main.cpp @@ -1,5 +1,5 @@ -#include "MainWindow.h" #include +#include "../../examples/simple/MainWindow.h" int main(int argc, char *argv[]) { diff --git a/examples/sidebar/sidebar.pro b/examples/sidebar/sidebar.pro new file mode 100644 index 0000000..4d69920 --- /dev/null +++ b/examples/sidebar/sidebar.pro @@ -0,0 +1,47 @@ +ADS_OUT_ROOT = $${OUT_PWD}/../.. + +QT += core gui widgets + +TARGET = SidebarExample +DESTDIR = $${ADS_OUT_ROOT}/lib +TEMPLATE = app +CONFIG += c++14 +CONFIG += debug_and_release +adsBuildStatic { + DEFINES += ADS_STATIC +} + +DEFINES += QT_DEPRECATED_WARNINGS + +SOURCES += \ + main.cpp \ + MainWindow.cpp + +HEADERS += \ + MainWindow.h + +FORMS += \ + MainWindow.ui + + +LIBS += -L$${ADS_OUT_ROOT}/lib + +# Dependency: AdvancedDockingSystem (shared) +CONFIG(debug, debug|release){ + win32 { + LIBS += -lqtadvanceddockingd + } + else:mac { + LIBS += -lqtadvanceddocking_debug + } + else { + LIBS += -lqtadvanceddocking + } +} +else{ + LIBS += -lqtadvanceddocking +} + +INCLUDEPATH += ../../src +DEPENDPATH += ../../src + diff --git a/example/CMakeLists.txt b/examples/simple/CMakeLists.txt similarity index 78% rename from example/CMakeLists.txt rename to examples/simple/CMakeLists.txt index dafffa7..35e9866 100644 --- a/example/CMakeLists.txt +++ b/examples/simple/CMakeLists.txt @@ -24,19 +24,19 @@ set(ads_example_SRCS MainWindow.cpp MainWindow.ui ) -add_executable(Example1 WIN32 ${ads_example_SRCS}) +add_executable(SimpleExample WIN32 ${ads_example_SRCS}) if(BUILD_STATIC) set(ads_example_DEFINE ${ads_example_DEFINE} ADS_STATIC) endif() -add_dependencies(Example1 qtadvanceddocking) -target_include_directories(Example1 PUBLIC +add_dependencies(SimpleExample qtadvanceddocking) +target_include_directories(SimpleExample PUBLIC $ $ ) -target_include_directories(Example1 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../src" ${ads_example_INCLUDE}) -target_link_libraries(Example1 PRIVATE qtadvanceddocking ${ads_example_LIBS}) -target_compile_definitions(Example1 PRIVATE ${ads_example_DEFINE}) -set_target_properties(Example1 PROPERTIES +target_include_directories(SimpleExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src" ${ads_example_INCLUDE}) +target_link_libraries(SimpleExample PRIVATE qtadvanceddocking ${ads_example_LIBS}) +target_compile_definitions(SimpleExample PRIVATE ${ads_example_DEFINE}) +set_target_properties(SimpleExample PROPERTIES VERSION "1.0" SOVERSION 1 EXPORT_NAME "Qt Advanced Docking System Example" diff --git a/example/MainWindow.cpp b/examples/simple/MainWindow.cpp similarity index 96% rename from example/MainWindow.cpp rename to examples/simple/MainWindow.cpp index f9edab0..aeaea2b 100644 --- a/example/MainWindow.cpp +++ b/examples/simple/MainWindow.cpp @@ -1,4 +1,5 @@ -#include "MainWindow.h" +#include "../../examples/simple/MainWindow.h" + #include "ui_MainWindow.h" #include diff --git a/example/MainWindow.h b/examples/simple/MainWindow.h similarity index 100% rename from example/MainWindow.h rename to examples/simple/MainWindow.h diff --git a/example/MainWindow.ui b/examples/simple/MainWindow.ui similarity index 100% rename from example/MainWindow.ui rename to examples/simple/MainWindow.ui diff --git a/examples/simple/main.cpp b/examples/simple/main.cpp new file mode 100644 index 0000000..83e8bb7 --- /dev/null +++ b/examples/simple/main.cpp @@ -0,0 +1,11 @@ +#include +#include "../../examples/simple/MainWindow.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/example/example.pro b/examples/simple/simple.pro similarity index 85% rename from example/example.pro rename to examples/simple/simple.pro index 33b73f9..f79c718 100644 --- a/example/example.pro +++ b/examples/simple/simple.pro @@ -1,8 +1,8 @@ -ADS_OUT_ROOT = $${OUT_PWD}/.. +ADS_OUT_ROOT = $${OUT_PWD}/../.. QT += core gui widgets -TARGET = Example1 +TARGET = SimpleExample DESTDIR = $${ADS_OUT_ROOT}/lib TEMPLATE = app CONFIG += c++14 @@ -42,6 +42,6 @@ else{ LIBS += -lqtadvanceddocking } -INCLUDEPATH += ../src -DEPENDPATH += ../src +INCLUDEPATH += ../../src +DEPENDPATH += ../../src diff --git a/example/example.py b/examples/simple/simple.py similarity index 100% rename from example/example.py rename to examples/simple/simple.py