diff --git a/src/KDDockWidgets.cpp b/src/KDDockWidgets.cpp index 5e030fb6..435d309e 100644 --- a/src/KDDockWidgets.cpp +++ b/src/KDDockWidgets.cpp @@ -12,6 +12,14 @@ #include "kddockwidgets/KDDockWidgets.h" +#include "kddockwidgets/views/SideBar.h" +#include "kddockwidgets/views/Frame.h" +#include "kddockwidgets/views/TabBar.h" +#include "kddockwidgets/views/TitleBar.h" +#include "kddockwidgets/views/MainWindow.h" +#include "kddockwidgets/views/Stack.h" +#include "kddockwidgets/views/Frame.h" + #ifdef KDDW_FRONTEND_QTWIDGETS #include "qtwidgets/Platform_qtwidgets.h" #endif @@ -40,3 +48,13 @@ void KDDockWidgets::initFrontend(FrontendType type) break; } } + +namespace KDDockWidgets::Views { +// Fix -Wweak-vtables warnings +SideBar::~SideBar() = default; +Stack::~Stack() = default; +TabBar::~TabBar() = default; +TitleBar::~TitleBar() = default; +MainWindow::~MainWindow() = default; +Frame::~Frame() = default; +} diff --git a/src/qtquick/TestHelpers_qtquick.cpp b/src/qtquick/TestHelpers_qtquick.cpp index ca723dc2..00426747 100644 --- a/src/qtquick/TestHelpers_qtquick.cpp +++ b/src/qtquick/TestHelpers_qtquick.cpp @@ -38,6 +38,8 @@ public: setMaximumSize(opts.maxSize); } + ~TestView_qtquick(); + QSize sizeHint() const override { return m_opts.sizeHint; @@ -46,6 +48,9 @@ public: private: Platform::CreateViewOptions m_opts; }; + +TestView_qtquick::~TestView_qtquick() = default; + } Platform_qtquick::Platform_qtquick(int &argc, char **argv) diff --git a/src/views/ClassicIndicatorWindow.h b/src/views/ClassicIndicatorWindow.h index 885ccc59..c7a68e3c 100644 --- a/src/views/ClassicIndicatorWindow.h +++ b/src/views/ClassicIndicatorWindow.h @@ -20,7 +20,7 @@ namespace Views { /// @brief The window that will hold the classic indicators /// This is a window so it can be over the window that is being dragged -class ClassicIndicatorWindow +class DOCKS_EXPORT ClassicIndicatorWindow { public: virtual ~ClassicIndicatorWindow(); diff --git a/src/views/Frame.h b/src/views/Frame.h index 6c21524e..3099795e 100644 --- a/src/views/Frame.h +++ b/src/views/Frame.h @@ -11,6 +11,8 @@ #pragma once +#include "kddockwidgets/docks_export.h" + class QString; class QIcon; class QRect; @@ -24,9 +26,10 @@ class DockWidget; namespace Views { /// @brief The interface that Frame views should implement -class Frame +class DOCKS_EXPORT Frame { public: + virtual ~Frame(); virtual void renameTab(int index, const QString &) = 0; virtual void changeTabIcon(int index, const QIcon &) = 0; virtual void removeWidget_impl(Controllers::DockWidget *) = 0; diff --git a/src/views/MainWindow.h b/src/views/MainWindow.h index 26c3de05..fff1293c 100644 --- a/src/views/MainWindow.h +++ b/src/views/MainWindow.h @@ -11,6 +11,7 @@ #pragma once +#include "kddockwidgets/docks_export.h" #include "kddockwidgets/KDDockWidgets.h" class QMargins; @@ -25,9 +26,10 @@ class SideBar; namespace Views { /// @brief The interface that MainWindow views should implement -class MainWindow +class DOCKS_EXPORT MainWindow { public: + virtual ~MainWindow(); virtual QMargins centerWidgetMargins() const = 0; virtual QRect centralAreaGeometry() const = 0; virtual void setContentsMargins(int left, int top, int right, int bottom) = 0; diff --git a/src/views/SideBar.h b/src/views/SideBar.h index 3d4afe29..7d3d6ca3 100644 --- a/src/views/SideBar.h +++ b/src/views/SideBar.h @@ -11,6 +11,8 @@ #pragma once +#include "kddockwidgets/docks_export.h" + namespace KDDockWidgets { namespace Controllers { @@ -23,6 +25,7 @@ namespace Views { class SideBar { public: + virtual ~SideBar(); virtual void addDockWidget_Impl(Controllers::DockWidget *dock) = 0; virtual void removeDockWidget_Impl(Controllers::DockWidget *dock) = 0; }; diff --git a/src/views/Stack.h b/src/views/Stack.h index e131bf2f..c3dd0742 100644 --- a/src/views/Stack.h +++ b/src/views/Stack.h @@ -11,6 +11,8 @@ #pragma once +#include "kddockwidgets/docks_export.h" + class QPoint; class QIcon; class QString; @@ -23,11 +25,11 @@ class DockWidget; namespace Views { - /// @brief The interface that Stack views should implement class Stack { public: + virtual ~Stack(); virtual bool isPositionDraggable(QPoint p) const = 0; virtual void setTabBarAutoHide(bool is) = 0; virtual void renameTab(int index, const QString &) = 0; diff --git a/src/views/TabBar.h b/src/views/TabBar.h index 5112df81..58d9ee2c 100644 --- a/src/views/TabBar.h +++ b/src/views/TabBar.h @@ -11,6 +11,8 @@ #pragma once +#include "kddockwidgets/docks_export.h" + class QPoint; class QRect; class QString; @@ -24,9 +26,10 @@ class DockWidget; namespace Views { /// @brief The interface that TabBar views should implement -class TabBar +class DOCKS_EXPORT TabBar { public: + virtual ~TabBar(); virtual bool tabsAreMovable() const = 0; virtual int tabAt(QPoint localPt) const = 0; virtual void moveTabTo(int from, int to) = 0; diff --git a/src/views/TitleBar.h b/src/views/TitleBar.h index 683f6e7f..29b81c9a 100644 --- a/src/views/TitleBar.h +++ b/src/views/TitleBar.h @@ -11,6 +11,7 @@ #pragma once +#include "kddockwidgets/docks_export.h" namespace KDDockWidgets { @@ -18,9 +19,10 @@ namespace Views { /// @brief The interface that TitleBar views should implement -class TitleBar +class DOCKS_EXPORT TitleBar { public: + virtual ~TitleBar(); virtual void updateMaximizeButton() = 0; #ifdef DOCKS_DEVELOPER_MODE virtual bool isFloatButtonVisible() const = 0;