From 186a855cbd308b2ec09499d02a15ed816015d81a Mon Sep 17 00:00:00 2001 From: vorzelmir Date: Fri, 3 Apr 2020 23:05:03 +0300 Subject: [PATCH] vpuzzlecommandline header the plan --- src/app/puzzle/puzzle.pri | 6 ++- src/app/puzzle/vpuzzlecommandline.cpp | 13 ++++++ src/app/puzzle/vpuzzlecommandline.h | 57 +++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 src/app/puzzle/vpuzzlecommandline.cpp create mode 100644 src/app/puzzle/vpuzzlecommandline.h diff --git a/src/app/puzzle/puzzle.pri b/src/app/puzzle/puzzle.pri index 101fff4e3..c8db5a556 100644 --- a/src/app/puzzle/puzzle.pri +++ b/src/app/puzzle/puzzle.pri @@ -4,14 +4,16 @@ SOURCES += \ $$PWD/main.cpp \ $$PWD/puzzlemainwindow.cpp \ - $$PWD/puzzleapplication.cpp + $$PWD/puzzleapplication.cpp \ + $$PWD/vpuzzlecommandline.cpp *msvc*:SOURCES += $$PWD/stable.cpp HEADERS += \ $$PWD/puzzlemainwindow.h \ $$PWD/stable.h \ - $$PWD/puzzleapplication.h + $$PWD/puzzleapplication.h \ + $$PWD/vpuzzlecommandline.h FORMS += \ $$PWD/puzzlemainwindow.ui diff --git a/src/app/puzzle/vpuzzlecommandline.cpp b/src/app/puzzle/vpuzzlecommandline.cpp new file mode 100644 index 000000000..681d04f32 --- /dev/null +++ b/src/app/puzzle/vpuzzlecommandline.cpp @@ -0,0 +1,13 @@ +#include "vpuzzlecommandline.h" + +VPuzzleCommandLine::VPuzzleCommandLine(): + parser(), + isGuiEnabled(false) +{ + parser.setApplicationDescription(tr("Valentina's manual layout editor.")); + parser.addHelpOption(); + parser.addVersionOption(); + parser.addPositionalArgument("filename", tr("The raw layout file.")); +} + + diff --git a/src/app/puzzle/vpuzzlecommandline.h b/src/app/puzzle/vpuzzlecommandline.h new file mode 100644 index 000000000..a5148f666 --- /dev/null +++ b/src/app/puzzle/vpuzzlecommandline.h @@ -0,0 +1,57 @@ +#ifndef VPUZZLECOMMANDLINE_H +#define VPUZZLECOMMANDLINE_H + +#include +#include +#include +#include +#include + +class VPuzzleCommandLine: public QObject +{ + Q_OBJECT +public: + virtual ~VPuzzleCommandLine() = default; + + /** + * @brief if user enabled export from cmd + */ + bool IsExportEnabled() const; + /** + * @brief the base name of layout file or empty string if not + */ + QString OptionBaseName() const; + /** + * @brief if user enabled test mode from cmd + */ + bool IsTestModeEnabled() const; + /** + * @brief if gui enabled or not + */ + bool IsGuiEnabled() const; + /** + * @brief the file name which should be loaded + */ + QString OptionFileName() const; +protected: + VPuzzleCommandLine(); + /** + * @brief create the single instance of the class inside puzzleapplication + */ + static std::shared_ptr Instance(const QCoreApplication &app); +private: + Q_DISABLE_COPY(VPuzzleCommandLine) + static std::shared_ptr instance; + QCommandLineParser parser; + bool isGuiEnabled; + + /** + * @brief add options to the QCommandLineParser that there are in the cmd can be + */ + void InitCommandLineOptions(); + bool IsOptionSet(const QString &option)const; + QString OptionValue(const QString &option) const; + QStringList OptionValues(const QString &option) const; +}; + +#endif // VPUZZLECOMMANDLINE_H