Refactor Configuraton Window

This commit is contained in:
Justin Hammond 2020-06-12 18:01:31 +08:00
parent 5aa5f01fea
commit 1ed65a7129
3 changed files with 132 additions and 385 deletions

View file

@ -27,385 +27,111 @@ Configuration::Configuration(QWidget *parent) :
else
qCDebug(ozwadmin) << "No m_options";
{
QtVariantEditorFactory *variantFactory = new QtVariantEditorFactory(this);
QtEnumEditorFactory *enumFactory = new QtEnumEditorFactory(this);
variantManager = new QtVariantPropertyManager(this);
enumManager = new QtEnumPropertyManager(this);
m_OZWvariantManager = new QtVariantPropertyManager(this);
m_OZWenumManager = new QtEnumPropertyManager(this);
{
/* OZW Pane */
this->m_OZWEditor = new QtTreePropertyBrowser(this);
m_OZWEditor->setFactoryForManager(m_OZWvariantManager, variantFactory);
m_OZWEditor->setFactoryForManager(m_OZWenumManager, enumFactory);
m_OZWEditor->setPropertiesWithoutValueMarked(true);
m_OZWEditor->setRootIsDecorated(false);
this->m_variantEditor = new QtTreePropertyBrowser(this);
m_variantEditor->setFactoryForManager(variantManager, variantFactory);
m_variantEditor->setFactoryForManager(enumManager, enumFactory);
m_variantEditor->setPropertiesWithoutValueMarked(true);
m_variantEditor->setRootIsDecorated(false);
QtProperty *topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QtProperty *topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String(" Paths"));
QtVariantProperty *variantitem;
QtProperty *enumitem;
topItem->addSubProperty(this->addStringProperty("ConfigPath", m_options->ConfigPath(), m_options->isLocked()));
topItem->addSubProperty(this->addStringProperty("UserPath", m_options->UserPath(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::String, "ConfigPath");
variantitem->setValue(m_options->ConfigPath());
variantitem->setBold(settings.contains("openzwave/ConfigPath"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("ConfigPath", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::String, "UserPath");
variantitem->setValue(m_options->UserPath());
variantitem->setBold(settings.contains("openzwave/UserPath"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("UserPath", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Logging"));
{
variantitem = variantManager->addProperty(QVariant::Bool, "Logging");
variantitem->setValue(m_options->Logging());
variantitem->setBold(settings.contains("openzwave/Logging"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("Logging", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::String, "LogFileName");
variantitem->setValue(m_options->LogFileName());
variantitem->setBold(settings.contains("openzwave/LogFileName"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("LogFileName", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "AppendLogFile");
variantitem->setValue(m_options->AppendLogFile());
variantitem->setBold(settings.contains("openzwave/AppendLogFile"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("AppendLogFile", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "ConsoleOutput");
variantitem->setValue(m_options->ConsoleOutput());
variantitem->setBold(settings.contains("openzwave/ConsoleOutput"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("ConsoleOutput", variantitem);
}
{
enumitem = enumManager->addProperty("SaveLogLevel");
enumManager->setEnumNames(enumitem, m_options->SaveLogLevel().getEnums());
enumManager->setValue(enumitem, m_options->SaveLogLevel().getSelected());
enumitem->setBold(settings.contains("openzwave/SaveLogLevel"));
enumitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(enumitem);
this->m_variantToProperty.insert("SaveLogLevel", enumitem);
}
{
enumitem = enumManager->addProperty("QueueLogLevel");
enumManager->setEnumNames(enumitem, m_options->QueueLogLevel().getEnums());
enumManager->setValue(enumitem, m_options->QueueLogLevel().getSelected());
enumitem->setBold(settings.contains("openzwave/QueueLogLevel"));
enumitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(enumitem);
this->m_variantToProperty.insert("QueueLogLevel", enumitem);
}
{
enumitem = enumManager->addProperty("DumpTriggerLevel");
enumManager->setEnumNames(enumitem, m_options->DumpTriggerLevel().getEnums());
enumManager->setValue(enumitem, m_options->DumpTriggerLevel().getSelected());
enumitem->setBold(settings.contains("openzwave/DumpTriggerLevel"));
enumitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(enumitem);
this->m_variantToProperty.insert("DumpTriggerLevel", enumitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Driver"));
topItem->addSubProperty(this->addBoolProperty("NotifyTransactions", m_options->NotifyTransactions(), m_options->isLocked()));
topItem->addSubProperty(this->addBoolProperty("SaveConfiguration", m_options->SaveConfiguration(), m_options->isLocked()));
topItem->addSubProperty(this->addIntProperty("DriverMaxAttempts", m_options->DriverMaxAttempts(), m_options->isLocked()));
topItem->addSubProperty(this->addBoolProperty("SuppressValueRefresh", m_options->SuppressValueRefresh(), m_options->isLocked()));
topItem->addSubProperty(this->addIntProperty("RetryTimeout", m_options->RetryTimeout(), m_options->isLocked()));
topItem->addSubProperty(this->addBoolProperty("EnableSIS", m_options->EnableSIS(), m_options->isLocked()));
topItem->addSubProperty(this->addBoolProperty("NotifyOnDriverUnload", m_options->NotifyOnDriverUnload(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::Bool, "NotifyTransactions");
variantitem->setValue(m_options->NotifyTransactions());
variantitem->setBold(settings.contains("openzwave/NotifyTransactions"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("NotifyTransactions", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::String, "SaveConfiguration");
variantitem->setValue(m_options->SaveConfiguration());
variantitem->setBold(settings.contains("openzwave/SaveConfiguration"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("SaveConfiguration", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Int, "DriverMaxAttempts");
variantitem->setValue(m_options->DriverMaxAttempts());
variantitem->setBold(settings.contains("openzwave/DriverMaxAttempts"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("DriverMaxAttempts", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "SuppressValueRefresh");
variantitem->setValue(m_options->SuppressValueRefresh());
variantitem->setBold(settings.contains("openzwave/SuppressValueRefresh"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("SuppressValueRefresh", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Int, "RetryTimeout");
variantitem->setValue(m_options->RetryTimeout());
variantitem->setBold(settings.contains("openzwave/RetryTimeout"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("RetryTimeout", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "EnableSIS");
variantitem->setValue(m_options->EnableSIS());
variantitem->setBold(settings.contains("openzwave/EnableSIS"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("EnableSIS", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "NotifyOnDriverUnload");
variantitem->setValue(m_options->NotifyOnDriverUnload());
variantitem->setBold(settings.contains("openzwave/NotifyOnDriverUnload"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("NotifyOnDriverUnload", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Associations"));
topItem->addSubProperty(this->addBoolProperty("Associate", m_options->Associate(), m_options->isLocked()));
topItem->addSubProperty(this->addBoolProperty("PerformReturnRoutes", m_options->PerformReturnRoutes(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::Bool, "Associate");
variantitem->setValue(m_options->Associate());
variantitem->setBold(settings.contains("openzwave/Associate"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("Associate", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "PerformReturnRoutes");
variantitem->setValue(m_options->PerformReturnRoutes());
variantitem->setBold(settings.contains("openzwave/PerformReturnRoutes"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("PerformReturnRoutes", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Polling"));
topItem->addSubProperty(this->addIntProperty("PollInterval", m_options->PollInterval(), m_options->isLocked()));
topItem->addSubProperty(this->addBoolProperty("IntervalBetweenPolls", m_options->IntervalBetweenPolls(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::Int, "PollInterval");
variantitem->setValue(m_options->PollInterval());
variantitem->setBold(settings.contains("openzwave/PollInterval"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("PollInterval", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "IntervalBetweenPolls");
variantitem->setValue(m_options->IntervalBetweenPolls());
variantitem->setBold(settings.contains("openzwave/IntervalBetweenPolls"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("IntervalBetweenPolls", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("CommandClasses"));
topItem->addSubProperty(this->addStringProperty("Exclude", m_options->Exclude(), m_options->isLocked()));
topItem->addSubProperty(this->addStringProperty("Include", m_options->Include(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::String, "Exclude");
variantitem->setValue(m_options->Exclude());
variantitem->setBold(settings.contains("openzwave/Exclude"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("Exclude", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::String, "Include");
variantitem->setValue(m_options->Include());
variantitem->setBold(settings.contains("openzwave/Include"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("Include", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Security"));
topItem->addSubProperty(this->addEnumProperty("SecurityStrategy", m_options->SecurityStrategy().getEnums(), m_options->SecurityStrategy().getSelected(), m_options->isLocked()));
topItem->addSubProperty(this->addStringProperty("CustomSecuredCC", m_options->CustomSecuredCC(), m_options->isLocked()));
topItem->addSubProperty(this->addBoolProperty("EnforceSecureReception", m_options->EnforceSecureReception(), m_options->isLocked()));
topItem->addSubProperty(this->addStringProperty("networkKey", m_options->NetworkKey(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
enumitem = enumManager->addProperty("SecurityStrategy");
enumManager->setEnumNames(enumitem, m_options->SecurityStrategy().getEnums());
enumManager->setValue(enumitem, m_options->SecurityStrategy().getSelected());
enumitem->setBold(settings.contains("openzwave/SecurityStrategy"));
enumitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(enumitem);
this->m_variantToProperty.insert("SecurityStrategy", enumitem);
}
{
variantitem = variantManager->addProperty(QVariant::Bool, "CustomSecuredCC");
variantitem->setValue(m_options->CustomSecuredCC());
variantitem->setBold(settings.contains("openzwave/CustomSecuredCC"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("CustomSecuredCC", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::String, "EnforceSecureReception");
variantitem->setValue(m_options->EnforceSecureReception());
variantitem->setBold(settings.contains("openzwave/EnforceSecureReception"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("EnforceSecureReception", variantitem);
}
{
variantitem = variantManager->addProperty(QVariant::String, "NetworkKey");
variantitem->setValue(m_options->NetworkKey());
variantitem->setBold(settings.contains("openzwave/NetworkKey"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("NetworkKey", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Sleeping Devices"));
topItem->addSubProperty(this->addBoolProperty("AssumeAwake", m_options->AssumeAwake(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::Bool, "AssumeAwake");
variantitem->setValue(m_options->AssumeAwake());
variantitem->setBold(settings.contains("openzwave/AssumeAwake"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("AssumeAwake", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("UserCode CommandClass"));
topItem->addSubProperty(this->addBoolProperty("RefreshAllUserCodes", m_options->RefreshAllUserCodes(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::Bool, "RefreshAllUserCodes");
variantitem->setValue(m_options->RefreshAllUserCodes());
variantitem->setBold(settings.contains("openzwave/RefreshAllUserCodes"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("RefreshAllUserCodes", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Device Database"));
topItem->addSubProperty(this->addBoolProperty("AutoUpdateConfigFile", m_options->AutoUpdateConfigFile(), m_options->isLocked()));
topItem->addSubProperty(this->addEnumProperty("ReloadAfterUpdate", m_options->ReloadAfterUpdate().getEnums(), m_options->ReloadAfterUpdate().getSelected(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Language"));
topItem->addSubProperty(this->addStringProperty("Language", m_options->Language(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::String, "AutoUpdateConfigFile");
variantitem->setValue(m_options->AutoUpdateConfigFile());
variantitem->setBold(settings.contains("openzwave/AutoUpdateConfigFile"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("AutoUpdateConfigFile", variantitem);
}
{
enumitem = enumManager->addProperty("ReloadAfterUpdate");
enumManager->setEnumNames(enumitem, m_options->ReloadAfterUpdate().getEnums());
enumManager->setValue(enumitem, m_options->ReloadAfterUpdate().getSelected());
enumitem->setBold(settings.contains("openzwave/ReloadAfterUpdate"));
enumitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(enumitem);
this->m_variantToProperty.insert("ReloadAfterUpdate", enumitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Lanaguage"));
{
variantitem = variantManager->addProperty(QVariant::String, "Language");
variantitem->setValue(m_options->Language());
variantitem->setBold(settings.contains("openzwave/Language"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("Language", variantitem);
}
m_variantEditor->addProperty(topItem);
topItem = variantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String("Multi Channel Devices"));
topItem->addSubProperty(this->addBoolProperty("IncludeInstanceLabels", m_options->IncludeInstanceLabels(), m_options->isLocked()));
m_OZWEditor->addProperty(topItem);
{
variantitem = variantManager->addProperty(QVariant::Bool, "IncludeInstanceLabels");
variantitem->setValue(m_options->IncludeInstanceLabels());
variantitem->setBold(settings.contains("openzwave/IncludeInstanceLabels"));
variantitem->setEnabled(!m_options->isLocked());
topItem->addSubProperty(variantitem);
this->m_variantToProperty.insert("IncludeInstanceLabels", variantitem);
}
m_variantEditor->addProperty(topItem);
//m_variantEditor->setEnabled(!m_options->isLocked());
this->ui->config_ozw->layout()->addWidget(m_variantEditor);
//m_OZWEditor->setEnabled(!m_options->isLocked());
this->ui->config_ozw->layout()->addWidget(m_OZWEditor);
}
{
/* Network Pane */
m_NetvariantManager = new QtVariantPropertyManager(this);
m_NetenumManager = new QtEnumPropertyManager(this);
this->m_NetworkEditor = new QtTreePropertyBrowser(this);
m_NetworkEditor->setFactoryForManager(m_NetvariantManager, variantFactory);
m_NetworkEditor->setFactoryForManager(m_NetenumManager, enumFactory);
m_NetworkEditor->setPropertiesWithoutValueMarked(true);
m_NetworkEditor->setRootIsDecorated(false);
QtProperty *topItem = m_OZWvariantManager->addProperty(QtVariantPropertyManager::groupTypeId(),
QLatin1String(" Paths"));
m_NetworkEditor->addProperty(topItem);
this->ui->config_net->layout()->addWidget(m_NetworkEditor);
}
}
Configuration::~Configuration()
@ -416,35 +142,6 @@ Configuration::~Configuration()
void Configuration::saveConfiguration() {
QtVariantProperty *property;
property = dynamic_cast<QtVariantProperty *>(this->m_variantToProperty["Logging"]);
if (property->value().toBool() != m_options->Logging()) {
m_options->setLogging(property->value().toBool());
settings.setValue("openzwave/Logging", property->value().toBool());
qDebug() << "Saved Logging Param with " << property->value();
}
property = dynamic_cast<QtVariantProperty *>(this->m_variantToProperty["LogFileName"]);
if (property->value() != m_options->LogFileName()) {
m_options->setLogFileName(property->value().toString());
settings.setValue("openzwave/LogFileName", property->value().toString());
qDebug() << "Saved LogFileName Param with " << property->value();
}
property = dynamic_cast<QtVariantProperty *>(this->m_variantToProperty["AppendLogFile"]);
if (property->value() != m_options->AppendLogFile()) {
m_options->setAppendLogFile(property->value().toBool());
settings.setValue("openzwave/AppendLogFile", property->value().toString());
qDebug() << "Saved AppendLogFile Param with " << property->value();
}
property = dynamic_cast<QtVariantProperty *>(this->m_variantToProperty["ConsoleOutput"]);
if (property->value() != m_options->ConsoleOutput()) {
m_options->setConsoleOutput(property->value().toBool());
settings.setValue("openzwave/ConsoleOutput", property->value().toBool());
qDebug() << "Saved ConsoleOutput Param with " << property->value();
}
/* enums - Come back to this */
QtProperty *property1 = dynamic_cast<QtProperty *>(this->m_variantToProperty["SaveLogLevel"]);
OptionList SaveLogLevel = m_options->SaveLogLevel();
if (property1->valueText() != SaveLogLevel.getSelectedName()) {
@ -645,3 +342,40 @@ void Configuration::saveConfiguration() {
qDebug() << "Saved IncludeInstanceLabels Param with " << property->value();
}
}
QtVariantProperty *Configuration::addStringProperty(QString name, QString value, bool locked) {
QtVariantProperty *variantitem = m_OZWvariantManager->addProperty(QVariant::String, name);
variantitem->setValue(value);
variantitem->setBold(settings.contains("openzwave/"+name));
variantitem->setEnabled(!locked);
this->m_variantToProperty.insert(name, variantitem);
return variantitem;
}
QtVariantProperty *Configuration::addBoolProperty(QString name, bool value, bool locked) {
QtVariantProperty *variantitem = m_OZWvariantManager->addProperty(QVariant::Bool, name);
variantitem->setValue(value);
variantitem->setBold(settings.contains("openzwave/"+name));
variantitem->setEnabled(!locked);
this->m_variantToProperty.insert(name, variantitem);
return variantitem;
}
QtVariantProperty *Configuration::addIntProperty(QString name, int value, bool locked) {
QtVariantProperty *variantitem = m_OZWvariantManager->addProperty(QVariant::Int, name);
variantitem->setValue(value);
variantitem->setBold(settings.contains("openzwave/"+name));
variantitem->setEnabled(!locked);
this->m_variantToProperty.insert(name, variantitem);
return variantitem;
}
QtProperty *Configuration::addEnumProperty(QString name, QStringList options, int selected, bool readonly) {
QtProperty *enumitem = m_OZWenumManager->addProperty(name);
m_OZWenumManager->setEnumNames(enumitem, options);
m_OZWenumManager->setValue(enumitem, selected);
enumitem->setBold(settings.contains("openzwave/"+name));
enumitem->setEnabled(!readonly);
this->m_variantToProperty.insert(name, enumitem);
return enumitem;
}

View file

@ -22,12 +22,24 @@ public:
~Configuration();
void saveConfiguration();
private:
QtVariantProperty *addStringProperty(QString name, QString value, bool readonly);
QtVariantProperty *addBoolProperty(QString name, bool value, bool readonly);
QtVariantProperty *addIntProperty(QString name, int value, bool readonly);
QtProperty *addEnumProperty(QString name, QStringList options, int selected, bool readonly);
private:
Ui::Configuration *ui;
QSettings settings;
QtTreePropertyBrowser *m_variantEditor;
QtVariantPropertyManager *variantManager;
QtEnumPropertyManager *enumManager;
QtTreePropertyBrowser *m_OZWEditor;
QtVariantPropertyManager *m_OZWvariantManager;
QtEnumPropertyManager *m_OZWenumManager;
QtTreePropertyBrowser *m_NetworkEditor;
QtVariantPropertyManager *m_NetvariantManager;
QtEnumPropertyManager *m_NetenumManager;
QMap<QString, QtProperty *> m_variantToProperty;
QTOZWOptions *m_options;
};

View file

@ -17,7 +17,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="config_ozw">
<attribute name="title">
@ -29,6 +29,7 @@
<attribute name="title">
<string>Network</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</widget>
</item>