summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-06-16 21:30:24 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2020-06-16 21:30:24 +0200
commit8c410aff33395daf607ae8a1c62b8be70943ba4d (patch)
tree12838e90319d44d319ddea4274ae36033d5713dc
parent331fcad9f351d5dba53397d5b9b12bea43536ce3 (diff)
Clean notification of userInterfaceInitialized between MainWindow and OrganizerCore.
-rw-r--r--src/iuserinterface.h3
-rw-r--r--src/mainwindow.cpp5
-rw-r--r--src/mainwindow.h7
-rw-r--r--src/organizercore.cpp8
-rw-r--r--src/organizercore.h2
-rw-r--r--src/processrunner.cpp4
6 files changed, 18 insertions, 11 deletions
diff --git a/src/iuserinterface.h b/src/iuserinterface.h
index aa48194f..cce89070 100644
--- a/src/iuserinterface.h
+++ b/src/iuserinterface.h
@@ -7,6 +7,7 @@
#include <ipluginmodpage.h>
#include <delayedfilewriter.h>
#include <QMenu>
+#include <QMainWindow>
class IUserInterface
@@ -30,7 +31,7 @@ public:
virtual MOBase::DelayedFileWriterBase &archivesWriter() = 0;
- virtual QWidget* qtWidget() = 0;
+ virtual QMainWindow* mainWindow() = 0;
};
#endif // IUSERINTERFACE_H
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index b3e78121..91c906a1 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -502,6 +502,7 @@ MainWindow::MainWindow(Settings &settings
m_Tutorial.expose("espList", m_OrganizerCore.pluginList());
m_OrganizerCore.setUserInterface(this);
+ connect(this, &MainWindow::userInterfaceInitialized, &m_OrganizerCore, &OrganizerCore::userInterfaceInitialized);
for (const QString &fileName : m_PluginContainer.pluginFileNames()) {
installTranslator(QFileInfo(fileName).baseName());
}
@@ -1384,7 +1385,7 @@ void MainWindow::showEvent(QShowEvent *event)
updateProblemsButton();
// Notify plugin that the UI is initialized:
- m_OrganizerCore.userInterfaceInitialized(this);
+ emit userInterfaceInitialized();
}
}
@@ -2267,7 +2268,7 @@ void MainWindow::storeSettings()
s.interface().setFilterOptions(FilterWidget::options());
}
-QWidget* MainWindow::qtWidget()
+QMainWindow* MainWindow::mainWindow()
{
return this;
}
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 94626ff3..60f22770 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -118,7 +118,7 @@ public:
void processUpdates();
- QWidget* qtWidget() override;
+ QMainWindow* mainWindow() override;
bool addProfile();
void updateBSAList(const QStringList &defaultArchives, const QStringList &activeArchives);
@@ -175,6 +175,11 @@ signals:
*/
void styleChanged(const QString &styleFile);
+ /**
+ * @brief emitted when the user interface has been completely initialized
+ */
+ void userInterfaceInitialized();
+
void modListDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
diff --git a/src/organizercore.cpp b/src/organizercore.cpp
index 45207910..062369d6 100644
--- a/src/organizercore.cpp
+++ b/src/organizercore.cpp
@@ -233,7 +233,7 @@ void OrganizerCore::setUserInterface(IUserInterface* ui)
QWidget* w = nullptr;
if (m_UserInterface) {
- w = m_UserInterface->qtWidget();
+ w = m_UserInterface->mainWindow();
}
if (w) {
@@ -371,9 +371,9 @@ void OrganizerCore::downloadRequestedNXM(const QString &url)
}
}
-void OrganizerCore::userInterfaceInitialized(QMainWindow* mainWindow)
+void OrganizerCore::userInterfaceInitialized()
{
- m_UserInterfaceInitialized(mainWindow);
+ m_UserInterfaceInitialized(m_UserInterface->mainWindow());
}
void OrganizerCore::externalMessage(const QString &message)
@@ -1834,7 +1834,7 @@ bool OrganizerCore::beforeRun(
{
QWidget* w = nullptr;
if (m_UserInterface) {
- w = m_UserInterface->qtWidget();
+ w = m_UserInterface->mainWindow();
}
QMessageBox::warning(w, tr("Error"), e.what());
return false;
diff --git a/src/organizercore.h b/src/organizercore.h
index ae4a34c4..2588d332 100644
--- a/src/organizercore.h
+++ b/src/organizercore.h
@@ -365,7 +365,7 @@ public slots:
void requestDownload(const QUrl &url, QNetworkReply *reply);
void downloadRequestedNXM(const QString &url);
- void userInterfaceInitialized(QMainWindow *);
+ void userInterfaceInitialized();
bool nexusApi(bool retry = false);
diff --git a/src/processrunner.cpp b/src/processrunner.cpp
index 91443750..3ea40da2 100644
--- a/src/processrunner.cpp
+++ b/src/processrunner.cpp
@@ -520,7 +520,7 @@ ProcessRunner& ProcessRunner::setFromFile(
QWidget* parent, const QFileInfo& targetInfo)
{
if (!parent && m_ui) {
- parent = m_ui->qtWidget();
+ parent = m_ui->mainWindow();
}
// if the file is a .exe, start it directly; if it's anything else, ask the
@@ -767,7 +767,7 @@ std::optional<ProcessRunner::Results> ProcessRunner::runBinary()
}
// parent widget used for any dialog popped up while checking for things
- QWidget* parent = (m_ui ? m_ui->qtWidget() : nullptr);
+ QWidget* parent = (m_ui ? m_ui->mainWindow() : nullptr);
const auto* game = m_core.managedGame();
auto& settings = m_core.settings();