cleanup
[fapman] / rotatingbackground.cpp
1 /*
2         This file is part of Faster Application Manager.
3
4         Faster Application Manager is free software: you can redistribute it and/or modify
5         it under the terms of the GNU General Public License as published by
6         the Free Software Foundation, either version 3 of the License, or
7         (at your option) any later version.
8
9         Faster Application Manager is distributed in the hope that it will be useful,
10         but WITHOUT ANY WARRANTY; without even the implied warranty of
11         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12         GNU General Public License for more details.
13
14         You should have received a copy of the GNU General Public License
15         along with Faster Application Manager.  If not, see <http://www.gnu.org/licenses/>.
16
17         (C) Heikki Holstila 2010
18 */
19
20 #include <QtGui>
21 #include "rotatingbackground.h"
22
23 RotatingBackground::RotatingBackground(QWidget *parent) :
24     QWidget(parent)
25 {
26         connect(QApplication::desktop(), SIGNAL(resized(int)), this, SLOT(orientationChanged()));
27 }
28
29 void RotatingBackground::loadWallpaper()
30 {
31         QString loadfile = "/home/user/.backgrounds/background-1.png";
32         QFileInfo custombg("/root/.fapman/wallpaper.png");
33         bool custom = false;
34         if( custombg.exists() ) {
35                 loadfile = "/root/.fapman/wallpaper.png";
36                 custom = true;
37         }
38
39         iWallpaperLandscape.load(loadfile);
40         if( !iWallpaperLandscape.isNull() ) {
41                 QTransform t;
42                 t.rotate(90);
43                 iWallpaperPortrait = iWallpaperLandscape.transformed(t);
44         }
45
46         if( !custom && !iWallpaperLandscape.isNull() && !iWallpaperPortrait.isNull() )
47         {
48                 QPainter l( &iWallpaperLandscape );
49                 QPainter p( &iWallpaperPortrait );
50
51                 QColor dim("black");
52                 dim.setAlpha(170);
53                 l.setBrush(dim);
54                 l.setPen(dim);
55                 p.setBrush(dim);
56                 p.setPen(dim);
57
58                 l.drawRect( 0, 0, iWallpaperLandscape.rect().width(), iWallpaperLandscape.rect().height() );
59                 p.drawRect( 0, 0, iWallpaperPortrait.rect().width(), iWallpaperPortrait.rect().height() );
60         }
61 }
62
63 void RotatingBackground::paintEvent(QPaintEvent *)
64 {
65         QPainter painter(this);
66
67         painter.setPen( QApplication::palette().color(QPalette::Window) );
68         painter.setBrush( QApplication::palette().color(QPalette::Window) );
69         painter.drawRect(rect());
70
71         if( rect().width() > rect().height() ) {
72                 if( !iWallpaperLandscape.isNull() )
73                         painter.drawPixmap(0,0,rect().width(), rect().height(),iWallpaperLandscape);
74         } else {
75                 if( !iWallpaperPortrait.isNull() )
76                         painter.drawPixmap(0,0,rect().width(), rect().height(),iWallpaperPortrait);
77         }
78 }
79
80 void RotatingBackground::resizeEvent(QResizeEvent *)
81 {
82         this->resize( dynamic_cast<QWidget*>(parent())->size() );
83 }
84
85 void RotatingBackground::orientationChanged()
86 {
87         resizeEvent(0);
88 }