Merge branch '1.5'
This commit is contained in:
@@ -7,9 +7,8 @@
|
||||
- Co-installable with Qt6
|
||||
- Adds support for non-detachable central widget, MainWindowOption_HasCentralWidget. (#225)
|
||||
- Fix corrupt layout when restoring old JSON
|
||||
|
||||
* v1.4.1 (unreleased)
|
||||
-
|
||||
- Fix "Unpin" button not showing up in overlayed widgets
|
||||
- Minimum Qt version is now 5.15
|
||||
|
||||
* v1.4.0 (16 July 2021)
|
||||
- No longer supports Qt versions less than 5.12
|
||||
|
||||
@@ -2,7 +2,7 @@ Supported Qt versions and toolchains
|
||||
=====================================
|
||||
|
||||
KDDockWidgets for QtQuick requires a C++17 capable compiler and either
|
||||
Qt >= 5.15.0 or Qt >= 6.2.
|
||||
Qt >= 5.15.2 or Qt >= 6.2.1
|
||||
|
||||
|
||||
TROUBLESHOOTING
|
||||
|
||||
@@ -146,12 +146,7 @@ your application whenever updating KDDW.
|
||||
|
||||
Supported Qt versions and toolchains
|
||||
=====================================
|
||||
KDDockWidgets requires Qt5 >= 5.12 or Qt6 >= 6.1.
|
||||
The QtQuick support requires Qt5 >= 5.15 or Qt6 >= 6.1.
|
||||
|
||||
|
||||
Regarding compilers, whatever toolchain is able to build Qt 5.9 should also be
|
||||
fine. Note however that MSVC 2013 isn't supported anymore due to compiler crashes.
|
||||
KDDockWidgets requires Qt 5.15.x or Qt6 >= 6.2.
|
||||
|
||||
|
||||
Styling
|
||||
|
||||
@@ -11,7 +11,7 @@ from conans import ConanFile, CMake, tools
|
||||
|
||||
class KDDockWidgetsConan(ConanFile):
|
||||
name = "kddockwidgets"
|
||||
version = "1.4.0"
|
||||
version = "1.5.0"
|
||||
default_user = "kdab"
|
||||
default_channel = "stable"
|
||||
license = ("https://raw.githubusercontent.com/KDAB/KDDockWidgets/master/LICENSES/GPL-2.0-only.txt",
|
||||
|
||||
@@ -101,7 +101,7 @@ public:
|
||||
*
|
||||
* Example: kddockwidgets_example --central-widget
|
||||
*/
|
||||
Q_INVOKABLE void setPersistentCentralWidget(QWidgetOrQuick *widget);
|
||||
Q_INVOKABLE void setPersistentCentralWidget(KDDockWidgets::QWidgetOrQuick *widget);
|
||||
QWidgetOrQuick *persistentCentralWidget() const;
|
||||
|
||||
/**
|
||||
|
||||
@@ -285,7 +285,7 @@ bool TitleBar::supportsMinimizeButton() const
|
||||
bool TitleBar::supportsAutoHideButton() const
|
||||
{
|
||||
// Only dock widgets docked into the MainWindow can minimize
|
||||
return m_supportsAutoHide && m_frame && m_frame->isInMainWindow();
|
||||
return m_supportsAutoHide && m_frame && (m_frame->isInMainWindow() || m_frame->isOverlayed());
|
||||
}
|
||||
|
||||
bool TitleBar::hasIcon() const
|
||||
|
||||
@@ -69,7 +69,10 @@ static bool shouldBlacklistWarning(const QString &msg, const QString &category)
|
||||
#ifdef KDDOCKWIDGETS_QTQUICK
|
||||
// TODO: Fix later, not important right now
|
||||
|| msg.contains(QLatin1String("Binding loop detected for property"))
|
||||
|| msg.contains(QLatin1String("Implement me"))
|
||||
|| msg.contains(QLatin1String("Implement me"))
|
||||
|
||||
// Ignore benign warning in Material style when deleting a dock widget. Should be fixed in Qt.
|
||||
|| (msg.contains(QLatin1String("TypeError: Cannot read property")) && msg.contains(QLatin1String("Material")))
|
||||
#endif
|
||||
;
|
||||
}
|
||||
|
||||
@@ -619,28 +619,6 @@ void TestDocks::tst_restoreMaximizedState()
|
||||
QCOMPARE(m->windowHandle()->windowState(), Qt::WindowMaximized);
|
||||
}
|
||||
|
||||
void TestDocks::tst_restoreFloatingMaximizedState()
|
||||
{
|
||||
EnsureTopLevelsDeleted e;
|
||||
KDDockWidgets::Config::self().setFlags(KDDockWidgets::Config::Flag_TitleBarHasMaximizeButton);
|
||||
auto dock1 = createDockWidget("dock1", new MyWidget("one"));
|
||||
const QRect originalNormalGeometry = dock1->floatingWindow()->normalGeometry();
|
||||
dock1->floatingWindow()->showMaximized();
|
||||
qDebug() << originalNormalGeometry;
|
||||
|
||||
QCOMPARE(dock1->floatingWindow()->windowHandle()->windowState(), Qt::WindowMaximized);
|
||||
|
||||
LayoutSaver saver;
|
||||
const QByteArray saved = saver.serializeLayout();
|
||||
|
||||
saver.restoreLayout(saved);
|
||||
QCOMPARE(dock1->floatingWindow()->windowHandle()->windowState(), Qt::WindowMaximized);
|
||||
QCOMPARE(dock1->floatingWindow()->normalGeometry(), originalNormalGeometry);
|
||||
|
||||
dock1->floatingWindow()->showNormal();
|
||||
QCOMPARE(dock1->floatingWindow()->normalGeometry(), originalNormalGeometry);
|
||||
}
|
||||
|
||||
void TestDocks::tst_restoreFloatingMinimizedState()
|
||||
{
|
||||
EnsureTopLevelsDeleted e;
|
||||
@@ -897,6 +875,31 @@ void TestDocks::tst_shutdown()
|
||||
|
||||
#ifdef KDDOCKWIDGETS_QTWIDGETS
|
||||
|
||||
void TestDocks::tst_restoreFloatingMaximizedState()
|
||||
{
|
||||
EnsureTopLevelsDeleted e;
|
||||
KDDockWidgets::Config::self().setFlags(KDDockWidgets::Config::Flag_TitleBarHasMaximizeButton);
|
||||
auto dock1 = createDockWidget("dock1", new MyWidget("one"));
|
||||
const QRect originalNormalGeometry = dock1->floatingWindow()->normalGeometry();
|
||||
dock1->floatingWindow()->showMaximized();
|
||||
qDebug() << originalNormalGeometry;
|
||||
|
||||
QCOMPARE(dock1->floatingWindow()->windowHandle()->windowState(), Qt::WindowMaximized);
|
||||
|
||||
LayoutSaver saver;
|
||||
const QByteArray saved = saver.serializeLayout();
|
||||
|
||||
saver.restoreLayout(saved);
|
||||
QCOMPARE(dock1->floatingWindow()->windowHandle()->windowState(), Qt::WindowMaximized);
|
||||
|
||||
|
||||
|
||||
QCOMPARE(dock1->floatingWindow()->normalGeometry(), originalNormalGeometry);
|
||||
|
||||
dock1->floatingWindow()->showNormal();
|
||||
QCOMPARE(dock1->floatingWindow()->normalGeometry(), originalNormalGeometry);
|
||||
}
|
||||
|
||||
void TestDocks::tst_complex()
|
||||
{
|
||||
// Tests some anchors out of bounds I got
|
||||
@@ -4132,12 +4135,14 @@ void TestDocks::tst_dragOverTitleBar()
|
||||
DropArea *da = dock1->floatingWindow()->dropArea();
|
||||
FloatingWindow *fw1 = dock1->floatingWindow();
|
||||
FloatingWindow *fw2 = dock2->floatingWindow();
|
||||
WindowBeingDragged wbd(fw2, fw2);
|
||||
{
|
||||
WindowBeingDragged wbd(fw2, fw2);
|
||||
|
||||
const QPoint titleBarPoint = fw1->titleBar()->mapToGlobal(QPoint(5, 5));
|
||||
const QPoint titleBarPoint = fw1->titleBar()->mapToGlobal(QPoint(5, 5));
|
||||
|
||||
auto loc = da->hover(&wbd, titleBarPoint);
|
||||
QCOMPARE(loc, DropIndicatorOverlayInterface::DropLocation_None);
|
||||
auto loc = da->hover(&wbd, titleBarPoint);
|
||||
QCOMPARE(loc, DropIndicatorOverlayInterface::DropLocation_None);
|
||||
}
|
||||
|
||||
delete fw1;
|
||||
delete fw2;
|
||||
@@ -5253,6 +5258,31 @@ void TestDocks::tst_deleteOnCloseWhenOnSideBar()
|
||||
QVERIFY(dock1);
|
||||
}
|
||||
|
||||
void TestDocks::tst_sidebarOverlayShowsAutohide()
|
||||
{
|
||||
// Tests that overlayed widgets show the "Disable auto-hide" button
|
||||
|
||||
EnsureTopLevelsDeleted e;
|
||||
KDDockWidgets::Config::self().setFlags(KDDockWidgets::Config::Flag_AutoHideSupport);
|
||||
|
||||
auto m1 = createMainWindow(QSize(1000, 1000), MainWindowOption_None, "MW1");
|
||||
auto dw1 = new DockWidgetType(QStringLiteral("1"));
|
||||
|
||||
m1->addDockWidget(dw1, Location_OnBottom);
|
||||
QVERIFY(dw1->titleBar()->supportsAutoHideButton());
|
||||
|
||||
m1->moveToSideBar(dw1);
|
||||
m1->overlayOnSideBar(dw1);
|
||||
|
||||
QVERIFY(dw1->isOverlayed());
|
||||
|
||||
auto titleBar = dw1->titleBar();
|
||||
QVERIFY(titleBar->isVisible());
|
||||
QVERIFY(titleBar->supportsAutoHideButton());
|
||||
|
||||
delete dw1;
|
||||
}
|
||||
|
||||
void TestDocks::tst_sidebarOverlayGetsHiddenOnClick()
|
||||
{
|
||||
EnsureTopLevelsDeleted e;
|
||||
|
||||
@@ -91,7 +91,6 @@ private Q_SLOTS:
|
||||
void tst_restoreEmpty();
|
||||
void tst_restoreCentralFrame();
|
||||
void tst_restoreMaximizedState();
|
||||
void tst_restoreFloatingMaximizedState();
|
||||
void tst_restoreFloatingMinimizedState();
|
||||
void tst_restoreNonExistingDockWidget();
|
||||
void tst_shutdown();
|
||||
@@ -262,6 +261,7 @@ private Q_SLOTS:
|
||||
void tst_restoreSideBar();
|
||||
void tst_toggleActionOnSideBar();
|
||||
void tst_deleteOnCloseWhenOnSideBar();
|
||||
void tst_sidebarOverlayShowsAutohide();
|
||||
void tst_sidebarOverlayGetsHiddenOnClick();
|
||||
void tst_floatRemovesFromSideBar();
|
||||
void tst_overlayedGeometryIsSaved();
|
||||
@@ -282,6 +282,7 @@ private Q_SLOTS:
|
||||
void tst_addToHiddenMainWindow();
|
||||
void tst_maximumSizePolicy();
|
||||
void tst_complex();
|
||||
void tst_restoreFloatingMaximizedState();
|
||||
#else
|
||||
void tst_hoverShowsDropIndicators();
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user