diff --git a/demo/demo.pro b/demo/demo.pro index bee1e47..ce7b54b 100644 --- a/demo/demo.pro +++ b/demo/demo.pro @@ -1,9 +1,9 @@ -include($$(cetoni_repository)/build/qt/qtprojectsettings/common.pri) +ADS_ROOT = $${PWD}/.. +ADS_OUT_ROOT = $${OUT_PWD}/.. TARGET = AdvancedDockingSystemDemo - +DESTDIR = $${ADS_OUT_ROOT}/lib QT += core gui widgets -DEFINES += ADS_NAMESPACE_ENABLED windows { # MinGW @@ -26,12 +26,12 @@ HEADERS += \ FORMS += \ mainwindow.ui +LIBS += -L$${ADS_OUT_ROOT}/lib # Dependency: AdvancedDockingSystem (shared) -win32:CONFIG(release, debug|release): LIBS += -l$$qtLinkLibrary(AdvancedDockingSystem) -else:win32:CONFIG(debug, debug|release): LIBS += -l$$qtLinkLibrary(AdvancedDockingSystem) -else:unix: LIBS += -L$$OUT_PWD/../AdvancedDockingSystem/ -lAdvancedDockingSystem +win32:CONFIG(release, debug|release): LIBS += -lAdvancedDockingSystem +else:win32:CONFIG(debug, debug|release): LIBS += -lAdvancedDockingSystemd +else:unix: LIBS += -lAdvancedDockingSystem INCLUDEPATH += ../src - DEPENDPATH += ../src diff --git a/demo/mainwindow.cpp b/demo/mainwindow.cpp index bc2fa26..1dc8cac 100644 --- a/demo/mainwindow.cpp +++ b/demo/mainwindow.cpp @@ -2,7 +2,6 @@ #include "ui_mainwindow.h" -#include #include #include @@ -14,15 +13,13 @@ #include #include #include +#include #include "DockManager.h" #include "DockWidget.h" #include "DockAreaWidget.h" -/////////////////////////////////////////////////////////////////////// - -static int CONTENT_COUNT = 0; static ads::CDockWidget* createLongTextLabelDockWidget(QMenu* ViewMenu) @@ -82,8 +79,6 @@ static ads::CDockWidget* createFileSystemTreeDockWidget(QMenu* ViewMenu) -/////////////////////////////////////////////////////////////////////// - MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) @@ -127,16 +122,16 @@ void MainWindow::createContent() void MainWindow::closeEvent(QCloseEvent* event) { - QSettings Settings("Settings.ini", QSettings::IniFormat); + /*QSettings Settings("Settings.ini", QSettings::IniFormat); Settings.setValue("mainWindow/Geometry", saveGeometry()); - Settings.setValue("mainWindow/DockingState", m_DockManager->saveState()); + Settings.setValue("mainWindow/DockingState", m_DockManager->saveState());*/ QMainWindow::closeEvent(event); } void MainWindow::on_actionSaveState_triggered(bool) { - std::cout << "MainWindow::on_actionSaveState_triggered" << std::endl; + qDebug() << "MainWindow::on_actionSaveState_triggered"; QSettings Settings("Settings.ini", QSettings::IniFormat); Settings.setValue("mainWindow/Geometry", saveGeometry()); Settings.setValue("mainWindow/DockingState", m_DockManager->saveState()); @@ -145,7 +140,7 @@ void MainWindow::on_actionSaveState_triggered(bool) void MainWindow::on_actionRestoreState_triggered(bool) { - std::cout << "MainWindow::on_actionRestoreState_triggered" << std::endl; + qDebug() << "MainWindow::on_actionRestoreState_triggered"; QSettings Settings("Settings.ini", QSettings::IniFormat); restoreGeometry(Settings.value("mainWindow/Geometry").toByteArray()); m_DockManager->restoreState(Settings.value("mainWindow/DockingState").toByteArray()); diff --git a/preview-dragndrop.png b/preview-dragndrop.png index 1ebabca..3c7563c 100644 Binary files a/preview-dragndrop.png and b/preview-dragndrop.png differ diff --git a/preview.png b/preview.png index 38f3c6d..8a0b780 100644 Binary files a/preview.png and b/preview.png differ diff --git a/src/DockAreaWidget.cpp b/src/DockAreaWidget.cpp index c374303..65fed2b 100644 --- a/src/DockAreaWidget.cpp +++ b/src/DockAreaWidget.cpp @@ -374,7 +374,6 @@ void DockAreaWidgetPrivate::updateTabsMenu() menu->clear(); for (int i = 0; i < ContentsLayout->count(); ++i) { - CDockWidget* DockWidget = dockWidgetAt(i); addTabsMenuEntry(dockWidgetAt(i), APPEND, menu); } } @@ -449,7 +448,6 @@ void CDockAreaWidget::insertDockWidget(int index, CDockWidget* DockWidget, d->TabsLayout->insertWidget(index, TitleBar); TitleBar->show(); connect(TitleBar, SIGNAL(clicked()), this, SLOT(onDockWidgetTitleClicked())); - connect(DockWidget, SIGNAL(viewToggled(bool)), this, SLOT(onDockWidgetViewToggled(bool))); DockWidget->setProperty(INDEX_PROPERTY, index); if (Activate) { @@ -469,7 +467,6 @@ void CDockAreaWidget::removeDockWidget(CDockWidget* DockWidget) TitleBar->hide(); d->TabsLayout->removeWidget(TitleBar); disconnect(TitleBar, SIGNAL(clicked()), this, SLOT(onDockWidgetTitleClicked())); - disconnect(DockWidget, SIGNAL(viewToggled(bool)), this, SLOT(onDockWidgetViewToggled(bool))); setCurrentIndex(d->ContentsLayout->currentIndex()); d->updateTabsMenu(); @@ -707,13 +704,6 @@ void CDockAreaWidget::updateDockArea() } -//============================================================================ -void CDockAreaWidget::onDockWidgetViewToggled(bool Open) -{ - auto DockWidget = dynamic_cast(sender()); -} - - //============================================================================ void CDockAreaWidget::saveState(QDataStream& stream) const { diff --git a/src/DockAreaWidget.h b/src/DockAreaWidget.h index e4c66ef..987119e 100644 --- a/src/DockAreaWidget.h +++ b/src/DockAreaWidget.h @@ -56,7 +56,6 @@ private slots: void onDockWidgetTitleClicked(); void onTabsMenuActionTriggered(QAction* Action); void onCloseButtonClicked(); - void onDockWidgetViewToggled(bool Open); public: /** @@ -190,13 +189,6 @@ signals: * @param index */ void currentChanged(int index); - - /** - * This signal is emitted if the dock area is closed or opened. - * The dock area will be closed, if all dock widgets in the dock area are - * closed and will be opened, when the first dock widget is opened - */ - void viewToggled(bool Open); }; // class DockAreaWidget } // namespace ads diff --git a/src/DockContainerWidget.cpp b/src/DockContainerWidget.cpp index 69f3cb0..042e5b0 100644 --- a/src/DockContainerWidget.cpp +++ b/src/DockContainerWidget.cpp @@ -181,6 +181,7 @@ void DockContainerWidgetPrivate::dropIntoContainer(CFloatingDockContainer* Float QLayoutItem* li = Layout->replaceWidget(Splitter, NewSplitter); NewSplitter->addWidget(Splitter); Splitter = NewSplitter; + delete li; } // Now we can insert the floating widget content into this container @@ -555,6 +556,9 @@ void DockContainerWidgetPrivate::dumpRecursive(int level, QWidget* widget) } qDebug("%sDockArea", (const char*)buf); } +#else + Q_UNUSED(level); + Q_UNUSED(widget); #endif } @@ -692,7 +696,7 @@ void CDockContainerWidget::addDockArea(CDockAreaWidget* DockAreaWidget, Container->removeDockArea(DockAreaWidget); } - d->addDockArea(DockAreaWidget); + d->addDockArea(DockAreaWidget, area); } diff --git a/src/DockManager.cpp b/src/DockManager.cpp index 938deff..d8ffc6b 100644 --- a/src/DockManager.cpp +++ b/src/DockManager.cpp @@ -154,12 +154,12 @@ bool DockManagerPrivate::restoreContainer(int Index, QDataStream& stream, bool T if (Index >= Containers.count()) { CFloatingDockContainer* FloatingWidget = new CFloatingDockContainer(_this); - return FloatingWidget->restoreState(stream, internal::Restore); + return FloatingWidget->restoreState(stream, Testing); } else { qDebug() << "d->Containers[i]->restoreState "; - return Containers[Index]->restoreState(stream, internal::Restore); + return Containers[Index]->restoreState(stream, Testing); } } @@ -201,8 +201,6 @@ bool DockManagerPrivate::restoreState(const QByteArray &state, int version) // Delete remaining empty floating widgets int FloatingWidgetIndex = i - 1; int DeleteCount = FloatingWidgets.count() - FloatingWidgetIndex; - /*std::cout << "DeleteCount " << DeleteCount << " FloatingWidgets.count() " - << FloatingWidgets.count() << " FloatingWdgetIndex " << FloatingWidgetIndex << std::endl;*/ for (int i = 0; i < DeleteCount; ++i) { FloatingWidgets[FloatingWidgetIndex + i]->deleteLater(); diff --git a/src/DockOverlay.cpp b/src/DockOverlay.cpp index 3ff87ec..d707a72 100644 --- a/src/DockOverlay.cpp +++ b/src/DockOverlay.cpp @@ -356,6 +356,7 @@ void CDockOverlay::enableDropPreview(bool Enable) //============================================================================ void CDockOverlay::paintEvent(QPaintEvent* event) { + Q_UNUSED(event); // Draw rect based on location if (!d->DropPreviewEnabled) { diff --git a/src/DockWidgetTitleBar.cpp b/src/DockWidgetTitleBar.cpp index e4fac1f..d8a26eb 100644 --- a/src/DockWidgetTitleBar.cpp +++ b/src/DockWidgetTitleBar.cpp @@ -112,7 +112,7 @@ struct DockWidgetTitleBarPrivate * Returns true, if floating has been started and false if floating * is not possible for any reason */ - bool startFloating(const QPoint& GlobalPos); + bool startFloating(); }; // struct DockWidgetTitleBarPrivate @@ -158,7 +158,7 @@ void DockWidgetTitleBarPrivate::moveTab(QMouseEvent* ev) //============================================================================ -bool DockWidgetTitleBarPrivate::startFloating(const QPoint& GlobalPos) +bool DockWidgetTitleBarPrivate::startFloating() { qDebug() << "isFloating " << DockWidget->dockContainer()->isFloating(); qDebug() << "areaCount " << DockWidget->dockContainer()->dockAreaCount(); @@ -187,7 +187,6 @@ bool DockWidgetTitleBarPrivate::startFloating(const QPoint& GlobalPos) qDebug() << "DockWidgetTitleBarPrivate::startFloating DockArea"; // If section widget has only one content widget, we can move the complete // dock area into floating widget - auto splitter = internal::findParent(DockArea); FloatingWidget = new CFloatingDockContainer(DockArea); } @@ -292,7 +291,7 @@ void CDockWidgetTitleBar::mouseMoveEvent(QMouseEvent* ev) bool MouseInsideTitleArea = d->titleAreaGeometryContains(ev->globalPos()); if (!MouseInsideTitleArea) { - d->startFloating(ev->globalPos()); + d->startFloating(); return; } else if (d->DockArea->count() > 1 diff --git a/src/FloatingDockContainer.cpp b/src/FloatingDockContainer.cpp index 0a66248..c195021 100644 --- a/src/FloatingDockContainer.cpp +++ b/src/FloatingDockContainer.cpp @@ -331,6 +331,7 @@ bool CFloatingDockContainer::event(QEvent *e) //============================================================================ bool CFloatingDockContainer::eventFilter(QObject *watched, QEvent *event) { + Q_UNUSED(watched); if (event->type() == QEvent::MouseButtonRelease && d->DraggingActive) { qDebug() << "FloatingWidget::eventFilter QEvent::MouseButtonRelease"; @@ -389,6 +390,7 @@ void CFloatingDockContainer::onDockAreasAddedOrRemoved() //============================================================================ void CFloatingDockContainer::onDockAreaCurrentChanged(int Index) { + Q_UNUSED(Index); this->setWindowTitle(d->SingleDockArea->currentDockWidget()->windowTitle()); } diff --git a/src/src.pro b/src/src.pro index c1f2f0f..3586dd7 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,14 +1,13 @@ -include($$(cetoni_repository)/build/qt/qtprojectsettings/shared_library.pri) -include(src/v2/v2.pri) +ADS_ROOT = $${PWD}/.. +ADS_OUT_ROOT = $${OUT_PWD}/.. TARGET = $$qtLibraryTarget(AdvancedDockingSystem) TEMPLATE = lib -#VERSION = 1.0.0 +DESTDIR = $${ADS_OUT_ROOT}/lib +QT += core gui widgets CONFIG += adsBuildShared -QT += core gui widgets -DEFINES += ADS_NAMESPACE_ENABLED adsBuildShared { CONFIG += shared