shared/idian: Make checked status of collapsible rows public

This commit is contained in:
Sebastian Beckmann
2025-05-29 21:05:32 +02:00
committed by Ryan Foster
parent 22ce393680
commit a9a506e984
2 changed files with 16 additions and 1 deletions

View File

@@ -179,11 +179,17 @@ public:
void setCheckable(bool check); void setCheckable(bool check);
bool isCheckable() { return checkable; } bool isCheckable() { return checkable; }
void setChecked(bool checked);
bool isChecked() { return toggleSwitch->isChecked(); };
virtual void setTitle(const QString &title) override; virtual void setTitle(const QString &title) override;
virtual void setDescription(const QString &description) override; virtual void setDescription(const QString &description) override;
void addRow(GenericRow *actionRow); void addRow(GenericRow *actionRow);
signals:
void toggled(bool checked);
private: private:
void toggleVisibility(); void toggleVisibility();

View File

@@ -300,7 +300,6 @@ CollapsibleRow::CollapsibleRow(QWidget *parent) : GenericRow(parent)
actionRow->setFocusProxy(expandButton); actionRow->setFocusProxy(expandButton);
connect(expandButton, &QAbstractButton::clicked, this, &CollapsibleRow::toggleVisibility); connect(expandButton, &QAbstractButton::clicked, this, &CollapsibleRow::toggleVisibility);
connect(actionRow, &Row::clicked, expandButton, &QAbstractButton::click); connect(actionRow, &Row::clicked, expandButton, &QAbstractButton::click);
} }
@@ -316,6 +315,7 @@ void CollapsibleRow::setCheckable(bool check)
actionRow->setSuffix(toggleSwitch, false); actionRow->setSuffix(toggleSwitch, false);
connect(toggleSwitch, &ToggleSwitch::toggled, propertyList, &PropertiesList::setEnabled); connect(toggleSwitch, &ToggleSwitch::toggled, propertyList, &PropertiesList::setEnabled);
connect(toggleSwitch, &ToggleSwitch::toggled, this, &CollapsibleRow::toggled);
} }
if (!checkable && toggleSwitch) { if (!checkable && toggleSwitch) {
@@ -326,6 +326,15 @@ void CollapsibleRow::setCheckable(bool check)
} }
} }
void CollapsibleRow::setChecked(bool checked)
{
if (!isCheckable()) {
throw std::logic_error("Called setChecked on a non-checkable row.");
}
toggleSwitch->setChecked(checked);
}
void CollapsibleRow::setTitle(const QString &name) void CollapsibleRow::setTitle(const QString &name)
{ {
actionRow->setTitle(name); actionRow->setTitle(name);