mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-16 14:29:05 -07:00
kde-plasma/kde-gtk-config: Actually use upstream patch
Package-Manager: portage-2.3.0
This commit is contained in:
@@ -1,25 +1,31 @@
|
||||
From 43323a188f17822cc7b26055b70e1e79cd50fc23 Mon Sep 17 00:00:00 2001
|
||||
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
|
||||
Date: Tue, 13 Sep 2016 04:13:47 +0200
|
||||
Subject: [PATCH] cursor model: look for cursors in correct place
|
||||
commit fa473a1c4572ef3c2614318b0ce7090613878005
|
||||
Author: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
Date: Tue Sep 13 04:13:47 2016 +0200
|
||||
|
||||
plasma-desktop's cursor theme kcm does the right thing, by consulting
|
||||
the libXcursor library for the right search paths. Unfortunately, the
|
||||
kcm here does a pretty butchered job of it. So, we copy, more or less,
|
||||
the same algorithm used by plasma-desktop. Now there's parity in cursor
|
||||
selection.
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
src/cursorthemesmodel.cpp | 47 ++++++++++++++++++++++++++++++++++++++++-------
|
||||
src/cursorthemesmodel.h | 3 +--
|
||||
src/gtkconfigkcmodule.cpp | 2 +-
|
||||
4 files changed, 43 insertions(+), 11 deletions(-)
|
||||
cursor model: look for cursors in correct place
|
||||
|
||||
plasma-desktop's cursor theme kcm does the right thing, by consulting
|
||||
the libXcursor library for the right search paths. Unfortunately, the
|
||||
kcm here does a pretty butchered job of it. So, we copy, more or less,
|
||||
the same algorithm used by plasma-desktop. Now there's parity in cursor
|
||||
selection.
|
||||
|
||||
For reference, please see line 165 of:
|
||||
https://quickgit.kde.org/?p=plasma-desktop.git&a=blob&f=kcms%2Fcursortheme%2Fxcursor%2Fthememodel.cpp
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 07d313c..ee2eed9 100644
|
||||
index 07d313c..88f5a47 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -54,7 +54,7 @@ ki18n_wrap_ui(kcm_SRCS
|
||||
@@ -7,6 +7,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_P
|
||||
|
||||
find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Widgets Test)
|
||||
find_package(KF5 REQUIRED COMPONENTS I18n KIO ConfigWidgets NewStuff Archive KCMUtils IconThemes)
|
||||
+find_package(X11 REQUIRED)
|
||||
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}
|
||||
@@ -54,7 +55,7 @@ ki18n_wrap_ui(kcm_SRCS
|
||||
)
|
||||
add_library(kcm_kdegtkconfig MODULE ${kcm_SRCS})
|
||||
target_compile_definitions(kcm_kdegtkconfig PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}")
|
||||
@@ -29,70 +35,42 @@ index 07d313c..ee2eed9 100644
|
||||
kcoreaddons_desktop_to_json(kcm_kdegtkconfig kde-gtk-config.desktop)
|
||||
|
||||
diff --git a/src/cursorthemesmodel.cpp b/src/cursorthemesmodel.cpp
|
||||
index 5238714..2955bd9 100644
|
||||
index 5238714..0e58230 100644
|
||||
--- a/src/cursorthemesmodel.cpp
|
||||
+++ b/src/cursorthemesmodel.cpp
|
||||
@@ -27,9 +27,17 @@
|
||||
#include <KIconTheme>
|
||||
@@ -24,12 +24,14 @@
|
||||
#include <QDir>
|
||||
#include <QDirIterator>
|
||||
#include <QSet>
|
||||
-#include <KIconTheme>
|
||||
#include <QStandardPaths>
|
||||
+#include <KIconTheme>
|
||||
+#include <KShell>
|
||||
+
|
||||
+#include <X11/Xcursor/Xcursor.h>
|
||||
|
||||
-CursorThemesModel::CursorThemesModel(bool onlyHome, QObject* parent)
|
||||
+#include <X11/Xlib.h>
|
||||
+#include <X11/Xcursor/Xcursor.h>
|
||||
+
|
||||
+// Check for older version
|
||||
+#if !defined(XCURSOR_LIB_MAJOR) && defined(XCURSOR_MAJOR)
|
||||
+# define XCURSOR_LIB_MAJOR XCURSOR_MAJOR
|
||||
+# define XCURSOR_LIB_MINOR XCURSOR_MINOR
|
||||
+#endif
|
||||
+
|
||||
+CursorThemesModel::CursorThemesModel(QObject* parent)
|
||||
: IconThemesModel(parent)
|
||||
- , m_onlyHome(onlyHome)
|
||||
{
|
||||
reload();
|
||||
}
|
||||
@@ -37,13 +45,38 @@ CursorThemesModel::CursorThemesModel(bool onlyHome, QObject* parent)
|
||||
@@ -37,13 +39,11 @@ CursorThemesModel::CursorThemesModel(bool onlyHome, QObject* parent)
|
||||
QList<QDir> CursorThemesModel::installedThemesPaths()
|
||||
{
|
||||
QList<QDir> availableIcons;
|
||||
+ QStringList dirs;
|
||||
+ QStringList dirs(QString(XcursorLibraryPath()).split(':', QString::SkipEmptyParts));
|
||||
+
|
||||
+#if XCURSOR_LIB_MAJOR == 1 && XCURSOR_LIB_MINOR < 1
|
||||
+ // These are the default paths Xcursor will scan for cursor themes
|
||||
+ QString path("~/.icons:/usr/share/icons:/usr/share/pixmaps:/usr/X11R6/lib/X11/icons");
|
||||
+
|
||||
+ // If XCURSOR_PATH is set, use that instead of the default path
|
||||
+ char *xcursorPath = std::getenv("XCURSOR_PATH");
|
||||
+ if (xcursorPath)
|
||||
+ path = xcursorPath;
|
||||
+#else
|
||||
+ // Get the search path from Xcursor
|
||||
+ QString path = XcursorLibraryPath();
|
||||
+#endif
|
||||
+ std::transform(dirs.begin(), dirs.end(), dirs.begin(), KShell::tildeExpand);
|
||||
+ dirs.removeDuplicates();
|
||||
|
||||
- QSet<QString> dirs;
|
||||
- dirs += QDir::home().filePath(".icons");
|
||||
- if(!m_onlyHome) {
|
||||
- dirs += QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "icons", QStandardPaths::LocateDirectory).toSet();
|
||||
+ // Separate the paths
|
||||
+ dirs = path.split(':', QString::SkipEmptyParts);
|
||||
+
|
||||
+ // Remove duplicates
|
||||
+ QMutableStringListIterator i(dirs);
|
||||
+ while (i.hasNext())
|
||||
+ {
|
||||
+ const QString path = i.next();
|
||||
+ QMutableStringListIterator j(i);
|
||||
+ while (j.hasNext())
|
||||
+ if (j.next() == path)
|
||||
+ j.remove();
|
||||
}
|
||||
- }
|
||||
-
|
||||
+
|
||||
+ // Expand all occurrences of ~/ to the home dir
|
||||
+ dirs.replaceInStrings(QRegExp(QStringLiteral("^~\\/")), QDir::home().path() + '/');
|
||||
+
|
||||
foreach(const QString& dir, dirs) {
|
||||
QDir userIconsDir(dir);
|
||||
QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
|
||||
@@ -129,24 +107,3 @@ index 7afe698..d36c6a3 100644
|
||||
ui->cb_cursor->setModel(m_cursorsModel);
|
||||
m_iconsModel = new IconThemesModel(false, this);
|
||||
ui->cb_icon->setModel(m_iconsModel);
|
||||
--
|
||||
2.10.0
|
||||
|
||||
commit ab7c3c13721466cdf0236732bdb9f4a1f50db89c
|
||||
Author: Jason A. Donenfeld <Jason@zx2c4.com>
|
||||
Date: Tue Sep 13 04:23:46 2016 +0200
|
||||
|
||||
cmake: find x11 libs
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ee2eed9..14ce086 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -7,6 +7,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules" ${ECM_MODULE_P
|
||||
|
||||
find_package(Qt5 REQUIRED NO_MODULE COMPONENTS Widgets Test)
|
||||
find_package(KF5 REQUIRED COMPONENTS I18n KIO ConfigWidgets NewStuff Archive KCMUtils IconThemes)
|
||||
+find_package(X11)
|
||||
|
||||
include_directories(
|
||||
${CMAKE_SOURCE_DIR}
|
||||
|
||||
Reference in New Issue
Block a user