Review class VPApplication.
This commit is contained in:
parent
e15b370ed4
commit
a0dba0ea25
|
@ -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<VPMainWindow *> VPApplication::MainWindows()
|
||||
auto VPApplication::MainWindows() -> QList<VPMainWindow *>
|
||||
{
|
||||
Clean();
|
||||
QList<VPMainWindow*> list;
|
||||
|
@ -356,7 +354,7 @@ QList<VPMainWindow *> 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<VPSettings *>(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<QFileOpenEvent *>(e);
|
||||
auto *fileOpenEvent = static_cast<QFileOpenEvent *>(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<VPApplication*>(QCoreApplication::instance());
|
||||
}
|
||||
|
|
|
@ -35,15 +35,9 @@
|
|||
|
||||
#include <memory>
|
||||
|
||||
class VPApplication;// use in define
|
||||
class VPMainWindow;
|
||||
class QLocalServer;
|
||||
|
||||
#if defined(qApp)
|
||||
#undef qApp
|
||||
#endif
|
||||
#define qApp (static_cast<VPApplication*>(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<QPointer<VPMainWindow> > mainWindows;
|
||||
QLocalServer *localServer;
|
||||
QList<QPointer<VPMainWindow> > mainWindows{};
|
||||
QLocalServer *localServer{nullptr};
|
||||
|
||||
void Clean();
|
||||
};
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -35,7 +35,6 @@
|
|||
#include "../vmisc/vabstractapplication.h"
|
||||
#include "dialogs/dialogmdatabase.h"
|
||||
|
||||
class MApplication;// use in define
|
||||
class TMainWindow;
|
||||
class QLocalServer;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user