#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();
}
+