Gui: Use SplitButton for config migration modal

This commit is contained in:
Kacper Donat
2025-11-26 23:36:28 +01:00
parent c500408a6d
commit 0de9ffc439
2 changed files with 22 additions and 29 deletions

View File

@@ -40,6 +40,8 @@
#include <cstdlib>
#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);
}

View File

@@ -102,32 +102,20 @@
</spacer>
</item>
<item>
<widget class="QPushButton" name="copyButton">
<property name="text">
<string>Copy Configuration (Recommended)</string>
</property>
<property name="default">
<bool>true</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="menuButton">
<property name="text">
<string notr="true">⋮</string>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextOnly</enum>
</property>
</widget>
<widget class="Gui::SplitButton" name="copyButton" native="true"/>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>Gui::SplitButton</class>
<extends>QWidget</extends>
<header>Gui/SplitButton.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>