Added system item support, support for RGBControlers with multiple item backends, and item settings widgets
This commit is contained in:
21
src/ui/itemsettingswidgets/relayitemsettingswidget.cpp
Normal file
21
src/ui/itemsettingswidgets/relayitemsettingswidget.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
#include "relayitemsettingswidget.h"
|
||||
#include "ui_relayitemsettingswidget.h"
|
||||
|
||||
|
||||
RelayItemSettingsWidget::RelayItemSettingsWidget(std::weak_ptr<Relay> relay, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::RelayItemSettingsWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
auto relayPtr = relay.lock();
|
||||
if(relayPtr)
|
||||
{
|
||||
ui->label_ID->setText(QString::number(relayPtr->getId()));
|
||||
ui->label_Addr->setText(QString::number(relayPtr->getAddress(),2));
|
||||
}
|
||||
}
|
||||
|
||||
RelayItemSettingsWidget::~RelayItemSettingsWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
24
src/ui/itemsettingswidgets/relayitemsettingswidget.h
Normal file
24
src/ui/itemsettingswidgets/relayitemsettingswidget.h
Normal file
@ -0,0 +1,24 @@
|
||||
#ifndef RELAYITEMSETTINGSWIDGET_H
|
||||
#define RELAYITEMSETTINGSWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <memory>
|
||||
#include "../../items/relay.h"
|
||||
|
||||
namespace Ui {
|
||||
class RelayItemSettingsWidget;
|
||||
}
|
||||
|
||||
class RelayItemSettingsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit RelayItemSettingsWidget(std::weak_ptr<Relay> relay, QWidget *parent = nullptr);
|
||||
~RelayItemSettingsWidget();
|
||||
|
||||
private:
|
||||
Ui::RelayItemSettingsWidget *ui;
|
||||
};
|
||||
|
||||
#endif // RELAYITEMSETTINGSWIDGET_H
|
85
src/ui/itemsettingswidgets/relayitemsettingswidget.ui
Normal file
85
src/ui/itemsettingswidgets/relayitemsettingswidget.ui
Normal file
@ -0,0 +1,85 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>RelayItemSettingsWidget</class>
|
||||
<widget class="QWidget" name="RelayItemSettingsWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>58</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ID:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Address:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label_Addr">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_ID">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
40
src/ui/itemsettingswidgets/systemitemsettingswidget.cpp
Normal file
40
src/ui/itemsettingswidgets/systemitemsettingswidget.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
#include "systemitemsettingswidget.h"
|
||||
#include "ui_systemitemsettingswidget.h"
|
||||
|
||||
SystemItemSettingsWidget::SystemItemSettingsWidget(std::weak_ptr<SystemItem> item, QWidget *parent) :
|
||||
QWidget(parent),
|
||||
item_(item),
|
||||
ui(new Ui::SystemItemSettingsWidget)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
if(auto itemPtr = item_.lock())
|
||||
{
|
||||
ui->lineEdit_on->setText(itemPtr->getOnCommand());
|
||||
ui->lineEdit_off->setText(itemPtr->getOffCommand());
|
||||
}
|
||||
else setDisabled(true);
|
||||
|
||||
connect(ui->lineEdit_on, &QLineEdit::textChanged, this, &SystemItemSettingsWidget::setOn);
|
||||
connect(ui->lineEdit_off, &QLineEdit::textChanged, this, &SystemItemSettingsWidget::setOff);
|
||||
}
|
||||
|
||||
void SystemItemSettingsWidget::setOn(const QString& in)
|
||||
{
|
||||
if(auto itemPtr = item_.lock())
|
||||
{
|
||||
itemPtr->setOnCommand(in);
|
||||
}
|
||||
}
|
||||
|
||||
void SystemItemSettingsWidget::setOff(const QString& in)
|
||||
{
|
||||
if(auto itemPtr = item_.lock())
|
||||
{
|
||||
itemPtr->setOffCommand(in);
|
||||
}
|
||||
}
|
||||
|
||||
SystemItemSettingsWidget::~SystemItemSettingsWidget()
|
||||
{
|
||||
delete ui;
|
||||
}
|
30
src/ui/itemsettingswidgets/systemitemsettingswidget.h
Normal file
30
src/ui/itemsettingswidgets/systemitemsettingswidget.h
Normal file
@ -0,0 +1,30 @@
|
||||
#ifndef SYSTEMITEMSETTINGSWIDGET_H
|
||||
#define SYSTEMITEMSETTINGSWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <memory>
|
||||
#include "../../items/systemitem.h"
|
||||
|
||||
namespace Ui {
|
||||
class SystemItemSettingsWidget;
|
||||
}
|
||||
|
||||
class SystemItemSettingsWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
std::weak_ptr<SystemItem> item_;
|
||||
|
||||
private slots:
|
||||
|
||||
void setOn(const QString &in);
|
||||
void setOff(const QString &in);
|
||||
|
||||
public:
|
||||
explicit SystemItemSettingsWidget(std::weak_ptr<SystemItem> item, QWidget *parent = nullptr);
|
||||
~SystemItemSettingsWidget();
|
||||
|
||||
private:
|
||||
Ui::SystemItemSettingsWidget *ui;
|
||||
};
|
||||
|
||||
#endif // SYSTEMITEMSETTINGSWIDGET_H
|
47
src/ui/itemsettingswidgets/systemitemsettingswidget.ui
Normal file
47
src/ui/itemsettingswidgets/systemitemsettingswidget.ui
Normal file
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SystemItemSettingsWidget</class>
|
||||
<widget class="QWidget" name="SystemItemSettingsWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>92</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>On command</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_on"/>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEdit_off"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Off command</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Reference in New Issue
Block a user