fix: Make settings dialogs button order consistent (#84)

Currently on Linux most dialogs follow the following order of action
buttons: "OK", "Cancel" (left to right). However, several dialogs are
constructed explicitly and don't follow this convention.

This commit fixes this discrepancy.

Fixes: https://github.com/Palm1r/QodeAssist/issues/83
This commit is contained in:
Povilas Kanapickas 2025-03-03 20:12:01 +02:00 committed by GitHub
parent 0d22e1866e
commit 3b188740e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -42,6 +42,17 @@
namespace QodeAssist::Settings { namespace QodeAssist::Settings {
void addDialogButtons(QBoxLayout *layout, QAbstractButton *okButton, QAbstractButton *cancelButton)
{
#if defined(Q_OS_MACOS)
layout->addWidget(cancelButton);
layout->addWidget(okButton);
#else
layout->addWidget(okButton);
layout->addWidget(cancelButton);
#endif
}
GeneralSettings &generalSettings() GeneralSettings &generalSettings()
{ {
static GeneralSettings settings; static GeneralSettings settings;
@ -322,8 +333,7 @@ void GeneralSettings::showModelsNotSupportedDialog(Utils::StringAspect &aspect)
auto cancelButton = new QPushButton(TrConstants::CANCEL); auto cancelButton = new QPushButton(TrConstants::CANCEL);
connect(cancelButton, &QPushButton::clicked, &dialog, &QDialog::reject); connect(cancelButton, &QPushButton::clicked, &dialog, &QDialog::reject);
dialog.buttonLayout()->addWidget(cancelButton); addDialogButtons(dialog.buttonLayout(), okButton, cancelButton);
dialog.buttonLayout()->addWidget(okButton);
modelList->setFocus(); modelList->setFocus();
dialog.exec(); dialog.exec();
@ -362,8 +372,7 @@ void GeneralSettings::showUrlSelectionDialog(
auto cancelButton = new QPushButton(TrConstants::CANCEL); auto cancelButton = new QPushButton(TrConstants::CANCEL);
connect(cancelButton, &QPushButton::clicked, &dialog, &QDialog::reject); connect(cancelButton, &QPushButton::clicked, &dialog, &QDialog::reject);
dialog.buttonLayout()->addWidget(cancelButton); addDialogButtons(dialog.buttonLayout(), okButton, cancelButton);
dialog.buttonLayout()->addWidget(okButton);
urlList->setFocus(); urlList->setFocus();
dialog.exec(); dialog.exec();