.
[dorian] / settingswindow.cpp
index 4bece61..1bf3b8d 100644 (file)
@@ -3,6 +3,12 @@
 #include "settingswindow.h"
 #include "settings.h"
 #include "toolbuttonbox.h"
+#include "platform.h"
+#include "trace.h"
+
+#ifdef Q_OS_SYMBIAN
+#include "flickcharm.h"
+#endif
 
 #ifdef Q_OS_SYMBIAN
 const char *DEFAULT_ORIENTATION = "portrait";
@@ -14,7 +20,7 @@ const int ZOOM_MIN = 75;
 const int ZOOM_MAX = 250;
 const int ZOOM_STEP = 25;
 
-SettingsWindow::SettingsWindow(QWidget *parent):  QMainWindow(parent)
+SettingsWindow::SettingsWindow(QWidget *parent):  AdopterWindow(parent)
 {
 #ifdef Q_WS_MAEMO_5
     setAttribute(Qt::WA_Maemo5StackedWindow, true);
@@ -24,9 +30,12 @@ SettingsWindow::SettingsWindow(QWidget *parent):  QMainWindow(parent)
 
     Settings *settings = Settings::instance();
     QScrollArea *scroller = new QScrollArea(this);
-#ifdef Q_WS_MAEMO_5
+#if defined(Q_WS_MAEMO_5)
     scroller->setProperty("FingerScrollable", true);
     scroller->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+#elif defined(Q_OS_SYMBIAN)
+    FlickCharm *charm = new FlickCharm(this);
+    charm->activateOn(scroller);
 #else
     scroller->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
 #endif
@@ -37,16 +46,16 @@ SettingsWindow::SettingsWindow(QWidget *parent):  QMainWindow(parent)
     QVBoxLayout *layout = new QVBoxLayout(contents);
     contents->setLayout(layout);
 
+#ifndef Q_OS_SYMBIAN
     QCheckBox *backlight = new QCheckBox(tr("Keep backlight on"), contents);
     layout->addWidget(backlight);
     backlight->setChecked(settings->value("lightson", false).toBool());
+#endif
 
-#ifndef Q_OS_SYMBIAN
     QCheckBox *grabVolume =
             new QCheckBox(tr("Navigate with volume keys"), contents);
     layout->addWidget(grabVolume);
     grabVolume->setChecked(settings->value("usevolumekeys", false).toBool());
-#endif
 
     int zoom = Settings::instance()->value("zoom").toInt();
     if (zoom < ZOOM_MIN) {
@@ -78,10 +87,11 @@ SettingsWindow::SettingsWindow(QWidget *parent):  QMainWindow(parent)
     layout->addWidget(colorLabel);
     ToolButtonBox *box = new ToolButtonBox(this);
     layout->addWidget(box);
-    box->addButton(SchemeDefault, tr("Default"), ":/icons/style-default.png");
-    box->addButton(SchemeNight, tr("Night"), ":/icons/style-night.png");
-    box->addButton(SchemeDay, tr("Day"), ":/icons/style-day.png");
-    box->addButton(SchemeSand, tr("Sand"), ":/icons/style-sand.png");
+    box->addButton(SchemeDefault, tr("Default"),
+                   Platform::icon("style-default"));
+    box->addButton(SchemeNight, tr("Night"), Platform::icon("style-night"));
+    box->addButton(SchemeDay, tr("Day"), Platform::icon("style-day"));
+    box->addButton(SchemeSand, tr("Sand"), Platform::icon("style-sand"));
     box->addStretch();
     QString scheme = settings->value("scheme", "default").toString();
     if (scheme == "night") {
@@ -94,6 +104,7 @@ SettingsWindow::SettingsWindow(QWidget *parent):  QMainWindow(parent)
         box->toggle(SchemeDefault);
     }
 
+#ifndef Q_OS_SYMBIAN
     QLabel *orientationLabel = new QLabel(tr("Orientation:"), contents);
     layout->addWidget(orientationLabel);
     orientationBox = new ToolButtonBox(this);
@@ -110,6 +121,7 @@ SettingsWindow::SettingsWindow(QWidget *parent):  QMainWindow(parent)
     } else {
         orientationBox->toggle(OrientationLandscape);
     }
+#endif // !Q_OS_SYMBIAN
 
     layout->addStretch();
     scroller->setWidget(contents);
@@ -118,20 +130,22 @@ SettingsWindow::SettingsWindow(QWidget *parent):  QMainWindow(parent)
 
     setCentralWidget(scroller);
 
+#ifndef Q_OS_SYMBIAN
     connect(backlight, SIGNAL(toggled(bool)),
             this, SLOT(onLightsToggled(bool)));
-#ifndef Q_OS_SYMBIAN
+#endif
     connect(grabVolume, SIGNAL(toggled(bool)),
             this, SLOT(onGrabVolumeToggled(bool)));
-#endif
     connect(zoomSlider, SIGNAL(valueChanged(int)),
             this, SLOT(onSliderValueChanged(int)));
     connect(fontButton, SIGNAL(currentFontChanged(const QFont &)),
             this, SLOT(onCurrentFontChanged(const QFont &)));
     connect(box, SIGNAL(buttonClicked(int)),
             this, SLOT(onSchemeButtonClicked(int)));
+#ifndef Q_OS_SYMBIAN
     connect(orientationBox, SIGNAL(buttonClicked(int)),
             this, SLOT(onOrientationButtonClicked(int)));
+#endif
 
 #ifdef Q_OS_SYMBIAN
     QAction *closeAction = new QAction(parent? tr("Back"): tr("Exit"), this);
@@ -195,20 +209,23 @@ void SettingsWindow::onOrientationButtonClicked(int id)
 #endif // Q_WS_MAEMO_5
 }
 
-#ifdef Q_WS_MAEMO_5
+#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN)
 
 void SettingsWindow::closeEvent(QCloseEvent *e)
 {
+    TRACE;
     Settings *settings = Settings::instance();
     settings->setValue("zoom", zoomSlider->value());
     settings->setValue("font", fontButton->currentFont().family());
+#ifndef Q_OS_SYMBIAN
     settings->setValue("orientation",
         (orientationBox->checkedId() == OrientationLandscape)?
         "landscape": "portrait");
+#endif // Q_OS_SYMBIAN
     e->accept();
 }
 
-#endif // Q_WS_MAEMO_5
+#endif // Q_WS_MAEMO_5 || Q_OS_SYMBIAN
 
 void SettingsWindow::onLightsToggled(bool value)
 {