int main(int argc, char *argv[]) { QApplication app(argc, argv); QCoreApplication::setOrganizationName("Event Music Machine"); QCoreApplication::setOrganizationDomain("eventmusicmachine.de"); QCoreApplication::setApplicationName("Event Music Machine"); QFile styleFile(":/qss/default.qss"); styleFile.open(QFile::ReadOnly); app.setStyleSheet(QString(styleFile.readAll())); styleFile.close(); QSettings::setDefaultFormat(QSettings::IniFormat); QSettings *settings = new QSettings(QSettings::IniFormat, QSettings::UserScope, "EMM", "emm"); PluginManager pluginManager; PluginManager::setPluginIID(QLatin1String("de.eventmusicmachine.EmmPlugin")); PluginManager::setSettings(settings); // Load const QStringList pluginPaths = getPluginPaths(); PluginManager::setPluginPaths(pluginPaths); const PluginSpecSet plugins = PluginManager::plugins(); PluginSpec *coreplugin = 0; foreach (PluginSpec *spec, plugins) { if (spec->name() == QLatin1String(corePluginName)) { coreplugin = spec; break; } } if (!coreplugin) { QString nativePaths = QDir::toNativeSeparators(pluginPaths.join(QLatin1Char(','))); const QString reason = QCoreApplication::translate("Application", "Could not find Core plugin in %1").arg(nativePaths); displayError(msgCoreLoadFailure(reason)); return 1; } if (!coreplugin->isEffectivelyEnabled()) { const QString reason = QCoreApplication::translate("Application", "Core plugin is disabled."); displayError(msgCoreLoadFailure(reason)); return 1; } if (coreplugin->hasError()) { displayError(msgCoreLoadFailure(coreplugin->errorString())); return 1; } PluginManager::loadPlugins(); if (coreplugin->hasError()) { displayError(msgCoreLoadFailure(coreplugin->errorString())); return 1; } // shutdown plugin manager on the exit QObject::connect(&app, &QCoreApplication::aboutToQuit, &pluginManager, &PluginManager::shutdown); return app.exec(); }
int main(int argc, char *argv[]) { QApplication app(argc, argv); PluginManager pluginManager; QStringList pluginPaths; PluginManager::setPluginPaths(pluginPaths<<"plugins"); const QList<PluginSpec*> plugins = PluginManager::plugins(); PluginSpec *coreplugin = 0; foreach(PluginSpec *spec, plugins) { if (spec->name() == QLatin1String("Core")) { coreplugin = spec; break; } } if (!coreplugin) { QString nativePaths = QDir::toNativeSeparators(pluginPaths.join(QLatin1String(","))); const QString reason = QCoreApplication::translate("Application", "Could not find 'Core.xml' in %1").arg(nativePaths); qCritical("%s", qPrintable(reason)); return 1; } if (coreplugin->hasError()) { qCritical("%s", qPrintable(coreplugin->errorString())); return 1; } qDebug("loading Plugins..."); PluginManager::loadPlugins(); if (coreplugin->hasError()) { qCritical("Error: %s", qPrintable(coreplugin->errorString())); return 1; } if (PluginManager::hasError()) { PluginErrorOverview *errorOverview = new PluginErrorOverview(QApplication::activeWindow()); errorOverview->setAttribute(Qt::WA_DeleteOnClose); errorOverview->setModal(true); errorOverview->show(); } QObject::connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit())); // shutdown plugin manager on the exit QObject::connect(&app, SIGNAL(aboutToQuit()), &pluginManager, SLOT(shutdown())); return app.exec(); }