Console command

Add command for console !
This commit is contained in:
EIntemporel
2022-10-26 20:39:24 +02:00
parent 6ae4d2bbad
commit 3291f0d98c
4 changed files with 57 additions and 9 deletions

View File

@@ -9,6 +9,8 @@
#include <string_view> #include <string_view>
#include <QtCore/QSettings> #include <QtCore/QSettings>
#include <QtCore/QDir> #include <QtCore/QDir>
#include <qcommandlineparser.h>
#include <qcommandlineoption.h>
#include <QtWidgets/QApplication> #include <QtWidgets/QApplication>
#include <QtWidgets/QFileDialog> #include <QtWidgets/QFileDialog>
#include <QtWidgets/QMessageBox> #include <QtWidgets/QMessageBox>
@@ -17,6 +19,20 @@
#include <codecvt> #include <codecvt>
#include <string> #include <string>
QCommandLineParser* ProcessCommandLine()
{
QCommandLineParser* parser = new QCommandLineParser();
parser->setApplicationDescription("Help");
parser->addHelpOption();
parser->addVersionOption();
parser->addOptions({
{"disable-update", QApplication::translate("main", "Disable the check for update.")},
{"force-changelog", QApplication::translate("main", "Force displaying the changelog popup.")}
});
return parser;
}
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
Noggit::RegisterErrorHandlers(); Noggit::RegisterErrorHandlers();
@@ -28,8 +44,15 @@ int main(int argc, char *argv[])
q_application.setApplicationName ("Noggit"); q_application.setApplicationName ("Noggit");
q_application.setOrganizationName ("Noggit"); q_application.setOrganizationName ("Noggit");
auto parser = ProcessCommandLine();
parser->process(q_application);
std::vector<bool> Command;
Command.push_back(parser->isSet("disable-update"));
Command.push_back(parser->isSet("force-changelog"));
auto noggit = Noggit::Application::NoggitApplication::instance(); auto noggit = Noggit::Application::NoggitApplication::instance();
noggit->initalize(argc, argv); noggit->initalize(argc, argv, Command);
auto project_selection = new Noggit::Ui::Windows::NoggitProjectSelectionWindow(noggit); auto project_selection = new Noggit::Ui::Windows::NoggitProjectSelectionWindow(noggit);
project_selection->show(); project_selection->show();

View File

@@ -3,9 +3,10 @@
namespace Noggit::Application namespace Noggit::Application
{ {
void NoggitApplication::initalize(int argc, char* argv[]) void NoggitApplication::initalize(int argc, char* argv[], std::vector<bool> Parser)
{ {
InitLogging(); InitLogging();
Command = Parser;
//Locate application relative path //Locate application relative path
Log << "Noggit Studio - " << STRPRODUCTVER << std::endl; Log << "Noggit Studio - " << STRPRODUCTVER << std::endl;
@@ -132,4 +133,12 @@ namespace Noggit::Application
} }
LogError << "std::terminate: " << reason << std::endl; LogError << "std::terminate: " << reason << std::endl;
} }
bool NoggitApplication::GetCommand(int index)
{
if (index >= 0 && index < Command.size())
return Command[index];
return false;
}
} }

View File

@@ -48,9 +48,14 @@ namespace Noggit::Application {
BlizzardArchive::ClientData* clientData() { return _client_data.get(); } BlizzardArchive::ClientData* clientData() { return _client_data.get(); }
void setClientData(std::shared_ptr<BlizzardArchive::ClientData> data) { _client_data = data; } void setClientData(std::shared_ptr<BlizzardArchive::ClientData> data) { _client_data = data; }
void initalize(int argc, char* argv[]); void initalize(int argc, char* argv[], std::vector<bool> Parser);
std::shared_ptr<Noggit::Application::NoggitApplicationConfiguration> getConfiguration(); std::shared_ptr<Noggit::Application::NoggitApplicationConfiguration> getConfiguration();
static void terminationHandler(); static void terminationHandler();
bool GetCommand(int index);
protected:
std::vector<bool> Command;
private: private:
NoggitApplication() = default; NoggitApplication() = default;

View File

@@ -129,13 +129,24 @@ NoggitProjectSelectionWindow::NoggitProjectSelectionWindow(Noggit::Application::
} }
); );
_updater = new Noggit::Ui::CUpdater(this); // disable-update
if (!_noggit_application->GetCommand(0))
{
_updater = new Noggit::Ui::CUpdater(this);
QObject::connect(_updater, &CUpdater::OpenUpdater, [=]() QObject::connect(_updater, &CUpdater::OpenUpdater, [=]()
{ {
_updater->setModal(true); _updater->setModal(true);
_updater->show(); _updater->show();
}); });
}
// force-changelog
if (_noggit_application->GetCommand(1))
{
}
} }
void NoggitProjectSelectionWindow::handleContextMenuProjectListItemDelete(std::string const& project_path) void NoggitProjectSelectionWindow::handleContextMenuProjectListItemDelete(std::string const& project_path)