From a0dba0ea25f5a0316b47576c8e14e6fd7999f608 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Thu, 20 May 2021 17:10:43 +0300 Subject: [PATCH] Review class VPApplication. --- src/app/puzzle/vpapplication.cpp | 50 +++++++++++++++++--------------- src/app/puzzle/vpapplication.h | 14 ++++----- src/app/puzzle/vpmainwindow.cpp | 15 +++++----- src/app/tape/mapplication.h | 1 - 4 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/app/puzzle/vpapplication.cpp b/src/app/puzzle/vpapplication.cpp index ef5d0abcd..0c9e16407 100644 --- a/src/app/puzzle/vpapplication.cpp +++ b/src/app/puzzle/vpapplication.cpp @@ -61,7 +61,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con // writing a multithreaded application and the error happens on // a non-GUI thread, you'll have to queue the message to the GUI QCoreApplication *instance = QCoreApplication::instance(); - const bool isGuiThread = instance && (QThread::currentThread() == instance->thread()); + const bool isGuiThread = (instance != nullptr) && (QThread::currentThread() == instance->thread()); if (not isGuiThread) { @@ -199,7 +199,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con if (type == QtWarningMsg || type == QtCriticalMsg || type == QtFatalMsg) { - if (qApp->IsAppInGUIMode()) + if (VPApplication::VApp()->IsAppInGUIMode()) { if (topWinAllowsPop) { @@ -234,9 +234,7 @@ inline void noisyFailureMsgHandler(QtMsgType type, const QMessageLogContext &con //--------------------------------------------------------------------------------------------------------------------- VPApplication::VPApplication(int &argc, char **argv) - :VAbstractApplication(argc, argv), - mainWindows(), - localServer(nullptr) + :VAbstractApplication(argc, argv) { setApplicationDisplayName(VER_PRODUCTNAME_STR); setApplicationName(VER_INTERNALNAME_STR); @@ -264,7 +262,7 @@ VPApplication::~VPApplication() * @return value that is returned from the receiver's event handler. */ // reimplemented from QApplication so we can throw exceptions in slots -bool VPApplication::notify(QObject *receiver, QEvent *event) +auto VPApplication::notify(QObject *receiver, QEvent *event) -> bool { try { @@ -325,13 +323,13 @@ bool VPApplication::notify(QObject *receiver, QEvent *event) /** * @brief IsAppInGUIMode little hack that allow to have access to application state from VAbstractApplication class. */ -bool VPApplication::IsAppInGUIMode() const +auto VPApplication::IsAppInGUIMode() const -> bool { return CommandLine()->IsGuiEnabled(); } //--------------------------------------------------------------------------------------------------------------------- -VPMainWindow *VPApplication::MainWindow() +auto VPApplication::MainWindow()-> VPMainWindow * { Clean(); if (mainWindows.isEmpty()) @@ -344,7 +342,7 @@ VPMainWindow *VPApplication::MainWindow() } //--------------------------------------------------------------------------------------------------------------------- -QList VPApplication::MainWindows() +auto VPApplication::MainWindows() -> QList { Clean(); QList list; @@ -356,7 +354,7 @@ QList VPApplication::MainWindows() } //--------------------------------------------------------------------------------------------------------------------- -VPMainWindow *VPApplication::NewMainWindow(const VPCommandLinePtr &cmd) +auto VPApplication::NewMainWindow(const VPCommandLinePtr &cmd) -> VPMainWindow * { VPMainWindow *puzzle = new VPMainWindow(cmd); mainWindows.prepend(puzzle); @@ -399,7 +397,7 @@ void VPApplication::InitOptions() } //--------------------------------------------------------------------------------------------------------------------- -const VTranslateVars *VPApplication::TrVars() +auto VPApplication::TrVars() -> const VTranslateVars * { return nullptr; } @@ -412,7 +410,7 @@ void VPApplication::OpenSettings() } //--------------------------------------------------------------------------------------------------------------------- -VPSettings *VPApplication::PuzzleSettings() +auto VPApplication::PuzzleSettings() -> VPSettings * { SCASSERT(settings != nullptr) return qobject_cast(settings); @@ -421,7 +419,7 @@ VPSettings *VPApplication::PuzzleSettings() //--------------------------------------------------------------------------------------------------------------------- void VPApplication::ActivateDarkMode() { - VPSettings *settings = qApp->PuzzleSettings(); + VPSettings *settings = VPApplication::VApp()->PuzzleSettings(); if (settings->GetDarkMode()) { QFile f(":qdarkstyle/style.qss"); @@ -498,14 +496,14 @@ void VPApplication::ProcessArguments(const VPCommandLinePtr &cmd) cmd.get()->parser.showHelp(V_EX_USAGE); } - if (args.count() > 1 && rawLayouts.size() > 0) + if (args.count() > 1 && not rawLayouts.isEmpty()) { qCCritical(pApp, "%s\n", - qPrintable(tr("Import raw layout data does not support penning several layout files."))); + qPrintable(tr("Import raw layout data does not support openning several layout files."))); cmd.get()->parser.showHelp(V_EX_USAGE); } - for (auto &arg : args) + for (const auto &arg : args) { NewMainWindow(cmd); if (not MainWindow()->LoadFile(arg)) @@ -518,7 +516,7 @@ void VPApplication::ProcessArguments(const VPCommandLinePtr &cmd) continue; } - if (rawLayouts.size() > 0) + if (not rawLayouts.isEmpty()) { MainWindow()->ImportRawLayouts(rawLayouts); } @@ -533,7 +531,7 @@ void VPApplication::ProcessArguments(const VPCommandLinePtr &cmd) } NewMainWindow(cmd); - if (rawLayouts.size() > 0) + if (not rawLayouts.isEmpty()) { // MainWindow()->New(); // prepare layout settings MainWindow()->ImportRawLayouts(rawLayouts); @@ -553,7 +551,7 @@ void VPApplication::ProcessCMD() } //--------------------------------------------------------------------------------------------------------------------- -bool VPApplication::event(QEvent *e) +auto VPApplication::event(QEvent *e) -> bool { switch(e->type()) { @@ -561,12 +559,12 @@ bool VPApplication::event(QEvent *e) // Mac specific). case QEvent::FileOpen: { - QFileOpenEvent *fileOpenEvent = static_cast(e); + auto *fileOpenEvent = static_cast(e); const QString macFileOpen = fileOpenEvent->file(); if(not macFileOpen.isEmpty()) { VPMainWindow *mw = MainWindow(); - if (mw) + if (mw != nullptr) { mw->LoadFile(macFileOpen); // open file in existing window } @@ -639,8 +637,14 @@ void VPApplication::Clean() } } -//-------------------------------------------------------------------------------------------- -VPCommandLinePtr VPApplication::CommandLine() const +//--------------------------------------------------------------------------------------------------------------------- +auto VPApplication::CommandLine() -> VPCommandLinePtr { return VPCommandLine::instance; } + +//--------------------------------------------------------------------------------------------------------------------- +VPApplication *VPApplication::VApp() +{ + return qobject_cast(QCoreApplication::instance()); +} diff --git a/src/app/puzzle/vpapplication.h b/src/app/puzzle/vpapplication.h index bc0ca4b6e..5f3f3cc3a 100644 --- a/src/app/puzzle/vpapplication.h +++ b/src/app/puzzle/vpapplication.h @@ -35,15 +35,9 @@ #include -class VPApplication;// use in define class VPMainWindow; class QLocalServer; -#if defined(qApp) -#undef qApp -#endif -#define qApp (static_cast(VAbstractApplication::instance())) - enum class SocketConnection : bool {Client = false, Server = true}; class VPApplication : public VAbstractApplication @@ -70,7 +64,9 @@ public: void ParseCommandLine(const SocketConnection &connection, const QStringList &arguments); void ProcessArguments(const VPCommandLinePtr &cmd); - VPCommandLinePtr CommandLine() const; + + static VPCommandLinePtr CommandLine(); + static VPApplication *VApp(); public slots: void ProcessCMD(); @@ -86,8 +82,8 @@ private slots: private: Q_DISABLE_COPY(VPApplication) - QList > mainWindows; - QLocalServer *localServer; + QList > mainWindows{}; + QLocalServer *localServer{nullptr}; void Clean(); }; diff --git a/src/app/puzzle/vpmainwindow.cpp b/src/app/puzzle/vpmainwindow.cpp index 6fb68568d..66757cd8a 100644 --- a/src/app/puzzle/vpmainwindow.cpp +++ b/src/app/puzzle/vpmainwindow.cpp @@ -89,7 +89,7 @@ VPMainWindow::VPMainWindow(const VPCommandLinePtr &cmd, QWidget *parent) : ui->setupUi(this); // init the tile factory - m_tileFactory = new VPTileFactory(m_layout, qApp->Settings()); + m_tileFactory = new VPTileFactory(m_layout, VPApplication::VApp()->Settings()); m_tileFactory->refreshTileInfos(); InitMenuBar(); @@ -665,7 +665,7 @@ void VPMainWindow::SetCheckBoxValue(QCheckBox *checkbox, bool value) void VPMainWindow::ReadSettings() { qCDebug(pWindow, "Reading settings."); - const VPSettings *settings = qApp->PuzzleSettings(); + const VPSettings *settings = VPApplication::VApp()->PuzzleSettings(); if (settings->status() == QSettings::NoError) { @@ -691,7 +691,7 @@ void VPMainWindow::ReadSettings() //--------------------------------------------------------------------------------------------------------------------- void VPMainWindow::WriteSettings() { - VPSettings *settings = qApp->PuzzleSettings(); + VPSettings *settings = VPApplication::VApp()->PuzzleSettings(); settings->SetGeometry(saveGeometry()); settings->SetWindowState(saveState()); settings->SetToolbarsState(saveState(APP_VERSION)); @@ -876,7 +876,7 @@ void VPMainWindow::on_actionOpen_triggered() const QString filter(tr("Layout files") + QLatin1String(" (*.vlt)")); //Get list last open files - QStringList recentFiles = qApp->PuzzleSettings()->GetRecentFileList(); + QStringList recentFiles = VPApplication::VApp()->PuzzleSettings()->GetRecentFileList(); QString dir; if (recentFiles.isEmpty()) { @@ -914,7 +914,7 @@ void VPMainWindow::on_actionOpen_triggered() { recentFiles.removeLast(); } - qApp->PuzzleSettings()->SetRecentFileList(recentFiles); + VPApplication::VApp()->PuzzleSettings()->SetRecentFileList(recentFiles); // updates the properties with the loaded data SetPropertiesData(); @@ -942,7 +942,7 @@ void VPMainWindow::on_actionSaveAs_triggered() // extension .vlt, check for empty file names etc. //Get list last open files - QStringList recentFiles = qApp->PuzzleSettings()->GetRecentFileList(); + QStringList recentFiles = VPApplication::VApp()->PuzzleSettings()->GetRecentFileList(); QString dir; if (recentFiles.isEmpty()) { @@ -1374,7 +1374,8 @@ void VPMainWindow::on_pushButtonSheetExport_clicked() QPainter painter; painter.begin(&generator); painter.setRenderHint(QPainter::Antialiasing, true); - painter.setPen(QPen(Qt::black, qApp->Settings()->WidthHairLine(), Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin)); + painter.setPen(QPen(Qt::black, VPApplication::VApp()->Settings()->WidthHairLine(), Qt::SolidLine, Qt::RoundCap, + Qt::RoundJoin)); painter.setBrush ( QBrush ( Qt::NoBrush ) ); m_graphicsView->GetScene()->render(&painter, r, r, Qt::IgnoreAspectRatio); painter.end(); diff --git a/src/app/tape/mapplication.h b/src/app/tape/mapplication.h index ff73c78b1..2e7010618 100644 --- a/src/app/tape/mapplication.h +++ b/src/app/tape/mapplication.h @@ -35,7 +35,6 @@ #include "../vmisc/vabstractapplication.h" #include "dialogs/dialogmdatabase.h" -class MApplication;// use in define class TMainWindow; class QLocalServer;