1
//-----------------------------------------------------------------------------
3
// kblankscrn - Basic screen saver for KDE
5
// Copyright (c) Martin R. Jones 1996
7
// 1998/04/19 Layout management added by Mario Weilguni <mweilguni@kde.org>
8
// 2001/03/04 Converted to use libkscreensaver by Martin R. Jones
9
// 2006/03/12 Ported to KScreenSaverInterface by David Faure
15
#include <QGridLayout>
16
#include <kapplication.h>
19
#include <kcolordialog.h>
20
#include <kcolorbutton.h>
22
#include "blankscrn.h"
23
#include <kaboutdata.h>
24
#include <kdeversion.h>
25
#include "blankscrn.moc"
27
// libkscreensaver interface
28
class KBlankSaverInterface : public KScreenSaverInterface
31
virtual KAboutData* aboutData()
33
return new KAboutData( "kblankscrn.kss", "kblankscrn", ki18n( "KBlankScreen" ),
34
KDE_VERSION_STRING, ki18n( "Blank Screen Saver" ) );
37
virtual KScreenSaver* create( WId id )
39
return new KBlankSaver( id );
42
virtual QDialog* setup()
44
return new KBlankSetup();
48
int main( int argc, char *argv[] )
50
KBlankSaverInterface kss;
51
return kScreenSaverMain( argc, argv, kss );
54
//-----------------------------------------------------------------------------
55
// dialog to setup screen saver parameters
57
KBlankSetup::KBlankSetup( QWidget *parent, const char *name )
60
setObjectName( name );
62
setCaption( i18n( "Setup Blank Screen Saver" ) );
63
setButtons( Ok | Cancel );
67
QFrame *main = new QFrame( this );
68
setMainWidget( main );
69
QGridLayout *grid = new QGridLayout(main);
70
grid->setSpacing(spacingHint());
73
QLabel *label = new QLabel( i18n("Color:"), main );
74
grid->addWidget(label, 0, 0);
76
KColorButton *colorPush = new KColorButton( color, main );
77
colorPush->setMinimumWidth(80);
78
connect( colorPush, SIGNAL( changed(const QColor &) ),
79
SLOT( slotColor(const QColor &) ) );
80
grid->addWidget(colorPush, 1, 0);
82
preview = new QWidget( main );
83
preview->setFixedSize( 220, 165 );
85
palette.setColor( preview->backgroundRole(), Qt::black );
86
preview->setPalette(palette);
87
preview->setAutoFillBackground(true);
88
preview->show(); // otherwise saver does not get correct size
89
saver = new KBlankSaver( preview->winId() );
90
grid->addWidget(preview, 0, 1, 3, 1);
92
grid->setRowStretch( 2, 10 );
93
grid->setRowStretch( 3, 20 );
95
setMinimumSize( sizeHint() );
96
connect(this,SIGNAL(okClicked()),this,SLOT(slotOk()));
99
// read settings from config file
100
void KBlankSetup::readSettings()
102
KConfigGroup config(KGlobal::config(), "Settings");
104
QColor aux = Qt::black;
105
color = config.readEntry( "Color", aux );
108
void KBlankSetup::slotColor( const QColor &col )
111
saver->setColor( color );
114
// Ok pressed - save settings and exit
115
void KBlankSetup::slotOk()
117
KConfigGroup config(KGlobal::config(), "Settings");
118
config.writeEntry( "Color", color );
124
//-----------------------------------------------------------------------------
127
KBlankSaver::KBlankSaver( WId id ) : KScreenSaver( id )
131
setAutoFillBackground(true);
135
KBlankSaver::~KBlankSaver()
140
void KBlankSaver::setColor( const QColor &col )
146
// read configuration settings from config file
147
void KBlankSaver::readSettings()
149
KConfigGroup config(KGlobal::config(), "Settings");
151
QColor aux = Qt::black;
152
color = config.readEntry( "Color", aux );
155
void KBlankSaver::blank()
158
palette.setColor( backgroundRole(), color );