videodownloader/application/main.cpp

52 lines
1.7 KiB
C++
Raw Normal View History

2015-09-08 17:05:59 +02:00
#include "../cli/mainfeatures.h"
#include "../gui/initiate.h"
2015-04-22 19:32:04 +02:00
2015-12-08 08:41:06 +01:00
#include "resources/config.h"
2015-12-05 22:56:32 +01:00
#if defined(VIDEODOWNLOADER_GUI_QTWIDGETS) || defined(VIDEODOWNLOADER_GUI_QTQUICK)
2017-05-01 03:22:50 +02:00
#include <qtutilities/resources/qtconfigarguments.h>
2015-04-22 19:32:04 +02:00
#else
2017-05-01 03:22:50 +02:00
#include <c++utilities/application/fakeqtconfigarguments.h>
2015-04-22 19:32:04 +02:00
#endif
2015-09-08 17:05:59 +02:00
#include <c++utilities/application/commandlineutils.h>
2017-05-01 03:22:50 +02:00
#include <c++utilities/application/failure.h>
2015-07-27 23:31:31 +02:00
#include <qtutilities/resources/resources.h>
#include <QCoreApplication>
2015-04-22 19:32:04 +02:00
#include <iostream>
#include "main.h"
2015-04-22 19:32:04 +02:00
using namespace std;
using namespace std::placeholders;
2015-04-22 19:32:04 +02:00
using namespace ApplicationUtilities;
int main(int argc, char *argv[])
{
// setup argument parser
2015-08-25 19:17:32 +02:00
SET_APPLICATION_INFO;
2015-04-22 19:32:04 +02:00
ArgumentParser parser;
QT_CONFIG_ARGUMENTS qtConfigArgs;
HelpArgument helpArg(parser);
2016-06-14 00:54:13 +02:00
Argument noConfirmArg("no-confirm", 'n', "start downloading without confirmation");
noConfirmArg.setCombinable(true);
2016-06-14 00:54:13 +02:00
Argument urlsArg("urls", 'u', "specifies the URLs to download");
urlsArg.setRequiredValueCount(-1);
2017-05-01 03:22:50 +02:00
urlsArg.setValueNames({ "URL1", "URL2", "URL3" });
2016-06-14 00:54:13 +02:00
urlsArg.setImplicit(true);
Argument downloadArg("download", 'd', "downloads the specified data");
downloadArg.setDenotesOperation(true);
2017-05-01 03:22:50 +02:00
downloadArg.setSubArguments({ &urlsArg, &noConfirmArg });
2016-06-14 00:54:13 +02:00
downloadArg.setCallback(bind(Cli::download, argc, argv, _1, cref(urlsArg), cref(noConfirmArg)));
2017-05-01 03:22:50 +02:00
parser.setMainArguments({ &qtConfigArgs.qtWidgetsGuiArg(), &downloadArg, &helpArg });
// parse arguments
2017-09-29 17:22:34 +02:00
parser.parseArgsOrExit(argc, argv);
// set meta info for application
2017-05-01 03:22:50 +02:00
if (qtConfigArgs.areQtGuiArgsPresent()) {
2015-09-01 20:12:37 +02:00
return QtGui::runWidgetsGui(argc, argv, qtConfigArgs);
2015-04-22 19:32:04 +02:00
}
return 0;
}