mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 19:10:06 +00:00
Commit line settings changes on apply
This commit is contained in:
parent
8212d24d34
commit
6b0aaea773
5 changed files with 53 additions and 0 deletions
|
|
@ -68,6 +68,34 @@ void SettingsCategory::SetDefaults()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SettingsCategory::Commit()
|
||||||
|
{
|
||||||
|
bool committed = false;
|
||||||
|
|
||||||
|
// Commit subcategory arrays
|
||||||
|
for (auto& subcategoryArray : p->subcategoryArrays_)
|
||||||
|
{
|
||||||
|
for (auto& subcategory : subcategoryArray.second)
|
||||||
|
{
|
||||||
|
committed |= subcategory->Commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit subcategories
|
||||||
|
for (auto& subcategory : p->subcategories_)
|
||||||
|
{
|
||||||
|
committed |= subcategory->Commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Commit variables
|
||||||
|
for (auto& variable : p->variables_)
|
||||||
|
{
|
||||||
|
committed |= variable->Commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
return committed;
|
||||||
|
}
|
||||||
|
|
||||||
bool SettingsCategory::ReadJson(const boost::json::object& json)
|
bool SettingsCategory::ReadJson(const boost::json::object& json)
|
||||||
{
|
{
|
||||||
bool validated = true;
|
bool validated = true;
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,15 @@ public:
|
||||||
*/
|
*/
|
||||||
void SetDefaults();
|
void SetDefaults();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the current value of all variables to the staged
|
||||||
|
* value.
|
||||||
|
*
|
||||||
|
* @return true if any staged value was committed, false if no staged values
|
||||||
|
* are present.
|
||||||
|
*/
|
||||||
|
bool Commit();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reads the variables from the JSON object.
|
* Reads the variables from the JSON object.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -248,6 +248,8 @@ void AlertPaletteSettingsWidget::Impl::AddPhenomenonLine(
|
||||||
layout->addWidget(lineLabel, row, 1);
|
layout->addWidget(lineLabel, row, 1);
|
||||||
layout->addWidget(toolButton, row, 2);
|
layout->addWidget(toolButton, row, 2);
|
||||||
|
|
||||||
|
self_->AddSettingsCategory(&lineSettings);
|
||||||
|
|
||||||
connect(
|
connect(
|
||||||
toolButton,
|
toolButton,
|
||||||
&QAbstractButton::clicked,
|
&QAbstractButton::clicked,
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ public:
|
||||||
explicit Impl() {}
|
explicit Impl() {}
|
||||||
~Impl() = default;
|
~Impl() = default;
|
||||||
|
|
||||||
|
std::vector<settings::SettingsCategory*> categories_;
|
||||||
std::vector<settings::SettingsInterfaceBase*> settings_;
|
std::vector<settings::SettingsInterfaceBase*> settings_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -29,6 +30,12 @@ SettingsPageWidget::SettingsPageWidget(QWidget* parent) :
|
||||||
|
|
||||||
SettingsPageWidget::~SettingsPageWidget() = default;
|
SettingsPageWidget::~SettingsPageWidget() = default;
|
||||||
|
|
||||||
|
void SettingsPageWidget::AddSettingsCategory(
|
||||||
|
settings::SettingsCategory* category)
|
||||||
|
{
|
||||||
|
p->categories_.push_back(category);
|
||||||
|
}
|
||||||
|
|
||||||
void SettingsPageWidget::AddSettingsInterface(
|
void SettingsPageWidget::AddSettingsInterface(
|
||||||
settings::SettingsInterfaceBase* setting)
|
settings::SettingsInterfaceBase* setting)
|
||||||
{
|
{
|
||||||
|
|
@ -39,6 +46,11 @@ bool SettingsPageWidget::CommitChanges()
|
||||||
{
|
{
|
||||||
bool committed = false;
|
bool committed = false;
|
||||||
|
|
||||||
|
for (auto& category : p->categories_)
|
||||||
|
{
|
||||||
|
committed |= category->Commit();
|
||||||
|
}
|
||||||
|
|
||||||
for (auto& setting : p->settings_)
|
for (auto& setting : p->settings_)
|
||||||
{
|
{
|
||||||
committed |= setting->Commit();
|
committed |= setting->Commit();
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <scwx/qt/settings/settings_category.hpp>
|
||||||
#include <scwx/qt/settings/settings_interface_base.hpp>
|
#include <scwx/qt/settings/settings_interface_base.hpp>
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
|
|
@ -59,6 +60,7 @@ public:
|
||||||
void ResetToDefault();
|
void ResetToDefault();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void AddSettingsCategory(settings::SettingsCategory* category);
|
||||||
void AddSettingsInterface(settings::SettingsInterfaceBase* setting);
|
void AddSettingsInterface(settings::SettingsInterfaceBase* setting);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue