From 6460579fb69c6b42db42f47aa6b94972ee0c49dc Mon Sep 17 00:00:00 2001 From: jp9000 Date: Mon, 28 Sep 2020 21:50:17 -0700 Subject: [PATCH] UI: Move "Add [transition]" to bottom of combo Instead of having "Add [transition]" at the top of the combo box blocking out the values, move the add values to the bottom of the box instead for slightly better UX. --- UI/window-basic-main-transitions.cpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/UI/window-basic-main-transitions.cpp b/UI/window-basic-main-transitions.cpp index 597691661..d0531ae55 100644 --- a/UI/window-basic-main-transitions.cpp +++ b/UI/window-basic-main-transitions.cpp @@ -50,8 +50,14 @@ static inline QString MakeQuickTransitionText(QuickTransition *qt) void OBSBasic::InitDefaultTransitions() { + struct AddTransitionVal { + QString id; + QString name; + }; + ui->transitions->blockSignals(true); std::vector transitions; + std::vector addables; size_t idx = 0; const char *id; @@ -73,22 +79,26 @@ void OBSBasic::InitDefaultTransitions() obs_source_release(tr); } else { - QString addString = QTStr("Add") + - QStringLiteral(": ") + - QT_UTF8(name); - ui->transitions->addItem( - addString, - QVariant::fromValue(QString(QT_UTF8(id)))); + AddTransitionVal val; + val.name = QTStr("Add") + QStringLiteral(": ") + + QT_UTF8(name); + val.id = QT_UTF8(id); + addables.push_back(val); } } - if (ui->transitions->count()) - ui->transitions->insertSeparator(ui->transitions->count()); - for (OBSSource &tr : transitions) { ui->transitions->addItem(QT_UTF8(obs_source_get_name(tr)), QVariant::fromValue(OBSSource(tr))); } + + if (addables.size()) + ui->transitions->insertSeparator(ui->transitions->count()); + + for (AddTransitionVal &val : addables) { + ui->transitions->addItem(val.name, QVariant::fromValue(val.id)); + } + ui->transitions->blockSignals(false); }