summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJoseph Donofry <joedonofry@gmail.com>2019-07-04 22:58:06 -0400
committerJoseph Donofry <joedonofry@gmail.com>2019-07-04 22:58:56 -0400
commit4c0d4f35fecbd53f9bea12abe50a14fb74820435 (patch)
tree76b250c77bf8032bf60bba91f9d8823ec765421c /src
parentFix formatting issues (diff)
downloadnheko-4c0d4f35fecbd53f9bea12abe50a14fb74820435.tar.xz
Fix support for Qt versions < 5.11
Diffstat (limited to 'src')
-rw-r--r--src/RoomInfoListItem.cpp11
-rw-r--r--src/TypingDisplay.cpp6
-rw-r--r--src/timeline/TimelineItem.cpp7
-rw-r--r--src/timeline/widgets/AudioItem.cpp7
-rw-r--r--src/timeline/widgets/FileItem.cpp7
-rw-r--r--src/timeline/widgets/ImageItem.cpp7
-rw-r--r--src/ui/InfoMessage.cpp16
-rw-r--r--src/ui/Painter.h7
8 files changed, 56 insertions, 12 deletions
diff --git a/src/RoomInfoListItem.cpp b/src/RoomInfoListItem.cpp

index c8924bed..9bcce134 100644 --- a/src/RoomInfoListItem.cpp +++ b/src/RoomInfoListItem.cpp
@@ -19,6 +19,7 @@ #include <QDebug> #include <QMouseEvent> #include <QPainter> +#include <QtGlobal> #include "Cache.h" #include "Config.h" @@ -182,9 +183,12 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) QFont tsFont; tsFont.setPointSizeF(tsFont.pointSizeF() * 0.9); +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + const int msgStampWidth = QFontMetrics(tsFont).width(lastMsgInfo_.timestamp) + 4; +#else const int msgStampWidth = QFontMetrics(tsFont).horizontalAdvance(lastMsgInfo_.timestamp) + 4; - +#endif // We use the full width of the widget if there is no unread msg bubble. const int bottomLineWidthLimit = (unreadMsgCount_ > 0) ? msgStampWidth : 0; @@ -212,8 +216,11 @@ RoomInfoListItem::paintEvent(QPaintEvent *event) p.setFont(QFont{}); p.drawText(QPoint(2 * wm.padding + wm.iconSize, bottom_y), userName); +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + int nameWidth = QFontMetrics(QFont{}).width(userName); +#else int nameWidth = QFontMetrics(QFont{}).horizontalAdvance(userName); - +#endif p.setFont(QFont{}); // The limit is the space between the end of the username and the start of diff --git a/src/TypingDisplay.cpp b/src/TypingDisplay.cpp
index fc5e2df4..6059601d 100644 --- a/src/TypingDisplay.cpp +++ b/src/TypingDisplay.cpp
@@ -2,6 +2,7 @@ #include <QPainter> #include <QPoint> #include <QShowEvent> +#include <QtGlobal> #include "Config.h" #include "TypingDisplay.h" @@ -69,9 +70,12 @@ TypingDisplay::paintEvent(QPaintEvent *) text_ = fm.elidedText(text_, Qt::ElideRight, (double)(width() * 0.75)); QPainterPath path; +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + path.addRoundedRect(QRectF(0, 0, fm.width(text_) + 2 * LEFT_PADDING, height()), 3, 3); +#else path.addRoundedRect( QRectF(0, 0, fm.horizontalAdvance(text_) + 2 * LEFT_PADDING, height()), 3, 3); - +#endif p.fillPath(path, backgroundColor()); p.drawText(region, Qt::AlignVCenter, text_); } diff --git a/src/timeline/TimelineItem.cpp b/src/timeline/TimelineItem.cpp
index 2ec6bd81..22bdaaa2 100644 --- a/src/timeline/TimelineItem.cpp +++ b/src/timeline/TimelineItem.cpp
@@ -21,6 +21,7 @@ #include <QFontDatabase> #include <QMenu> #include <QTimer> +#include <QtGlobal> #include "ChatPage.h" #include "Config.h" @@ -731,11 +732,13 @@ TimelineItem::generateUserName(const QString &user_id, const QString &displaynam userName_->setToolTipDuration(1500); userName_->setAttribute(Qt::WA_Hover); userName_->setAlignment(Qt::AlignLeft | Qt::AlignTop); +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) // width deprecated in 5.13: - // userName_->setFixedWidth(QFontMetrics(userName_->font()).width(userName_->text())); + userName_->setFixedWidth(QFontMetrics(userName_->font()).width(userName_->text())); +#else userName_->setFixedWidth( QFontMetrics(userName_->font()).horizontalAdvance(userName_->text())); - +#endif // Set the user color asynchronously if it hasn't been generated yet, // otherwise this will just set it. refreshAuthorColor(); diff --git a/src/timeline/widgets/AudioItem.cpp b/src/timeline/widgets/AudioItem.cpp
index 7ce9bf9a..5d6431ee 100644 --- a/src/timeline/widgets/AudioItem.cpp +++ b/src/timeline/widgets/AudioItem.cpp
@@ -21,6 +21,7 @@ #include <QFileDialog> #include <QPainter> #include <QPixmap> +#include <QtGlobal> #include "Logging.h" #include "MatrixClient.h" @@ -162,10 +163,14 @@ AudioItem::resizeEvent(QResizeEvent *event) font.setWeight(QFont::Medium); QFontMetrics fm(font); +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + const int computedWidth = std::min( + fm.width(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth); +#else const int computedWidth = std::min(fm.horizontalAdvance(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth); - +#endif resize(computedWidth, Height); event->accept(); diff --git a/src/timeline/widgets/FileItem.cpp b/src/timeline/widgets/FileItem.cpp
index 3ae76913..1a555d1c 100644 --- a/src/timeline/widgets/FileItem.cpp +++ b/src/timeline/widgets/FileItem.cpp
@@ -21,6 +21,7 @@ #include <QFileDialog> #include <QPainter> #include <QPixmap> +#include <QtGlobal> #include "Logging.h" #include "MatrixClient.h" @@ -153,10 +154,14 @@ FileItem::resizeEvent(QResizeEvent *event) font.setWeight(QFont::Medium); QFontMetrics fm(font); +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + const int computedWidth = std::min( + fm.width(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth); +#else const int computedWidth = std::min(fm.horizontalAdvance(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth); - +#endif resize(computedWidth, Height); event->accept(); diff --git a/src/timeline/widgets/ImageItem.cpp b/src/timeline/widgets/ImageItem.cpp
index 79a66c4d..26c569d7 100644 --- a/src/timeline/widgets/ImageItem.cpp +++ b/src/timeline/widgets/ImageItem.cpp
@@ -22,6 +22,7 @@ #include <QPainter> #include <QPixmap> #include <QUuid> +#include <QtGlobal> #include "Config.h" #include "ImageItem.h" @@ -191,9 +192,11 @@ ImageItem::paintEvent(QPaintEvent *event) if (image_.isNull()) { QString elidedText = metrics.elidedText(text_, Qt::ElideRight, max_width_ - 10); - +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + setFixedSize(metrics.width(elidedText), fontHeight); +#else setFixedSize(metrics.horizontalAdvance(elidedText), fontHeight); - +#endif painter.setFont(font); painter.setPen(QPen(QColor(66, 133, 244))); painter.drawText(QPoint(0, fontHeight / 2), elidedText); diff --git a/src/ui/InfoMessage.cpp b/src/ui/InfoMessage.cpp
index b18a80c4..fa575d76 100644 --- a/src/ui/InfoMessage.cpp +++ b/src/ui/InfoMessage.cpp
@@ -4,6 +4,7 @@ #include <QDateTime> #include <QPainter> #include <QPen> +#include <QtGlobal> constexpr int VPadding = 6; constexpr int HPadding = 12; @@ -22,7 +23,13 @@ InfoMessage::InfoMessage(QString msg, QWidget *parent) initFont(); QFontMetrics fm{font()}; - width_ = fm.horizontalAdvance(msg_) + HPadding * 2; +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + // width deprecated in 5.13 + width_ = fm.width(msg_) + HPadding * 2; +#else + width_ = fm.horizontalAdvance(msg_) + HPadding * 2; +#endif + height_ = fm.ascent() + 2 * VPadding; setFixedHeight(height_ + 2 * HMargin); @@ -64,7 +71,12 @@ DateSeparator::DateSeparator(QDateTime datetime, QWidget *parent) msg_ = datetime.toString(fmt); QFontMetrics fm{font()}; - width_ = fm.horizontalAdvance(msg_) + HPadding * 2; +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + // width deprecated in 5.13 + width_ = fm.width(msg_) + HPadding * 2; +#else + width_ = fm.horizontalAdvance(msg_) + HPadding * 2; +#endif height_ = fm.ascent() + 2 * VPadding; setFixedHeight(height_ + 2 * HMargin); diff --git a/src/ui/Painter.h b/src/ui/Painter.h
index 8feed17b..1c1b17b0 100644 --- a/src/ui/Painter.h +++ b/src/ui/Painter.h
@@ -3,6 +3,7 @@ #include <QFontMetrics> #include <QPaintDevice> #include <QPainter> +#include <QtGlobal> class Painter : public QPainter { @@ -21,8 +22,12 @@ public: { QFontMetrics m(fontMetrics()); if (textWidth < 0) { - // deprecated in 5.13: textWidth = m.width(text); +#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0) + // deprecated in 5.13: + textWidth = m.width(text); +#else textWidth = m.horizontalAdvance(text); +#endif } drawText((outerw - x - textWidth), y + m.ascent(), text); }