summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Weiss2019-09-25 12:20:41 +0200
committerLuca Weiss2019-09-25 12:20:41 +0200
commit5625390f7a6f94b6c60aceb9abeb55552ceec16a (patch)
tree1da0102e7f49e4f18ecc1ccc88d69d885f564093
parentdf4080acfb835ec4ed73be775472871ea0d2bac3 (diff)
downloadaur-5625390f7a6f94b6c60aceb9abeb55552ceec16a.tar.gz
upgpkg: nheko 0.6.4-1
fix build
-rw-r--r--.SRCINFO3
-rw-r--r--0001-Fix-deprecated-function-call-issues-with-Qt-5.13.patch378
-rw-r--r--PKGBUILD13
3 files changed, 391 insertions, 3 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ff6dc75167ce..f2b69c13f929 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -13,6 +13,7 @@ pkgbase = nheko
makedepends = lmdbxx
makedepends = spdlog
makedepends = tweeny
+ makedepends = fmt
depends = qt5-multimedia
depends = qt5-svg
depends = hicolor-icon-theme
@@ -20,7 +21,9 @@ pkgbase = nheko
depends = cmark
depends = mtxclient
source = nheko-0.6.4.tar.gz::https://github.com/Nheko-Reborn/nheko/archive/v0.6.4.tar.gz
+ source = 0001-Fix-deprecated-function-call-issues-with-Qt-5.13.patch
sha512sums = 782673a3ae642029307517798e5be96cf0473cd4261af891988a35dfeb5e2e724d2c034407f62addd2e15973d287d11c6590d70cca739c705354cb0151536470
+ sha512sums = a20e5a3a152a22525bc1a0563f210bc8ed4f4d988342f20e1960b9530fdc0ca90539847719bbc9abf7802a0cd4af99f41b84641cd0bb5881dc1a9d160e224c2e
pkgname = nheko
diff --git a/0001-Fix-deprecated-function-call-issues-with-Qt-5.13.patch b/0001-Fix-deprecated-function-call-issues-with-Qt-5.13.patch
new file mode 100644
index 000000000000..96dea2f82f8f
--- /dev/null
+++ b/0001-Fix-deprecated-function-call-issues-with-Qt-5.13.patch
@@ -0,0 +1,378 @@
+From 881f0b54f4ae6b06e03781c9d82b7f49454a1cff Mon Sep 17 00:00:00 2001
+From: Joseph Donofry <joedonofry@gmail.com>
+Date: Thu, 4 Jul 2019 21:20:19 -0400
+Subject: [PATCH] Fix deprecated function call issues with Qt 5.13
+
+---
+ src/RoomInfoListItem.cpp | 4 ++--
+ src/TypingDisplay.cpp | 2 +-
+ src/Utils.cpp | 9 +++++++--
+ src/dialogs/ImageOverlay.cpp | 5 ++++-
+ src/main.cpp | 5 ++++-
+ src/notifications/ManagerLinux.cpp | 2 +-
+ src/timeline/TimelineItem.cpp | 6 ++++--
+ src/timeline/TimelineItem.h | 8 ++++++++
+ src/timeline/widgets/AudioItem.cpp | 2 +-
+ src/timeline/widgets/FileItem.cpp | 2 +-
+ src/timeline/widgets/ImageItem.cpp | 2 +-
+ src/ui/DropShadow.h | 22 +++++++++++++---------
+ src/ui/InfoMessage.cpp | 4 ++--
+ src/ui/Painter.h | 6 ++++--
+ 14 files changed, 53 insertions(+), 26 deletions(-)
+
+diff --git a/src/RoomInfoListItem.cpp b/src/RoomInfoListItem.cpp
+index f17b383..d6a4f78 100644
+--- a/src/RoomInfoListItem.cpp
++++ b/src/RoomInfoListItem.cpp
+@@ -182,7 +182,7 @@ RoomInfoListItem::paintEvent(QPaintEvent *event)
+
+ QFont tsFont;
+ tsFont.setPointSizeF(tsFont.pointSizeF() * 0.9);
+- const int msgStampWidth = QFontMetrics(tsFont).width(lastMsgInfo_.timestamp) + 4;
++ const int msgStampWidth = QFontMetrics(tsFont).horizontalAdvance(lastMsgInfo_.timestamp) + 4;
+
+ // We use the full width of the widget if there is no unread msg bubble.
+ const int bottomLineWidthLimit = (unreadMsgCount_ > 0) ? msgStampWidth : 0;
+@@ -211,7 +211,7 @@ RoomInfoListItem::paintEvent(QPaintEvent *event)
+ p.setFont(QFont{});
+ p.drawText(QPoint(2 * wm.padding + wm.iconSize, bottom_y), userName);
+
+- int nameWidth = QFontMetrics(QFont{}).width(userName);
++ int nameWidth = QFontMetrics(QFont{}).horizontalAdvance(userName);
+
+ p.setFont(QFont{});
+
+diff --git a/src/TypingDisplay.cpp b/src/TypingDisplay.cpp
+index 11313ad..97aeb26 100644
+--- a/src/TypingDisplay.cpp
++++ b/src/TypingDisplay.cpp
+@@ -69,7 +69,7 @@ TypingDisplay::paintEvent(QPaintEvent *)
+ text_ = fm.elidedText(text_, Qt::ElideRight, (double)(width() * 0.75));
+
+ QPainterPath path;
+- path.addRoundedRect(QRectF(0, 0, fm.width(text_) + 2 * LEFT_PADDING, height()), 3, 3);
++ path.addRoundedRect(QRectF(0, 0, fm.horizontalAdvance(text_) + 2 * LEFT_PADDING, height()), 3, 3);
+
+ p.fillPath(path, backgroundColor());
+ p.drawText(region, Qt::AlignVCenter, text_);
+diff --git a/src/Utils.cpp b/src/Utils.cpp
+index f8fdfaf..65fc8f0 100644
+--- a/src/Utils.cpp
++++ b/src/Utils.cpp
+@@ -3,6 +3,8 @@
+ #include <QApplication>
+ #include <QComboBox>
+ #include <QDesktopWidget>
++#include <QGuiApplication>
++#include <QScreen>
+ #include <QSettings>
+ #include <QTextDocument>
+ #include <QXmlStreamReader>
+@@ -229,8 +231,10 @@ utils::scaleImageToPixmap(const QImage &img, int size)
+ if (img.isNull())
+ return QPixmap();
+
++ // Deprecated in 5.13: const double sz =
++ // std::ceil(QApplication::desktop()->screen()->devicePixelRatioF() * (double)size);
+ const double sz =
+- std::ceil(QApplication::desktop()->screen()->devicePixelRatioF() * (double)size);
++ std::ceil(QGuiApplication::primaryScreen()->devicePixelRatio() * (double)size);
+ return QPixmap::fromImage(
+ img.scaled(sz, sz, Qt::IgnoreAspectRatio, Qt::SmoothTransformation));
+ }
+@@ -461,7 +465,8 @@ utils::centerWidget(QWidget *widget, QWidget *parent)
+ return;
+ }
+
+- widget->move(findCenter(QApplication::desktop()->screenGeometry()));
++ // Deprecated in 5.13: widget->move(findCenter(QApplication::desktop()->screenGeometry()));
++ widget->move(findCenter(QGuiApplication::primaryScreen()->geometry()));
+ }
+
+ void
+diff --git a/src/dialogs/ImageOverlay.cpp b/src/dialogs/ImageOverlay.cpp
+index dbf5bbe..dd9cd03 100644
+--- a/src/dialogs/ImageOverlay.cpp
++++ b/src/dialogs/ImageOverlay.cpp
+@@ -17,7 +17,9 @@
+
+ #include <QApplication>
+ #include <QDesktopWidget>
++#include <QGuiApplication>
+ #include <QPainter>
++#include <QScreen>
+
+ #include "dialogs/ImageOverlay.h"
+
+@@ -39,7 +41,8 @@ ImageOverlay::ImageOverlay(QPixmap image, QWidget *parent)
+ setAttribute(Qt::WA_DeleteOnClose, true);
+ setWindowState(Qt::WindowFullScreen);
+
+- screen_ = QApplication::desktop()->availableGeometry();
++ // Deprecated in 5.13: screen_ = QApplication::desktop()->availableGeometry();
++ screen_ = QGuiApplication::primaryScreen()->availableGeometry();
+
+ move(QApplication::desktop()->mapToGlobal(screen_.topLeft()));
+ resize(screen_.size());
+diff --git a/src/main.cpp b/src/main.cpp
+index 0c196a3..bd7560d 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -21,10 +21,12 @@
+ #include <QDir>
+ #include <QFile>
+ #include <QFontDatabase>
++#include <QGuiApplication>
+ #include <QLabel>
+ #include <QLibraryInfo>
+ #include <QMessageBox>
+ #include <QPoint>
++#include <QScreen>
+ #include <QSettings>
+ #include <QStandardPaths>
+ #include <QTranslator>
+@@ -72,7 +74,8 @@ registerSignalHandlers()
+ QPoint
+ screenCenter(int width, int height)
+ {
+- QRect screenGeometry = QApplication::desktop()->screenGeometry();
++ // Deprecated in 5.13: QRect screenGeometry = QApplication::desktop()->screenGeometry();
++ QRect screenGeometry = QGuiApplication::primaryScreen()->geometry();
+
+ int x = (screenGeometry.width() - width) / 2;
+ int y = (screenGeometry.height() - height) / 2;
+diff --git a/src/notifications/ManagerLinux.cpp b/src/notifications/ManagerLinux.cpp
+index d3901c5..1d9f97d 100644
+--- a/src/notifications/ManagerLinux.cpp
++++ b/src/notifications/ManagerLinux.cpp
+@@ -142,7 +142,7 @@ operator<<(QDBusArgument &arg, const QImage &image)
+ int channels = i.isGrayscale() ? 1 : (i.hasAlphaChannel() ? 4 : 3);
+ arg << i.depth() / channels;
+ arg << channels;
+- arg << QByteArray(reinterpret_cast<const char *>(i.bits()), i.byteCount());
++ arg << QByteArray(reinterpret_cast<const char *>(i.bits()), i.sizeInBytes());
+ arg.endStructure();
+ return arg;
+ }
+diff --git a/src/timeline/TimelineItem.cpp b/src/timeline/TimelineItem.cpp
+index d23dbf4..74686a8 100644
+--- a/src/timeline/TimelineItem.cpp
++++ b/src/timeline/TimelineItem.cpp
+@@ -690,7 +690,9 @@ TimelineItem::generateUserName(const QString &user_id, const QString &displaynam
+ userName_->setToolTipDuration(1500);
+ userName_->setAttribute(Qt::WA_Hover);
+ userName_->setAlignment(Qt::AlignLeft | Qt::AlignTop);
+- userName_->setFixedWidth(QFontMetrics(userName_->font()).width(userName_->text()));
++ // width deprecated in 5.13:
++ // userName_->setFixedWidth(QFontMetrics(userName_->font()).width(userName_->text()));
++ userName_->setFixedWidth(QFontMetrics(userName_->font()).horizontalAdvance(userName_->text()));
+
+ // Set the user color asynchronously if it hasn't been generated yet,
+ // otherwise this will just set it.
+@@ -915,4 +917,4 @@ TimelineItem::openRawMessageViewer() const
+ "failed to serialize event ({}, {})", room_id, event_id);
+ }
+ });
+-}
+\ No newline at end of file
++}
+diff --git a/src/timeline/TimelineItem.h b/src/timeline/TimelineItem.h
+index 7bf6a07..00f26f2 100644
+--- a/src/timeline/TimelineItem.h
++++ b/src/timeline/TimelineItem.h
+@@ -28,6 +28,8 @@
+
+ #include <QtConcurrent>
+
++#include "mtx/events.hpp"
++
+ #include "AvatarProvider.h"
+ #include "RoomInfoListItem.h"
+ #include "Utils.h"
+@@ -273,6 +275,7 @@ private:
+
+ QString replaceEmoji(const QString &body);
+ QString event_id_;
++ mtx::events::MessageType message_type_;
+ QString room_id_;
+
+ DescInfo descriptionMsg_;
+@@ -342,6 +345,11 @@ TimelineItem::setupWidgetLayout(Widget *widget, const Event &event, bool withSen
+ {
+ init();
+
++ //if (event.type == mtx::events::EventType::RoomMessage) {
++ // message_type_ = mtx::events::getMessageType(event.content.msgtype);
++ //}
++ // TODO: Fix this.
++ message_type_ = mtx::events::MessageType::Unknown;
+ event_id_ = QString::fromStdString(event.event_id);
+ const auto sender = QString::fromStdString(event.sender);
+
+diff --git a/src/timeline/widgets/AudioItem.cpp b/src/timeline/widgets/AudioItem.cpp
+index 7233217..8cc2ba8 100644
+--- a/src/timeline/widgets/AudioItem.cpp
++++ b/src/timeline/widgets/AudioItem.cpp
+@@ -163,7 +163,7 @@ AudioItem::resizeEvent(QResizeEvent *event)
+
+ QFontMetrics fm(font);
+ const int computedWidth = std::min(
+- fm.width(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth);
++ fm.horizontalAdvance(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth);
+
+ resize(computedWidth, Height);
+
+diff --git a/src/timeline/widgets/FileItem.cpp b/src/timeline/widgets/FileItem.cpp
+index e97554e..903fc4b 100644
+--- a/src/timeline/widgets/FileItem.cpp
++++ b/src/timeline/widgets/FileItem.cpp
+@@ -154,7 +154,7 @@ FileItem::resizeEvent(QResizeEvent *event)
+
+ QFontMetrics fm(font);
+ const int computedWidth = std::min(
+- fm.width(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth);
++ fm.horizontalAdvance(text_) + 2 * IconRadius + VerticalPadding * 2 + TextPadding, (double)MaxWidth);
+
+ resize(computedWidth, Height);
+
+diff --git a/src/timeline/widgets/ImageItem.cpp b/src/timeline/widgets/ImageItem.cpp
+index 4ee9e42..79a66c4 100644
+--- a/src/timeline/widgets/ImageItem.cpp
++++ b/src/timeline/widgets/ImageItem.cpp
+@@ -192,7 +192,7 @@ ImageItem::paintEvent(QPaintEvent *event)
+ if (image_.isNull()) {
+ QString elidedText = metrics.elidedText(text_, Qt::ElideRight, max_width_ - 10);
+
+- setFixedSize(metrics.width(elidedText), fontHeight);
++ setFixedSize(metrics.horizontalAdvance(elidedText), fontHeight);
+
+ painter.setFont(font);
+ painter.setPen(QPen(QColor(66, 133, 244)));
+diff --git a/src/ui/DropShadow.h b/src/ui/DropShadow.h
+index b7ba198..d322fb4 100644
+--- a/src/ui/DropShadow.h
++++ b/src/ui/DropShadow.h
+@@ -30,7 +30,11 @@ public:
+ gradient.setStart(right0);
+ gradient.setFinalStop(right1);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(
++ // Deprecated in 5.13: painter.drawRoundRect(
++ // QRectF(QPointF(width - margin * radius, margin), QPointF(width, height - margin)),
++ // 0.0,
++ // 0.0);
++ painter.drawRoundedRect(
+ QRectF(QPointF(width - margin * radius, margin), QPointF(width, height - margin)),
+ 0.0,
+ 0.0);
+@@ -41,7 +45,7 @@ public:
+ gradient.setStart(left0);
+ gradient.setFinalStop(left1);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(
++ painter.drawRoundedRect(
+ QRectF(QPointF(margin * radius, margin), QPointF(0, height - margin)), 0.0, 0.0);
+
+ // Top
+@@ -50,7 +54,7 @@ public:
+ gradient.setStart(top0);
+ gradient.setFinalStop(top1);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(
++ painter.drawRoundedRect(
+ QRectF(QPointF(width - margin, 0), QPointF(margin, margin)), 0.0, 0.0);
+
+ // Bottom
+@@ -59,7 +63,7 @@ public:
+ gradient.setStart(bottom0);
+ gradient.setFinalStop(bottom1);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(
++ painter.drawRoundedRect(
+ QRectF(QPointF(margin, height - margin), QPointF(width - margin, height)),
+ 0.0,
+ 0.0);
+@@ -71,7 +75,7 @@ public:
+ gradient.setFinalStop(bottomright1);
+ gradient.setColorAt(endPosition1, end);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(QRectF(bottomright0, bottomright1), 0.0, 0.0);
++ painter.drawRoundedRect(QRectF(bottomright0, bottomright1), 0.0, 0.0);
+
+ // BottomLeft
+ QPointF bottomleft0(margin, height - margin);
+@@ -80,7 +84,7 @@ public:
+ gradient.setFinalStop(bottomleft1);
+ gradient.setColorAt(endPosition1, end);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(QRectF(bottomleft0, bottomleft1), 0.0, 0.0);
++ painter.drawRoundedRect(QRectF(bottomleft0, bottomleft1), 0.0, 0.0);
+
+ // TopLeft
+ QPointF topleft0(margin, margin);
+@@ -89,7 +93,7 @@ public:
+ gradient.setFinalStop(topleft1);
+ gradient.setColorAt(endPosition1, end);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(QRectF(topleft0, topleft1), 0.0, 0.0);
++ painter.drawRoundedRect(QRectF(topleft0, topleft1), 0.0, 0.0);
+
+ // TopRight
+ QPointF topright0(width - margin, margin);
+@@ -98,12 +102,12 @@ public:
+ gradient.setFinalStop(topright1);
+ gradient.setColorAt(endPosition1, end);
+ painter.setBrush(QBrush(gradient));
+- painter.drawRoundRect(QRectF(topright0, topright1), 0.0, 0.0);
++ painter.drawRoundedRect(QRectF(topright0, topright1), 0.0, 0.0);
+
+ // Widget
+ painter.setBrush(QBrush("#FFFFFF"));
+ painter.setRenderHint(QPainter::Antialiasing);
+- painter.drawRoundRect(
++ painter.drawRoundedRect(
+ QRectF(QPointF(margin, margin), QPointF(width - margin, height - margin)),
+ radius,
+ radius);
+diff --git a/src/ui/InfoMessage.cpp b/src/ui/InfoMessage.cpp
+index e9de20c..b18a80c 100644
+--- a/src/ui/InfoMessage.cpp
++++ b/src/ui/InfoMessage.cpp
+@@ -22,7 +22,7 @@ InfoMessage::InfoMessage(QString msg, QWidget *parent)
+ initFont();
+
+ QFontMetrics fm{font()};
+- width_ = fm.width(msg_) + HPadding * 2;
++ width_ = fm.horizontalAdvance(msg_) + HPadding * 2;
+ height_ = fm.ascent() + 2 * VPadding;
+
+ setFixedHeight(height_ + 2 * HMargin);
+@@ -64,7 +64,7 @@ DateSeparator::DateSeparator(QDateTime datetime, QWidget *parent)
+ msg_ = datetime.toString(fmt);
+
+ QFontMetrics fm{font()};
+- width_ = fm.width(msg_) + HPadding * 2;
++ width_ = fm.horizontalAdvance(msg_) + HPadding * 2;
+ height_ = fm.ascent() + 2 * VPadding;
+
+ setFixedHeight(height_ + 2 * HMargin);
+diff --git a/src/ui/Painter.h b/src/ui/Painter.h
+index 8de3965..8feed17 100644
+--- a/src/ui/Painter.h
++++ b/src/ui/Painter.h
+@@ -20,8 +20,10 @@ public:
+ void drawTextRight(int x, int y, int outerw, const QString &text, int textWidth = -1)
+ {
+ QFontMetrics m(fontMetrics());
+- if (textWidth < 0)
+- textWidth = m.width(text);
++ if (textWidth < 0) {
++ // deprecated in 5.13: textWidth = m.width(text);
++ textWidth = m.horizontalAdvance(text);
++ }
+ drawText((outerw - x - textWidth), y + m.ascent(), text);
+ }
+
+--
+2.23.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 2bc76d69dd9b..f6f4a3e76f6f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -9,12 +9,17 @@ arch=('x86_64' 'i686')
url="https://github.com/Nheko-Reborn/nheko"
license=('GPL3')
depends=('qt5-multimedia' 'qt5-svg' 'hicolor-icon-theme' 'lmdb' 'cmark' 'mtxclient')
-makedepends=('cmake' 'boost' 'qt5-tools' 'nlohmann-json' 'lmdbxx' 'spdlog' 'tweeny')
-source=("$pkgname-$pkgver.tar.gz::https://github.com/Nheko-Reborn/nheko/archive/v$pkgver.tar.gz")
-sha512sums=('782673a3ae642029307517798e5be96cf0473cd4261af891988a35dfeb5e2e724d2c034407f62addd2e15973d287d11c6590d70cca739c705354cb0151536470')
+makedepends=('cmake' 'boost' 'qt5-tools' 'nlohmann-json' 'lmdbxx' 'spdlog' 'tweeny'
+ 'fmt') # https://bugs.archlinux.org/task/63907
+source=("$pkgname-$pkgver.tar.gz::https://github.com/Nheko-Reborn/nheko/archive/v$pkgver.tar.gz"
+ "0001-Fix-deprecated-function-call-issues-with-Qt-5.13.patch")
+sha512sums=('782673a3ae642029307517798e5be96cf0473cd4261af891988a35dfeb5e2e724d2c034407f62addd2e15973d287d11c6590d70cca739c705354cb0151536470'
+ 'a20e5a3a152a22525bc1a0563f210bc8ed4f4d988342f20e1960b9530fdc0ca90539847719bbc9abf7802a0cd4af99f41b84641cd0bb5881dc1a9d160e224c2e')
prepare() {
mkdir -p build
+ cd $pkgname-$pkgver
+ patch -Np1 < ../0001-Fix-deprecated-function-call-issues-with-Qt-5.13.patch
}
build() {
@@ -22,6 +27,8 @@ build() {
cmake ../$pkgname-$pkgver \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
+ # The compilation takes up a *lot* of RAM (over 10GB with 6 threads)
+ # Adjust your MAKEFLAGS in /etc/makepkg.conf or add e.g. a "-j3" flag to the make command
make
}