From 2015f68fb2ceaefad230e9e3b6efe8127c493670 Mon Sep 17 00:00:00 2001 From: Micke Prag Date: Wed, 25 Mar 2009 21:41:31 +0000 Subject: [PATCH] Added settings widget for RisingSun --- telldus-gui/TelldusGui/TelldusGui.pro | 2 + .../TelldusGui/devicesettingrisingsun.cpp | 122 ++++++++++++++++++ .../TelldusGui/devicesettingrisingsun.h | 40 ++++++ telldus-gui/TelldusGui/editdevicedialog.cpp | 2 + 4 files changed, 166 insertions(+) create mode 100644 telldus-gui/TelldusGui/devicesettingrisingsun.cpp create mode 100644 telldus-gui/TelldusGui/devicesettingrisingsun.h diff --git a/telldus-gui/TelldusGui/TelldusGui.pro b/telldus-gui/TelldusGui/TelldusGui.pro index 51f509f3..28a87017 100644 --- a/telldus-gui/TelldusGui/TelldusGui.pro +++ b/telldus-gui/TelldusGui/TelldusGui.pro @@ -15,6 +15,7 @@ SOURCES += telldusgui.cpp \ devicesettingikea.cpp \ devicesettingnexa.cpp \ devicesettingnexabell.cpp \ + devicesettingrisingsun.cpp \ devicesettingsartano.cpp \ devicesetting.cpp \ methodwidget.cpp \ @@ -30,6 +31,7 @@ HEADERS += telldusgui.h \ devicesettingikea.h \ devicesettingnexa.h \ devicesettingnexabell.h \ + devicesettingrisingsun.h \ devicesettingsartano.h \ devicesetting.h \ methodwidget.h \ diff --git a/telldus-gui/TelldusGui/devicesettingrisingsun.cpp b/telldus-gui/TelldusGui/devicesettingrisingsun.cpp new file mode 100644 index 00000000..a0de1be0 --- /dev/null +++ b/telldus-gui/TelldusGui/devicesettingrisingsun.cpp @@ -0,0 +1,122 @@ +// +// C++ Implementation: devicesettingnexa +// +// Description: +// +// +// Author: Micke Prag , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "devicesettingrisingsun.h" +#include "device.h" +#include +#include +#include + +DeviceSettingRisingSun::DeviceSettingRisingSun(Device *device, QWidget *parent) + : DeviceSetting(device, parent), + dialHouse(0), + dialUnit(0) +{ + QVBoxLayout *verticalLayout = new QVBoxLayout(this); + verticalLayout->addSpacerItem( new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding) ); + + QHBoxLayout *horizontalLayout = new QHBoxLayout; + verticalLayout->addLayout(horizontalLayout); + verticalLayout->addSpacerItem( new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding) ); + + QGridLayout *gridLayoutLeft = new QGridLayout; + horizontalLayout->addSpacerItem( new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum) ); + horizontalLayout->addLayout( gridLayoutLeft ); + + horizontalLayout->addSpacerItem( new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum) ); + + QGridLayout *gridLayoutRight = new QGridLayout; + horizontalLayout->addLayout( gridLayoutRight ); + horizontalLayout->addSpacerItem( new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum) ); + + QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum); + sizePolicy.setHorizontalStretch(0); + sizePolicy.setVerticalStretch(0); + + QLabel *houseNotchLabel = new QLabel("I", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutLeft->addWidget(houseNotchLabel, 1, 0, 2, 1); + + houseNotchLabel = new QLabel("II", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutLeft->addWidget(houseNotchLabel, 0, 1, 1, 2); + + houseNotchLabel = new QLabel("III", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutLeft->addWidget(houseNotchLabel, 1, 3, 2, 1); + + houseNotchLabel = new QLabel("IV", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutLeft->addWidget(houseNotchLabel, 3, 1, 1, 2); + + dialHouse = new QDial(this); + dialHouse->setObjectName(QString::fromUtf8("dialHouse")); + dialHouse->setSizePolicy(sizePolicy); + dialHouse->setMinimum(0); + dialHouse->setMaximum(4); + dialHouse->setPageStep(1); + dialHouse->setOrientation(Qt::Horizontal); + dialHouse->setNotchesVisible(true); + dialHouse->setWrapping(true); + gridLayoutLeft->addWidget(dialHouse, 1, 1, 1, 2); + + houseNotchLabel = new QLabel("1", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutRight->addWidget(houseNotchLabel, 1, 0, 2, 1); + + houseNotchLabel = new QLabel("2", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutRight->addWidget(houseNotchLabel, 0, 1, 1, 2); + + houseNotchLabel = new QLabel("3", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutRight->addWidget(houseNotchLabel, 1, 3, 2, 1); + + houseNotchLabel = new QLabel("4", this); + houseNotchLabel->setSizePolicy(sizePolicy); + houseNotchLabel->setAlignment(Qt::AlignCenter); + gridLayoutRight->addWidget(houseNotchLabel, 3, 1, 1, 2); + + + dialUnit = new QDial(this); + dialUnit->setObjectName(QString::fromUtf8("dialHouse")); + dialUnit->setSizePolicy(sizePolicy); + dialUnit->setMinimum(0); + dialUnit->setMaximum(4); + dialUnit->setPageStep(1); + dialUnit->setOrientation(Qt::Horizontal); + dialUnit->setNotchesVisible(true); + dialUnit->setWrapping(true); + gridLayoutRight->addWidget(dialUnit, 1, 1, 1, 2); + + dialHouse->setValue( device->parameter("nexa_house", "1").toInt() ); + dialUnit->setValue( device->parameter("nexa_unit", "1").toInt() ); +} + + +DeviceSettingRisingSun::~DeviceSettingRisingSun() +{ +} + +void DeviceSettingRisingSun::saveParameters() { + int house = (dialHouse->value() == 0 ? 4 : dialHouse->value()); + int unit = (dialUnit->value() == 0 ? 4 : dialUnit->value()); + p_device->setParameter( "nexa_house", QString::number(house) ); + p_device->setParameter( "nexa_unit", QString::number(unit) ); +} + diff --git a/telldus-gui/TelldusGui/devicesettingrisingsun.h b/telldus-gui/TelldusGui/devicesettingrisingsun.h new file mode 100644 index 00000000..21348029 --- /dev/null +++ b/telldus-gui/TelldusGui/devicesettingrisingsun.h @@ -0,0 +1,40 @@ +// +// C++ Interface: devicesettingnexa +// +// Description: +// +// +// Author: Micke Prag , (C) 2007 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef DEVICESETTINGRISINGSUN_H +#define DEVICESETTINGRISINGSUN_H + +#include "devicesetting.h" + +class QGridLayout; +class QDial; +class QLabel; + +/** + @author Micke Prag +*/ +class DeviceSettingRisingSun : public DeviceSetting +{ +Q_OBJECT +public: + DeviceSettingRisingSun(Device *device, QWidget *parent = 0); + + virtual ~DeviceSettingRisingSun(); + +public slots: + virtual void saveParameters(); + +protected: + QDial *dialHouse; + QDial *dialUnit; +}; + +#endif diff --git a/telldus-gui/TelldusGui/editdevicedialog.cpp b/telldus-gui/TelldusGui/editdevicedialog.cpp index 5a33c61b..130e49bc 100644 --- a/telldus-gui/TelldusGui/editdevicedialog.cpp +++ b/telldus-gui/TelldusGui/editdevicedialog.cpp @@ -6,6 +6,7 @@ #include "devicesettingikea.h" #include "devicesettingnexa.h" #include "devicesettingnexabell.h" +#include "devicesettingrisingsun.h" #include "devicesettingsartano.h" #include @@ -98,6 +99,7 @@ EditDeviceDialog::EditDeviceDialog(Device *d, QWidget *parent, Qt::WFlags flags) deviceSettings[2] = new DeviceSettingSartano(device, this); deviceSettings[3] = new DeviceSettingIkea(device, this); deviceSettings[4] = new DeviceSettingNexaBell(device, this); + deviceSettings[5] = new DeviceSettingRisingSun(device, this); foreach( DeviceSetting *s, deviceSettings ) { settingsLayout->addWidget( s ); }