~ubuntu-branches/ubuntu/utopic/kde-workspace/utopic-proposed

« back to all changes in this revision

Viewing changes to kscreensaver/kblank_screensaver/blankscrn.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Michał Zając
  • Date: 2011-07-09 08:31:15 UTC
  • Revision ID: james.westby@ubuntu.com-20110709083115-ohyxn6z93mily9fc
Tags: upstream-4.6.90
Import upstream version 4.6.90

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//-----------------------------------------------------------------------------
 
2
//
 
3
// kblankscrn - Basic screen saver for KDE
 
4
//
 
5
// Copyright (c)  Martin R. Jones 1996
 
6
//
 
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
 
10
 
 
11
#include <stdlib.h>
 
12
#include <QLabel>
 
13
#include <QLayout>
 
14
#include <QFrame>
 
15
#include <QGridLayout>
 
16
#include <kapplication.h>
 
17
#include <klocale.h>
 
18
#include <kconfig.h>
 
19
#include <kcolordialog.h>
 
20
#include <kcolorbutton.h>
 
21
#include <kglobal.h>
 
22
#include "blankscrn.h"
 
23
#include <kaboutdata.h>
 
24
#include <kdeversion.h>
 
25
#include "blankscrn.moc"
 
26
 
 
27
// libkscreensaver interface
 
28
class KBlankSaverInterface : public KScreenSaverInterface
 
29
{
 
30
public:
 
31
    virtual KAboutData* aboutData()
 
32
    {
 
33
        return new KAboutData( "kblankscrn.kss", "kblankscrn", ki18n( "KBlankScreen" ),
 
34
                               KDE_VERSION_STRING, ki18n( "Blank Screen Saver" ) );
 
35
    }
 
36
 
 
37
    virtual KScreenSaver* create( WId id )
 
38
    {
 
39
        return new KBlankSaver( id );
 
40
    }
 
41
 
 
42
    virtual QDialog* setup()
 
43
    {
 
44
        return new KBlankSetup();
 
45
    }
 
46
};
 
47
 
 
48
int main( int argc, char *argv[] )
 
49
{
 
50
    KBlankSaverInterface kss;
 
51
    return kScreenSaverMain( argc, argv, kss );
 
52
}
 
53
 
 
54
//-----------------------------------------------------------------------------
 
55
// dialog to setup screen saver parameters
 
56
//
 
57
KBlankSetup::KBlankSetup( QWidget *parent, const char *name )
 
58
        : KDialog( parent )
 
59
{
 
60
  setObjectName( name );
 
61
  setModal( true );
 
62
  setCaption( i18n( "Setup Blank Screen Saver" ) );
 
63
  setButtons( Ok | Cancel );
 
64
 
 
65
        readSettings();
 
66
 
 
67
        QFrame *main = new QFrame( this );
 
68
  setMainWidget( main );
 
69
        QGridLayout *grid = new QGridLayout(main);
 
70
        grid->setSpacing(spacingHint());
 
71
        grid->setMargin(0);
 
72
 
 
73
        QLabel *label = new QLabel( i18n("Color:"), main );
 
74
        grid->addWidget(label, 0, 0);
 
75
 
 
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);
 
81
 
 
82
        preview = new QWidget( main );
 
83
        preview->setFixedSize( 220, 165 );
 
84
        QPalette palette;
 
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);
 
91
 
 
92
        grid->setRowStretch( 2, 10 );
 
93
        grid->setRowStretch( 3, 20 );
 
94
 
 
95
        setMinimumSize( sizeHint() );
 
96
        connect(this,SIGNAL(okClicked()),this,SLOT(slotOk()));
 
97
}
 
98
 
 
99
// read settings from config file
 
100
void KBlankSetup::readSettings()
 
101
{
 
102
        KConfigGroup config(KGlobal::config(), "Settings");
 
103
 
 
104
        QColor aux = Qt::black;
 
105
        color = config.readEntry( "Color", aux );
 
106
}
 
107
 
 
108
void KBlankSetup::slotColor( const QColor &col )
 
109
{
 
110
    color = col;
 
111
    saver->setColor( color );
 
112
}
 
113
 
 
114
// Ok pressed - save settings and exit
 
115
void KBlankSetup::slotOk()
 
116
{
 
117
        KConfigGroup config(KGlobal::config(), "Settings");
 
118
        config.writeEntry( "Color", color );
 
119
  config.sync();
 
120
 
 
121
        accept();
 
122
}
 
123
 
 
124
//-----------------------------------------------------------------------------
 
125
 
 
126
 
 
127
KBlankSaver::KBlankSaver( WId id ) : KScreenSaver( id )
 
128
{
 
129
        readSettings();
 
130
        blank();
 
131
        setAutoFillBackground(true);
 
132
        show();
 
133
}
 
134
 
 
135
KBlankSaver::~KBlankSaver()
 
136
{
 
137
}
 
138
 
 
139
// set the color
 
140
void KBlankSaver::setColor( const QColor &col )
 
141
{
 
142
        color = col;
 
143
        blank();
 
144
}
 
145
 
 
146
// read configuration settings from config file
 
147
void KBlankSaver::readSettings()
 
148
{
 
149
        KConfigGroup config(KGlobal::config(), "Settings");
 
150
 
 
151
        QColor aux = Qt::black;
 
152
        color = config.readEntry( "Color", aux );
 
153
}
 
154
 
 
155
void KBlankSaver::blank()
 
156
{
 
157
        QPalette palette;
 
158
        palette.setColor( backgroundRole(), color );
 
159
        setPalette(palette);
 
160
}
 
161