Skip to content

Commit 93fb8ab

Browse files
committed
make about dialog match qtfred styling
1 parent 409421a commit 93fb8ab

7 files changed

Lines changed: 108 additions & 70 deletions

File tree

qtfred/source_groups.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ add_file_folder("Source/Mission"
3838
add_file_folder("Source/Mission/Dialogs"
3939
src/mission/dialogs/AbstractDialogModel.cpp
4040
src/mission/dialogs/AbstractDialogModel.h
41+
src/mission/dialogs/AboutDialogModel.cpp
42+
src/mission/dialogs/AboutDialogModel.h
4143
src/mission/dialogs/AsteroidEditorDialogModel.cpp
4244
src/mission/dialogs/AsteroidEditorDialogModel.h
4345
src/mission/dialogs/BackgroundEditorDialogModel.h
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
//
2+
3+
#include "AboutDialogModel.h"
4+
5+
#include <project.h>
6+
#include <graphics/2d.h>
7+
8+
namespace fso::fred::dialogs {
9+
10+
AboutDialogModel::AboutDialogModel(QObject* parent, EditorViewport* viewport)
11+
: AbstractDialogModel(parent, viewport)
12+
{
13+
}
14+
15+
bool AboutDialogModel::apply()
16+
{
17+
return true;
18+
}
19+
20+
void AboutDialogModel::reject()
21+
{
22+
}
23+
24+
SCP_string AboutDialogModel::getVersionString() const
25+
{
26+
SCP_string graphicsAPI;
27+
switch (gr_screen.mode) {
28+
case GR_OPENGL:
29+
graphicsAPI = "OpenGL";
30+
break;
31+
case GR_VULKAN:
32+
graphicsAPI = "Vulkan";
33+
break;
34+
}
35+
36+
SCP_string result = "qtFRED - FreeSpace Editor, Version ";
37+
result += FS_VERSION_FULL;
38+
if (!graphicsAPI.empty()) {
39+
result += " ";
40+
result += graphicsAPI;
41+
}
42+
return result;
43+
}
44+
45+
} // namespace fso::fred::dialogs
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#pragma once
2+
3+
#include "AbstractDialogModel.h"
4+
5+
#include <globalincs/pstypes.h>
6+
7+
namespace fso::fred::dialogs {
8+
9+
class AboutDialogModel : public AbstractDialogModel {
10+
Q_OBJECT
11+
12+
public:
13+
AboutDialogModel(QObject* parent, EditorViewport* viewport);
14+
15+
bool apply() override;
16+
void reject() override;
17+
18+
SCP_string getVersionString() const;
19+
};
20+
21+
} // namespace fso::fred::dialogs

qtfred/src/ui/FredView.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1365,7 +1365,7 @@ void FredView::on_actionError_Checker_triggered(bool) {
13651365
fred->global_error_check();
13661366
}
13671367
void FredView::on_actionAbout_triggered(bool) {
1368-
auto dialog = new dialogs::AboutDialog(this);
1368+
auto dialog = new dialogs::AboutDialog(this, _viewport);
13691369
dialog->setAttribute(Qt::WA_DeleteOnClose);
13701370
dialog->show();
13711371
}

qtfred/src/ui/dialogs/AboutDialog.cpp

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -7,46 +7,32 @@
77

88
#include <QtGui/QDesktopServices>
99
#include <QtCore/QUrl>
10+
#include <QtWidgets/QApplication>
1011

11-
#include <project.h>
12-
#include <graphics/2d.h>
12+
namespace fso::fred::dialogs {
1313

14-
namespace fso {
15-
namespace fred {
16-
namespace dialogs {
17-
18-
AboutDialog::AboutDialog(QWidget* parent) : QDialog(parent), ui(new Ui::AboutDialog()) {
14+
AboutDialog::AboutDialog(QWidget* parent, EditorViewport* viewport)
15+
: QDialog(parent),
16+
ui(new Ui::AboutDialog()),
17+
_model(new AboutDialogModel(this, viewport))
18+
{
1919
ui->setupUi(this);
20-
21-
connect(ui->buttonReportBug, &QPushButton::pressed, this, &AboutDialog::onBugPressed);
22-
connect(ui->buttonVisitForums, &QPushButton::pressed, this, &AboutDialog::onForumsPressed);
23-
connect(ui->buttonAboutQt, &QPushButton::pressed, this, &AboutDialog::onAboutQtPressed);
24-
25-
QString graphicsAPI;
26-
switch(gr_screen.mode)
27-
{
28-
case GR_OPENGL:
29-
graphicsAPI = QString::fromUtf8("OpenGL");
30-
break;
31-
case GR_VULKAN:
32-
graphicsAPI = QString::fromUtf8("Vulkan");
33-
break;
34-
}
35-
36-
ui->labelVersion->setText(tr("qtFRED - FreeSpace Editor, Version %1 %2").arg(FS_VERSION_FULL, graphicsAPI));
37-
}
38-
AboutDialog::~AboutDialog() {
20+
ui->labelVersion->setText(QString::fromStdString(_model->getVersionString()));
3921
}
40-
void AboutDialog::onBugPressed() {
22+
23+
void AboutDialog::on_reportBugButton_clicked()
24+
{
4125
QDesktopServices::openUrl(QUrl("https://github.com/scp-fs2open/fs2open.github.com/issues", QUrl::TolerantMode));
4226
}
43-
void AboutDialog::onForumsPressed() {
27+
28+
void AboutDialog::on_visitForumsButton_clicked()
29+
{
4430
QDesktopServices::openUrl(QUrl("https://www.hard-light.net/forums/", QUrl::TolerantMode));
4531
}
46-
void AboutDialog::onAboutQtPressed() {
32+
33+
void AboutDialog::on_aboutQtButton_clicked()
34+
{
4735
QApplication::aboutQt();
4836
}
4937

50-
}
51-
}
52-
}
38+
} // namespace fso::fred::dialogs
Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
11
#pragma once
22

3+
#include <mission/EditorViewport.h>
4+
#include <mission/dialogs/AboutDialogModel.h>
5+
36
#include <QDialog>
47
#include <memory>
58

6-
namespace fso {
7-
namespace fred {
8-
namespace dialogs {
9+
namespace fso::fred::dialogs {
910

1011
namespace Ui {
1112
class AboutDialog;
1213
}
1314

14-
class AboutDialog: public QDialog {
15-
Q_OBJECT
15+
class AboutDialog : public QDialog {
16+
Q_OBJECT
17+
18+
public:
19+
explicit AboutDialog(QWidget* parent, EditorViewport* viewport);
20+
~AboutDialog() override = default;
1621

17-
public:
18-
explicit AboutDialog(QWidget* parent);
19-
~AboutDialog() override;
20-
private:
21-
void onBugPressed();
22-
void onForumsPressed();
23-
void onAboutQtPressed();
22+
private slots:
23+
void on_reportBugButton_clicked();
24+
void on_visitForumsButton_clicked();
25+
void on_aboutQtButton_clicked();
2426

27+
private:
2528
std::unique_ptr<Ui::AboutDialog> ui;
29+
std::unique_ptr<AboutDialogModel> _model;
2630
};
2731

28-
}
29-
}
30-
}
31-
32+
} // namespace fso::fred::dialogs

qtfred/ui/AboutDialog.ui

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -209,21 +209,21 @@
209209
</widget>
210210
</item>
211211
<item>
212-
<widget class="QPushButton" name="buttonReportBug">
212+
<widget class="QPushButton" name="reportBugButton">
213213
<property name="text">
214214
<string>Report a Bug</string>
215215
</property>
216216
</widget>
217217
</item>
218218
<item>
219-
<widget class="QPushButton" name="buttonVisitForums">
219+
<widget class="QPushButton" name="visitForumsButton">
220220
<property name="text">
221221
<string>Visit Forums</string>
222222
</property>
223223
</widget>
224224
</item>
225225
<item>
226-
<widget class="QPushButton" name="buttonAboutQt">
226+
<widget class="QPushButton" name="aboutQtButton">
227227
<property name="text">
228228
<string>About Qt</string>
229229
</property>
@@ -249,22 +249,5 @@
249249
<resources>
250250
<include location="../resources/resources.qrc"/>
251251
</resources>
252-
<connections>
253-
<connection>
254-
<sender>okBox</sender>
255-
<signal>accepted()</signal>
256-
<receiver>fso::fred::dialogs::AboutDialog</receiver>
257-
<slot>accept()</slot>
258-
<hints>
259-
<hint type="sourcelabel">
260-
<x>248</x>
261-
<y>254</y>
262-
</hint>
263-
<hint type="destinationlabel">
264-
<x>157</x>
265-
<y>274</y>
266-
</hint>
267-
</hints>
268-
</connection>
269-
</connections>
252+
<connections/>
270253
</ui>

0 commit comments

Comments
 (0)