Merge branch '1.3' into master

This commit is contained in:
Sergio Martins
2021-02-24 13:56:28 +00:00
5 changed files with 28 additions and 28 deletions

View File

@@ -7,7 +7,9 @@
sure to provide a sizeHint.
* v1.3.1 (unreleased)
- Improve dragging across monitors with different dpi scaling
- Improve restoring layout when RestoreOption_RelativeToMainWindow is used (#171)
- Improved dragging windows across screens in mixed hdpi setups
- Fixed Flag_NativeTitleBar not hidding the client title bars when restoring (#170)
* v1.3.0 (8 February 2021)
- Experimental QtQuick support (#49)

View File

@@ -611,11 +611,6 @@ LayoutSaver::DockWidget::Ptr LayoutSaver::Frame::singleDockWidget() const
return dockWidgets.first();
}
void LayoutSaver::Frame::scaleSizes(const ScalingInfo &scalingInfo)
{
scalingInfo.applyFactorsTo(geometry);
}
QVariantMap LayoutSaver::Frame::toVariantMap() const
{
QVariantMap map;
@@ -730,7 +725,6 @@ bool LayoutSaver::FloatingWindow::skipsRestore() const
void LayoutSaver::FloatingWindow::scaleSizes(const ScalingInfo &scalingInfo)
{
scalingInfo.applyFactorsTo(/*by-ref*/geometry);
multiSplitterLayout.scaleSizes(scalingInfo);
}
QVariantMap LayoutSaver::FloatingWindow::toVariantMap() const
@@ -788,9 +782,6 @@ void LayoutSaver::MainWindow::scaleSizes()
}
scalingInfo = ScalingInfo(uniqueName, geometry);
if (scalingInfo.isValid())
multiSplitterLayout.scaleSizes(scalingInfo);
}
QVariantMap LayoutSaver::MainWindow::toVariantMap() const
@@ -875,13 +866,6 @@ bool LayoutSaver::MultiSplitter::skipsRestore() const
});
}
void LayoutSaver::MultiSplitter::scaleSizes(const ScalingInfo &)
{
// scalingInfo.applyFactorsTo(/*by-ref*/size);
//for (LayoutSaver::Item &item : items) TODO
// item.scaleSizes(scalingInfo);
}
QVariantMap LayoutSaver::MultiSplitter::toVariantMap() const
{
QVariantMap result;
@@ -1011,8 +995,7 @@ void LayoutSaver::ScalingInfo::translatePos(QPoint &pt) const
void LayoutSaver::ScalingInfo::applyFactorsTo(QPoint &pt) const
{
pt.setX(qCeil(pt.x() * widthFactor));
pt.setY(qCeil(pt.y() * heightFactor));
translatePos(pt);
}
void LayoutSaver::ScalingInfo::applyFactorsTo(QSize &sz) const

View File

@@ -184,9 +184,6 @@ struct LayoutSaver::Frame
/// @brief in case this frame only has one frame, returns the name of that dock widget
LayoutSaver::DockWidget::Ptr singleDockWidget() const;
/// Iterates through the layout and patches all absolute sizes. See RestoreOption_RelativeToMainWindow.
void scaleSizes(const ScalingInfo &scalingInfo);
QVariantMap toVariantMap() const;
void fromVariantMap(const QVariantMap &map);
@@ -208,9 +205,6 @@ struct LayoutSaver::MultiSplitter
LayoutSaver::DockWidget::Ptr singleDockWidget() const;
bool skipsRestore() const;
/// Iterates through the layout and patches all absolute sizes. See RestoreOption_RelativeToMainWindow.
void scaleSizes(const ScalingInfo &scalingInfo);
QVariantMap toVariantMap() const;
void fromVariantMap(const QVariantMap &map);

View File

@@ -345,6 +345,9 @@ void FloatingWindow::updateTitleBarVisibility()
bool visible = true;
for (Frame *frame : frames())
frame->updateTitleBarVisibility();
if (KDDockWidgets::usesClientTitleBar()) {
const auto flags = Config::self().flags();
if ((flags & Config::Flag_HideTitleBarWhenTabsVisible) && !(flags & Config::Flag_AlwaysTitleBarWhenFloating)) {
@@ -353,9 +356,6 @@ void FloatingWindow::updateTitleBarVisibility()
}
}
for (Frame *frame : frames())
frame->updateTitleBarVisibility();
m_titleBar->updateButtons();
} else {
visible = false;

View File

@@ -138,6 +138,7 @@ private Q_SLOTS:
void tst_dontCloseDockWidgetBeforeRestore();
void tst_dontCloseDockWidgetBeforeRestore2();
void tst_dontCloseDockWidgetBeforeRestore3();
void tst_restoreWithNativeTitleBar();
void tst_closeOnlyCurrentTab();
void tst_tabWidgetCurrentIndex();
@@ -7048,4 +7049,24 @@ void TestDocks::tst_redocksToPreviousTabIndex()
#endif
}
void TestDocks::tst_restoreWithNativeTitleBar()
{
EnsureTopLevelsDeleted e;
KDDockWidgets::Config::self().setFlags(KDDockWidgets::Config::Flag_NativeTitleBar);
auto dock0 = createDockWidget("dock0", new MyWidget2(QSize(400, 400)));
dock0->window()->move(100, 100);
QVERIFY(!dock0->titleBar()->isVisible());
QVERIFY(!dock0->floatingWindow()->titleBar()->isVisible());
QVERIFY(!dock0->d->frame()->titleBar()->isVisible());
LayoutSaver saver;
const QByteArray saved = saver.serializeLayout();
saver.restoreLayout(saved);
QVERIFY(!dock0->titleBar()->isVisible());
QVERIFY(!dock0->floatingWindow()->titleBar()->isVisible());
QVERIFY(!dock0->d->frame()->titleBar()->isVisible());
}
#include "tst_docks.moc"