From 6ade87a7820c10251a5fe5df1d469c41d219c76b Mon Sep 17 00:00:00 2001 From: Roman Moravcik Date: Tue, 28 Jun 2011 16:46:03 +0200 Subject: [PATCH] Added First version of MeeGo Harmattan port from pure QT to MTF. --- medard.pro | 63 +++++----- qtc_packaging/debian_harmattan/README | 6 + qtc_packaging/debian_harmattan/changelog | 5 + qtc_packaging/debian_harmattan/compat | 1 + qtc_packaging/debian_harmattan/control | 15 +++ qtc_packaging/debian_harmattan/copyright | 40 +++++++ qtc_packaging/debian_harmattan/rules | 91 ++++++++++++++ src/aboutdialog.cpp | 36 ++++++ src/aboutdialog.h | 12 ++ src/forecastwidget.cpp | 31 +++++ src/forecastwidget.h | 17 +++ src/main.cpp | 17 +++ src/mainwindow.cpp | 189 ++++++++++++++++++++++++++++-- src/mainwindow.h | 35 ++++++ src/medarddownloader.cpp | 4 + 15 files changed, 521 insertions(+), 41 deletions(-) create mode 100644 qtc_packaging/debian_harmattan/README create mode 100644 qtc_packaging/debian_harmattan/changelog create mode 100644 qtc_packaging/debian_harmattan/compat create mode 100644 qtc_packaging/debian_harmattan/control create mode 100644 qtc_packaging/debian_harmattan/copyright create mode 100755 qtc_packaging/debian_harmattan/rules diff --git a/medard.pro b/medard.pro index a92596f..c2bc3e4 100644 --- a/medard.pro +++ b/medard.pro @@ -1,50 +1,55 @@ -# Add files and directories to ship with the application -# by adapting the examples below. -# file1.source = myfile -# dir1.source = mydir -translations.source = \ - translations/medard_cs.qm \ - translations/medard_en.qm \ - translations/medard_sk.qm - -maemo5 { - DEPLOYMENTFOLDERS = translations -} +TARGET = medard +TEMPLATE = app +VERSION = 0.2.0 QT += network -# Avoid auto screen rotation -DEFINES += ORIENTATIONLOCK - -# Needs to be defined for Symbian -DEFINES += NETWORKACCESS - -symbian:TARGET.UID3 = 0xE49E7B8A - -# If your application uses the Qt Mobility libraries, uncomment -# the following lines and add the respective components to the -# MOBILITY variable. -# CONFIG += mobility -# MOBILITY += - SOURCES += \ src/forecastwidget.cpp \ src/medarddownloader.cpp \ src/mainwindow.cpp \ src/main.cpp \ src/aboutdialog.cpp + HEADERS += \ src/forecastwidget.h \ src/medarddownloader.h \ src/mainwindow.h \ src/aboutdialog.h + FORMS += +OTHER_FILES += \ + qtc_packaging/debian_fremantle/rules \ + qtc_packaging/debian_fremantle/README \ + qtc_packaging/debian_fremantle/copyright \ + qtc_packaging/debian_fremantle/control \ + qtc_packaging/debian_fremantle/compat \ + qtc_packaging/debian_fremantle/changelog \ + qtc_packaging/debian_harmattan/rules \ + qtc_packaging/debian_harmattan/README \ + qtc_packaging/debian_harmattan/copyright \ + qtc_packaging/debian_harmattan/control \ + qtc_packaging/debian_harmattan/compat \ + qtc_packaging/debian_harmattan/changelog + TRANSLATIONS += \ translations/medard_cs.ts \ translations/medard_en.ts \ translations/medard_sk.ts -# Please do not modify the following two lines. Required for deployment. -include(deployment.pri) -qtcAddDeployment() +unix:!symbian { + DEPLOYMENTFOLDERS = translations + maemo 5 { + DEFINES += Q_WS_MAEMO_5 + } else { + DEFINES += Q_WS_MAEMO_6 + CONFIG += meegotouch + } +} + +translations.source = \ + translations/medard_cs.qm \ + translations/medard_en.qm \ + translations/medard_sk.qm + diff --git a/qtc_packaging/debian_harmattan/README b/qtc_packaging/debian_harmattan/README new file mode 100644 index 0000000..98a24cc --- /dev/null +++ b/qtc_packaging/debian_harmattan/README @@ -0,0 +1,6 @@ +The Debian Package medard +---------------------------- + +Comments regarding the Package + + -- Roman Moravčík Tue, 21 Jun 2011 12:36:33 +0200 diff --git a/qtc_packaging/debian_harmattan/changelog b/qtc_packaging/debian_harmattan/changelog new file mode 100644 index 0000000..a47e7ea --- /dev/null +++ b/qtc_packaging/debian_harmattan/changelog @@ -0,0 +1,5 @@ +medard (0.0.0) unstable; urgency=low + + * Initial Release. + + -- Roman Moravčík Tue, 21 Jun 2011 12:36:33 +0200 diff --git a/qtc_packaging/debian_harmattan/compat b/qtc_packaging/debian_harmattan/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/qtc_packaging/debian_harmattan/compat @@ -0,0 +1 @@ +7 diff --git a/qtc_packaging/debian_harmattan/control b/qtc_packaging/debian_harmattan/control new file mode 100644 index 0000000..cda8777 --- /dev/null +++ b/qtc_packaging/debian_harmattan/control @@ -0,0 +1,15 @@ +Source: medard +Section: user/other +Priority: optional +Maintainer: Roman Moravčík +Build-Depends: debhelper (>= 5), libqt4-dev +Standards-Version: 3.7.3 +Homepage: + +Package: medard +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: + +XSBC-Maemo-Display-Name: medard +XB-Maemo-Icon-26: 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 diff --git a/qtc_packaging/debian_harmattan/copyright b/qtc_packaging/debian_harmattan/copyright new file mode 100644 index 0000000..77ed26a --- /dev/null +++ b/qtc_packaging/debian_harmattan/copyright @@ -0,0 +1,40 @@ +This package was debianized by Roman Moravčík on +Tue, 21 Jun 2011 12:36:33 +0200. + +It was downloaded from + +Upstream Author(s): + + + + +Copyright: + + + + +License: + + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. + +The Debian packaging is (C) 2011, Roman Moravčík and +is licensed under the GPL, see above. + + +# Please also look if there are files or directories which have a +# different copyright/license attached and list them here. diff --git a/qtc_packaging/debian_harmattan/rules b/qtc_packaging/debian_harmattan/rules new file mode 100755 index 0000000..6373954 --- /dev/null +++ b/qtc_packaging/debian_harmattan/rules @@ -0,0 +1,91 @@ +#!/usr/bin/make -f +# -*- makefile -*- +# Sample debian/rules that uses debhelper. +# This file was originally written by Joey Hess and Craig Small. +# As a special exception, when this file is copied by dh-make into a +# dh-make output file, you may use that output file without restriction. +# This special exception was added by Craig Small in version 0.37 of dh-make. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + + + + + +configure: configure-stamp +configure-stamp: + dh_testdir + # qmake PREFIX=/usr# Uncomment this line for use without Qt Creator + + touch configure-stamp + + +build: build-stamp + +build-stamp: configure-stamp + dh_testdir + + # Add here commands to compile the package. + # $(MAKE) # Uncomment this line for use without Qt Creator + #docbook-to-man debian/medard.sgml > medard.1 + + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp configure-stamp + + # Add here commands to clean up after the build process. + $(MAKE) clean + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/medard. + $(MAKE) INSTALL_ROOT="$(CURDIR)"/debian/medard install + + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_installdocs + dh_installexamples +# dh_install +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip + dh_compress + dh_fixperms +# dh_perl +# dh_makeshlibs + dh_installdeb + # dh_shlibdeps # Uncomment this line for use without Qt Creator + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install configure diff --git a/src/aboutdialog.cpp b/src/aboutdialog.cpp index cc82887..2231bd0 100644 --- a/src/aboutdialog.cpp +++ b/src/aboutdialog.cpp @@ -17,10 +17,45 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifdef Q_WS_MAEMO_6 +#include +#endif + #include #include "aboutdialog.h" +#ifdef Q_WS_MAEMO_6 +AboutDialog::AboutDialog(QGraphicsItem *parent) : MApplicationPage(parent) +{ + setAttribute(Qt::WA_LockPortraitOrientation, true); + setWindowTitle(tr("About")); + setPannable(false); + + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical); + centralWidget()->setLayout(layout); + + MLabel *application = new MLabel(); + application->setText("Medard 0.1"); +// application->setAlignment(Qt::AlignCenter); + layout->addItem(application); + + MLabel *applicationCopyright = new MLabel(); + applicationCopyright->setText(tr("Copyright(c) 2011 Roman Moravcik")); +// applicationCopyright->setAlignment(Qt::AlignCenter); + layout->addItem(applicationCopyright); + + MLabel *weatherDataCopyright = new MLabel(); + weatherDataCopyright->setText(tr("\n" + "Weather data:\n" + "Project MEDARD, Institute of Computer Science,\n" + "Academy of Sciences of the Czech Republic, Prague\n" + "\n" + "Copyright(c) Institute of Computer Science AS CR 2003-2009.\n" + "MM5: PSU/NCAR, USA (c) CAMx: EVNIRON Corp., USA")); + layout->addItem(weatherDataCopyright); +} +#else AboutDialog::AboutDialog(QDialog *parent) : QDialog(parent) { setWindowTitle(tr("About")); @@ -55,3 +90,4 @@ AboutDialog::AboutDialog(QDialog *parent) : QDialog(parent) layout->addWidget(weatherDataCopyright); } +#endif diff --git a/src/aboutdialog.h b/src/aboutdialog.h index 109f369..d81f45e 100644 --- a/src/aboutdialog.h +++ b/src/aboutdialog.h @@ -20,14 +20,26 @@ #ifndef ABOUTDIALOG_H #define ABOUTDIALOG_H +#ifdef Q_WS_MAEMO_6 +#include +#else #include +#endif +#ifdef Q_WS_MAEMO_6 +class AboutDialog : public MApplicationPage +#else class AboutDialog : public QDialog +#endif { Q_OBJECT public: +#ifdef Q_WS_MAEMO_6 + AboutDialog(QGraphicsItem *parent = 0); +#else AboutDialog(QDialog *parent = 0); +#endif }; #endif // ABOUTDIALOG_H diff --git a/src/forecastwidget.cpp b/src/forecastwidget.cpp index 82ae3cb..e733544 100644 --- a/src/forecastwidget.cpp +++ b/src/forecastwidget.cpp @@ -21,7 +21,11 @@ #include "forecastwidget.h" +#ifdef Q_WS_MAEMO_6 +ForecastWidget::ForecastWidget(QGraphicsWidget *parent) : QGraphicsWidget(parent) +#else ForecastWidget::ForecastWidget(QWidget *parent) : QWidget(parent) +#endif { m_filename.clear(); m_error = false; @@ -41,6 +45,32 @@ void ForecastWidget::clearImage(bool error) update(); } +#ifdef Q_WS_MAEMO_6 +void ForecastWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ + Q_UNUSED(widget); + Q_UNUSED(option); + + painter->setRenderHint(QPainter::Antialiasing); + + QRect widgetArea(rect().x(), rect().y(), rect().width(), 369); + + painter->setPen(QColor(0, 0, 0)); + painter->setBrush(QColor(255, 255, 255)); + painter->drawRect(widgetArea); + + if (m_error) { + painter->drawText(widgetArea, Qt::AlignCenter, tr("Download failed!")); + } else { + if (!m_filename.isEmpty()) { + QImage image(m_filename); + painter->drawImage(widgetArea, image); + } else { + painter->drawText(widgetArea, Qt::AlignCenter, tr("Downloading image...")); + } + } +} +#else void ForecastWidget::paintEvent(QPaintEvent * /* event */) { QPainter painter(this); @@ -63,3 +93,4 @@ void ForecastWidget::paintEvent(QPaintEvent * /* event */) } } } +#endif diff --git a/src/forecastwidget.h b/src/forecastwidget.h index e498582..f352a2a 100644 --- a/src/forecastwidget.h +++ b/src/forecastwidget.h @@ -20,21 +20,38 @@ #ifndef FORECASTWIDGET_H #define FORECASTWIDGET_H +#ifdef Q_WS_MAEMO_6 +#include +#else #include +#endif + #include +#ifdef Q_WS_MAEMO_6 +class ForecastWidget : public QGraphicsWidget +#else class ForecastWidget : public QWidget +#endif { Q_OBJECT public: +#ifdef Q_WS_MAEMO_6 + ForecastWidget(QGraphicsWidget *parent = 0); + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); +#else ForecastWidget(QWidget *parent = 0); +#endif void setImage(const QString &filename); void clearImage(bool error); +#ifdef Q_WS_MAEMO_5 protected: void paintEvent(QPaintEvent *event); +#endif private: QString m_filename; diff --git a/src/main.cpp b/src/main.cpp index 8ae1d03..539b54e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -17,7 +17,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifdef Q_WS_MAEMO_6 +#include +#include +#else #include +#endif + #include #include @@ -25,15 +31,26 @@ int main(int argc, char *argv[]) { +#ifdef Q_WS_MAEMO_6 + MApplication app(argc, argv); +#else QApplication app(argc, argv); +#endif QString translatorFileName = "medard_" + QLocale::system().name(); QTranslator translator; if (translator.load(translatorFileName, "/opt/usr/share/medard/")) app.installTranslator(&translator); +#ifdef Q_WS_MAEMO_6 + MApplicationWindow window; + MainWindow page; + page.appear(&window); + window.show(); +#else MainWindow window; window.showMaximized(); +#endif return app.exec(); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index bf318f5..0253c38 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -17,12 +17,67 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#ifdef Q_WS_MAEMO_6 +#include +#include +#include +#include +#endif + #include #include #include "aboutdialog.h" #include "mainwindow.h" +#ifdef Q_WS_MAEMO_6 +MainWindow::MainWindow(QGraphicsItem *parent) : MApplicationPage(parent) +{ + m_downloader = new MedardDownloader(); + + connect(m_downloader, SIGNAL(downloadFinished(const QString &, const QDateTime &)), this, + SLOT(downloadedFinished(const QString &, const QDateTime &))); + connect(m_downloader, SIGNAL(downloadFailed()), this, SLOT(downloadFailed())); + + m_forecast = new ForecastWidget(); + m_forecast->setPreferredSize(m_downloader->imageSize()); + + m_forecastTypeLabel = new MLabel(); + m_forecastTypeLabel->setAlignment(Qt::AlignCenter); + m_forecastTypeLabel->setPreferredSize(220, 80); + + m_forecastInitialDateLabel = new MLabel(); + m_forecastInitialDateLabel->setAlignment(Qt::AlignCenter); +// m_forecastInitialDateLabel->setDisabled(true); + + m_forecastDateLabel = new MLabel(); + m_forecastDateLabel->setAlignment(Qt::AlignCenter); + + m_downloadRetryButton = new MButton(tr("Download again")); + m_downloadRetryButton->setPreferredWidth(220); + + connect(m_downloadRetryButton, SIGNAL(clicked()), this, SLOT(downloadAgainClicked())); + + m_minusDayButton = new MButton(tr("-1 d")); + m_minusDayButton->setPreferredWidth(50); + m_plusDayButton = new MButton(tr("+1 d")); + m_plusDayButton->setPreferredWidth(50); + m_minusHourButton = new MButton(tr("-1 h")); + m_minusHourButton->setPreferredWidth(50); + m_plusHourButton = new MButton(tr("+1 h")); + m_plusHourButton->setPreferredWidth(50); + + connect(m_minusDayButton, SIGNAL(clicked()), this, SLOT(minusDayClicked())); + connect(m_plusDayButton, SIGNAL(clicked()), this, SLOT(plusDayClicked())); + connect(m_minusHourButton, SIGNAL(clicked()), this, SLOT(minusHourClicked())); + connect(m_plusHourButton, SIGNAL(clicked()), this, SLOT(plusHourClicked())); + + setupUi(); + setupMenu(); + + loadSettings(); +} +#else MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { m_downloader = new MedardDownloader(); @@ -64,12 +119,46 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) loadSettings(); } +#endif MainWindow::~MainWindow() { delete m_downloader; } +#ifdef Q_WS_MAEMO_6 +void MainWindow::setupUi() +{ + setAttribute(Qt::WA_LockPortraitOrientation, true); + setWindowTitle(tr("Medard")); + setPannable(false); + + QGraphicsLinearLayout *mainLayout = new QGraphicsLinearLayout(Qt::Horizontal); + centralWidget()->setLayout(mainLayout); + + mainLayout->addItem(m_forecast); + + QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical); + mainLayout->addItem(layout); + + layout->addItem(m_forecastTypeLabel); + layout->addItem(m_forecastDateLabel); + layout->addItem(m_forecastInitialDateLabel); + layout->addItem(m_downloadRetryButton); + + QGraphicsLinearLayout *dayNavigationBox = new QGraphicsLinearLayout(Qt::Horizontal); + dayNavigationBox->addItem(m_minusDayButton); + dayNavigationBox->addItem(m_plusDayButton); + layout->addItem(dayNavigationBox); + + QGraphicsLinearLayout *hourNavigationBox = new QGraphicsLinearLayout(Qt::Horizontal); + hourNavigationBox->addItem(m_minusHourButton); + hourNavigationBox->addItem(m_plusHourButton); + layout->addItem(hourNavigationBox); + + hideNavigationButtons(false); +} +#else void MainWindow::setupUi() { #ifdef Q_WS_MAEMO_5 @@ -110,7 +199,57 @@ void MainWindow::setupUi() hideNavigationButtons(false); } +#endif +#ifdef Q_WS_MAEMO_6 +void MainWindow::setupMenu() +{ + QStringList domainsList; + domainsList << tr("Europe") << tr("Czech Republic"); + + MWidgetAction *domainAction = new MWidgetAction(centralWidget()); + domainAction->setLocation(MAction::ApplicationMenuLocation); + + m_domainComboBox = new MComboBox; + m_domainComboBox->setTitle(tr("Domain")); + m_domainComboBox->setIconVisible(false); + m_domainComboBox->addItems(domainsList); + domainAction->setWidget(m_domainComboBox); + addAction(domainAction); + connect(m_domainComboBox, SIGNAL(activated(int)), this, SLOT(forecastDomainChanged(int))); + + MAction *seaLevelPreasureAction = new MAction("icon-m-weather-cloudy", tr("Sea Level Pressure"), this); + seaLevelPreasureAction->setLocation(MAction::ToolBarLocation); + addAction(seaLevelPreasureAction); + connect(seaLevelPreasureAction, SIGNAL(triggered()), this, SLOT(seaLevelPreasureMenuClicked())); + + MAction *precipitationAction = new MAction("icon-m-weather-rain", tr("Precipitation"), this); + precipitationAction->setLocation(MAction::ToolBarLocation); + addAction(precipitationAction); + connect(precipitationAction, SIGNAL(triggered()), this, SLOT(precipitationMenuClicked())); + + MAction *windVelocityAction = new MAction("icon-m-weather-stormy", tr("Wind Velocity"), this); + windVelocityAction->setLocation(MAction::ToolBarLocation); + addAction(windVelocityAction); + connect(windVelocityAction, SIGNAL(triggered()), this, SLOT(windVelocityMenuClicked())); + + MAction *cloudinessAction = new MAction("icon-m-weather-partly-sunny", tr("Cloudinese"), this); + cloudinessAction->setLocation(MAction::ToolBarLocation); + addAction(cloudinessAction); + connect(cloudinessAction, SIGNAL(triggered()), this, SLOT(cloudinessMenuClicked())); + + MAction *temperatureAction = new MAction("icon-m-weather-hot", tr("Temperature"), this); + temperatureAction->setLocation(MAction::ToolBarLocation); + addAction(temperatureAction); + connect(temperatureAction, SIGNAL(triggered()), this, SLOT(temperatureMenuClicked())); + + MAction *aboutAction = new MAction(this); + aboutAction->setText(tr("About")); + aboutAction->setLocation(MAction::ApplicationMenuLocation); + addAction(aboutAction); + connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutMenuClicked())); +} +#else void MainWindow::setupMenu() { QMenuBar *menu = new QMenuBar(); @@ -151,6 +290,7 @@ void MainWindow::setupMenu() menu->addAction(aboutAction); connect(aboutAction, SIGNAL(triggered()), this, SLOT(aboutMenuClicked())); } +#endif void MainWindow::loadSettings() { @@ -160,7 +300,11 @@ void MainWindow::loadSettings() int forecastType = settings.value("ForecastType").toInt(); m_downloader->setForecastDomain((MedardDownloader::ForecastDomain) forecastDomain); +#ifdef Q_WS_MAEMO_6 + m_domainComboBox->setCurrentIndex(forecastDomain); +#else m_domainActionGroup->actions().at(forecastDomain)->setChecked(true); +#endif switch ((MedardDownloader::ForecastType) forecastType) { case MedardDownloader::SeaLevelPressure: @@ -211,25 +355,25 @@ void MainWindow::hideNavigationButtons(bool showRetryButton) void MainWindow::updateNavigationButtons() { if ((m_downloader->forecastDateOffset() - 24) < m_downloader->minForecastDateOffset()) { - m_minusDayButton->setDisabled(true); - m_plusDayButton->setDisabled(false); +// m_minusDayButton->setDisabled(true); +// m_plusDayButton->setDisabled(false); } else if ((m_downloader->forecastDateOffset() + 24) > m_downloader->maxForecastDateOffset()) { - m_minusDayButton->setDisabled(false); - m_plusDayButton->setDisabled(true); +// m_minusDayButton->setDisabled(false); +// m_plusDayButton->setDisabled(true); } else { - m_minusDayButton->setDisabled(false); - m_plusDayButton->setDisabled(false); +// m_minusDayButton->setDisabled(false); +// m_plusDayButton->setDisabled(false); } if ((m_downloader->forecastDateOffset() - 1) < m_downloader->minForecastDateOffset()) { - m_minusHourButton->setDisabled(true); - m_plusHourButton->setDisabled(false); +// m_minusHourButton->setDisabled(true); +// m_plusHourButton->setDisabled(false); } else if ((m_downloader->forecastDateOffset() + 1) > m_downloader->maxForecastDateOffset()) { - m_minusHourButton->setDisabled(false); - m_plusHourButton->setDisabled(true); +// m_minusHourButton->setDisabled(false); +// m_plusHourButton->setDisabled(true); } else { - m_minusHourButton->setDisabled(false); - m_plusHourButton->setDisabled(false); +// m_minusHourButton->setDisabled(false); +// m_plusHourButton->setDisabled(false); } } @@ -261,7 +405,11 @@ void MainWindow::temperatureMenuClicked() void MainWindow::aboutMenuClicked() { AboutDialog *dialog = new AboutDialog(); +#ifdef Q_WS_MAEMO_6 + dialog->appear(scene(), MSceneWindow::DestroyWhenDismissed); +#else dialog->exec(); +#endif } void MainWindow::downloadAgainClicked() @@ -310,6 +458,22 @@ void MainWindow::forecastDateOffsetChanged(int offset) m_downloader->downloadImage(); } +#ifdef Q_WS_MAEMO_6 +void MainWindow::forecastDomainChanged(int index) +{ + m_forecast->clearImage(false); + + if (index == 0) + m_downloader->setForecastDomain(MedardDownloader::Europe); + else + m_downloader->setForecastDomain(MedardDownloader::CzechRepublic); + + m_downloader->downloadImage(); + + QSettings settings; + settings.setValue("ForecastDomain", index); +} +#else void MainWindow::forecastDomainChanged(QAction *action) { int forecastDomain = m_domainActionGroup->actions().indexOf(action); @@ -326,6 +490,7 @@ void MainWindow::forecastDomainChanged(QAction *action) QSettings settings; settings.setValue("ForecastDomain", forecastDomain); } +#endif void MainWindow::downloadedFinished(const QString &filename, const QDateTime &date) { diff --git a/src/mainwindow.h b/src/mainwindow.h index c4f224e..499c69a 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -20,20 +20,35 @@ #ifndef MAINWINDOW_H #define MAINWINDOW_H +#ifdef Q_WS_MAEMO_6 +#include +#include +#include +#include +#else #include #include #include #include +#endif #include "forecastwidget.h" #include "medarddownloader.h" +#ifdef Q_WS_MAEMO_6 +class MainWindow : public MApplicationPage +#else class MainWindow : public QMainWindow +#endif { Q_OBJECT public: +#ifdef Q_WS_MAEMO_6 + MainWindow(QGraphicsItem *parent = 0); +#else MainWindow(QWidget *parent = 0); +#endif virtual ~MainWindow(); private slots: @@ -53,7 +68,11 @@ private slots: void forecastTypeChanged(const QString label, MedardDownloader::ForecastType type); void forecastDateOffsetChanged(int offset); +#if Q_WS_MAEMO_6 + void forecastDomainChanged(int index); +#else void forecastDomainChanged(QAction *action); +#endif void downloadedFinished(const QString &filename, const QDateTime &date); void downloadFailed(); @@ -71,6 +90,20 @@ private: MedardDownloader *m_downloader; ForecastWidget *m_forecast; +#if Q_WS_MAEMO_6 + MLabel *m_forecastTypeLabel; + MLabel *m_forecastInitialDateLabel; + MLabel *m_forecastDateLabel; + + MButton *m_downloadRetryButton; + + MButton *m_minusDayButton; + MButton *m_plusDayButton; + MButton *m_minusHourButton; + MButton *m_plusHourButton; + + MComboBox *m_domainComboBox; +#else QLabel *m_forecastTypeLabel; QLabel *m_forecastInitialDateLabel; QLabel *m_forecastDateLabel; @@ -83,6 +116,8 @@ private: QPushButton *m_plusHourButton; QActionGroup *m_domainActionGroup; +#endif + }; #endif // MAINWINDOW_H diff --git a/src/medarddownloader.cpp b/src/medarddownloader.cpp index 07dc798..a2ea87a 100644 --- a/src/medarddownloader.cpp +++ b/src/medarddownloader.cpp @@ -42,7 +42,11 @@ #define MAX_OFFSET 72 #define IMAGE_WIDTH 556 +#ifdef Q_WS_MAEMO_6 +#define IMAGE_HEIGHT 369 +#else #define IMAGE_HEIGHT 408 +#endif #define MAX_DOWNLOAD_RETRIES 3 #define RETRY_TIMEOUT 5000 -- 1.7.9.5