Migration of QtMvvm from github
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

65 lines
1.7 KiB

#include "samplecoreapp.h"
#include "sampleviewmodel.h"
#include "drawerviewmodel.h"
#include <QtCore/QLoggingCategory>
#include <QtCore/QCommandLineParser>
#include <QtMvvmCore/QtMvvmCoreVersion>
SampleCoreApp::SampleCoreApp(QObject *parent) :
CoreApp(parent),
_showDrawer(false)
{
QCoreApplication::setApplicationName(QStringLiteral("QtMvvmSample"));
QCoreApplication::setApplicationVersion(QStringLiteral(QTMVVMCORE_VERSION_STR));
QCoreApplication::setOrganizationName(QStringLiteral("Skycoder42"));
}
bool SampleCoreApp::showDrawer() const
{
return _showDrawer;
}
void SampleCoreApp::setShowDrawer(bool showDrawer)
{
if (_showDrawer == showDrawer)
return;
_showDrawer = showDrawer;
emit showDrawerChanged(_showDrawer);
}
void SampleCoreApp::performRegistrations()
{
Q_INIT_RESOURCE(sample_core);
QtMvvm::registerInterfaceConverter<IEventService>();
QLoggingCategory::setFilterRules(QStringLiteral("qtmvvm.debug=true"));
}
int SampleCoreApp::startApp(const QStringList &arguments)
{
QCommandLineParser parser;
parser.addVersionOption();
parser.addHelpOption();
parser.addOption({
{QStringLiteral("a"), QStringLiteral("active")},
QStringLiteral("Start with the active checkbox already checked")
});
parser.addPositionalArgument(QStringLiteral("names"),
QStringLiteral("A list of names, joined together as one string"),
QStringLiteral("[names...]"));
if(!autoParse(parser, arguments))
return EXIT_SUCCESS;
QVariantHash args;
args.insert(SampleViewModel::KeyActive, parser.isSet(QStringLiteral("active")));
args.insert(SampleViewModel::KeyNames, parser.positionalArguments());
show<SampleViewModel>(args);
if(_showDrawer)
show<DrawerViewModel>();
return EXIT_SUCCESS;
}