diff options
author | Ilya Fedin | 2021-07-11 12:02:21 +0400 |
---|---|---|
committer | Ilya Fedin | 2021-07-11 12:02:21 +0400 |
commit | db5a823f1bb4e7c23d7b2a30613f65cd4ebcb809 (patch) | |
tree | 08d3580e9c39827594ab4f07887b06643b20acf2 | |
download | aur-db5a823f1bb4e7c23d7b2a30613f65cd4ebcb809.tar.gz |
First commit
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | PKGBUILD | 38 | ||||
-rw-r--r-- | qt5ct-datadir.patch | 14 | ||||
-rw-r--r-- | qt5ct-shenanigans.patch | 147 |
4 files changed, 217 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..ba2b08413b6c --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,18 @@ +pkgbase = qt5ct-kde + pkgdesc = Qt5 Configuration Utility, patched to work correctly with KDE applications + pkgver = 1.2 + pkgrel = 1 + url = https://qt5ct.sourceforge.io/ + arch = x86_64 + license = BSD + makedepends = cmake + makedepends = qt5-tools + depends = qqc2-desktop-style + source = https://downloads.sourceforge.net/project/qt5ct/qt5ct-1.2.tar.bz2 + source = qt5ct-datadir.patch + source = qt5ct-shenanigans.patch + sha256sums = 1de3f06e6d5d0746bf19a949e56cc04b53bdbc18294f38cb20759f35006b872e + sha256sums = 58422b0fff7de20ba45744d0a7610da5685142daf5db12414d3fed8fd91b152f + sha256sums = bdac1e0bf247e2ae054f3ad5f8069b41f84ac60740a1afa9e9433908c71ae0f4 + +pkgname = qt5ct-kde diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..3703a72e77b3 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,38 @@ +# Maintainer: Antonio Rojas <arojas@archlinux.org> +# Contributor: FadeMind <fademind@gmail.com> +# Contributor: Zatherz <zatherz at linux dot pl> + +pkgname=qt5ct-kde +_pkgname=qt5ct +pkgver=1.2 +pkgrel=1 +pkgdesc="Qt5 Configuration Utility, patched to work correctly with KDE applications" +arch=(x86_64) +url="https://qt5ct.sourceforge.io/" +license=(BSD) +depends=(qqc2-desktop-style) +makedepends=(cmake qt5-tools) +source=(https://downloads.sourceforge.net/project/$_pkgname/$_pkgname-$pkgver.tar.bz2 + qt5ct-datadir.patch + qt5ct-shenanigans.patch) +sha256sums=('1de3f06e6d5d0746bf19a949e56cc04b53bdbc18294f38cb20759f35006b872e' + '58422b0fff7de20ba45744d0a7610da5685142daf5db12414d3fed8fd91b152f' + 'bdac1e0bf247e2ae054f3ad5f8069b41f84ac60740a1afa9e9433908c71ae0f4') + +prepare() { + patch -d $_pkgname-$pkgver -p1 < qt5ct-datadir.patch # Fix data install dir + patch -d $_pkgname-$pkgver -p1 < qt5ct-shenanigans.patch # The magic +} + +build() { + cmake -B build -S $_pkgname-$pkgver \ + -DCMAKE_INSTALL_PREFIX=/usr + cmake --build build +} + +package() { + DESTDIR="$pkgdir" cmake --install build + + install -Dm644 $_pkgname-$pkgver/COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE +} + diff --git a/qt5ct-datadir.patch b/qt5ct-datadir.patch new file mode 100644 index 000000000000..82fe6b854110 --- /dev/null +++ b/qt5ct-datadir.patch @@ -0,0 +1,14 @@ +diff -ru qt5ct-1.2/CMakeLists.txt qt5ct-1.2.orig/CMakeLists.txt +--- qt5ct-1.2.orig/CMakeLists.txt 2021-04-20 21:29:54.000000000 +0200 ++++ qt5ct-1.2/CMakeLists.txt 2021-04-20 21:53:46.049860142 +0200 +@@ -54,8 +54,8 @@ + add_subdirectory(src/qt5ct-qtplugin) + add_subdirectory(src/qt5ct-style) + +-install(DIRECTORY qss DESTINATION ${CMAKE_INSTALL_DATADIR}) +-install(DIRECTORY colors DESTINATION ${CMAKE_INSTALL_DATADIR}) ++install(DIRECTORY qss DESTINATION ${CMAKE_INSTALL_DATADIR}/qt5ct) ++install(DIRECTORY colors DESTINATION ${CMAKE_INSTALL_DATADIR}/qt5ct) + + if(UNIX) + add_custom_target(distclean @echo cleaning for source distribution) diff --git a/qt5ct-shenanigans.patch b/qt5ct-shenanigans.patch new file mode 100644 index 000000000000..650a04380e27 --- /dev/null +++ b/qt5ct-shenanigans.patch @@ -0,0 +1,147 @@ +Index: qt5ct/CMakeLists.txt +=================================================================== +--- qt5ct/CMakeLists.txt (revision 600) ++++ qt5ct/CMakeLists.txt (working copy) +@@ -24,8 +24,11 @@ + + ADD_DEFINITIONS(-DQT_DISABLE_DEPRECATED_BEFORE=0x050C00 -DUSE_WIDGETS) + +-find_package(Qt5 ${QT_MINIMUM_VERSION} COMPONENTS Widgets Concurrent LinguistTools DBus ThemeSupport REQUIRED) ++find_package(Qt5 ${QT_MINIMUM_VERSION} COMPONENTS Widgets Concurrent LinguistTools DBus QuickControls2 ThemeSupport REQUIRED) + find_package(Qt5Gui ${QT_MINIMUM_VERSION} CONFIG REQUIRED Private) ++find_package(KF5Config REQUIRED) ++find_package(KF5ConfigWidgets REQUIRED) ++find_package(KF5IconThemes REQUIRED) + + get_target_property(QT_LRELEASE_EXECUTABLE Qt5::lrelease IMPORTED_LOCATION) + +@@ -44,7 +47,9 @@ + message(FATAL_ERROR "Could NOT find qtpaths executable") + endif() + +-execute_process(COMMAND ${QT_QTPATHS_EXECUTABLE} --plugin-dir OUTPUT_VARIABLE PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE) ++if(NOT PLUGINDIR) ++ execute_process(COMMAND ${QT_QTPATHS_EXECUTABLE} --plugin-dir OUTPUT_VARIABLE PLUGINDIR OUTPUT_STRIP_TRAILING_WHITESPACE) ++endif() + message(STATUS "Plugin path: " ${PLUGINDIR}) + + message(STATUS "Generating translations ...") +Index: qt5ct/src/qt5ct/appearancepage.cpp +=================================================================== +--- qt5ct/src/qt5ct/appearancepage.cpp (revision 600) ++++ qt5ct/src/qt5ct/appearancepage.cpp (working copy) +@@ -86,6 +86,8 @@ + #else + keys = QPlatformThemeFactory::keys(); + m_ui->dialogComboBox->addItem(tr("Default"), "default"); ++ if(keys.contains("xdgdesktopportal")) ++ m_ui->dialogComboBox->addItem("XDG Desktop Portal", "xdgdesktopportal"); + if(keys.contains("gtk2") || keys.contains("qt5gtk2")) + m_ui->dialogComboBox->addItem("GTK2", "gtk2"); + else if(keys.contains("gtk3") || keys.contains("qt5gtk3")) +@@ -390,7 +392,7 @@ + { + QDir dir(path); + dir.setFilter(QDir::Files); +- dir.setNameFilters(QStringList() << "*.conf"); ++ dir.setNameFilters(QStringList() << "*.conf" << "*.colors"); + + for(QFileInfo info : dir.entryInfoList()) + { +Index: qt5ct/src/qt5ct/qt5ct.cpp +=================================================================== +--- qt5ct/src/qt5ct/qt5ct.cpp (revision 600) ++++ qt5ct/src/qt5ct/qt5ct.cpp (working copy) +@@ -111,6 +111,7 @@ + for(const QString &p : QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation)) + { + paths << (p + QLatin1String("/qt5ct/colors")); ++ paths << (p + QLatin1String("/color-schemes")); + } + paths << QLatin1String(QT5CT_DATADIR"/qt5ct/colors"); + paths.removeDuplicates(); +Index: qt5ct/src/qt5ct-qtplugin/CMakeLists.txt +=================================================================== +--- qt5ct/src/qt5ct-qtplugin/CMakeLists.txt (revision 600) ++++ qt5ct/src/qt5ct-qtplugin/CMakeLists.txt (working copy) +@@ -10,5 +10,5 @@ + + add_library(qt5ct-qtplugin MODULE ${app_SRCS}) + set_target_properties(qt5ct-qtplugin PROPERTIES OUTPUT_NAME qt5ct) +-target_link_libraries(qt5ct-qtplugin PRIVATE Qt5::Widgets Qt5::GuiPrivate Qt5::DBus Qt5::ThemeSupportPrivate) ++target_link_libraries(qt5ct-qtplugin PRIVATE Qt5::Widgets Qt5::GuiPrivate Qt5::DBus Qt::QuickControls2 Qt5::ThemeSupportPrivate KF5::ConfigCore KF5::ConfigWidgets KF5::IconThemes) + install(TARGETS qt5ct-qtplugin DESTINATION ${PLUGINDIR}/platformthemes) +Index: qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp +=================================================================== +--- qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp (revision 600) ++++ qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.cpp (working copy) +@@ -45,6 +45,7 @@ + #endif + #include <QFile> + #include <QFileSystemWatcher> ++#include <QtQuickControls2/QQuickStyle> + + #include <qt5ct/qt5ct.h> + #include "qt5ctplatformtheme.h" +@@ -60,6 +61,11 @@ + #include <qpa/qplatformthemefactory_p.h> + #endif + ++#include <ksharedconfig.h> ++#include <kcolorscheme.h> ++#include <kiconengine.h> ++#include <kiconloader.h> ++ + Q_LOGGING_CATEGORY(lqt5ct, "qt5ct", QtWarningMsg) + + //QT_QPA_PLATFORMTHEME=qt5ct +@@ -75,6 +81,10 @@ + QMetaObject::invokeMethod(this, "createFSWatcher", Qt::QueuedConnection); + #endif + QGuiApplication::setFont(m_generalFont); ++ //if the user has explicitly set something else, don't meddle ++ if (QQuickStyle::name().isEmpty()) { ++ QQuickStyle::setStyle(QLatin1String("org.kde.desktop")); ++ } + } + qCDebug(lqt5ct) << "using qt5ct plugin"; + #ifdef QT_WIDGETS_LIB +@@ -192,6 +202,11 @@ + } + #endif + ++QIconEngine *Qt5CTPlatformTheme::createIconEngine(const QString &iconName) const ++{ ++ return new KIconEngine(iconName, KIconLoader::global()); ++} ++ + void Qt5CTPlatformTheme::applySettings() + { + if(!QGuiApplication::desktopSettingsAware()) +@@ -306,7 +321,12 @@ + if(!schemePath.isEmpty() && settings.value("custom_palette", false).toBool()) + { + schemePath = Qt5CT::resolvePath(schemePath); //replace environment variables +- m_palette = new QPalette(loadColorScheme(schemePath)); ++ if(schemePath.endsWith(".colors")) { ++ m_palette = new QPalette(KColorScheme::createApplicationPalette(KSharedConfig::openConfig(schemePath))); ++ qApp->setProperty("KDE_COLOR_SCHEME_PATH", schemePath); ++ } else { ++ m_palette = new QPalette(loadColorScheme(schemePath)); ++ } + } + m_iconTheme = settings.value("icon_theme").toString(); + //load dialogs +Index: qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.h +=================================================================== +--- qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.h (revision 600) ++++ qt5ct/src/qt5ct-qtplugin/qt5ctplatformtheme.h (working copy) +@@ -91,7 +91,7 @@ + //virtual QPixmap fileIconPixmap(const QFileInfo &fileInfo, const QSizeF &size, + // QPlatformTheme::IconOptions iconOptions = 0) const; + +- //virtual QIconEngine *createIconEngine(const QString &iconName) const; ++ virtual QIconEngine *createIconEngine(const QString &iconName) const; + //virtual QList<QKeySequence> keyBindings(QKeySequence::StandardKey key) const; + //virtual QString standardButtonText(int button) const; + |