summaryrefslogtreecommitdiffstats
path: root/installerbuilder/installerbase/tabcontroller.cpp
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@nokia.com>2011-11-28 17:09:11 +0100
committerKarsten Heimrich <karsten.heimrich@nokia.com>2011-11-28 19:47:41 +0100
commit4fcd529a845564be6a9d2b44f00b002f244f6bda (patch)
treeadcf1d54ddcd9fb594cbad0e975e1f153e25adae /installerbuilder/installerbase/tabcontroller.cpp
parent03414189fdfb5b24d081c8bf0cb9fe5f5da731a3 (diff)
Remove fetch and implement "lazy" fetch.
Now it feels better then to bring up the dialog and start the fetch instantly, the user now has the opportunity to edit the network settings first and on "Next" we fetch the tree. Change-Id: I1ebce333bf5157421f2b62afbe5630b0ec1e0134 Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'installerbuilder/installerbase/tabcontroller.cpp')
-rw-r--r--installerbuilder/installerbase/tabcontroller.cpp158
1 files changed, 3 insertions, 155 deletions
diff --git a/installerbuilder/installerbase/tabcontroller.cpp b/installerbuilder/installerbase/tabcontroller.cpp
index 5201fa6f6..f0fd306cf 100644
--- a/installerbuilder/installerbase/tabcontroller.cpp
+++ b/installerbuilder/installerbase/tabcontroller.cpp
@@ -36,11 +36,9 @@
#include "settingsdialog.h"
#include <common/utils.h>
-#include <component.h>
#include <packagemanagercore.h>
#include <QtCore/QTimer>
-
#include <QtScript/QScriptEngine>
using namespace QInstaller;
@@ -55,25 +53,18 @@ public:
~Private();
bool m_init;
- bool m_updatesFetched;
- bool m_allPackagesFetched;
- bool m_introPageConnected;
-
- QInstaller::PackageManagerGui *m_gui;
- QInstaller::PackageManagerCore *m_core;
-
QString m_controlScript;
QHash<QString, QString> m_params;
Settings m_settings;
bool m_networkSettingsChanged;
+
+ QInstaller::PackageManagerGui *m_gui;
+ QInstaller::PackageManagerCore *m_core;
};
TabController::Private::Private()
: m_init(false)
- , m_updatesFetched(false)
- , m_allPackagesFetched(false)
- , m_introPageConnected(false)
, m_gui(0)
, m_core(0)
, m_networkSettingsChanged(false)
@@ -138,153 +129,17 @@ int TabController::init()
engine->newQObject(this));
}
- IntroductionPageImpl *introPage =
- qobject_cast<IntroductionPageImpl*>(d->m_gui->page(PackageManagerCore::Introduction));
- connect(introPage, SIGNAL(initUpdater()), this, SLOT(initUpdater()));
- connect(introPage, SIGNAL(initUninstaller()), this, SLOT(initUninstaller()));
- connect(introPage, SIGNAL(initPackageManager()), this, SLOT(initPackageManager()));
-
connect(d->m_gui, SIGNAL(currentIdChanged(int)), this, SLOT(onCurrentIdChanged(int)));
connect(d->m_gui, SIGNAL(settingsButtonClicked()), this, SLOT(onSettingsButtonClicked()));
}
- d->m_updatesFetched = false;
- d->m_allPackagesFetched = false;
-
- if (d->m_core->isUpdater())
- return initUpdater();
-
- if (d->m_core->isUninstaller())
- return initUninstaller();
-
- return initPackageManager();
-}
-
-int TabController::initUpdater()
-{
- onCurrentIdChanged(d->m_gui->currentId());
- IntroductionPageImpl *introPage = introductionPage();
-
- introPage->setMessage(QString());
- introPage->setErrorMessage(QString());
- introPage->showAll();
- introPage->setComplete(false);
- introPage->setMaintenanceToolsEnabled(false);
-
- if (!d->m_introPageConnected) {
- d->m_introPageConnected = true;
- connect(d->m_core, SIGNAL(metaJobInfoMessage(QString)), introPage, SLOT(setMessage(QString)));
- }
-
d->m_gui->setWindowModality(Qt::WindowModal);
- d->m_gui->init(); // Initialize/ reset the ui.
d->m_gui->show();
- d->m_gui->setSettingsButtonEnabled(false);
-
- if (!d->m_updatesFetched) {
- d->m_updatesFetched = d->m_core->fetchRemotePackagesTree();
- if (!d->m_updatesFetched)
- introPage->setErrorMessage(d->m_core->error());
- }
- // Needs to be done after check repositories as only then the ui can handle hide of pages depending on
- // the components.
- d->m_gui->callControlScriptMethod(QLatin1String("UpdaterSelectedCallback"));
- d->m_gui->triggerControlScriptForCurrentPage();
-
- introPage->showMaintenanceTools();
- introPage->setMaintenanceToolsEnabled(true);
-
- if (d->m_updatesFetched) {
- if (d->m_core->updaterComponents().count() <= 0)
- introPage->setErrorMessage(tr("<b>No updates available.</b>"));
- else
- introPage->setComplete(true);
- }
- d->m_gui->setSettingsButtonEnabled(true);
-
- return d->m_core->status();
-}
-
-int TabController::initUninstaller()
-{
onCurrentIdChanged(d->m_gui->currentId());
- IntroductionPageImpl *introPage = introductionPage();
-
- introPage->setMessage(QString());
- introPage->setErrorMessage(QString());
- introPage->setComplete(true);
- introPage->showMaintenanceTools();
-
- d->m_gui->setWindowModality(Qt::WindowModal);
- d->m_gui->show();
-
return PackageManagerCore::Success;
}
-int TabController::initPackageManager()
-{
- onCurrentIdChanged(d->m_gui->currentId());
- IntroductionPageImpl *introPage = introductionPage();
-
- introPage->setMessage(QString());
- introPage->setErrorMessage(QString());
- introPage->setComplete(false);
- introPage->showMetaInfoUdate();
-
- if (d->m_core->isPackageManager()) {
- introPage->showAll();
- introPage->setMaintenanceToolsEnabled(false);
- }
-
- if (!d->m_introPageConnected) {
- d->m_introPageConnected = true;
- connect(d->m_core, SIGNAL(metaJobInfoMessage(QString)), introPage, SLOT(setMessage(QString)));
- }
-
- d->m_gui->setWindowModality(Qt::WindowModal);
- d->m_gui->init(); // Initialize/ reset the ui.
- d->m_gui->show();
- d->m_gui->setSettingsButtonEnabled(false);
-
- bool localPackagesTreeFetched = false;
- if (!d->m_allPackagesFetched) {
- // first try to fetch the server side packages tree
- d->m_allPackagesFetched = d->m_core->fetchRemotePackagesTree();
- if (!d->m_allPackagesFetched) {
- QString error = d->m_core->error();
- if (d->m_core->isPackageManager()) {
- // if that fails and we're in maintenance mode, try to fetch local installed tree
- localPackagesTreeFetched = d->m_core->fetchLocalPackagesTree();
- if (localPackagesTreeFetched) {
- // if that succeeded, adjust error message
- error = QLatin1String("<font color=\"red\">") + error + tr(" Only local package "
- "management available.") + QLatin1String("</font>");
- }
- }
- introPage->setErrorMessage(error);
- }
- }
-
- // Needs to be done after check repositories as only then the ui can handle hide of pages depending on
- // the components.
- d->m_gui->callControlScriptMethod(QLatin1String("PackageManagerSelectedCallback"));
- d->m_gui->triggerControlScriptForCurrentPage();
-
- if (d->m_core->isPackageManager()) {
- introPage->showMaintenanceTools();
- introPage->setMaintenanceToolsEnabled(true);
- } else {
- introPage->hideAll();
- }
-
- if (d->m_allPackagesFetched | localPackagesTreeFetched)
- introPage->setComplete(true);
- d->m_gui->setSettingsButtonEnabled(true);
-
- return d->m_core->status();
-}
-
// -- private slots
void TabController::restartWizard()
@@ -335,10 +190,3 @@ void TabController::onNetworkSettingsChanged(const QInstaller::Settings &setting
d->m_settings = settings;
d->m_networkSettingsChanged = true;
}
-
-// -- private
-
-IntroductionPageImpl *TabController::introductionPage() const
-{
- return qobject_cast<IntroductionPageImpl*> (d->m_gui->page(PackageManagerCore::Introduction));
-}