#include <QVBoxLayout>
#include <QLabel>
#include <QSpacerItem>
-#include <QMenuBar>
#include <QSettings>
-
+#include <QCheckBox>
+#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());
- QVBoxLayout *verticalLayout = new QVBoxLayout(centralWidget());
- QLabel *from_lbl = new QLabel(tr("Use silent profile between"));
- from_lbl->setAlignment(Qt::AlignHCenter);
- verticalLayout->addWidget(from_lbl);
- from_button = new QMaemo5ValueButton();
- from_button->setPickSelector(new QMaemo5TimePickSelector());
- verticalLayout->addWidget(from_button);
- QLabel *to_lbl = new QLabel(tr("and"));
- to_lbl->setAlignment(Qt::AlignHCenter);
- verticalLayout->addWidget(to_lbl);
- to_button = new QMaemo5ValueButton();
- to_button->setPickSelector(new QMaemo5TimePickSelector());
- verticalLayout->addWidget(to_button);
- verticalLayout->addItem(new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding));
- // Menu actions
- active_action = menuBar()->addAction(tr("Enabled"));
- active_action->setCheckable(true);
- // Load settings
- loadSettings();
- connect(active_action, SIGNAL(triggered(bool)), this, SLOT(enableSilencing(bool)));
+ 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() {
- if(active_action->isChecked()) {
- QMaemo5InformationBox::information(this, tr("The timed silencer is enabled"), 0);
- setProfileEvents();
- } else {
- QMaemo5InformationBox::information(this, tr("The timed silencer is disabled"), 0);
- }
- saveSettings();
- delete from_button;
- delete to_button;
-}
-
-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", active_action->isChecked());
+ delete addEventBtn;
+ delete eventList;
}
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);
- active_action->setChecked(settings.value("enabled", true).toBool());
+
}
-void MainWindow::enableSilencing(bool enabled) {
- if(enabled) {
- setProfileEvents();
- //QMaemo5InformationBox::information(this, tr("The Timed Silencer is now enabled"), QMaemo5InformationBox::DefaultTimeout);
- } else {
- AlarmdBackend::deleteEvents();
- //QMaemo5InformationBox::information(this, tr("The Timed Silencer is now disabled"), QMaemo5InformationBox::DefaultTimeout);
- }
+void MainWindow::saveSettings() {
+
}
-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();
}
+