diff --git a/3rdparty/qite/libqite/qiteaudio.cpp b/3rdparty/qite/libqite/qiteaudio.cpp index 6db52582a..e19c3bb41 100644 --- a/3rdparty/qite/libqite/qiteaudio.cpp +++ b/3rdparty/qite/libqite/qiteaudio.cpp @@ -330,7 +330,11 @@ void ITEAudioController::drawITE(QPainter *painter, const QRectF &rect, int posI painter->drawRect(hcolRect); } } +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) } else if (hg.type() == QVariant::String) { +#else + } else if (hg.typeId() == QVariant::String) { +#endif painter->setPen(QColor(70, 150, 70)); painter->drawText(metaRect.translated(rect.topLeft().toPoint()), hg.toString()); } @@ -401,7 +405,11 @@ bool ITEAudioController::mouseEvent(const Event &event, const QRect &rect, QText QIODevice * stream = opener ? opener->open(url) : nullptr; if (stream) connect(player, &QMediaPlayer::destroyed, this, [opener, stream]() { opener->close(stream); }); +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) player->setMedia(url, stream); +#else + player->setSourceDevice(stream, url); +#endif auto part = double(format.playPosition()) / double(scaleFillRect.width()); if (player->duration() > 0) { @@ -485,8 +493,8 @@ bool ITEAudioController::mouseEvent(const Event &event, const QRect &rect, QText cursor.setCharFormat(format); }); - connect(player, SIGNAL(stateChanged(QMediaPlayer::State)), this, - SLOT(playerStateChanged(QMediaPlayer::State))); + connect(player, SIGNAL(stateChanged(ITEAudioController::PlaybackState)), this, + SLOT(playerStateChanged(ITEAudioController::PlaybackState))); QObject::connect(player, &QMediaPlayer::mediaStatusChanged, [=]() { qDebug() << "Media status changed:" << player->mediaStatus(); }); QObject::connect(player, @@ -570,7 +578,7 @@ void ITEAudioController::playerPositionChanged(qint64 newPos) } } -void ITEAudioController::playerStateChanged(QMediaPlayer::State state) +void ITEAudioController::playerStateChanged(PlaybackState state) { if (state == QMediaPlayer::StoppedState) { auto player = static_cast(sender()); diff --git a/3rdparty/qite/libqite/qiteaudio.h b/3rdparty/qite/libqite/qiteaudio.h index 133c730ab..0a9dd6349 100644 --- a/3rdparty/qite/libqite/qiteaudio.h +++ b/3rdparty/qite/libqite/qiteaudio.h @@ -56,6 +56,12 @@ class ITEAudioController : public InteractiveTextElementController { void updateGeomtry(); public: +#if QT_VERSION < QT_VERSION_CHECK(6,0,0) + using PlaybackState = QMediaPlayer::State; +#else + using PlaybackState = QMediaPlayer::PlaybackState; +#endif + typedef QList Histogram; // can be fetched via DeviceOpener::metadata()[amplitudes] static const int HistogramCompressedSize = 100; // amount of drawn columns @@ -76,7 +82,7 @@ class ITEAudioController : public InteractiveTextElementController { void hideEvent(QTextCursor &selected); private slots: void playerPositionChanged(qint64); - void playerStateChanged(QMediaPlayer::State); + void playerStateChanged(PlaybackState); }; #endif // QITEAUDIO_H diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0152e60a3..9cbd24cee 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -28,6 +28,9 @@ set(TRANSLATIONS_DIR "${PROJECT_SOURCE_DIR}/translations" CACHE STRING "Path to #Work with external packages set(REQUIRED_QT_COMPONENTS Widgets Core Gui Xml Network Concurrent Multimedia Svg Sql) +if(QT_DEFAULT_MAJOR_VERSION GREATER_EQUAL 6) + list(APPEND REQUIRED_QT_COMPONENTS SvgWidgets) +endif() if(IS_WEBKIT) list(APPEND REQUIRED_QT_COMPONENTS WebKit WebKitWidgets) set(WEBKIT_LIBS Qt${QT_DEFAULT_MAJOR_VERSION}::WebKit Qt${QT_DEFAULT_MAJOR_VERSION}::WebKitWidgets) @@ -80,7 +83,21 @@ if(USE_KEYCHAIN) include_directories(${QTKEYCHAIN_INCLUDE_DIRS}) add_definitions(-DHAVE_KEYCHAIN) endif() -set(QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::Widgets Qt${QT_DEFAULT_MAJOR_VERSION}::Core Qt${QT_DEFAULT_MAJOR_VERSION}::Network Qt${QT_DEFAULT_MAJOR_VERSION}::Xml ${WEBKIT_LIBS} Qt${QT_DEFAULT_MAJOR_VERSION}::Concurrent Qt${QT_DEFAULT_MAJOR_VERSION}::Multimedia Qt${QT_DEFAULT_MAJOR_VERSION}::Svg Qt${QT_DEFAULT_MAJOR_VERSION}::Sql ${KEYCHAIN_LIBS}) +set(QT_LIBRARIES + Qt${QT_DEFAULT_MAJOR_VERSION}::Widgets + Qt${QT_DEFAULT_MAJOR_VERSION}::Core + Qt${QT_DEFAULT_MAJOR_VERSION}::Network + Qt${QT_DEFAULT_MAJOR_VERSION}::Xml + ${WEBKIT_LIBS} + Qt${QT_DEFAULT_MAJOR_VERSION}::Concurrent + Qt${QT_DEFAULT_MAJOR_VERSION}::Multimedia + Qt${QT_DEFAULT_MAJOR_VERSION}::Svg + Qt${QT_DEFAULT_MAJOR_VERSION}::Sql + ${KEYCHAIN_LIBS} +) +if(QT_DEFAULT_MAJOR_VERSION GREATER_EQUAL 6) + list(APPEND QT_LIBRARIES Qt${QT_DEFAULT_MAJOR_VERSION}::SvgWidgets) +endif() if(LINUX) diff --git a/src/sxe/sxesession.cpp b/src/sxe/sxesession.cpp index 3ee1a69f5..cb6401137 100644 --- a/src/sxe/sxesession.cpp +++ b/src/sxe/sxesession.cpp @@ -200,7 +200,7 @@ QList SxeSession::startQueueing() return nonDocElementEdits + edits; } -void SxeSession::arrangeEdits(QHash &ridByParent, QList &output, +void SxeSession::arrangeEdits(QMultiHash &ridByParent, QList &output, const QString &iterator) { // add the edits to this node diff --git a/src/sxe/sxesession.h b/src/sxe/sxesession.h index 2ded39e7f..31463add1 100644 --- a/src/sxe/sxesession.h +++ b/src/sxe/sxesession.h @@ -203,7 +203,7 @@ private slots: /*! \brief Generates SxeRemoveEdits for \a node and its children. */ void generateRemoves(const QDomNode &node); /*! \brief Recursive helper method for arranging edits for the snapshot. */ - void arrangeEdits(QHash &ridByParent, QList &output, const QString &iterator); + void arrangeEdits(QMultiHash &ridByParent, QList &output, const QString &iterator); /*! \brief Insert node with the given primaryWeight. * Returns node if the node was already in the document. Otherwise returns the created node. */ const QDomNode insertNode(const QDomNode &node, const QString &parentId, double primaryWeight); diff --git a/src/tabs/tabmanager.cpp b/src/tabs/tabmanager.cpp index e671b4552..c827d8b7f 100644 --- a/src/tabs/tabmanager.cpp +++ b/src/tabs/tabmanager.cpp @@ -29,7 +29,7 @@ TabDlg *TabManager::getTabs(QWidget *widget) QChar TabManager::tabKind(QWidget *widget) { - QChar retval = 0; + QChar retval; if (widget) { const QString name = widget->objectName(); if (name == "ChatDlg") { diff --git a/src/tools/advwidget/advwidget.cpp b/src/tools/advwidget/advwidget.cpp index dd6452ac5..46bda3ee1 100644 --- a/src/tools/advwidget/advwidget.cpp +++ b/src/tools/advwidget/advwidget.cpp @@ -223,7 +223,7 @@ void GAdvancedWidget::Private::doFlash(bool yes) void GAdvancedWidget::Private::moveEvent(QMoveEvent *) { - if (!parentWidget_->isTopLevel()) + if (!parentWidget_->isWindow()) return; #ifdef Q_OS_MAC QRect r = qApp->desktop()->availableGeometry(parentWidget_); diff --git a/src/whiteboarding/wbdlg.h b/src/whiteboarding/wbdlg.h index b39daefb7..e04da46db 100644 --- a/src/whiteboarding/wbdlg.h +++ b/src/whiteboarding/wbdlg.h @@ -36,13 +36,13 @@ #include #include #include -// #include #include #include #include class AccountLabel; class PsiAccount; +class IconAction; using namespace XMPP; diff --git a/src/whiteboarding/wbitem.cpp b/src/whiteboarding/wbitem.cpp index 9560a0257..ab888d9ed 100644 --- a/src/whiteboarding/wbitem.cpp +++ b/src/whiteboarding/wbitem.cpp @@ -21,13 +21,16 @@ #include "wbscene.h" #include "wbwidget.h" +#include #include #include #include +#include + #include -static QMatrix parseTransformationMatrix(const QString &value); +static QTransform parseTransformationMatrix(const QString &value); /* * WbItemMenu @@ -140,7 +143,7 @@ void WbItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) // qDebug() << QString("d: %1 %2 = %3 %4 + %5 // %6").arg(difference.x()).arg(difference.y()).arg(event->scenePos().x()).arg(event->scenePos().y()).arg(event->lastScenePos().x()).arg(event->lastScenePos().y()); QPointF p = event->scenePos(); - QMatrix delta; + QTransform delta; if (p.x() >= scenePivot.x() && p.y() >= scenePivot.y()) { delta.rotate((-difference.x() + difference.y()) / 2); } else if (p.x() < scenePivot.x() && p.y() >= scenePivot.y()) { @@ -154,7 +157,7 @@ void WbItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) const auto &gItems = scene()->selectedItems(); for (QGraphicsItem *graphicsitem : gItems) { if (!graphicsitem->parentItem() || !graphicsitem->parentItem()->isSelected()) { - QMatrix translation; + QTransform translation; // get center coordinates of selected items in item coordinates QPointF itemPivot = graphicsitem->mapFromScene(scenePivot); // translates the the item's center to the origin of the item coordinates @@ -178,7 +181,7 @@ void WbItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) // get center coordinates in item coordinates QPointF c = center(); - QMatrix translation, delta; + QTransform translation, delta; // translates the the item's center to the origin of the item coordinates translation.translate(-c.x(), -c.y()); // Scale. @@ -188,7 +191,7 @@ void WbItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) // Note: the y axis points downwards in scene coordinates delta.scale(1 + difference.x() / 50, 1 - difference.y() / 50); // set the matrix - setTransform(QTransform(translation * delta * translation.inverted()), true); + setTransform(translation * delta * translation.inverted(), true); // Regenerate the SVG transformation matrix later scene_->queueTransformationRegeneration(dynamic_cast(graphicsitem)); @@ -205,16 +208,16 @@ void WbItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) scene_->regenerateTransformations(); } -QMatrix WbItem::parseSvgTransform(QString string) +QTransform WbItem::parseSvgTransform(QString string) { string = string.trimmed(); if (string.isEmpty()) - return QMatrix(); + return {}; return parseTransformationMatrix(string); } -QString WbItem::toSvgTransform(const QMatrix &m) +QString WbItem::toSvgTransform(const QTransform &m) { return QString("matrix(%1 %2 %3 %4 %5 %6)") .arg(m.m11()) @@ -231,16 +234,16 @@ void WbItem::regenerateTransform() // Possible as long as no perspective transformations have been applied. // delta is the new transformation to be applied - QMatrix delta = transform().toAffine(); + QTransform delta = transform(); if (delta.isIdentity()) return; // get the existing SVG transformation QString oldValue = node_.attribute("transform"); - QMatrix oldTransform = parseSvgTransform(oldValue); + QTransform oldTransform = parseSvgTransform(oldValue); // construct a translation that translates the item to (0,0) in scene coordinates - QMatrix translation; + QTransform translation; // translates the the item's center to the origin of the item coordinates translation.translate(-pos().x(), -pos().y()); @@ -533,9 +536,9 @@ static QVector parseNumbersList(const QChar *&str) return points; } -static QMatrix parseTransformationMatrix(const QString &value) +static QTransform parseTransformationMatrix(const QString &value) { - QMatrix matrix; + QTransform matrix; const QChar *str = value.constData(); while (*str != QLatin1Char(0)) { @@ -614,7 +617,7 @@ static QMatrix parseTransformationMatrix(const QString &value) if (points.count() != 6) { goto error; } - matrix = matrix * QMatrix(points[0], points[1], points[2], points[3], points[4], points[5]); + matrix = matrix * QTransform(points[0], points[1], points[2], points[3], points[4], points[5]); } else if (state == State::Translate) { if (points.count() == 1) matrix.translate(points[0], 0); diff --git a/src/whiteboarding/wbitem.h b/src/whiteboarding/wbitem.h index 212db6127..d08d6e8ca 100644 --- a/src/whiteboarding/wbitem.h +++ b/src/whiteboarding/wbitem.h @@ -21,12 +21,12 @@ #define WBITEM_H #include "../sxe/sxesession.h" -#include "iconaction.h" #include #include #include #include +#include class WbScene; class WbWidget; @@ -88,9 +88,9 @@ class WbItem : public QGraphicsSvgItem { void resetPos(); /*! \brief Returns a QTransform based on \a string provided in the SVG 'transform' attribute format.*/ - static QMatrix parseSvgTransform(QString string); + static QTransform parseSvgTransform(QString string); /*! \brief Returns a QString in the SVG 'transform' attribute format based on \a matrix.*/ - static QString toSvgTransform(const QMatrix &matrix); + static QString toSvgTransform(const QTransform &matrix); protected: /*! \brief Constructs and popsup the default context menu.*/ diff --git a/src/widgets/iconselect.cpp b/src/widgets/iconselect.cpp index 77652b484..e4c28386a 100644 --- a/src/widgets/iconselect.cpp +++ b/src/widgets/iconselect.cpp @@ -21,11 +21,9 @@ #include "emojiregistry.h" #include "iconset.h" -#include "psitooltip.h" #include #include -//#include #include #include #include @@ -35,7 +33,6 @@ #include #include #include -#include #include #include diff --git a/src/widgets/psitabwidget.cpp b/src/widgets/psitabwidget.cpp index afcb685f1..a7e71f3a1 100644 --- a/src/widgets/psitabwidget.cpp +++ b/src/widgets/psitabwidget.cpp @@ -46,17 +46,17 @@ PsiTabWidget::PsiTabWidget(QWidget *parent) : QWidget(parent) tabBar_->setUsesScrollButtons(!multiRow); tabBar_->setCurrentIndexAlwaysAtBottom(currentIndexAlwaysAtBottom); layout_ = new QVBoxLayout(this); - layout_->setMargin(0); + layout_->setContentsMargins(0,0,0,0); layout_->setSpacing(0); barLayout_ = new QHBoxLayout; layout_->addLayout(barLayout_); - barLayout_->setMargin(0); + barLayout_->setContentsMargins(0,0,0,0); barLayout_->setSpacing(0); barLayout_->addWidget(tabBar_, 2); barLayout_->setAlignment(Qt::AlignLeft); int buttonwidth = qMax(tabBar_->style()->pixelMetric(QStyle::PM_TabBarScrollButtonWidth, nullptr, tabBar_), - QApplication::globalStrut().width()); + 16); downButton_ = new QToolButton(this); downButton_->setMinimumSize(3, 3); diff --git a/src/widgets/psitiplabel.cpp b/src/widgets/psitiplabel.cpp index 42792c7fa..824fd845b 100644 --- a/src/widgets/psitiplabel.cpp +++ b/src/widgets/psitiplabel.cpp @@ -164,7 +164,7 @@ void PsiTipLabel::paintEvent(QPaintEvent *) { QStylePainter p(this); QStyleOptionFrame opt; - opt.init(this); + opt.initFrom(this); if (enableColoring_) { p.drawPrimitive(QStyle::PE_Frame, opt); } else { diff --git a/src/widgets/tabbar.cpp b/src/widgets/tabbar.cpp index f4e95e6ce..ef97362f2 100644 --- a/src/widgets/tabbar.cpp +++ b/src/widgets/tabbar.cpp @@ -44,7 +44,7 @@ class CloseButton : public QAbstractButton { QSize sizeHint() const; inline QSize minimumSizeHint() const { return sizeHint(); } - void enterEvent(QEvent *event); + void enterEvent(QEnterEvent *event); void leaveEvent(QEvent *event); void paintEvent(QPaintEvent *event); }; @@ -838,7 +838,7 @@ static void initStyleBaseOption(QStyleOptionTabBarBase *optTabBase, QTabBar *tab tabOverlap.shape = tabbar->shape(); int overlap = tabbar->style()->pixelMetric(QStyle::PM_TabBarBaseOverlap, &tabOverlap, tabbar); QWidget *theParent = tabbar->parentWidget(); - optTabBase->init(tabbar); + optTabBase->initFrom(tabbar); optTabBase->shape = tabbar->shape(); optTabBase->documentMode = tabbar->documentMode(); if (theParent && overlap > 0) { @@ -1222,7 +1222,7 @@ QSize CloseButton::sizeHint() const return { width, height }; } -void CloseButton::enterEvent(QEvent *event) +void CloseButton::enterEvent(QEnterEvent *event) { if (isEnabled()) update(); diff --git a/version b/version index f4560f2e2..4fb56b506 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.5.1669 (2024-03-15, baf10a80) +1.5.1670 (2024-03-15, f8711b3e)