forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kde-plasma/kde-gtk-config: Actually use upstream patch
Package-Manager: portage-2.3.0
- Loading branch information
Showing
1 changed file
with
38 additions
and
81 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,31 @@ | ||
From 43323a188f17822cc7b26055b70e1e79cd50fc23 Mon Sep 17 00:00:00 2001 | ||
From: "Jason A. Donenfeld" <[email protected]> | ||
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 <[email protected]> | ||
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; | ||
+ | ||
+#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"); | ||
+ QStringList dirs(QString(XcursorLibraryPath()).split(':', QString::SkipEmptyParts)); | ||
+ | ||
+ // 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 <[email protected]> | ||
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} |