kmilo
defaultskin.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "defaultwidget.h"
00025
00026 #include <QProgressBar>
00027 #include <QWidget>
00028 #include <QLabel>
00029 #include <qapplication.h>
00030 #include <QPixmap>
00031
00032 #include <kwindowsystem.h>
00033 #include <netwm.h>
00034 #include <kglobalsettings.h>
00035 #include <kdeversion.h>
00036
00037 #include "defaultskin.h"
00038
00039
00040 DefaultSkin::DefaultSkin() {
00041 connect(&_timer, SIGNAL(timeout()), this, SLOT(timeout()));
00042
00043 _widget = new DefaultWidget(0, "Screen Indicator", Qt::X11BypassWindowManagerHint);
00044 _widget->setFocusPolicy(Qt::NoFocus);
00045
00046 KWindowSystem::setOnAllDesktops(_widget->winId(), true);
00047 KWindowSystem::setState( _widget->winId(), NET::StaysOnTop | NET::Sticky
00048 | NET::SkipTaskbar | NET::SkipPager );
00049 KWindowSystem::setType(_widget->winId(), NET::Override);
00050
00051 _widget->hide();
00052 }
00053
00054
00055 DefaultSkin::~DefaultSkin() {
00056 delete _widget;
00057 _widget = 0;
00058 }
00059
00060
00061 void DefaultSkin::clear() {
00062 _timer.stop();
00063 _widget->hide();
00064 }
00065
00066
00067 void DefaultSkin::show() {
00068 QRect r = KGlobalSettings::splashScreenDesktopGeometry();
00069
00070
00071 _widget->move(r.center() -
00072 QPoint(_widget->width()/2, _widget->height()/2));
00073 _widget->show();
00074 _timer.setSingleShot(true);
00075 _timer.start(750);
00076 }
00077
00078
00079 void DefaultSkin::displayText(const QString& text, const QPixmap& customPixmap) {
00080 Q_UNUSED(customPixmap)
00081 _timer.stop();
00082 _widget->_widgetStack->setCurrentIndex(0);
00083 _widget->_textOnly->setText(text);
00084 show();
00085 }
00086
00087
00088 void DefaultSkin::displayProgress(const QString& text, int percent, const QPixmap& customPixmap) {
00089 Q_UNUSED(customPixmap)
00090 _timer.stop();
00091 _widget->_progressText->setText(text);
00092 _widget->_progress->setProgress(percent);
00093 _widget->_widgetStack->setCurrentIndex(1);
00094 show();
00095 }
00096
00097
00098 void DefaultSkin::timeout() {
00099 clear();
00100 }
00101
00102
00103 #include "defaultskin.moc"
00104