x11-themes/qtcurve: EAPI-7 bump, LO crashfix
authorAndreas Sturmlechner <asturm@gentoo.org>
Mon, 15 Jul 2019 20:00:28 +0000 (22:00 +0200)
committerAndreas Sturmlechner <asturm@gentoo.org>
Mon, 15 Jul 2019 20:51:57 +0000 (22:51 +0200)
Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
x11-themes/qtcurve/files/qtcurve-1.9.0-libreoffice-crashfix.patch [new file with mode: 0644]
x11-themes/qtcurve/qtcurve-1.9.0-r1.ebuild [new file with mode: 0644]

diff --git a/x11-themes/qtcurve/files/qtcurve-1.9.0-libreoffice-crashfix.patch b/x11-themes/qtcurve/files/qtcurve-1.9.0-libreoffice-crashfix.patch
new file mode 100644 (file)
index 0000000..c431ab7
--- /dev/null
@@ -0,0 +1,58 @@
+From 293a822b2fc0572f826a819d9ad8df858c4ed1ee Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ren=C3=A9=20J=2EV=2E=20Bertin?= <rjvbertin@gmail.com>
+Date: Sun, 3 Feb 2019 11:14:47 +0100
+Subject: Fix the LibreOffice fix
+
+My previous commit was a bit overzealous and didn't take into account
+the fact that there are legitimate reasons for the widget argument to
+Style::drawPrimitive() to be NULL.
+---
+ qt5/style/qtcurve_api.cpp | 16 +++-------------
+ 2 files changed, 15 insertions(+), 19 deletions(-)
+
+diff --git a/qt5/style/qtcurve_api.cpp b/qt5/style/qtcurve_api.cpp
+index 155d159..f26c438 100644
+--- a/qt5/style/qtcurve_api.cpp
++++ b/qt5/style/qtcurve_api.cpp
+@@ -2036,6 +2036,7 @@ QPalette Style::standardPalette() const
+ static bool initFontTickData(Options &opts, QFont font, const QWidget *widget=0)
+ {
++    Q_UNUSED(widget);
+     if (opts.onlyTicksInMenu && opts.fontTickWidth <= 0) {
+         opts.tickFont = font;
+ #ifndef Q_OS_MACOS
+@@ -2047,8 +2048,6 @@ static bool initFontTickData(Options &opts, QFont font, const QWidget *widget=0)
+         // adjust the size so the tickmark looks just about right
+         opts.tickFont.setPointSizeF(opts.tickFont.pointSizeF() * 1.3);
+         opts.fontTickWidth = QFontMetrics(opts.tickFont).width(opts.menuTick);
+-        // qDebug() << widget << "font->tickFont:" << font.toString() << opts.tickFont.toString() << "tickMark:" << opts.menuTick
+-        //    << "width=" << opts.fontTickWidth << "/" << QFontMetrics(opts.tickFont).boundingRect(opts.menuTick).width();
+         return true;
+     }
+     return false;
+@@ -2123,9 +2117,7 @@ Style::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+         break;
+     case PE_FrameStatusBar:
+     case PE_FrameMenu:
+-        if (widget) {
+-            initFontTickData(opts, widget->font(), widget);
+-        }
++        initFontTickData(opts, widget ? widget->font() : QApplication::font("QMenu"), widget);
+         drawFunc = &Style::drawPrimitiveFrameStatusBarOrMenu;
+         break;
+     case PE_FrameDockWidget:
+@@ -2182,9 +2174,7 @@ Style::drawPrimitive(PrimitiveElement element, const QStyleOption *option,
+         drawFunc = &Style::drawPrimitivePanelTipLabel;
+         break;
+     case PE_PanelMenu:
+-        if (widget) {
+-            initFontTickData(opts, widget->font(), widget);
+-        }
++        initFontTickData(opts, widget ? widget->font() : QApplication::font("QMenu"), widget);
+         drawFunc = &Style::drawPrimitivePanelMenu;
+         break;
+     default:
+-- 
+cgit v1.1
+
diff --git a/x11-themes/qtcurve/qtcurve-1.9.0-r1.ebuild b/x11-themes/qtcurve/qtcurve-1.9.0-r1.ebuild
new file mode 100644 (file)
index 0000000..418fc5a
--- /dev/null
@@ -0,0 +1,90 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+ECM_KDEINSTALLDIRS="false"
+KDE_AUTODEPS="false"
+inherit kde5
+
+DESCRIPTION="Widget styles for Qt and GTK2"
+HOMEPAGE="https://cgit.kde.org/qtcurve.git"
+
+LICENSE="LGPL-2+"
+SLOT="0"
+IUSE="+X gtk nls plasma +qt5 test"
+
+if [[ "${PV}" != 9999 ]] ; then
+       SRC_URI="https://github.com/KDE/qtcurve/archive/${PV/_/-}.tar.gz -> ${P}.tar.gz"
+       KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+       S="${WORKDIR}/${P/_/-}"
+fi
+
+REQUIRED_USE="gtk? ( X )
+       || ( gtk qt5 )
+       plasma? ( qt5 )
+"
+
+BDEPEND="
+       virtual/pkgconfig
+       nls? ( sys-devel/gettext )
+"
+DEPEND="
+       gtk? ( x11-libs/gtk+:2 )
+       plasma? (
+               $(add_frameworks_dep frameworkintegration)
+               $(add_frameworks_dep karchive)
+               $(add_frameworks_dep kcompletion)
+               $(add_frameworks_dep kconfig)
+               $(add_frameworks_dep kconfigwidgets)
+               $(add_frameworks_dep kcoreaddons)
+               $(add_frameworks_dep kdelibs4support)
+               $(add_frameworks_dep kguiaddons)
+               $(add_frameworks_dep ki18n)
+               $(add_frameworks_dep kiconthemes)
+               $(add_frameworks_dep kio)
+               $(add_frameworks_dep kwidgetsaddons)
+               $(add_frameworks_dep kwindowsystem)
+               $(add_frameworks_dep kxmlgui)
+               $(add_qt_dep qtprintsupport)
+       )
+       qt5? (
+               $(add_qt_dep qtdbus)
+               $(add_qt_dep qtgui)
+               $(add_qt_dep qtsvg)
+               $(add_qt_dep qtwidgets)
+               X? ( $(add_qt_dep qtx11extras) )
+       )
+       X? (
+               x11-libs/libX11
+               x11-libs/libxcb
+       )
+"
+RDEPEND="${DEPEND}"
+
+RESTRICT+=" test"
+
+DOCS=( AUTHORS ChangeLog.md README.md TODO.md )
+
+PATCHES=(
+       "${FILESDIR}/${PN}-1.9.0-build_testing.patch"
+       "${FILESDIR}/${PN}-1.9.0-no-X-buildfix.patch"
+       "${FILESDIR}/${PN}-1.9.0-gcc9.patch"
+       "${FILESDIR}/${PN}-1.9.0-libreoffice-crashfix.patch"
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DLIB_INSTALL_DIR="$(get_libdir)"
+               -DENABLE_QT4=OFF
+               -DQTC_QT4_ENABLE_KDE=OFF
+               -DQTC_KDE4_DEFAULT_HOME=ON
+               -DENABLE_GTK2="$(usex gtk)"
+               -DENABLE_QT5="$(usex qt5)"
+               -DQTC_ENABLE_X11="$(usex X)"
+               -DQTC_INSTALL_PO="$(usex nls)"
+               -DQTC_QT5_ENABLE_KDE="$(usex plasma)"
+       )
+
+       kde5_src_configure
+}