Merge branch '1.3' into master
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user