1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/* vi: ts=8 sts=4 sw=4
* This file is part of the KDE project, module kcmbackground.
* Copyright (C) 1999 Geert Jansen <g.t.jansen@stud.tue.nl>
* Copyright (C) 2003 Waldo Bastian <bastian@kde.org>
*
* Based on old backgnd.cpp:
*
* Copyright (c) Martin R. Jones 1996
* Converted to a kcc module by Matthias Hoelzer 1997
* Gradient backgrounds by Mark Donohoe 1997
* Pattern backgrounds by Stephan Kulow 1998
* Randomizing & dnd & new display modes by Matej Koss 1998
*
* You can Freely distribute this program under the GNU General Public
* License. See the file "COPYING" for the exact licensing terms.
*/
#include <qlayout.h>
#include <kapplication.h>
#include <kaboutdata.h>
#include <kconfig.h>
#include <kdebug.h>
#include <dcopclient.h>
#include <kimageio.h>
#include <kgenericfactory.h>
#include "bgdialog.h"
#include "main.h"
/* as late as possible, as it includes some X headers without protecting them */
#include <X11/Xlib.h>
/**** DLL Interface ****/
typedef KGenericFactory<KBackground, QWidget> KBackGndFactory;
K_EXPORT_COMPONENT_FACTORY( kcm_background, KBackGndFactory("kcmbackground"))
/**** KBackground ****/
KBackground::~KBackground( )
{
delete m_pConfig;
}
KBackground::KBackground(QWidget *parent, const char *name, const QStringList &/* */)
: KCModule(KBackGndFactory::instance(), parent, name)
{
int screen_number = 0;
if (qt_xdisplay())
screen_number = DefaultScreen(qt_xdisplay());
QCString configname;
if (screen_number == 0)
configname = "kdesktoprc";
else
configname.sprintf("kdesktop-screen-%drc", screen_number);
m_pConfig = new KConfig(configname, false, false);
QVBoxLayout *layout = new QVBoxLayout(this);
m_base = new BGDialog(this, m_pConfig);
setQuickHelp( m_base->quickHelp());
layout->add(m_base);
layout->addStretch();
KImageIO::registerFormats();
// reparenting that is done.
setAcceptDrops(true);
connect(m_base, SIGNAL(changed(bool)), SIGNAL(changed(bool)));
KAboutData *about =
new KAboutData(I18N_NOOP("kcmbackground"), I18N_NOOP("KDE Background Control Module"),
0, 0, KAboutData::License_GPL,
I18N_NOOP("(c) 2009,2010 Timothy Pearson"));
about->addAuthor("Timothy Pearson", 0, "kb9vqf@pearsoncomputing.net");
about->addAuthor("Waldo Bastian", 0, "bastian@kde.org");
about->addAuthor("George Staikos", 0, "staikos@kde.org");
about->addAuthor("Martin R. Jones", 0, "jones@kde.org");
about->addAuthor("Matthias Hoelzer-Kluepfel", 0, "mhk@kde.org");
about->addAuthor("Stephan Kulow", 0, "coolo@kde.org");
about->addAuthor("Mark Donohoe", 0, 0);
about->addAuthor("Matej Koss", 0 , 0);
setAboutData( about );
}
void KBackground::load()
{
load( false );
}
void KBackground::load( bool useDefaults )
{
m_base->load( useDefaults );
}
void KBackground::save()
{
m_base->save();
// reconfigure kdesktop. kdesktop will notify all clients
DCOPClient *client = kapp->dcopClient();
if (!client->isAttached())
client->attach();
int screen_number = 0;
if (qt_xdisplay())
screen_number = DefaultScreen(qt_xdisplay());
QCString appname;
if (screen_number == 0)
appname = "kdesktop";
else
appname.sprintf("kdesktop-screen-%d", screen_number);
client->send(appname, "KBackgroundIface", "configure()", "");
}
void KBackground::defaults()
{
m_base->defaults();
}
#include "main.moc"
|