Selaa lähdekoodia

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

Sebastian Beckmann 4 kuukautta sitten
vanhempi
sitoutus
22ce393680

+ 2 - 1
frontend/dialogs/OBSIdianPlayground.cpp

@@ -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);
 

+ 9 - 4
shared/qt/idian/include/Idian/Row.hpp

@@ -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:

+ 13 - 9
shared/qt/idian/widgets/Row.cpp

@@ -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();