#include #include #include #include #include #include #include #include #include #include #include #include #include "argget.h" #include Q_DECLARE_METATYPE(CURLcode) Q_DECLARE_METATYPE(Bytestream) Q_DECLARE_METATYPE(PrintParameters) template static QObject* singletontype_provider(QQmlEngine *engine, QJSEngine *scriptEngine) { Q_UNUSED(engine) Q_UNUSED(scriptEngine) T *inst = T::instance(); return inst; } int main(int argc, char *argv[]) { bool prestart = false; std::string FileName; SwitchArg pretsartOpt(prestart, {"--prestart"}, "Run prestart"); PosArg fileArg(FileName, "File to print", true); ArgGet args({&pretsartOpt}, {&fileArg}); if(!args.get_args(argc, argv)) { return 1; } qRegisterMetaType(); qRegisterMetaType(); qRegisterMetaType(); // Turn on/off logging according to setting QLoggingCategory::defaultCategory()->setEnabled(QtMsgType::QtDebugMsg, Settings::instance()->debugLog()); QGuiApplication* app = SailfishApp::application(argc, argv); app->setOrganizationName(QStringLiteral("net.attah")); app->setApplicationName(QStringLiteral("seaprint")); app->setApplicationVersion(QStringLiteral(SEAPRINT_VERSION)); qmlRegisterSingletonType("seaprint.ippdiscovery", 1, 0, "IppDiscovery", singletontype_provider); qmlRegisterSingletonType("seaprint.mimer", 1, 0, "Mimer", singletontype_provider); qmlRegisterSingletonType("seaprint.convertchecker", 1, 0, "ConvertChecker", singletontype_provider); qmlRegisterSingletonType("seaprint.settings", 1, 0, "SeaPrintSettings", singletontype_provider); qmlRegisterSingletonType("seaprint.rangelistchecker", 1, 0, "RangeListChecker", singletontype_provider); qmlRegisterType("seaprint.ippprinter", 1, 0, "IppPrinter"); qmlRegisterType("seaprint.imageitem", 1, 0, "ImageItem"); qmlRegisterUncreatableType("seaprint.ippmsg", 1, 0, "IppMsg", "Only used to supply an enum type"); QQuickView* view = SailfishApp::createView(); view->engine()->addImportPath(SailfishApp::pathTo("qml/pages").toString()); view->setSource(SailfishApp::pathToMainQml()); DBusAdaptor dbus(view); if (!QDBusConnection::sessionBus().registerObject("/net/attah/seaprint", view)) qWarning() << "Could not register /net/attah/seaprint D-Bus object."; if (!QDBusConnection::sessionBus().registerService("net.attah.seaprint")) qWarning() << "Could not register net.attah.seaprint D-Bus service."; if(!FileName.empty()) { qDebug() << "Opening" << FileName.c_str(); QVariant fileNameVariant(FileName.c_str()); QMetaObject::invokeMethod(view->rootObject(), "openFile", Q_ARG(QVariant, fileNameVariant)); } if(!prestart) { view->show(); } return app->exec(); }