kdeplasma-addons: remove redundant X11 check

side note: X11 library contains the implementation of functions declared
in the Xutil header

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-07-17 05:52:55 +03:00
parent 6a60591ff2
commit 7ca60a87c1
4 changed files with 30 additions and 47 deletions

View file

@ -1,25 +1,20 @@
project(plasma-kolourpicker)
set(KOLOURPICKER_X11_LIB FALSE)
if(X11_FOUND AND X11_Xutil_FOUND)
set(KOLOURPICKER_X11_LIB TRUE)
include_directories(${X11_Xutil_INCLUDE_PATH})
endif(X11_FOUND AND X11_Xutil_FOUND)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/config-kolourpicker.h.cmake
${CMAKE_CURRENT_BINARY_DIR}/config-kolourpicker.h
)
set(kolourpicker_SRCS
kolourpicker.cpp
)
kde4_add_plugin(plasma_applet_kolourpicker ${kolourpicker_SRCS})
target_link_libraries(plasma_applet_kolourpicker KDE4::plasma KDE4::kio)
if(KOLOURPICKER_X11_LIB)
target_link_libraries(plasma_applet_kolourpicker ${X11_X11_LIB})
endif(KOLOURPICKER_X11_LIB)
target_link_libraries(plasma_applet_kolourpicker
KDE4::plasma KDE4::kio
${X11_X11_LIB}
)
install(TARGETS plasma_applet_kolourpicker DESTINATION ${KDE4_PLUGIN_INSTALL_DIR})
install(FILES plasma-kolourpicker-default.desktop DESTINATION ${KDE4_SERVICES_INSTALL_DIR})
install(
TARGETS plasma_applet_kolourpicker
DESTINATION ${KDE4_PLUGIN_INSTALL_DIR}
)
install(
FILES plasma-kolourpicker-default.desktop
DESTINATION ${KDE4_SERVICES_INSTALL_DIR}
)

View file

@ -1,6 +0,0 @@
#ifndef CONFIG_KOLOURPICKER_H
#define CONFIG_KOLOURPICKER_H
#cmakedefine KOLOURPICKER_X11_LIB 1
#endif

View file

@ -31,12 +31,11 @@
#include <plasma/widgets/toolbutton.h>
#include <config-kolourpicker.h>
#if defined(KOLOURPICKER_X11_LIB)
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <QX11Info>
#if defined(Q_WS_X11)
# include <X11/Xlib.h>
# include <X11/Xutil.h>
# include <fixx11h.h>
# include <QX11Info>
#endif
static KMenu* buildMenuForColor(const QColor &color)
@ -71,12 +70,8 @@ static KMenu* buildMenuForColor(const QColor &color)
static QColor pickColor(const QPoint &point)
{
#if defined(KOLOURPICKER_X11_LIB)
/*
It seems the Qt4 stuff returns a null grabbed pixmap when the Display
has ARGB visuals.
Then, access directly to the screen pixels using the X API.
*/
#if defined(Q_WS_X11)
// use the X11 API directly for performance reasons
Window root = RootWindow(QX11Info::display(), QX11Info::appScreen());
XImage *ximg = XGetImage(QX11Info::display(), root, point.x(), point.y(), 1, 1, -1, ZPixmap);
unsigned long xpixel = XGetPixel(ximg, 0, 0);
@ -96,16 +91,16 @@ static QColor pickColor(const QPoint &point)
class ColorIconEngine : public QIconEngine
{
public:
ColorIconEngine(const QColor &color);
public:
ColorIconEngine(const QColor &color);
virtual void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state);
virtual QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state);
virtual void paint(QPainter *painter, const QRect &rect, QIcon::Mode mode, QIcon::State state);
virtual QPixmap pixmap(const QSize &size, QIcon::Mode mode, QIcon::State state);
virtual QIconEngine *clone() const;
virtual QIconEngine *clone() const;
public:
QColor m_color;
public:
QColor m_color;
};
ColorIconEngine::ColorIconEngine(const QColor &color)

View file

@ -14,11 +14,10 @@
#include <qcolor.h>
#include <qhash.h>
#include <QString>
#include <QColor>
#include <QMenu>
#include <QWidget>
#include <qstring.h>
#include <qcolor.h>
#include <qmenu.h>
#include <qwidget.h>
namespace Plasma
{