shared/idian: Make title and description common to all row types

This commit is contained in:
Sebastian Beckmann
2025-05-29 17:17:45 +02:00
committed by Ryan Foster
parent 795988bd69
commit 22ce393680
3 changed files with 24 additions and 14 deletions

View File

@@ -103,7 +103,8 @@ OBSIdianPlayground::OBSIdianPlayground(QWidget *parent) : QDialog(parent), ui(ne
tmp->setSuffix(new ToggleSwitch);
test->properties()->addRow(tmp);
CollapsibleRow *tmp2 = new CollapsibleRow("A Collapsible row!", this);
CollapsibleRow *tmp2 = new CollapsibleRow(this);
tmp2->setTitle("A Collapsible row!");
tmp2->setCheckable(true);
test->addRow(tmp2);

View File

@@ -40,6 +40,9 @@ class GenericRow : public QFrame, public Utils {
public:
GenericRow(QWidget *parent = nullptr) : QFrame(parent), Utils(this) { setAccessibleName(""); };
virtual void setTitle(const QString &title) = 0;
virtual void setDescription(const QString &description) = 0;
};
// Row widget containing one or more controls
@@ -61,8 +64,8 @@ public:
void setPrefixEnabled(bool enabled);
void setSuffixEnabled(bool enabled);
void setTitle(QString name);
void setDescription(QString description);
virtual void setTitle(const QString &title) override;
virtual void setDescription(const QString &description) override;
void showTitle(bool visible);
void showDescription(bool visible);
@@ -171,12 +174,14 @@ class CollapsibleRow : public GenericRow {
Q_OBJECT
public:
CollapsibleRow(const QString &name, QWidget *parent = nullptr);
CollapsibleRow(const QString &name, const QString &desc = nullptr, QWidget *parent = nullptr);
CollapsibleRow(QWidget *parent = nullptr);
void setCheckable(bool check);
bool isCheckable() { return checkable; }
virtual void setTitle(const QString &title) override;
virtual void setDescription(const QString &description) override;
void addRow(GenericRow *actionRow);
private:

View File

@@ -112,14 +112,14 @@ void Row::setSuffixEnabled(bool enabled)
suffix_->setVisible(enabled);
}
void Row::setTitle(QString name)
void Row::setTitle(const QString &name)
{
nameLabel->setText(name);
setAccessibleName(name);
showTitle(true);
}
void Row::setDescription(QString description)
void Row::setDescription(const QString &description)
{
descriptionLabel->setText(description);
setAccessibleDescription(description);
@@ -260,7 +260,7 @@ void ExpandButton::paintEvent(QPaintEvent *)
}
// Row variant that can be expanded to show another properties list
CollapsibleRow::CollapsibleRow(const QString &name, QWidget *parent) : GenericRow(parent)
CollapsibleRow::CollapsibleRow(QWidget *parent) : GenericRow(parent)
{
layout = new QVBoxLayout;
layout->setContentsMargins(0, 0, 0, 0);
@@ -274,7 +274,6 @@ CollapsibleRow::CollapsibleRow(const QString &name, QWidget *parent) : GenericRo
rowWidget->setLayout(rowLayout);
actionRow = new Row();
actionRow->setTitle(name);
actionRow->setChangeCursor(false);
rowLayout->addWidget(actionRow);
@@ -305,11 +304,6 @@ CollapsibleRow::CollapsibleRow(const QString &name, QWidget *parent) : GenericRo
connect(actionRow, &Row::clicked, expandButton, &QAbstractButton::click);
}
CollapsibleRow::CollapsibleRow(const QString &name, const QString &desc, QWidget *parent) : CollapsibleRow(name, parent)
{
actionRow->setDescription(desc);
}
void CollapsibleRow::setCheckable(bool check)
{
checkable = check;
@@ -332,6 +326,16 @@ void CollapsibleRow::setCheckable(bool check)
}
}
void CollapsibleRow::setTitle(const QString &name)
{
actionRow->setTitle(name);
}
void CollapsibleRow::setDescription(const QString &description)
{
actionRow->setDescription(description);
}
void CollapsibleRow::toggleVisibility()
{
bool visible = !propertyList->isVisible();