diff --git a/distro/qt5-kddockwidgets.dsc b/distro/qt5-kddockwidgets.dsc index 4202d750..4cf61bd4 100644 --- a/distro/qt5-kddockwidgets.dsc +++ b/distro/qt5-kddockwidgets.dsc @@ -4,7 +4,7 @@ Version: 1.5.0-1 Binary: kddockwidgets Maintainer: Allen Winter Architecture: any -Build-Depends: debhelper (>=9), cdbs, cmake, qtbase5-dev, qtbase5-private-dev, libqt5x11extras5-dev, libfontconfig-dev +Build-Depends: debhelper (>=9), cdbs, cmake, qtbase5-dev, qtbase5-private-dev, libqt5x11extras5-dev, libfontconfig-dev, libfreetype-dev Files: 00000000000000000000000000000000 00000 qt5-kddockwidgets-1.5.0.tar.gz diff --git a/distro/qt5-kddockwidgets.spec b/distro/qt5-kddockwidgets.spec index 5066ef13..429449bc 100644 --- a/distro/qt5-kddockwidgets.spec +++ b/distro/qt5-kddockwidgets.spec @@ -18,7 +18,7 @@ BuildRequires: libqt5-qtbase-devel libqt5-qtbase-private-headers-devel libqt5-q %endif %if %{defined fedora} -BuildRequires: gcc-c++ qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtx11extras-devel desktop-file-utils +BuildRequires: gcc-c++ qt5-qtbase-devel qt5-qtbase-private-devel qt5-qtx11extras-devel desktop-file-utils util-linux %endif %if %{defined rhel} diff --git a/distro/qt6-kddockwidgets.dsc b/distro/qt6-kddockwidgets.dsc index 66a788e5..004b0947 100644 --- a/distro/qt6-kddockwidgets.dsc +++ b/distro/qt6-kddockwidgets.dsc @@ -4,7 +4,7 @@ Version: 1.5.0-1 Binary: kddockwidgets Maintainer: Allen Winter Architecture: any -Build-Depends: debhelper (>=9), cdbs, cmake, qtbase6-dev, qtbase6-private-dev, libqt6x11extras5-dev, libfontconfig-dev +Build-Depends: debhelper (>=9), cdbs, cmake, qt6-base-dev, qt6-base-private-dev, libgl1-mesa-dev, libfontconfig-dev, libfreetype-dev Files: 00000000000000000000000000000000 00000 qt6-kddockwidgets-1.5.0.tar.gz diff --git a/src/KDDockWidgetsConfig.cmake.in b/src/KDDockWidgetsConfig.cmake.in index 4e0063e4..34f9a54a 100644 --- a/src/KDDockWidgetsConfig.cmake.in +++ b/src/KDDockWidgetsConfig.cmake.in @@ -14,6 +14,7 @@ include(CMakeFindDependencyMacro) find_dependency(Qt@Qt_VERSION_MAJOR@Widgets REQUIRED) if (@KDDockWidgets_QTQUICK@) find_dependency(Qt@Qt_VERSION_MAJOR@Quick REQUIRED) + find_dependency(Qt@Qt_VERSION_MAJOR@QuickControls2 REQUIRED) endif() if (NOT WIN32 AND NOT APPLE AND NOT EMSCRIPTEN AND NOT @KDDockWidgets_QT6@ AND @KDDockWidgets_X11EXTRAS@) diff --git a/src/MainWindowBase.cpp b/src/MainWindowBase.cpp index 1bbca07a..b9ff2805 100644 --- a/src/MainWindowBase.cpp +++ b/src/MainWindowBase.cpp @@ -113,6 +113,7 @@ public: QPointer m_overlayedDockWidget; LayoutWidget *const m_layoutWidget; DockWidgetBase *const m_persistentCentralDockWidget; + int m_overlayMargin = 1; }; MainWindowBase::MainWindowBase(const QString &uniqueName, KDDockWidgets::MainWindowOptions options, @@ -274,7 +275,7 @@ QRect MainWindowBase::Private::rectForOverlay(Frame *frame, SideBarLocation loca const QMargins centerWidgetMargins = q->centerWidgetMargins(); QRect rect; - const int margin = 1; + const int margin = m_overlayMargin; switch (location) { case SideBarLocation::North: case SideBarLocation::South: { @@ -771,6 +772,21 @@ QRect MainWindowBase::windowGeometry() const return window()->geometry(); } +int MainWindowBase::overlayMargin() const +{ + return d->m_overlayMargin; +} + +void MainWindowBase::setOverlayMargin(int margin) +{ + if (margin == d->m_overlayMargin) { + return; + } + + d->m_overlayMargin = margin; + Q_EMIT overlayMarginChanged(margin); +} + void MainWindowBase::setPersistentCentralWidget(QWidgetOrQuick *widget) { if (!d->supportsPersistentCentralWidget()) { diff --git a/src/MainWindowBase.h b/src/MainWindowBase.h index 7d07378a..81afc148 100644 --- a/src/MainWindowBase.h +++ b/src/MainWindowBase.h @@ -59,6 +59,7 @@ class DOCKS_EXPORT MainWindowBase : public QMainWindow Q_PROPERTY(QString uniqueName READ uniqueName CONSTANT) Q_PROPERTY(KDDockWidgets::MainWindowOptions options READ options CONSTANT) Q_PROPERTY(bool isMDI READ isMDI CONSTANT) + Q_PROPERTY(int overlayMargin READ overlayMargin WRITE setOverlayMargin NOTIFY overlayMarginChanged) public: typedef QVector List; explicit MainWindowBase(const QString &uniqueName, MainWindowOptions options = MainWindowOption_HasCentralFrame, @@ -222,6 +223,13 @@ public: /// - QtQuick: Our MainWindow is QQuickItem QRect windowGeometry() const; + /// @brief Returns the margin used by overlay docks. Default: 1 + int overlayMargin() const; + + /// @brief Sets the margin used by overlay docks. + /// Does not modify currently overlayed docks + void setOverlayMargin(int margin); + protected: #ifdef KDDOCKWIDGETS_QTWIDGETS void onCloseEvent(QCloseEvent *); @@ -247,6 +255,8 @@ Q_SIGNALS: /// can be tabbed together, in which case this signal isn't emitted. void frameCountChanged(int); + void overlayMarginChanged(int); + private: class Private; Private *const d;