From c6b9a03b3925522e8ba06005bbd545ece99cff11 Mon Sep 17 00:00:00 2001 From: hjk Date: Fri, 19 Jun 2020 09:12:02 +0200 Subject: [PATCH] ADS: Make it compile with current Qt dev MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ibea7545b443341da5d079900edcc32439a47c12f Reviewed-by: Henning Gründl Reviewed-by: Thomas Hartmann --- src/libs/advanceddockingsystem/ads_globals.h | 5 ++++- src/libs/advanceddockingsystem/dockoverlay.cpp | 5 +++-- src/libs/advanceddockingsystem/elidinglabel.cpp | 13 +++++++++++-- src/libs/advanceddockingsystem/elidinglabel.h | 6 ++++++ .../advanceddockingsystem/floatingdockcontainer.cpp | 2 +- src/libs/advanceddockingsystem/workspacedialog.cpp | 5 +++-- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/libs/advanceddockingsystem/ads_globals.h b/src/libs/advanceddockingsystem/ads_globals.h index 1790fdf69d9..0de0b4c20c9 100644 --- a/src/libs/advanceddockingsystem/ads_globals.h +++ b/src/libs/advanceddockingsystem/ads_globals.h @@ -145,7 +145,10 @@ void hideEmptyParentSplitters(DockSplitter *firstParentSplitter); class DockInsertParam : public QPair { public: - using QPair::QPair; + DockInsertParam(Qt::Orientation orientation, bool append) + : QPair(orientation, append) + {} + Qt::Orientation orientation() const { return this->first; } bool append() const { return this->second; } int insertOffset() const { return append() ? 1 : 0; } diff --git a/src/libs/advanceddockingsystem/dockoverlay.cpp b/src/libs/advanceddockingsystem/dockoverlay.cpp index b32c8bf3f2c..8eb85095c83 100644 --- a/src/libs/advanceddockingsystem/dockoverlay.cpp +++ b/src/libs/advanceddockingsystem/dockoverlay.cpp @@ -39,6 +39,7 @@ #include "dockareatitlebar.h" #include +#include #include #include @@ -758,9 +759,9 @@ namespace ADS { {"Arrow", DockOverlayCross::ArrowColor}, {"Shadow", DockOverlayCross::ShadowColor}}; - auto colorList = colors.split(' ', QString::SkipEmptyParts); + auto colorList = colors.split(' ', Utils::SkipEmptyParts); for (const auto &colorListEntry : colorList) { - auto componentColor = colorListEntry.split('=', QString::SkipEmptyParts); + auto componentColor = colorListEntry.split('=', Utils::SkipEmptyParts); int component = colorCompenentStringMap.value(componentColor[0], -1); if (component < 0) continue; diff --git a/src/libs/advanceddockingsystem/elidinglabel.cpp b/src/libs/advanceddockingsystem/elidinglabel.cpp index 4753ae7dd43..75808ff9c14 100644 --- a/src/libs/advanceddockingsystem/elidinglabel.cpp +++ b/src/libs/advanceddockingsystem/elidinglabel.cpp @@ -136,9 +136,18 @@ namespace ADS { Super::resizeEvent(event); } + bool ElidingLabel::hasPixmap() const + { +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + return !pixmap().isNull(); +#else + return pixmap() != nullptr; +#endif + } + QSize ElidingLabel::minimumSizeHint() const { - if (pixmap() != nullptr || d->isModeElideNone()) + if (hasPixmap() || d->isModeElideNone()) return QLabel::minimumSizeHint(); const QFontMetrics &fm = fontMetrics(); @@ -152,7 +161,7 @@ namespace ADS { QSize ElidingLabel::sizeHint() const { - if (pixmap() != nullptr || d->isModeElideNone()) + if (hasPixmap() || d->isModeElideNone()) return QLabel::sizeHint(); const QFontMetrics &fm = fontMetrics(); diff --git a/src/libs/advanceddockingsystem/elidinglabel.h b/src/libs/advanceddockingsystem/elidinglabel.h index 06b906531d8..6932844b4e8 100644 --- a/src/libs/advanceddockingsystem/elidinglabel.h +++ b/src/libs/advanceddockingsystem/elidinglabel.h @@ -106,6 +106,12 @@ signals: * This signal is emitted when isElided() state of this label is changed */ void elidedChanged(bool elided); + +private: + /** + * Helper to port to Qt 6 + */ + bool hasPixmap() const; }; //class ElidingLabel } // namespace ADS diff --git a/src/libs/advanceddockingsystem/floatingdockcontainer.cpp b/src/libs/advanceddockingsystem/floatingdockcontainer.cpp index 46e6f8478f3..787c58e832a 100644 --- a/src/libs/advanceddockingsystem/floatingdockcontainer.cpp +++ b/src/libs/advanceddockingsystem/floatingdockcontainer.cpp @@ -555,7 +555,7 @@ static const char* windowsMessageString(int messageId) setWindowFlags(windowFlags() | Qt::Tool); QDockWidget::setWidget(d->m_dockContainer); QDockWidget::setFloating(true); - QDockWidget::setFeatures(QDockWidget::AllDockWidgetFeatures); + QDockWidget::setFeatures(DockWidgetClosable | DockWidgetMovable | DockWidgetFloatable); setTitleBarWidget(d->m_titleBar); connect(d->m_titleBar, &FloatingWidgetTitleBar::closeRequested, diff --git a/src/libs/advanceddockingsystem/workspacedialog.cpp b/src/libs/advanceddockingsystem/workspacedialog.cpp index 0226f4a5974..57a16546395 100644 --- a/src/libs/advanceddockingsystem/workspacedialog.cpp +++ b/src/libs/advanceddockingsystem/workspacedialog.cpp @@ -40,6 +40,7 @@ #include #include +#include #include namespace ADS { @@ -64,9 +65,9 @@ QValidator::State WorkspaceValidator::validate(QString &input, int &pos) const { Q_UNUSED(pos) - static QRegExp rx("[a-zA-Z0-9 ()\\-]*"); + static const QRegularExpression rx("^[a-zA-Z0-9 ()\\-]*$"); - if (!rx.exactMatch(input)) + if (!rx.match(input).hasMatch()) return QValidator::Invalid; if (m_workspaces.contains(input))