mirror of
https://github.com/Sani7/remote-ui.git
synced 2026-10-26 21:51:13 +01:00
UI
Checkbox update
This commit is contained in:
+15
-17
@@ -1,53 +1,51 @@
|
||||
#include "UI_checkbox.hpp"
|
||||
|
||||
UI_checkbox::UI_checkbox(QObject *parent) : UI_item(UI_CHECKBOX_TYPE, parent), m_selected()
|
||||
UI_checkbox::UI_checkbox(QObject *parent) : UI_item(UI_CHECKBOX_TYPE, parent), m_checked()
|
||||
{
|
||||
}
|
||||
|
||||
UI_checkbox::UI_checkbox(std::string text, Color fg_color, Color bg_color, QObject *parent)
|
||||
: UI_item(UI_CHECKBOX_TYPE, text, 0, fg_color, bg_color, parent), m_selected(false)
|
||||
: UI_item(UI_CHECKBOX_TYPE, text, 0, fg_color, bg_color, parent), m_checked(false)
|
||||
{
|
||||
}
|
||||
|
||||
UI_checkbox::UI_checkbox(const json &j, QObject *parent) : UI_item(UI_CHECKBOX_TYPE, parent), m_selected()
|
||||
UI_checkbox::UI_checkbox(const json &j, QObject *parent) : UI_item(UI_CHECKBOX_TYPE, parent), m_checked()
|
||||
{
|
||||
from_json(j);
|
||||
}
|
||||
|
||||
void UI_checkbox::toggle_selected()
|
||||
void UI_checkbox::clicked()
|
||||
{
|
||||
m_selected = !m_selected;
|
||||
m_checked = !m_checked;
|
||||
emit value_changed();
|
||||
emit on_change(m_text);
|
||||
emit on_change(m_checked);
|
||||
}
|
||||
|
||||
bool UI_checkbox::selected() const
|
||||
void UI_checkbox::set_state(bool state)
|
||||
{
|
||||
return m_selected;
|
||||
m_checked = state;
|
||||
emit value_changed();
|
||||
emit on_change(m_checked);
|
||||
}
|
||||
|
||||
std::string UI_checkbox::selected_text() const
|
||||
bool UI_checkbox::state() const
|
||||
{
|
||||
if (m_selected)
|
||||
{
|
||||
return m_text;
|
||||
}
|
||||
return "";
|
||||
return m_checked;
|
||||
}
|
||||
|
||||
void UI_checkbox::from_json(const json &j)
|
||||
{
|
||||
UI_item::from_json(j);
|
||||
|
||||
if (j.contains("selected"))
|
||||
if (j.contains("checked"))
|
||||
{
|
||||
m_selected = j["selected"];
|
||||
m_checked = j["checked"];
|
||||
}
|
||||
}
|
||||
|
||||
json UI_checkbox::to_json(size_t id) const
|
||||
{
|
||||
json j = UI_item::to_json(id);
|
||||
j["selected"] = m_selected;
|
||||
j["checked"] = m_checked;
|
||||
return j;
|
||||
}
|
||||
|
||||
@@ -12,16 +12,16 @@ class UI_checkbox : public UI_item
|
||||
UI_checkbox(std::string text, Color fg_color, Color bg_color, QObject *parent = nullptr);
|
||||
UI_checkbox(const json &j, QObject *parent = nullptr);
|
||||
|
||||
void toggle_selected();
|
||||
bool selected() const;
|
||||
std::string selected_text() const;
|
||||
void clicked();
|
||||
void set_state(bool state);
|
||||
bool state() const;
|
||||
|
||||
void from_json(const json &j) override;
|
||||
json to_json(size_t id) const override;
|
||||
|
||||
signals:
|
||||
void on_change(std::string);
|
||||
void on_change(bool);
|
||||
|
||||
private:
|
||||
bool m_selected;
|
||||
bool m_checked;
|
||||
};
|
||||
|
||||
@@ -8,5 +8,5 @@ TEST(UI_checkbox, to_from_json)
|
||||
EXPECT_EQ(checkbox.text(), checkbox2.text());
|
||||
EXPECT_EQ(checkbox.fg_color(), checkbox2.fg_color());
|
||||
EXPECT_EQ(checkbox.bg_color(), checkbox2.bg_color());
|
||||
EXPECT_EQ(checkbox.selected(), checkbox2.selected());
|
||||
EXPECT_EQ(checkbox.state(), checkbox2.state());
|
||||
}
|
||||
Reference in New Issue
Block a user