kdebase/kcontrol/background patch

IceFox <[email protected]>
Newsgroups gmane.comp.kde.darwin
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

 Went through the background kcontrol module and created a patch for the OS X 
project.  One this is that Qt provides a desktop class

http://doc.trolltech.com/3.3/qdesktopwidget.html

which can be used to obtain the number of screens and the current desktop so 
are the kwin/x11 calls even needed?

I have forwarded this to whom I think is the current author get get it 
approved.

- -Benjamin Meyer
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/9xTL1rZ3LTw38vIRAoSjAJ0VaQ6imEI23KS9GOvg2MS9SFf6jACfdbF+
pVlsoWx9lGC1C0+HkwuQ1oc=
=4iDI
-----END PGP SIGNATURE-----

_______________________________________________
KDE-Darwin mailing list
[email protected]
http://www.opendarwin.org/mailman/listinfo/kde-darwin
background.patch (text/x-diff, 5.4 KB)
? diff
Index: bgadvanced.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgadvanced.cpp,v
retrieving revision 1.11
diff -u -3 -p -r1.11 bgadvanced.cpp
--- bgadvanced.cpp	20 Oct 2003 20:29:14 -0000	1.11
+++ bgadvanced.cpp	3 Jan 2004 19:04:17 -0000
@@ -31,6 +31,7 @@
 #include <qslider.h>
 #include <qspinbox.h>
 #include <qwhatsthis.h>
+#include <qapplication.h>
 
 #include <kconfig.h>
 #include <kcolorbutton.h>
@@ -44,15 +45,22 @@
 #include "bgadvanced.h"
 #include "bgadvanced_ui.h"
 
+#ifdef Q_WS_X11
 #include <X11/Xlib.h>
+#endif
 
 /**** BGAdvancedDialog ****/
 
 static QCString desktopConfigname()
 {
     int desktop=0;
+#ifdef Q_WS_X11
     if (qt_xdisplay())
         desktop = DefaultScreen(qt_xdisplay());
+#else
+    desktop = QApplication::desktop()->primaryScreen();
+#endif
+
     QCString name;
     if (desktop == 0)
         name = "kdesktoprc";
Index: bgdialog.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgdialog.cpp,v
retrieving revision 1.33
diff -u -3 -p -r1.33 bgdialog.cpp
--- bgdialog.cpp	1 Dec 2003 23:14:06 -0000	1.33
+++ bgdialog.cpp	3 Jan 2004 19:04:17 -0000
@@ -62,8 +62,14 @@ BGDialog::BGDialog(QWidget* parent, KCon
    m_multidesktop = _multidesktop;
    m_previewUpdates = true;
 
+#ifdef Q_WS_X11
    m_Max = m_multidesktop ? KWin::numberOfDesktops() : 1;
    m_Desk = m_multidesktop ? KWin::currentDesktop() : 1;
+#else
+   m_Max = m_multidesktop ? QApplication::desktop()->numScreens() : 1;
+   m_Desk = m_multidesktop ? QApplication::desktop()->primaryScreen() : 1;
+#endif
+
    m_eDesk = m_pGlobals->commonBackground() ? 0 : m_Desk;
    m_copyAllDesktops = true;
 
Index: bgrender.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgrender.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 bgrender.cpp
--- bgrender.cpp	20 Oct 2003 20:29:14 -0000	1.4
+++ bgrender.cpp	3 Jan 2004 19:04:17 -0000
@@ -28,8 +28,9 @@
 
 #include "bgrender.h"
 
+#ifdef Q_WS_X11
 #include <X11/Xlib.h>
-
+#endif
 
 /**** KBackgroundRenderer ****/
 
@@ -165,6 +166,7 @@ int KBackgroundRenderer::doBackground(bo
     static unsigned int tileHeight = 0;
     if( tileWidth == 0 )
         {
+#ifdef Q_WS_X11
         int tile_val = QPixmap::defaultDepth() >= 24 ? 1 : 2;
     // some dithering may be needed even with bpb==15/16, so don't use tileWidth==1
     // for them
@@ -172,6 +174,7 @@ int KBackgroundRenderer::doBackground(bo
         if( XQueryBestTile( qt_xdisplay(), qt_xrootwin(), tile_val, tile_val,
             &tileWidth, &tileHeight ) != Success )
             tileWidth = tileHeight = tile_val; // some defaults
+#endif
     }
     switch (bgmode) {
 
@@ -388,8 +391,11 @@ wp_out:
 
     return retval;
 }
-
+#ifdef Q_WS_X11
 extern bool qt_use_xrender; // in Qt ( qapplication_x11.cpp )
+#else
+static bool qt_use_xrender = FALSE;
+#endif
 
 void KBackgroundRenderer::wallpaperBlend( const QRect& d, QImage& wp, int ww, int wh )
 {
Index: bgsettings.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/bgsettings.cpp,v
retrieving revision 1.12
diff -u -3 -p -r1.12 bgsettings.cpp
--- bgsettings.cpp	29 Dec 2003 19:20:59 -0000	1.12
+++ bgsettings.cpp	3 Jan 2004 19:04:18 -0000
@@ -504,8 +504,12 @@ KBackgroundSettings::KBackgroundSettings
 
     if (!config) {
         int screen_number = 0;
+#ifdef Q_WS_X11
         if (qt_xdisplay())
             screen_number = DefaultScreen(qt_xdisplay());
+#else
+   screen_number = QApplication::desktop()->primaryScreen();
+#endif
         QCString configname;
         if (screen_number == 0)
             configname = "kdesktoprc";
@@ -1107,10 +1111,11 @@ void KGlobalBackgroundSettings::readSett
     m_shadowEnabled = m_pConfig->readBoolEntry("ShadowEnabled", true);
 
     m_Names.clear();
+#ifdef Q_WS_X11
     NETRootInfo info( qt_xdisplay(), NET::DesktopNames | NET::NumberOfDesktops );
     for ( int i = 0 ; i < info.numberOfDesktops() ; ++i )
       m_Names.append( QString::fromUtf8(info.desktopName(i+1)) );
-
+#endif
     dirty = false;
 }
 
Index: main.cpp
===================================================================
RCS file: /home/kde/kdebase/kcontrol/background/main.cpp,v
retrieving revision 1.13
diff -u -3 -p -r1.13 main.cpp
--- main.cpp	8 Nov 2003 23:43:50 -0000	1.13
+++ main.cpp	3 Jan 2004 19:04:18 -0000
@@ -28,8 +28,10 @@
 
 #include "main.h"
 
+#ifdef Q_WS_X11
 /* as late as possible, as it includes some X headers without protecting them */
 #include <X11/Xlib.h>
+#endif
 
 /**** DLL Interface ****/
 typedef KGenericFactory<KBackground, QWidget> KBackGndFactory;
@@ -45,8 +47,12 @@ KBackground::KBackground(QWidget *parent
     : KCModule(KBackGndFactory::instance(), parent, name)
 {
     int screen_number = 0;
+#ifdef Q_WS_X11
     if (qt_xdisplay())
 	screen_number = DefaultScreen(qt_xdisplay());
+#else
+    screen_number = QApplication::desktop()->primaryScreen();
+#endif
     QCString configname;
     if (screen_number == 0)
 	configname = "kdesktoprc";
@@ -84,8 +90,12 @@ void KBackground::save()
 	client->attach();
 
     int screen_number = 0;
+#ifdef Q_WS_X11
     if (qt_xdisplay())
 	screen_number = DefaultScreen(qt_xdisplay());
+#else
+    screen_number = QApplication::desktop()->primaryScreen();
+#endif
     QCString appname;
     if (screen_number == 0)
 	appname = "kdesktop";
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.