BrowserApplication::BrowserApplication(int &argc, char **argv) : QApplication(argc, argv) , m_localServer(0) { QCoreApplication::setOrganizationName(QLatin1String("Qt")); QCoreApplication::setApplicationName(QLatin1String("demobrowser")); QCoreApplication::setApplicationVersion(QLatin1String("0.1")); #ifdef Q_WS_QWS // Use a different server name for QWS so we can run an X11 // browser and a QWS browser in parallel on the same machine for // debugging QString serverName = QCoreApplication::applicationName() + QLatin1String("_qws"); #else QString serverName = QCoreApplication::applicationName(); #endif QLocalSocket socket; socket.connectToServer(serverName); if (socket.waitForConnected(500)) { QTextStream stream(&socket); QStringList args = QCoreApplication::arguments(); if (args.count() > 1) stream << args.last(); else stream << QString(); stream.flush(); socket.waitForBytesWritten(); return; } #if defined(Q_WS_MAC) QApplication::setQuitOnLastWindowClosed(false); #else QApplication::setQuitOnLastWindowClosed(true); #endif m_localServer = new QLocalServer(this); connect(m_localServer, SIGNAL(newConnection()), this, SLOT(newLocalSocketConnection())); if (!m_localServer->listen(serverName)) { if (m_localServer->serverError() == QAbstractSocket::AddressInUseError && QFile::exists(m_localServer->serverName())) { QFile::remove(m_localServer->serverName()); m_localServer->listen(serverName); } } #ifndef QT_NO_OPENSSL if (!QSslSocket::supportsSsl()) { QMessageBox::information(0, "Demo Browser", "This system does not support OpenSSL. SSL websites will not be available."); } #endif QDesktopServices::setUrlHandler(QLatin1String("http"), this, "openUrl"); QString localSysName = QLocale::system().name(); installTranslator(QLatin1String("qt_") + localSysName); QSettings settings; settings.beginGroup(QLatin1String("sessions")); m_lastSession = settings.value(QLatin1String("lastSession")).toByteArray(); settings.endGroup(); #if defined(Q_WS_MAC) connect(this, SIGNAL(lastWindowClosed()), this, SLOT(lastWindowClosed())); #endif QTimer::singleShot(0, this, SLOT(postLaunch())); }
BrowserApplication::BrowserApplication(int &argc, char **argv) : QApplication(argc, argv) , m_localServer(0) { QCoreApplication::setOrganizationDomain(QLatin1String("arora-browser.org")); QCoreApplication::setApplicationName(QLatin1String("Arora")); QString version = QString("0.2 (Change: %1 %2)").arg(GITCHANGENUMBER).arg(GITVERSION); QCoreApplication::setApplicationVersion(version); #ifdef Q_WS_QWS // Use a different server name for QWS so we can run an X11 // browser and a QWS browser in parallel on the same machine for // debugging QString serverName = QCoreApplication::applicationName() + QLatin1String("_qws"); #else QString serverName = QCoreApplication::applicationName(); #endif QLocalSocket socket; socket.connectToServer(serverName); if (socket.waitForConnected(500)) { QTextStream stream(&socket); QStringList args = QCoreApplication::arguments(); if (args.count() > 1) stream << args.last(); else stream << QString(); stream.flush(); socket.waitForBytesWritten(); return; } #if defined(Q_WS_MAC) QApplication::setQuitOnLastWindowClosed(false); #else QApplication::setQuitOnLastWindowClosed(true); #endif m_localServer = new QLocalServer(this); connect(m_localServer, SIGNAL(newConnection()), this, SLOT(newLocalSocketConnection())); if (!m_localServer->listen(serverName)) { if (m_localServer->serverError() == QAbstractSocket::AddressInUseError && QFile::exists(m_localServer->serverName())) { QFile::remove(m_localServer->serverName()); m_localServer->listen(serverName); } } QDesktopServices::setUrlHandler(QLatin1String("http"), this, "openUrl"); QString localSysName = QLocale::system().name(); installTranslator(QLatin1String("qt_") + localSysName); installTranslator(dataDirectory() + QDir::separator() + "locale" + QDir::separator() + localSysName); QSettings settings; settings.beginGroup(QLatin1String("sessions")); m_lastSession = settings.value(QLatin1String("lastSession")).toByteArray(); settings.endGroup(); #if defined(Q_WS_MAC) connect(this, SIGNAL(lastWindowClosed()), this, SLOT(lastWindowClosed())); #endif QTimer::singleShot(0, this, SLOT(postLaunch())); }
GreeterApp::GreeterApp(int &argc, char **argv) : QGuiApplication(argc, argv) { // point instance to this self = this; // Parse arguments bool testing = false; if (arguments().contains(QStringLiteral("--test-mode"))) testing = true; // get socket name QString socket = parameter(arguments(), QStringLiteral("--socket"), QString()); // get theme path (fallback to internal theme) m_themePath = parameter(arguments(), QStringLiteral("--theme"), QString()); if (m_themePath.isEmpty()) m_themePath = QLatin1String("qrc:/theme"); // read theme metadata m_metadata = new ThemeMetadata(QStringLiteral("%1/metadata.desktop").arg(m_themePath)); // Translations // Components translation m_components_tranlator = new QTranslator(); if (m_components_tranlator->load(QLocale::system(), QString(), QString(), QStringLiteral(COMPONENTS_TRANSLATION_DIR))) installTranslator(m_components_tranlator); // Theme specific translation m_theme_translator = new QTranslator(); if (m_theme_translator->load(QLocale::system(), QString(), QString(), QStringLiteral("%1/%2/").arg(m_themePath, m_metadata->translationsDirectory()))) installTranslator(m_theme_translator); // get theme config file QString configFile = QStringLiteral("%1/%2").arg(m_themePath).arg(m_metadata->configFile()); // read theme config m_themeConfig = new ThemeConfig(configFile); // set default icon theme from greeter theme if (m_themeConfig->contains(QStringLiteral("iconTheme"))) QIcon::setThemeName(m_themeConfig->value(QStringLiteral("iconTheme")).toString()); // create models m_sessionModel = new SessionModel(); m_userModel = new UserModel(); m_proxy = new GreeterProxy(socket); m_keyboard = new KeyboardModel(); if(!testing && !m_proxy->isConnected()) { qCritical() << "Cannot connect to the daemon - is it running?"; exit(EXIT_FAILURE); } // Set numlock upon start if (m_keyboard->enabled()) { if (mainConfig.Numlock.get() == MainConfig::NUM_SET_ON) m_keyboard->setNumLockState(true); else if (mainConfig.Numlock.get() == MainConfig::NUM_SET_OFF) m_keyboard->setNumLockState(false); } m_proxy->setSessionModel(m_sessionModel); // create views QList<QScreen *> screens = primaryScreen()->virtualSiblings(); Q_FOREACH (QScreen *screen, screens) addViewForScreen(screen); // handle screens connect(this, &GreeterApp::screenAdded, this, &GreeterApp::addViewForScreen); connect(this, &GreeterApp::primaryScreenChanged, this, [this](QScreen *) { activatePrimary(); }); }
Application::Application(int &argc, char **argv) : SharedTools::QtSingleApplication(argc, argv), _tray(0), _sslErrorDialog(0), #if QT_VERSION >= 0x040700 _networkMgr(new QNetworkConfigurationManager(this)), #endif _contextMenu(0), _theme(Theme::instance()), _updateDetector(0), _showLogWindow(false), _logFlush(false), _helpOnly(false), _logBrowser(0) { setApplicationName( _theme->appName() ); setWindowIcon( _theme->applicationIcon() ); parseOptions(arguments()); setupLogBrowser(); //no need to waste time; if ( _helpOnly ) return; processEvents(); QTranslator *qtTranslator = new QTranslator(this); qtTranslator->load(QLatin1String("qt_") + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath)); installTranslator(qtTranslator); QTranslator *mirallTranslator = new QTranslator(this); #ifdef Q_OS_LINUX // FIXME - proper path! mirallTranslator->load(QLatin1String("mirall_") + QLocale::system().name(), QLatin1String("/usr/share/mirall/i18n/")); #endif #ifdef Q_OS_MAC mirallTranslator->load(QLatin1String("mirall_") + QLocale::system().name(), applicationDirPath()+QLatin1String("/../translations") ); // path defaults to app dir. #endif #ifdef Q_OS_WIN32 mirallTranslator->load(QLatin1String("mirall_") + QLocale::system().name(), applicationDirPath()); #endif installTranslator(mirallTranslator); connect( this, SIGNAL(messageReceived(QString)), SLOT(slotParseOptions(QString))); // create folder manager for sync folder management _folderMan = new FolderMan(this); connect( _folderMan, SIGNAL(folderSyncStateChange(QString)), this,SLOT(slotSyncStateChange(QString))); /* use a signal mapper to map the open requests to the alias names */ _folderOpenActionMapper = new QSignalMapper(this); connect(_folderOpenActionMapper, SIGNAL(mapped(const QString &)), this, SLOT(slotFolderOpenAction(const QString &))); setQuitOnLastWindowClosed(false); _folderWizard = new FolderWizard; _owncloudSetupWizard = new OwncloudSetupWizard( _folderMan, _theme, this ); connect( _owncloudSetupWizard, SIGNAL(ownCloudWizardDone(int)), SLOT(slotStartFolderSetup(int))); _statusDialog = new StatusDialog( _theme ); connect( _statusDialog, SIGNAL(addASync()), this, SLOT(slotAddFolder()) ); connect( _statusDialog, SIGNAL(removeFolderAlias( const QString&)), SLOT(slotRemoveFolder(const QString&))); connect( _statusDialog, SIGNAL(openLogBrowser()), this, SLOT(slotOpenLogBrowser())); connect( _statusDialog, SIGNAL(enableFolderAlias(QString,bool)), SLOT(slotEnableFolder(QString,bool))); connect( _statusDialog, SIGNAL(infoFolderAlias(const QString&)), SLOT(slotInfoFolder( const QString&))); connect( _statusDialog, SIGNAL(openFolderAlias(const QString&)), SLOT(slotFolderOpenAction(QString))); #if QT_VERSION >= 0x040700 qDebug() << "* Network is" << (_networkMgr->isOnline() ? "online" : "offline"); foreach (const QNetworkConfiguration& netCfg, _networkMgr->allConfigurations(QNetworkConfiguration::Active)) { //qDebug() << "Network:" << netCfg.identifier(); } #endif setupActions(); setupSystemTray(); setupProxy(); processEvents(); QObject::connect( this, SIGNAL(messageReceived(QString)), this, SLOT(slotOpenStatus()) ); QTimer::singleShot( 0, this, SLOT( slotStartFolderSetup() )); MirallConfigFile cfg; if( !cfg.ownCloudSkipUpdateCheck() ) { QTimer::singleShot( 3000, this, SLOT( slotStartUpdateDetector() )); } connect( ownCloudInfo::instance(), SIGNAL(sslFailed(QNetworkReply*, QList<QSslError>)), this,SLOT(slotSSLFailed(QNetworkReply*, QList<QSslError>))); qDebug() << "Network Location: " << NetworkLocation::currentLocation().encoded(); }
GreeterApp::GreeterApp(int &argc, char **argv) : QGuiApplication(argc, argv) { // point instance to this self = this; // Parse arguments bool testing = false; if (arguments().contains("--test-mode")) testing = true; // get socket name QString socket = parameter(arguments(), "--socket", ""); // get theme path QString themePath = parameter(arguments(), "--theme", ""); // create view m_view = new QQuickView(); m_view->setResizeMode(QQuickView::SizeRootObjectToView); m_view->engine()->addImportPath(IMPORTS_INSTALL_DIR); // read theme metadata m_metadata = new ThemeMetadata(QString("%1/metadata.desktop").arg(themePath)); // Translations // Components translation m_components_tranlator = new QTranslator(); if (m_components_tranlator->load(QLocale::system(), "", "", COMPONENTS_TRANSLATION_DIR)) installTranslator(m_components_tranlator); // Theme specific translation m_theme_translator = new QTranslator(); if (m_theme_translator->load(QLocale::system(), "", "", QString("%1/%2/").arg(themePath, m_metadata->translationsDirectory()))) installTranslator(m_theme_translator); // get theme config file QString configFile = QString("%1/%2").arg(themePath).arg(m_metadata->configFile()); // read theme config m_themeConfig = new ThemeConfig(configFile); // create models m_sessionModel = new SessionModel(); m_screenModel = new ScreenModel(); m_userModel = new UserModel(); m_proxy = new GreeterProxy(socket); m_keyboard = new KeyboardModel(); if(!testing && !m_proxy->isConnected()) { qCritical() << "Cannot connect to the daemon - is it running?"; exit(EXIT_FAILURE); } // Set numlock upon start if (m_keyboard->enabled()) { if (mainConfig.Numlock.get() == MainConfig::NUM_SET_ON) m_keyboard->setNumLockState(true); else if (mainConfig.Numlock.get() == MainConfig::NUM_SET_OFF) m_keyboard->setNumLockState(false); } m_proxy->setSessionModel(m_sessionModel); // connect proxy signals QObject::connect(m_proxy, SIGNAL(loginSucceeded()), m_view, SLOT(close())); // set context properties m_view->rootContext()->setContextProperty("sessionModel", m_sessionModel); m_view->rootContext()->setContextProperty("screenModel", m_screenModel); m_view->rootContext()->setContextProperty("userModel", m_userModel); m_view->rootContext()->setContextProperty("config", *m_themeConfig); m_view->rootContext()->setContextProperty("sddm", m_proxy); m_view->rootContext()->setContextProperty("keyboard", m_keyboard); // get theme main script QString mainScript = QString("%1/%2").arg(themePath).arg(m_metadata->mainScript()); // set main script as source m_view->setSource(QUrl::fromLocalFile(mainScript)); // connect screen update signals connect(m_screenModel, SIGNAL(primaryChanged()), this, SLOT(show())); show(); }
int Application::execute() { switch (m_execType) { case kExecType_Normal: case kExecType_ArgFile: { Q_INIT_RESOURCE(Resource); QTranslator translator; translator.load(":/root/Resources/lang/linguist_ja.qm"); installTranslator(&translator); MainWindow w; w.show(); if (!m_inputFile.isEmpty()) { w.fileOpen(m_inputFile); } return this->exec(); } case kExecType_OutputAsm: { EditData editData; { // 入力ファイル読み込み Anm2DXml data(false); QFile file(m_inputFile); if (!file.open(QFile::ReadOnly)) { qDebug() << trUtf8("ファイルオープン失敗[") << m_inputFile << "]"; print_usage(); return 1; } QDomDocument xml; xml.setContent(&file); data.setFilePath(m_inputFile); if (!data.makeFromFile(xml, editData)) { qDebug() << trUtf8("ファイル読み込み失敗[") << m_inputFile << "]:" << data.getErrorString(); print_usage(); return 1; } } { // 出力ファイル書き込み Anm2DAsm data(false); if (!data.makeFromEditData(editData)) { if (data.getErrorNo() != Anm2DBase::kErrorNo_Cancel) { qDebug() << trUtf8("コンバート失敗[") << m_outputFile << "]:" << data.getErrorString(); print_usage(); } return 1; } QFile file(m_outputFile); if (!file.open(QFile::WriteOnly)) { qDebug() << trUtf8("ファイル書き込み失敗[") << m_outputFile << "]:" << data.getErrorString(); print_usage(); return 1; } file.write(data.getData().toLatin1()); QString incFileName = m_outputFile; incFileName.replace(QString(".asm"), QString(".inc")); Anm2DAsm dataInc(false); if (!dataInc.makeFromEditData2Inc(editData, incFileName)) { if (dataInc.getErrorNo() != Anm2DBase::kErrorNo_Cancel) { qDebug() << trUtf8("コンバート失敗[") << incFileName << "]:" << data.getErrorString(); print_usage(); } return 1; } QFile fileInc(incFileName); if (!fileInc.open(QFile::WriteOnly)) { qDebug() << trUtf8("ファイル書き込み失敗[") << incFileName << "]:" << data.getErrorString(); return 1; } fileInc.write(dataInc.getData().toLatin1()); } } break; } return 0; }
void QDesigner::initialize() { // initialize the sub components QStringList files; QString resourceDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath); const QStringList args = arguments(); for (int i = 1; i < args.count(); ++i) { const QString argument = args.at(i); if (argument == QLatin1String("-server")) { m_server = new QDesignerServer(); printf("%d\n", m_server->serverPort()); fflush(stdout); } else if (argument == QLatin1String("-client")) { bool ok = true; if (i + 1 < args.count()) { const quint16 port = args.at(++i).toUShort(&ok); if (ok) m_client = new QDesignerClient(port, this); } } else if (argument == QLatin1String("-resourcedir")) { if (i + 1 < args.count()) { resourceDir = QFile::decodeName(args.at(++i).toLocal8Bit()); } else { // issue a warning } } else if (!files.contains(argument)) { files.append(argument); } } QTranslator *translator = new QTranslator(this); QTranslator *qtTranslator = new QTranslator(this); const QString localSysName = QLocale::system().name(); QString translatorFileName = QLatin1String("designer_"); translatorFileName += localSysName; translator->load(translatorFileName, resourceDir); translatorFileName = QLatin1String("qt_"); translatorFileName += localSysName; qtTranslator->load(translatorFileName, resourceDir); installTranslator(translator); installTranslator(qtTranslator); if (QLibraryInfo::licensedProducts() == QLatin1String("Console")) { QMessageBox::information(0, tr("Qt Designer"), tr("This application cannot be used for the Console edition of Qt")); QMetaObject::invokeMethod(this, "quit", Qt::QueuedConnection); return; } m_workbench = new QDesignerWorkbench(); emit initialized(); m_suppressNewFormShow = m_workbench->readInBackup(); foreach (QString file, files) { m_workbench->readInForm(file); }
void Application::initTranslation() { // // Определим язык перевода // const int language = DataStorageLayer::StorageFacade::settingsStorage()->value( "application/language", DataStorageLayer::SettingsStorage::ApplicationSettings) .toInt(); QString translationSuffix = QLocale::system().name(); translationSuffix.truncate(translationSuffix.lastIndexOf('_')); QString qtTranslationSuffix = translationSuffix; // // ... если не удалось определить локаль, используем англоязычный перевод // QLocale::Language currentLanguage = QLocale::AnyLanguage; if (translationSuffix.isEmpty()) { translationSuffix = "en"; currentLanguage = QLocale::English; } if (language == 0) { translationSuffix = "ru"; currentLanguage = QLocale::Russian; } else if (language == 1) { translationSuffix = "es"; currentLanguage = QLocale::Spanish; } else if (language == 2) { translationSuffix = "en"; currentLanguage = QLocale::English; } else if (language == 3) { translationSuffix = "fr"; currentLanguage = QLocale::French; } else if (language == 4) { translationSuffix = "kz"; qtTranslationSuffix = "ru"; currentLanguage = QLocale::Kazakh; } QLocale::setDefault(QLocale(currentLanguage)); // // Для отличных от английского, подключаем переводы самой Qt // if (translationSuffix != "en") { // // Подключим файл переводов Qt // QTranslator* qtTranslator = new QTranslator; qtTranslator->load(":/Translations/Translations/qt_" + qtTranslationSuffix + ".qm"); installTranslator(qtTranslator); // // Подключим дополнительный файл переводов Qt // QTranslator* qtBaseTranslator = new QTranslator; qtBaseTranslator->load(":/Translations/Translations/qtbase_" + qtTranslationSuffix + ".qm"); installTranslator(qtBaseTranslator); } // // Подключим файл переводов программы // QTranslator* appTranslator = new QTranslator; appTranslator->load(":/Translations/Translations/Scenarist_" + translationSuffix + ".qm"); installTranslator(appTranslator); }
Application::Application(int& argc, char** argv) : QApplication(argc, argv) { // Set organisation and application names setOrganizationName("sqlitebrowser"); setApplicationName("DB Browser for SQLite"); // Set character encoding to UTF8 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); // Load translations bool ok; QString name = Settings::getValue("General", "language").toString(); // First of all try to load the application translation file. m_translatorApp = new QTranslator(this); ok = m_translatorApp->load("sqlb_" + name, QCoreApplication::applicationDirPath() + "/translations"); // If failed then try to load .qm file from resources if (ok == false) { ok = m_translatorApp->load("sqlb_" + name, ":/translations"); } if (ok == true) { Settings::setValue("General", "language", name); installTranslator(m_translatorApp); // The application translation file has been found and loaded. // And now try to load a Qt translation file. // Search path: // 1) standard Qt translations directory; // 2) the application translations directory. m_translatorQt = new QTranslator(this); ok = m_translatorQt->load("qt_" + name, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); if (ok == false) ok = m_translatorQt->load("qt_" + name, "translations"); if (ok == true) installTranslator(m_translatorQt); } else { // Set the correct locale so that the program won't erroneously detect // a language change when the user toggles settings for the first time. // (it also prevents the program from always looking for a translation on launch) Settings::setValue("General", "language", "en_US"); } // Parse command line QString fileToOpen; QString tableToBrowse; QStringList sqlToExecute; m_dontShowMainWindow = false; for(int i=1;i<arguments().size();i++) { // Check next command line argument if(arguments().at(i) == "-h" || arguments().at(i) == "--help") { // Help qWarning() << qPrintable(tr("Usage: %1 [options] [db]\n").arg(argv[0])); qWarning() << qPrintable(tr("Possible command line arguments:")); qWarning() << qPrintable(tr(" -h, --help\t\tShow command line options")); qWarning() << qPrintable(tr(" -q, --quit\t\tExit application after running scripts")); qWarning() << qPrintable(tr(" -s, --sql [file]\tExecute this SQL file after opening the DB")); qWarning() << qPrintable(tr(" -t, --table [table]\tBrowse this table after opening the DB")); qWarning() << qPrintable(tr(" -v, --version\t\tDisplay the current version")); qWarning() << qPrintable(tr(" [file]\t\tOpen this SQLite database")); m_dontShowMainWindow = true; } else if(arguments().at(i) == "-v" || arguments().at(i) == "--version") { // Distinguish between high and low patch version numbers. High numbers as in x.y.99 indicate nightly builds or // beta releases. For these we want to include the build date. For the release versions we don't add the release // date in order to avoid confusion about what is more important, version number or build date, and about different // build dates for the same version. This also should help making release builds reproducible out of the box. #if PATCH_VERSION >= 99 QString build_date = QString(" (%1)").arg(__DATE__); #else QString build_date; #endif qWarning() << qPrintable(tr("This is DB Browser for SQLite version %1%2.").arg(APP_VERSION).arg(build_date)); m_dontShowMainWindow = true; } else if(arguments().at(i) == "-s" || arguments().at(i) == "--sql") { // Run SQL file: If file exists add it to list of scripts to execute if(++i >= arguments().size()) qWarning() << qPrintable(tr("The -s/--sql option requires an argument")); else if(!QFile::exists(arguments().at(i))) qWarning() << qPrintable(tr("The file %1 does not exist").arg(arguments().at(i))); else sqlToExecute.append(arguments().at(i)); } else if(arguments().at(i) == "-t" || arguments().at(i) == "--table") { if(++i >= arguments().size()) qWarning() << qPrintable(tr("The -t/--table option requires an argument")); else tableToBrowse = arguments().at(i); } else if(arguments().at(i) == "-q" || arguments().at(i) == "--quit") { m_dontShowMainWindow = true; } else { // Other: Check if it's a valid file name if(QFile::exists(arguments().at(i))) fileToOpen = arguments().at(i); else qWarning() << qPrintable(tr("Invalid option/non-existant file: %1").arg(arguments().at(i))); } } // Show main window m_mainWindow = new MainWindow(); m_mainWindow->show(); connect(this, SIGNAL(lastWindowClosed()), this, SLOT(quit())); // Open database if one was specified if(fileToOpen.size()) { if(m_mainWindow->fileOpen(fileToOpen)) { // If database could be opened run the SQL scripts foreach(const QString& f, sqlToExecute) { QFile file(f); if(file.open(QIODevice::ReadOnly)) { m_mainWindow->getDb().executeMultiSQL(file.readAll(), false, true); file.close(); } } if(!sqlToExecute.isEmpty()) m_mainWindow->refresh(); // Jump to table if the -t/--table parameter was set if(!tableToBrowse.isEmpty()) m_mainWindow->switchToBrowseDataTab(tableToBrowse); }
Application::Application(int& argc, char** argv) : QApplication(argc, argv) { // Set organisation and application names setOrganizationName("sqlitebrowser"); // Set character encoding to UTF8 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QTextCodec *codec =QTextCodec::codecForName("UTF-8"); const char * str = "整治模式库"; QString strtitle=codec->toUnicode(str); setApplicationName(strtitle); #if QT_VERSION < 0x050000 QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); #endif // Load translations bool ok; QString name = PreferencesDialog::getSettingsValue("General", "language").toString(); // First of all try to load the application translation file. m_translatorApp = new QTranslator(this); ok = m_translatorApp->load("sqlb_" + name, QCoreApplication::applicationDirPath() + "/translations"); // If failed then try to load .qm file from resources if (ok == false) { ok = m_translatorApp->load("sqlb_" + name, ":/translations"); } if (ok == true) { PreferencesDialog::setSettingsValue("General", "language", name); installTranslator(m_translatorApp); // The application translation file has been found and loaded. // And now try to load a Qt translation file. // Search path: // 1) standard Qt translations directory; // 2) the application translations directory. m_translatorQt = new QTranslator(this); ok = m_translatorQt->load("qt_" + name, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); if (ok == false) ok = m_translatorQt->load("qt_" + name, "translations"); if (ok == true) installTranslator(m_translatorQt); } else { // Set the correct locale so that the program won't erroneously detect // a language change when the user toggles settings for the first time. // (it also prevents the program from always looking for a translation on launch) PreferencesDialog::setSettingsValue("General", "language", "en_US"); } // Parse command line QString fileToOpen; QStringList sqlToExecute; m_dontShowMainWindow = false; for(int i=1;i<arguments().size();i++) { // Check next command line argument if(arguments().at(i) == "-h" || arguments().at(i) == "--help") { // Help qWarning() << qPrintable(tr("Usage: %1 [options] [db]\n").arg(argv[0])); qWarning() << qPrintable(tr("Possible command line arguments:")); qWarning() << qPrintable(tr(" -h, --help\t\tShow command line options")); qWarning() << qPrintable(tr(" -s, --sql [file]\tExecute this SQL file after opening the DB")); qWarning() << qPrintable(tr(" -q, --quit\t\tExit application after running scripts")); qWarning() << qPrintable(tr(" [file]\t\tOpen this SQLite database")); m_dontShowMainWindow = true; } else if(arguments().at(i) == "-s" || arguments().at(i) == "--sql") { // Run SQL file: If file exists add it to list of scripts to execute if(++i >= arguments().size()) qWarning() << qPrintable(tr("The -s/--sql option requires an argument")); else if(!QFile::exists(arguments().at(i))) qWarning() << qPrintable(tr("The file %1 does not exist").arg(arguments().at(i))); else sqlToExecute.append(arguments().at(i)); } else if(arguments().at(i) == "-q" || arguments().at(i) == "--quit") { m_dontShowMainWindow = true; } else { // Other: Check if it's a valid file name if(QFile::exists(arguments().at(i))) fileToOpen = arguments().at(i); else qWarning() << qPrintable(tr("Invalid option/non-existant file: %1").arg(arguments().at(i))); } } // Show main window m_mainWindow = new MainWindow(); m_mainWindow->show(); connect(this, SIGNAL(lastWindowClosed()), this, SLOT(quit())); // Open database if one was specified if(fileToOpen.size()) { if(m_mainWindow->fileOpen(fileToOpen)) { // If database could be opened run the SQL scripts foreach(const QString& f, sqlToExecute) { QFile file(f); if(file.open(QIODevice::ReadOnly)) { m_mainWindow->getDb()->executeMultiSQL(file.readAll(), false, true); file.close(); } } if(!sqlToExecute.isEmpty()) m_mainWindow->browseRefresh(); }
/*! Constructor. */ NmApplication::NmApplication(int &argc, char *argv[], Hb::ApplicationFlags flags) : HbApplication(argc,argv,flags), mMainWindow(NULL), mViewStack(NULL), mActiveViewId(NmUiViewNone), mUiEngine(NULL), mBackAction(NULL), mExtensionManager(NULL), mMbListModel(NULL), mServiceViewId(NmUiViewNone), mForegroundService(false), mEffects(NULL), mAttaManager(NULL), mSettingsViewLauncher(NULL), mViewReady(false), mQueryDialog(NULL), mBackButtonPressed(false), mApplicationHidden(false), mErrorNoteTimer(NULL), mActivation(NULL), mActivityStorage(NULL) { // Load the translation file. QTranslator *translator = new QTranslator(this); QString lang = QLocale::system().name(); QString appName = "mail_"; QString path = "Z:/resource/qt/translations/"; translator->load(appName + lang, path); installTranslator(translator); setApplicationName(hbTrId("txt_mail_title_mail")); mActivation = new AfActivation(this); mActivityStorage = new AfActivityStorage(this); quint64 accountId = 0; QString activateId = this->activateId(); if (mActivation->reason() == Af::ActivationReasonActivity && activateId.startsWith(NmActivityName) ) { QString accountIdString = activateId.mid(NmActivityName.length()); accountId = accountIdString.toULongLong(); } TRAP_IGNORE(mUiEngine = NmUiEngine::instance()); // Create network access manager and cache for application use. mNetManager = new NmViewerViewNetManager(*mUiEngine); QNetworkDiskCache *cache = new QNetworkDiskCache(); cache->setCacheDirectory( QDesktopServices::storageLocation(QDesktopServices::CacheLocation)); mNetManager->setCache(cache); createMainWindow(); // Attachment manager can be shared between viewer and editor. // The application class has the ownership. mAttaManager = new NmAttachmentManager(*mUiEngine); mSendServiceInterface = new NmSendServiceInterface(NmSendServiceName, NULL, *mUiEngine, this); mSendServiceInterface2 = new NmSendServiceInterface(emailFullServiceNameSend, NULL, *mUiEngine, this); mUriServiceInterface = new NmUriServiceInterface(NULL, *mUiEngine, this); mMailboxServiceInterface = new NmMailboxServiceInterface(NULL, *mUiEngine, this); mViewerServiceInterface = new NmViewerServiceInterface(NULL, this, *mUiEngine); if(accountId != 0) { QVariant mailbox; mailbox.setValue(accountId); mMailboxServiceInterface->displayInboxByMailboxId(mailbox); } mEffects = new NmUiEffects(*mMainWindow); QObject::connect( mActivation, SIGNAL(activated(Af::ActivationReason, QString, QVariantHash)), this, SLOT(activityActivated())); }
Application(int &argc, char **argv) : QApplication(argc, argv) { QDir dir(applicationDirPath()); #ifdef Q_OS_MAC dir.cdUp(); dir.cd("PlugIns"); dir.cd("qt"); #else dir.cd("lib"); dir.cd("qt5"); #endif addLibraryPath(dir.absolutePath()); setOrganizationName("Meltytech"); #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) setOrganizationDomain("shotcut.org"); setDesktopFileName("org.shotcut.Shotcut"); #else setOrganizationDomain("meltytech.com"); #endif setApplicationName("Shotcut"); setApplicationVersion(SHOTCUT_VERSION); setAttribute(Qt::AA_UseHighDpiPixmaps); setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); #if defined(Q_OS_MAC) setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Process command line options. QCommandLineParser parser; parser.addHelpOption(); parser.addVersionOption(); #ifndef Q_OS_WIN QCommandLineOption fullscreenOption("fullscreen", QCoreApplication::translate("main", "Fill the screen with the Shotcut window.")); parser.addOption(fullscreenOption); #endif QCommandLineOption noupgradeOption("noupgrade", QCoreApplication::translate("main", "Hide upgrade prompt and menu item.")); parser.addOption(noupgradeOption); QCommandLineOption gpuOption("gpu", QCoreApplication::translate("main", "Use GPU processing.")); parser.addOption(gpuOption); QCommandLineOption clearRecentOption("clear-recent", QCoreApplication::translate("main", "Clear Recent on Exit")); parser.addOption(clearRecentOption); QCommandLineOption appDataOption("appdata", QCoreApplication::translate("main", "The directory for app configuration and data."), QCoreApplication::translate("main", "directory")); parser.addOption(appDataOption); QCommandLineOption scaleOption("QT_SCALE_FACTOR", QCoreApplication::translate("main", "The scale factor for a high-DPI screen"), QCoreApplication::translate("main", "number")); parser.addOption(scaleOption); scaleOption = QCommandLineOption("QT_SCREEN_SCALE_FACTORS", QCoreApplication::translate("main", "A semicolon-separated list of scale factors for each screen"), QCoreApplication::translate("main", "list")); parser.addOption(scaleOption); parser.addPositionalArgument("[FILE]...", QCoreApplication::translate("main", "Zero or more files or folders to open")); parser.process(arguments()); #ifdef Q_OS_WIN isFullScreen = false; #else isFullScreen = parser.isSet(fullscreenOption); #endif setProperty("noupgrade", parser.isSet(noupgradeOption)); setProperty("clearRecent", parser.isSet(clearRecentOption)); if (!parser.value(appDataOption).isEmpty()) { appDirArg = parser.value(appDataOption); ShotcutSettings::setAppDataForSession(appDirArg); } if (parser.isSet(gpuOption)) Settings.setPlayerGPU(true); if (!parser.positionalArguments().isEmpty()) resourceArg = parser.positionalArguments(); // Startup logging. dir = Settings.appDataLocation(); if (!dir.exists()) dir.mkpath(dir.path()); const QString logFileName = dir.filePath("shotcut-log.txt"); QFile::remove(logFileName); FileAppender* fileAppender = new FileAppender(logFileName); fileAppender->setFormat("[%{type:-7}] <%{function}> %{message}\n"); cuteLogger->registerAppender(fileAppender); #ifndef NDEBUG // Only log to console in dev debug builds. ConsoleAppender* consoleAppender = new ConsoleAppender(); consoleAppender->setFormat(fileAppender->format()); cuteLogger->registerAppender(consoleAppender); mlt_log_set_level(MLT_LOG_VERBOSE); #else mlt_log_set_level(MLT_LOG_INFO); #endif mlt_log_set_callback(mlt_log_handler); cuteLogger->logToGlobalInstance("qml", true); // Log some basic info. LOG_INFO() << "Starting Shotcut version" << SHOTCUT_VERSION; #if defined (Q_OS_WIN) LOG_INFO() << "Windows version" << QSysInfo::windowsVersion(); #elif defined(Q_OS_MAC) LOG_INFO() << "macOS version" << QSysInfo::macVersion(); #else LOG_INFO() << "Linux version"; #endif LOG_INFO() << "number of logical cores =" << QThread::idealThreadCount(); LOG_INFO() << "locale =" << QLocale(); LOG_INFO() << "install dir =" << applicationDirPath(); LOG_INFO() << "device pixel ratio =" << devicePixelRatio(); Settings.log(); #if defined(Q_OS_WIN) if (Settings.playerGPU()) { QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL); } else if (Settings.drawMethod() >= Qt::AA_UseDesktopOpenGL && Settings.drawMethod() <= Qt::AA_UseSoftwareOpenGL) { QCoreApplication::setAttribute(Qt::ApplicationAttribute(Settings.drawMethod())); } #endif // Load translations QString locale = Settings.language(); dir = applicationDirPath(); #if defined(Q_OS_MAC) dir.cdUp(); dir.cd("Resources"); dir.cd("translations"); #elif defined(Q_OS_WIN) dir.cd("share"); dir.cd("translations"); #else dir.cdUp(); dir.cd("share"); dir.cd("shotcut"); dir.cd("translations"); #endif if (locale.startsWith("pt_")) locale = "pt"; else if (locale.startsWith("en_")) locale = "en"; if (qtTranslator.load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) installTranslator(&qtTranslator); else if (qtTranslator.load("qt_" + locale, dir.absolutePath())) installTranslator(&qtTranslator); if (qtBaseTranslator.load("qtbase_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) installTranslator(&qtBaseTranslator); else if (qtBaseTranslator.load("qtbase_" + locale, dir.absolutePath())) installTranslator(&qtBaseTranslator); if (shotcutTranslator.load("shotcut_" + Settings.language(), dir.absolutePath())) installTranslator(&shotcutTranslator); }
Application(int &argc, char **argv) : QApplication(argc, argv) { QDir dir(applicationDirPath()); dir.cd("lib"); dir.cd("qt5"); addLibraryPath(dir.absolutePath()); setOrganizationName("Meltytech"); setOrganizationDomain("meltytech.com"); setApplicationName("Shotcut"); setApplicationVersion(SHOTCUT_VERSION); setAttribute(Qt::AA_UseHighDpiPixmaps); #if defined(Q_OS_MAC) setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); setAttribute(Qt::AA_DontShowIconsInMenus); #endif // Startup logging. dir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); if (!dir.exists()) dir.mkpath(dir.path()); const QString logFileName = dir.filePath("shotcut-log.txt"); QFile::remove(logFileName); FileAppender* fileAppender = new FileAppender(logFileName); fileAppender->setFormat("[%-7l] <%C> %m\n"); Logger::registerAppender(fileAppender); #ifndef NDEBUG // Only log to console in dev debug builds. ConsoleAppender* consoleAppender = new ConsoleAppender(); consoleAppender->setFormat(fileAppender->format()); Logger::registerAppender(consoleAppender); mlt_log_set_level(MLT_LOG_VERBOSE); #else mlt_log_set_level(MLT_LOG_INFO); #endif mlt_log_set_callback(mlt_log_handler); // Log some basic info. LOG_INFO() << "Starting Shotcut version" << SHOTCUT_VERSION; #if defined (Q_OS_WIN) LOG_INFO() << "Windows version" << QSysInfo::windowsVersion(); #elif defined(Q_OS_MAC) LOG_INFO() << "OS X version" << QSysInfo::macVersion(); #else LOG_INFO() << "Linux version"; #endif LOG_INFO() << "number of logical cores =" << QThread::idealThreadCount(); LOG_INFO() << "locale =" << QLocale(); LOG_INFO() << "install dir =" << applicationDirPath(); // Load translations const QString locale = Settings.language(); QLocale::setDefault(QLocale(locale)); dir = applicationDirPath(); #if defined(Q_OS_MAC) dir.cdUp(); dir.cd("Resources"); dir.cd("translations"); #elif defined(Q_OS_WIN) dir.cd("share"); dir.cd("translations"); #else dir.cdUp(); dir.cd("share"); dir.cd("shotcut"); dir.cd("translations"); #endif if (qtTranslator.load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) installTranslator(&qtTranslator); else if (qtTranslator.load("qt_" + locale, dir.absolutePath())) installTranslator(&qtTranslator); if (qtBaseTranslator.load("qtbase_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) installTranslator(&qtBaseTranslator); else if (qtBaseTranslator.load("qtbase_" + locale, dir.absolutePath())) installTranslator(&qtBaseTranslator); if (shotcutTranslator.load("shotcut_" + locale, dir.absolutePath())) installTranslator(&shotcutTranslator); if (argc > 1) resourceArg = QString::fromUtf8(argv[1]); }
Application(int &argc, char **argv) : QApplication(argc, argv) { QDir dir(applicationDirPath()); dir.cd("lib"); dir.cd("qt5"); addLibraryPath(dir.absolutePath()); setOrganizationName("Meltytech"); setOrganizationDomain("meltytech.com"); setApplicationName("Shotcut"); setApplicationVersion(SHOTCUT_VERSION); setAttribute(Qt::AA_UseHighDpiPixmaps); setAttribute(Qt::AA_DontCreateNativeWidgetSiblings); #if defined(Q_OS_MAC) setAttribute(Qt::AA_DontShowIconsInMenus); #endif #if defined(Q_OS_WIN) if (Settings.playerGPU()) { QCoreApplication::setAttribute(Qt::AA_UseDesktopOpenGL); } else if (Settings.drawMethod() >= Qt::AA_UseDesktopOpenGL && Settings.drawMethod() <= Qt::AA_UseSoftwareOpenGL) { QCoreApplication::setAttribute(Qt::ApplicationAttribute(Settings.drawMethod())); } #endif // Startup logging. dir = QStandardPaths::standardLocations(QStandardPaths::DataLocation).first(); if (!dir.exists()) dir.mkpath(dir.path()); const QString logFileName = dir.filePath("shotcut-log.txt"); QFile::remove(logFileName); FileAppender* fileAppender = new FileAppender(logFileName); fileAppender->setFormat("[%-7l] <%C> %m\n"); Logger::registerAppender(fileAppender); #ifndef NDEBUG // Only log to console in dev debug builds. ConsoleAppender* consoleAppender = new ConsoleAppender(); consoleAppender->setFormat(fileAppender->format()); Logger::registerAppender(consoleAppender); mlt_log_set_level(MLT_LOG_VERBOSE); #else mlt_log_set_level(MLT_LOG_INFO); #endif mlt_log_set_callback(mlt_log_handler); // Log some basic info. LOG_INFO() << "Starting Shotcut version" << SHOTCUT_VERSION; #if defined (Q_OS_WIN) LOG_INFO() << "Windows version" << QSysInfo::windowsVersion(); #elif defined(Q_OS_MAC) LOG_INFO() << "OS X version" << QSysInfo::macVersion(); #else LOG_INFO() << "Linux version"; #endif LOG_INFO() << "number of logical cores =" << QThread::idealThreadCount(); LOG_INFO() << "locale =" << QLocale(); LOG_INFO() << "install dir =" << applicationDirPath(); // Load translations QString locale = Settings.language(); dir = applicationDirPath(); #if defined(Q_OS_MAC) dir.cdUp(); dir.cd("Resources"); dir.cd("translations"); #elif defined(Q_OS_WIN) dir.cd("share"); dir.cd("translations"); #else dir.cdUp(); dir.cd("share"); dir.cd("shotcut"); dir.cd("translations"); #endif if (locale.startsWith("pt_")) locale = "pt"; if (qtTranslator.load("qt_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) installTranslator(&qtTranslator); else if (qtTranslator.load("qt_" + locale, dir.absolutePath())) installTranslator(&qtTranslator); if (qtBaseTranslator.load("qtbase_" + locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) installTranslator(&qtBaseTranslator); else if (qtBaseTranslator.load("qtbase_" + locale, dir.absolutePath())) installTranslator(&qtBaseTranslator); if (shotcutTranslator.load("shotcut_" + Settings.language(), dir.absolutePath())) installTranslator(&shotcutTranslator); QCommandLineParser parser; parser.addHelpOption(); parser.addVersionOption(); QCommandLineOption fullscreenOption("fullscreen", QCoreApplication::translate("main", "Fill the screen with the Shotcut window.")); parser.addOption(fullscreenOption); QCommandLineOption gpuOption("gpu", QCoreApplication::translate("main", "Use GPU processing.")); parser.addOption(gpuOption); parser.addPositionalArgument("resource", QCoreApplication::translate("main", "A file to open.")); parser.process(arguments()); isFullScreen = parser.isSet(fullscreenOption); if (parser.isSet(gpuOption)) Settings.setPlayerGPU(true); if (!parser.positionalArguments().isEmpty()) resourceArg = parser.positionalArguments().first(); }
DevApp::DevApp(int argc, char **argv) : QApplication(argc, argv) { // #if 0 // Setup global app style #ifdef Q_WS_WIN setStyle("plastique"); setPalette(style()->standardPalette()); #endif #endif // Setup app stuffs needed for QSettings use setApplicationName("DevQt"); setOrganizationName("FullMetalCoder"); setOrganizationDomain("http://devqt.berlios.de/"); // Setup splash screen scr = DevSplash::Instance(); // Setup Locale Language scr->showMessage("Initializing langage...", Qt::AlignLeft | Qt::AlignBottom, Qt::white); QTranslator *translator = new QTranslator(this); QString lang = QLocale::system().name(); translator->load(lang, QFileInfo(*argv).path()+"/translations/"); installTranslator(translator); // Get back app settings scr->showMessage("Getting back settings...", Qt::AlignLeft | Qt::AlignBottom, Qt::white); set = DEV_SETTINGS; // TODO : // I had to do this ouside of DevSettings constructor because, for an // unknown reason, diego decided to drop the QPointer<DevSettings> stuff // Thus, calling either setDefault() or setCurrent() inside the constructor // caused a infinite recursion because the only alternative way of making // DevSettings and DevSettingsDialog communicate is the singleton way... if ( set->allKeys().isEmpty() ) // return 1 if settings object is empty { //if it's the first time DevQt is ran on that computer : //set default config dialog settings set->dlg->setDefault(); } else { //if DevQt has already been ran on that computer : //get back existing settings and update the config dialog as needed set->dlg->setCurrent(); } // Setup main window scr->showMessage("Initializing UI...", Qt::AlignLeft | Qt::AlignBottom, Qt::white); gui = DEV_GUI; gui->s->connection(); scr->showMessage("DevQt initialized.", Qt::AlignLeft | Qt::AlignBottom, Qt::white); scr->finish( gui ); gui->show(); }
void ScribusQApp::installTranslators(const QStringList & langs) { static QTranslator *transQt = 0; static QTranslator *trans = 0; if (transQt) { removeTranslator( transQt ); delete transQt; transQt=0; } if (trans) { removeTranslator( trans ); delete trans; trans=0; } transQt = new QTranslator(0); trans = new QTranslator(0); QString path(ScPaths::instance().translationDir()); bool loadedQt = false; bool loadedScribus = false; QString lang; for (QStringList::const_iterator it = langs.constBegin(); it != langs.constEnd() && !loadedScribus; ++it) { lang=(*it); if (lang == "en") { m_GUILang=lang; break; } else { //CB: This might need adjusting for qm files distribution locations if (transQt->load("qt_" + lang, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) loadedQt = true; if (trans->load(QString("scribus." + lang), path)) loadedScribus = true; if (!loadedScribus) { QString altLang(LanguageManager::instance()->getAlternativeAbbrevfromAbbrev(lang)); if (!altLang.isEmpty()) if (trans->load(QString("scribus." + altLang), path)) loadedScribus = true; } } } if (loadedQt) installTranslator(transQt); if (loadedScribus) { installTranslator(trans); m_GUILang=lang; } else if (lang == "en") m_GUILang=lang; /* CB TODO, currently disabled, because its broken broken broken path = ScPaths::instance().pluginDir(); QDir dir(path , "*.*", QDir::Name, QDir::Files | QDir::NoSymLinks); if (dir.exists() && (dir.count() != 0)) { for (uint i = 0; i < dir.count(); ++i) { QFileInfo file(path + dir[i]); if ((file.extension(false).toLower() == "qm") && (file.extension(true).toLower().left(5) == lang)) { trans = new QTranslator(0); trans->load(QString(path + dir[i]), "."); installTranslator(trans); } } }*/ }
HomeApplication::HomeApplication(int &argc, char **argv, const QString &qmlPath) : QGuiApplication(argc, argv) , _mainWindowInstance(0) , _qmlPath(qmlPath) , originalSigIntHandler(signal(SIGINT, quitSignalHandler)) , originalSigTermHandler(signal(SIGTERM, quitSignalHandler)) , updatesEnabled(true) { setApplicationName("Lipstick"); // TODO: autogenerate this from tags setApplicationVersion(VERSION); QTranslator *engineeringEnglish = new QTranslator(this); engineeringEnglish->load("lipstick_eng_en", "/usr/share/translations"); installTranslator(engineeringEnglish); QTranslator *translator = new QTranslator(this); translator->load(QLocale(), "lipstick", "-", "/usr/share/translations"); installTranslator(translator); // launch a timer for sending a dbus-signal upstart when basic construct is done QTimer::singleShot(0, this, SLOT(sendStartupNotifications())); // Initialize the QML engine qmlEngine = new QQmlEngine(this); // Initialize the notification manager NotificationManager::instance(); new NotificationFeedbackPlayer(new NotificationPreviewPresenter(this)); // Create screen lock logic - not parented to "this" since destruction happens too late in that case screenLock = new ScreenLock; LipstickSettings::instance()->setScreenLock(screenLock); new ScreenLockAdaptor(screenLock); deviceLock = new DeviceLock(this); new DeviceLockAdaptor(deviceLock); volumeControl = new VolumeControl; new BatteryNotifier(this); new DiskSpaceNotifier(this); usbModeSelector = new USBModeSelector(this); connect(usbModeSelector, SIGNAL(dialogShown()), screenLock, SLOT(unlockScreen())); shutdownScreen = new ShutdownScreen(this); connectionSelector = new ConnectionSelector(this); // MCE and usb-moded expect services to be registered on the system bus QDBusConnection systemBus = QDBusConnection::systemBus(); static const char *SYSTEM_DBUS_SERVICE = "org.nemomobile.lipstick"; if (!systemBus.registerService(SYSTEM_DBUS_SERVICE)) { qWarning("Unable to register D-Bus service %s: %s", SYSTEM_DBUS_SERVICE, systemBus.lastError().message().toUtf8().constData()); } new HomeApplicationAdaptor(this); static const char *LIPSTICK_DBUS_PATH = "/"; if (!systemBus.registerObject(LIPSTICK_DBUS_PATH, this)) { qWarning("Unable to register lipstick object at path %s: %s", LIPSTICK_DBUS_PATH, systemBus.lastError().message().toUtf8().constData()); } static const char *SCREENLOCK_DBUS_PATH = "/screenlock"; if (!systemBus.registerObject(SCREENLOCK_DBUS_PATH, screenLock)) { qWarning("Unable to register screen lock object at path %s: %s", SCREENLOCK_DBUS_PATH, systemBus.lastError().message().toUtf8().constData()); } static const char *DEVICELOCK_DBUS_PATH = "/devicelock"; if (!systemBus.registerObject(DEVICELOCK_DBUS_PATH, deviceLock)) { qWarning("Unable to register device lock object at path %s: %s", DEVICELOCK_DBUS_PATH, systemBus.lastError().message().toUtf8().constData()); } }