Set font style of forecast widget.
[medard] / src / forecastwidget.cpp
1 /*
2  *  Medard for Maemo.
3  *  Copyright (C) 2011 Roman Moravcik
4  *
5  *  This program is free software; you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation; either version 2 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program; if not, write to the Free Software
17  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  */
19
20 #ifdef Q_WS_MAEMO_6
21 #include <MLabel>
22 #endif
23
24 #include <QtGui>
25
26 #include "forecastwidget.h"
27
28 #ifdef Q_WS_MAEMO_6
29 ForecastWidget::ForecastWidget(QGraphicsWidget *parent) : QGraphicsWidget(parent)
30 #else
31 ForecastWidget::ForecastWidget(QWidget *parent) : QWidget(parent)
32 #endif
33 {
34     m_filename.clear();
35     m_error = false;
36 }
37
38 void ForecastWidget::setImage(const QString &filename)
39 {
40     m_filename = filename;
41     m_error = false;
42     update();
43 }
44
45 void ForecastWidget::clearImage(bool error)
46 {
47     m_filename.clear();
48     m_error = error;
49     update();
50 }
51
52 #ifdef Q_WS_MAEMO_6
53 void ForecastWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
54 {
55     Q_UNUSED(widget);
56     Q_UNUSED(option);
57
58     QRect widgetArea(rect().x(), rect().y(), rect().width(), 369);
59
60     painter->setFont(MLabel().font());
61     painter->setPen(QColor(0, 0, 0));
62     painter->setBrush(QColor(255, 255, 255));
63     painter->drawRect(widgetArea);
64
65     if (m_error) {
66         painter->drawText(widgetArea, Qt::AlignCenter, tr("Download failed!"));
67     } else {
68         if (!m_filename.isEmpty()) {
69             QImage image(m_filename);
70             painter->drawImage(widgetArea, image);
71         } else {
72             painter->drawText(widgetArea, Qt::AlignCenter, tr("Downloading image..."));
73         }
74     }
75 }
76 #else
77 void ForecastWidget::paintEvent(QPaintEvent * /* event */)
78 {
79     QPainter painter(this);
80     painter.setRenderHint(QPainter::Antialiasing);
81
82     QRect widgetArea(rect().x(), rect().y(), rect().width(), 408);
83
84     painter.setPen(QColor(0, 0, 0));
85     painter.setBrush(QColor(255, 255, 255));
86     painter.drawRect(widgetArea);
87
88     if (m_error) {
89         painter.drawText(widgetArea, Qt::AlignCenter, tr("Download failed!"));
90     } else {
91         if (!m_filename.isEmpty()) {
92             QImage image(m_filename);
93             painter.drawImage(widgetArea, image);
94         } else {
95             painter.drawText(widgetArea, Qt::AlignCenter, tr("Downloading image..."));
96         }
97     }
98 }
99 #endif