From 294dadd77d546c1dd0dc04f97d7914e293e6f1be Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Wed, 26 Nov 2025 23:36:28 +0100 Subject: [PATCH] Gui: Use SplitButton for config migration modal --- src/Gui/Dialogs/DlgVersionMigrator.cpp | 21 +++++++++++------- src/Gui/Dialogs/DlgVersionMigrator.ui | 30 ++++++++------------------ 2 files changed, 22 insertions(+), 29 deletions(-) diff --git a/src/Gui/Dialogs/DlgVersionMigrator.cpp b/src/Gui/Dialogs/DlgVersionMigrator.cpp index 4b1955f82d..e632c30eb9 100644 --- a/src/Gui/Dialogs/DlgVersionMigrator.cpp +++ b/src/Gui/Dialogs/DlgVersionMigrator.cpp @@ -40,6 +40,8 @@ #include #include "DlgVersionMigrator.h" +#include "SplitButton.h" + #include "ui_DlgVersionMigrator.h" #include "../MainWindow.h" @@ -152,19 +154,22 @@ DlgVersionMigrator::DlgVersionMigrator(MainWindow* mw) #endif ui->sizeLabel->setText(calculatingSizeString); - connect(ui->copyButton, &QPushButton::clicked, this, &DlgVersionMigrator::migrate); + ui->copyButton->mainButton()->setDefault(true); + ui->copyButton->mainButton()->setAutoDefault(true); + + ui->copyButton->mainButton()->setText(tr("Copy Configuration (Recommended)")); + + connect(ui->copyButton, &SplitButton::defaultClicked, this, &DlgVersionMigrator::migrate); connect(ui->helpButton, &QPushButton::clicked, this, &DlgVersionMigrator::help); // Set up the menu actions for the two hidden options - auto* menu = new QMenu(ui->menuButton); + connect(ui->copyButton->mainButton(), &QPushButton::clicked, this, &DlgVersionMigrator::migrate); + + auto* menu = ui->copyButton->menu(); + QAction* share = menu->addAction(tr("Share configuration with previous version")); QAction* reset = menu->addAction(tr("Use a new default configuration")); - ui->menuButton->setMenu(menu); - ui->menuButton->setPopupMode(QToolButton::InstantPopup); - ui->menuButton->setStyleSheet( - QStringLiteral("QToolButton::menu-indicator { image: none; width: 0px; }") - ); - ui->menuButton->setProperty("flat", true); + connect(share, &QAction::triggered, this, &DlgVersionMigrator::share); connect(reset, &QAction::triggered, this, &DlgVersionMigrator::freshStart); } diff --git a/src/Gui/Dialogs/DlgVersionMigrator.ui b/src/Gui/Dialogs/DlgVersionMigrator.ui index 10e63e5776..17cb88154f 100644 --- a/src/Gui/Dialogs/DlgVersionMigrator.ui +++ b/src/Gui/Dialogs/DlgVersionMigrator.ui @@ -102,32 +102,20 @@ - - - Copy Configuration (Recommended) - - - true - - - false - - - - - - - - - - Qt::ToolButtonTextOnly - - + + + + Gui::SplitButton + QWidget +
Gui/SplitButton.h
+ 1 +
+