Skip to content

Commit

Permalink
Rename new namespace to avoid WinAPI name clash, review fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
IvanSavenko committed Dec 21, 2024
1 parent 5636b90 commit 23e46be
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 21 deletions.
5 changes: 3 additions & 2 deletions launcher/firstLaunch/firstlaunch_moc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "../../lib/texts/Languages.h"
#include "../../lib/VCMIDirs.h"
#include "../../lib/filesystem/Filesystem.h"
#include "../../vcmiqt/MessageBox.h"
#include "../helper.h"
#include "../languages.h"
#include "../innoextract.h"
Expand Down Expand Up @@ -122,15 +123,15 @@ void FirstLaunchView::on_pushButtonDataCopy_clicked()
#else
// iOS can't display modal dialogs when called directly on button press
// https://bugreports.qt.io/browse/QTBUG-98651
QTimer::singleShot(0, this, [this]{ copyHeroesData(); });
MessageBoxCustom::showDialog(this, [this]{ copyHeroesData(); });
#endif
}

void FirstLaunchView::on_pushButtonGogInstall_clicked()
{
// iOS can't display modal dialogs when called directly on button press
// https://bugreports.qt.io/browse/QTBUG-98651
QTimer::singleShot(0, this, &FirstLaunchView::extractGogData);
MessageBoxCustom::showDialog(this, [this]{extractGogData();});
}

void FirstLaunchView::enterSetup()
Expand Down
24 changes: 12 additions & 12 deletions launcher/startGame/StartGameTab.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ void StartGameTab::on_buttonImportFiles_clicked()

// iOS can't display modal dialogs when called directly on button press
// https://bugreports.qt.io/browse/QTBUG-98651
QTimer::singleShot(0, this, importFunctor);
MessageBoxCustom::showDialog(this, importFunctor);
}

void StartGameTab::on_buttonInstallTranslation_clicked()
Expand Down Expand Up @@ -270,7 +270,7 @@ void StartGameTab::on_buttonHelpImportFiles_clicked()
" - VCMI configuration files (.json)\n"
);

MessageBox::information(this, ui->buttonImportFiles->text(), message);
MessageBoxCustom::information(this, ui->buttonImportFiles->text(), message);
}

void StartGameTab::on_buttonInstallTranslationHelp_clicked()
Expand All @@ -280,7 +280,7 @@ void StartGameTab::on_buttonInstallTranslationHelp_clicked()
"VCMI provides translations of the game into various languages that you can use. "
"Use this option to automatically install such translation to your language."
);
MessageBox::information(this, ui->buttonInstallTranslation->text(), message);
MessageBoxCustom::information(this, ui->buttonInstallTranslation->text(), message);
}

void StartGameTab::on_buttonActivateTranslationHelp_clicked()
Expand All @@ -290,7 +290,7 @@ void StartGameTab::on_buttonActivateTranslationHelp_clicked()
"Use this option to enable it."
);

MessageBox::information(this, ui->buttonActivateTranslation->text(), message);
MessageBoxCustom::information(this, ui->buttonActivateTranslation->text(), message);
}

void StartGameTab::on_buttonUpdateModsHelp_clicked()
Expand All @@ -302,7 +302,7 @@ void StartGameTab::on_buttonUpdateModsHelp_clicked()
"You many want to postpone mod update until you finish any of your ongoing games."
);

MessageBox::information(this, ui->buttonUpdateMods->text(), message);
MessageBoxCustom::information(this, ui->buttonUpdateMods->text(), message);
}

void StartGameTab::on_buttonChroniclesHelp_clicked()
Expand All @@ -315,7 +315,7 @@ void StartGameTab::on_buttonChroniclesHelp_clicked()
"This will generate and install mod for VCMI that contains imported chronicles"
);

MessageBox::information(this, ui->labelChronicles->text(), message);
MessageBoxCustom::information(this, ui->labelChronicles->text(), message);
}

void StartGameTab::on_buttonMissingSoundtrackHelp_clicked()
Expand All @@ -326,7 +326,7 @@ void StartGameTab::on_buttonMissingSoundtrackHelp_clicked()
"To resolve this problem, please copy missing mp3 files from Heroes III to VCMI data files directory manually "
"or reinstall VCMI and re-import Heroes III data files"
);
MessageBox::information(this, ui->labelMissingSoundtrack->text(), message);
MessageBoxCustom::information(this, ui->labelMissingSoundtrack->text(), message);
}

void StartGameTab::on_buttonMissingVideoHelp_clicked()
Expand All @@ -337,7 +337,7 @@ void StartGameTab::on_buttonMissingVideoHelp_clicked()
"To resolve this problem, please copy VIDEO.VID file from Heroes III to VCMI data files directory manually "
"or reinstall VCMI and re-import Heroes III data files"
);
MessageBox::information(this, ui->labelMissingVideo->text(), message);
MessageBoxCustom::information(this, ui->labelMissingVideo->text(), message);
}

void StartGameTab::on_buttonMissingFilesHelp_clicked()
Expand All @@ -348,7 +348,7 @@ void StartGameTab::on_buttonMissingFilesHelp_clicked()
"To resolve this problem, please reinstall game and reimport data files using supported version of Heroes III. "
"VCMI requires Heroes III: Shadow of Death or Complete Edition to run, which you can get (for example) from gog.com"
);
MessageBox::information(this, ui->labelMissingFiles->text(), message);
MessageBoxCustom::information(this, ui->labelMissingFiles->text(), message);
}

void StartGameTab::on_buttonMissingCampaignsHelp_clicked()
Expand All @@ -359,7 +359,7 @@ void StartGameTab::on_buttonMissingCampaignsHelp_clicked()
"To resolve this problem, please copy missing data files from Heroes III to VCMI data files directory manually "
"or reinstall VCMI and re-import Heroes III data files"
);
MessageBox::information(this, ui->labelMissingCampaigns->text(), message);
MessageBoxCustom::information(this, ui->labelMissingCampaigns->text(), message);
}

void StartGameTab::on_buttonPresetExport_clicked()
Expand Down Expand Up @@ -391,7 +391,7 @@ void StartGameTab::on_buttonPresetNew_clicked()
refreshPresets();
}
};
MessageBox::showDialog(functor);
MessageBoxCustom::showDialog(this, functor);
}

void StartGameTab::on_buttonPresetDelete_clicked()
Expand Down Expand Up @@ -433,5 +433,5 @@ void StartGameTab::on_buttonPresetRename_clicked()
refreshPresets();
}
};
MessageBox::showDialog(functor);
MessageBoxCustom::showDialog(this, functor);
}
14 changes: 7 additions & 7 deletions vcmiqt/MessageBox.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,34 +15,34 @@
#include <QMessageBox>
#include <QTimer>

namespace MessageBox
namespace MessageBoxCustom
{
#ifdef VCMI_IOS
// iOS can't display modal dialogs when called directly on button press
// https://bugreports.qt.io/browse/QTBUG-98651

template<typename Functor>
void showDialog(const Functor & f)
inline void showDialog(QWidget *parent, const Functor & f)
{
QTimer::singleShot(0, this, f);
QTimer::singleShot(0, parent, f);
}

void information(QWidget *parent, const QString &title, const QString& text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton)
inline void information(QWidget *parent, const QString &title, const QString& text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton)
{
QTimer::singleShot(0, this, [=](){
QTimer::singleShot(0, parent, [=](){
QMessageBox::information(parent, title, text, buttons, defaultButton);
});
}

#else

template<typename Functor>
void showDialog(const Functor & f)
inline void showDialog(QWidget *parent, const Functor & f)
{
f();
}

void information(QWidget *parent, const QString &title, const QString& text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton)
inline void information(QWidget *parent, const QString &title, const QString& text, QMessageBox::StandardButtons buttons = QMessageBox::Ok, QMessageBox::StandardButton defaultButton = QMessageBox::NoButton)
{
QMessageBox::information(parent, title, text, buttons, defaultButton);
}
Expand Down

0 comments on commit 23e46be

Please sign in to comment.