void UpdateInfoPlugin::reactOnUpdaterOutput() { QDomDocument updatesDomDocument = d->checkUpdateInfoWatcher->result(); if (updatesDomDocument.isNull() || !updatesDomDocument.firstChildElement().hasChildNodes()) { // no updates are available startCheckTimer(60 * OneMinute); } else { //added the current almost finished task to the progressmanager d->updateInfoProgress = Core::ICore::instance()->progressManager()->addTask( d->lastCheckUpdateInfoTask, tr("Update"), QLatin1String("Update.GetInfo"), Core::ProgressManager::KeepOnFinish); d->updateInfoProgress->setKeepOnFinish(Core::FutureProgress::KeepOnFinish); d->progressUpdateInfoButton = new UpdateInfoButton(); //the old widget is deleted inside this function //and the current widget becomes a child of updateInfoProgress d->updateInfoProgress->setWidget(d->progressUpdateInfoButton); //d->progressUpdateInfoButton->setText(tr("Update")); //we have this information over the progressbar connect(d->progressUpdateInfoButton, SIGNAL(released()), this, SLOT(startUpdaterUiApplication())); } }
/*! Initializes the plugin. Returns true on success. Plugins want to register objects with the plugin manager here. \a errorMessage can be used to pass an error message to the plugin system, if there was any. */ bool UpdateInfoPlugin::initialize(const QStringList & /* arguments */, QString *errorMessage) { d->checkUpdateInfoWatcher = new QFutureWatcher<QDomDocument>(this); connect(d->checkUpdateInfoWatcher, SIGNAL(finished()), this, SLOT(reactOnUpdaterOutput())); QSettings *settings = Core::ICore::settings(); d->updaterProgram = settings->value(QLatin1String("Updater/Application")).toString(); d->updaterCheckOnlyArgument = settings->value(QLatin1String("Updater/CheckOnlyArgument")).toString(); d->updaterRunUiArgument = settings->value(QLatin1String("Updater/RunUiArgument")).toString(); if (d->updaterProgram.isEmpty()) { *errorMessage = tr("Could not determine location of maintenance tool. Please check " "your installation if you did not enable this plugin manually."); return false; } if (!QFile::exists(d->updaterProgram)) { *errorMessage = tr("Could not find maintenance tool at '%1'. Check your installation.") .arg(d->updaterProgram); return false; } Core::ActionContainer* const helpActionContainer = Core::ICore::actionManager()->actionContainer(Core::Constants::M_HELP); helpActionContainer->menu()->addAction(tr("Start Updater"), this, SLOT(startUpdaterUiApplication())); //wait some time before we want to have the first check startCheckTimer(OneMinute / 10); return true; }
void UpdateInfoPlugin::parseUpdates() { QDomDocument updatesDomDocument = d->checkUpdateInfoWatcher->result(); if (updatesDomDocument.isNull() || !updatesDomDocument.firstChildElement().hasChildNodes()) return; // add the finished task to the progress manager d->updateInfoProgress = ProgressManager::addTask(d->lastCheckUpdateInfoTask, tr("Updates " "available"), "Update.GetInfo", ProgressManager::KeepOnFinish); d->updateInfoProgress->setKeepOnFinish(FutureProgress::KeepOnFinish); d->progressUpdateInfoButton = new UpdateInfoButton(); d->updateInfoProgress->setWidget(d->progressUpdateInfoButton); connect(d->progressUpdateInfoButton, SIGNAL(released()), this, SLOT(startUpdaterUiApplication())); }
/*! Initializes the plugin. Returns true on success. Plugins want to register objects with the plugin manager here. \a errorMessage can be used to pass an error message to the plugin system, if there was any. */ bool UpdateInfoPlugin::initialize(const QStringList & /* arguments */, QString * /* errorMessage */) { d->checkUpdateInfoWatcher = new QFutureWatcher<QDomDocument>(this); connect(d->checkUpdateInfoWatcher, SIGNAL(finished()), this, SLOT(reactOnUpdaterOutput())); QSettings *settings = Core::ICore::instance()->settings(); d->updaterProgram = settings->value(QLatin1String("Updater/Application")).toString(); d->updaterCheckOnlyArgument = settings->value(QLatin1String("Updater/CheckOnlyArgument")).toString(); d->updaterRunUiArgument = settings->value(QLatin1String("Updater/RunUiArgument")).toString(); Core::ICore* const core = Core::ICore::instance(); Core::ActionManager* const actionManager = core->actionManager(); Core::ActionContainer* const helpActionContainer = actionManager->actionContainer(Core::Constants::M_HELP); helpActionContainer->menu()->addAction(tr("Start Updater"), this, SLOT(startUpdaterUiApplication())); //wait some time before we want to have the first check if (!d->updaterProgram.isEmpty() && QFile::exists(d->updaterProgram)) { startCheckTimer(OneMinute / 10); } return true; }
bool UpdateInfoPlugin::initialize(const QStringList & /* arguments */, QString *errorMessage) { loadSettings(); if (d->updaterProgram.isEmpty()) { *errorMessage = tr("Could not determine location of maintenance tool. Please check " "your installation if you did not enable this plugin manually."); return false; } if (!QFile::exists(d->updaterProgram)) { *errorMessage = tr("Could not find maintenance tool at '%1'. Check your installation.") .arg(d->updaterProgram); return false; } d->m_settingsPage = new SettingsPage(this); addAutoReleasedObject(d->m_settingsPage); ActionContainer *const container = ActionManager::actionContainer(Core::Constants::M_HELP); container->menu()->addAction(tr("Start Updater"), this, SLOT(startUpdaterUiApplication())); return true; }