Major new release: Several events can now be defined and one can set events to occur...
[timedsilencer] / mainwindow.cpp
index e4ed214..89392a3 100644 (file)
 #include <QPushButton>
 #include <QHBoxLayout>
 #include <QCloseEvent>
-
+#include <QIcon>
 #include "mainwindow.h"
-#include "alarmd_backend.h"
-#include "dbus_backend.h"
+#include "switchingeventlist.h"
+#include "newalarmdlg.h"
 
 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
   setCentralWidget(new QWidget());
-  QHBoxLayout *hori_layout = new QHBoxLayout(centralWidget());
-  QVBoxLayout *verticalLayoutL = new QVBoxLayout();
-  verticalLayoutL->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
-  QLabel *from_lbl = new QLabel(tr("Use the silent profile between"));
-  from_lbl->setAlignment(Qt::AlignHCenter);
-  verticalLayoutL->addWidget(from_lbl);
-  from_button = new QMaemo5ValueButton();
-  from_button->setPickSelector(new QMaemo5TimePickSelector());
-  verticalLayoutL->addWidget(from_button);
-  QLabel *to_lbl = new QLabel(tr("and"));
-  to_lbl->setAlignment(Qt::AlignHCenter);
-  verticalLayoutL->addWidget(to_lbl);
-  to_button = new QMaemo5ValueButton();
-  to_button->setPickSelector(new QMaemo5TimePickSelector());
-  verticalLayoutL->addWidget(to_button);
-  // Status
-  verticalLayoutL->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
-  cb_enable = new QCheckBox(tr("Activated"));
-  verticalLayoutL->addWidget(cb_enable);
-  hori_layout->addLayout(verticalLayoutL);
-  QVBoxLayout *verticalLayoutR = new QVBoxLayout;
-  verticalLayoutR->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
-  done_btn = new QPushButton(tr("Save"));
-  done_btn->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
-  connect(done_btn, SIGNAL(clicked()), this, SLOT(saveAndClose()));
-  verticalLayoutR->addWidget(done_btn);
-  hori_layout->addLayout(verticalLayoutR);
-  // Load settings
-  loadSettings();
+  QVBoxLayout *vLayout = new QVBoxLayout(centralWidget());
+  addEventBtn = new QPushButton(QIcon::fromTheme("general_add"), tr("New profile switching event"));
+  connect(addEventBtn, SIGNAL(clicked()), this, SLOT(addEvent()));
+  vLayout->addWidget(addEventBtn);
+  eventList = new SwitchingEventList;
+  vLayout->addWidget(eventList);
   // Auto rotation
   setAttribute(Qt::WA_Maemo5AutoOrientation, true);
 }
 
 MainWindow::~MainWindow() {
-  delete from_button;
-  delete to_button;
-  delete cb_enable;
-  delete done_btn;
+  delete addEventBtn;
+  delete eventList;
 }
 
-void MainWindow::saveAndClose() {
-  // Save the settings and set the events
-  if(cb_enable->isChecked()) {
-    setProfileEvents();
-    QMaemo5InformationBox::information(this, tr("The daily profile switching is activated"), 0);
-  } else {
-    AlarmdBackend::deleteEvents();
-    QMaemo5InformationBox::information(this, tr("The daily profile switching is deactivated"), 0);
-  }
-  saveSettings();
-  // Close the window
-  close();
+void MainWindow::loadSettings() {
+
 }
 
 void MainWindow::saveSettings() {
-  QSettings settings("TimedSilencer", "TimedSilencer");
-  settings.setValue("from_time", static_cast<QMaemo5TimePickSelector*>(from_button->pickSelector())->currentTime());
-  settings.setValue("to_time", static_cast<QMaemo5TimePickSelector*>(to_button->pickSelector())->currentTime());
-  settings.setValue("enabled", cb_enable->isChecked());
-}
 
-void MainWindow::loadSettings() {
-  QSettings settings("TimedSilencer", "TimedSilencer");
-  QTime from_time = settings.value("from_time", QTime(22, 0)).toTime();
-  static_cast<QMaemo5TimePickSelector*>(from_button->pickSelector())->setCurrentTime(from_time);
-  QTime to_time = settings.value("to_time", QTime(8, 0)).toTime();
-  static_cast<QMaemo5TimePickSelector*>(to_button->pickSelector())->setCurrentTime(to_time);
-  cb_enable->setChecked(settings.value("enabled", false).toBool());
 }
 
-void MainWindow::setProfileEvents() {
-  // Set profile events in Alarmd
-  QTime from_time = static_cast<QMaemo5TimePickSelector*>(from_button->pickSelector())->currentTime();
-  qDebug("From time: %s", qPrintable(from_time.toString()));
-  AlarmdBackend::setProfileEvent(SILENT, from_time);
-  QTime to_time = static_cast<QMaemo5TimePickSelector*>(to_button->pickSelector())->currentTime();
-  AlarmdBackend::setProfileEvent(GENERAL, to_time);
-  qDebug("To time: %s", qPrintable(to_time.toString()));
-  // Update current profile
-  bool in_silent_mode = false;
-  QTime ctime = QTime::currentTime();
-  if(from_time < to_time) {
-    in_silent_mode = (ctime > from_time && ctime < to_time);
-  } else {
-    // to_time is the next day
-    in_silent_mode = (ctime > from_time || (ctime < from_time && ctime < to_time));
-  }
-  if(in_silent_mode)
-    DBusBackend::setProfile(SILENT);
-  /*else
-    DBusBackend::setProfile(GENERAL);*/
+void MainWindow::addEvent() {
+  NewAlarmDlg dlg(this);
+  connect(&dlg, SIGNAL(newEvent(QVariant)), eventList, SLOT(addNewEvent(QVariant)));
+  dlg.exec();
 }
+