summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorprbiswal <pradeep.biswal@nokia.com>2012-08-23 20:32:22 +0530
committerTim Jenssen <tim.jenssen@nokia.com>2012-08-24 14:22:41 +0200
commitf9814b28ce934541f16d12d54534bea543143c01 (patch)
tree3134c0853162738d53dcb1284cb137c466e33d80
parente7754dc0c578d66b7bf1deda730831efdc6d2dc9 (diff)
Code changes for new SDK Manager UI.
- These changes are specific to S40 SDK installer. Changes are done (libs)to create a new coulmn on component selection page to get the status for component. - New SDK Manager UI replaces default component selection page (s40/componentviewpage.cpp/.h) - A macro has been added to .pro file to have s40 specific changes in libs. Change-Id: Ic8cf61d7085b3c7d62edd208949ec71d81e43140 Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
-rw-r--r--src/libs/installer/component.cpp6
-rw-r--r--src/libs/installer/component_p.h6
-rw-r--r--src/libs/installer/constants.h2
-rw-r--r--src/libs/installer/packagemanagercore.cpp12
-rw-r--r--src/s40/componentviewpage.cpp327
-rw-r--r--src/s40/componentviewpage.h44
-rw-r--r--src/s40/installerbasecommons.cpp1
7 files changed, 146 insertions, 252 deletions
diff --git a/src/libs/installer/component.cpp b/src/libs/installer/component.cpp
index 963dd55c6..4aa3c3400 100644
--- a/src/libs/installer/component.cpp
+++ b/src/libs/installer/component.cpp
@@ -113,7 +113,7 @@ void Component::loadDataFromPackage(const LocalPackage &package)
setValue(QLatin1String("LastUpdateDate"), package.lastUpdateDate.toString());
setValue(QLatin1String("InstallDate"), package.installDate.toString());
setValue(scUncompressedSize, QString::number(package.uncompressedSize));
-
+ setValue(scPackageStatus, QLatin1String("Installed"));
QString dependstr;
foreach (const QString &val, package.dependencies)
dependstr += val + QLatin1String(",");
@@ -150,7 +150,7 @@ void Component::loadDataFromPackage(const Package &package)
setValue(scDownloadableArchives, package.data(scDownloadableArchives).toString());
setValue(scVirtual, package.data(scVirtual).toString());
setValue(scSortingPriority, package.data(scSortingPriority).toString());
-
+ setValue(scPackageStatus, QLatin1String("Installed"));
setValue(scEssential, package.data(scEssential).toString());
setValue(scUpdateText, package.data(scUpdateText).toString());
setValue(scNewComponent, package.data(scNewComponent).toString());
@@ -1198,6 +1198,8 @@ void Component::updateModelData(const QString &key, const QString &data)
quint64 size = value(scUncompressedSizeSum).toLongLong();
setData(humanReadableSize(size), UncompressedSize);
}
+ if (key == scPackageStatus)
+ setData(data, PackageStatus);
const QString &updateInfo = value(scUpdateText);
if (!d->m_core->isUpdater() || updateInfo.isEmpty()) {
diff --git a/src/libs/installer/component_p.h b/src/libs/installer/component_p.h
index 0c58288f9..8d2ab8e2a 100644
--- a/src/libs/installer/component_p.h
+++ b/src/libs/installer/component_p.h
@@ -101,14 +101,16 @@ public:
enum Roles {
LocalDisplayVersion = Qt::UserRole + 1,
RemoteDisplayVersion = LocalDisplayVersion + 1,
- UncompressedSize = RemoteDisplayVersion + 1
+ UncompressedSize = RemoteDisplayVersion + 1,
+ PackageStatus = UncompressedSize + 1
};
enum Column {
NameColumn = 0,
InstalledVersionColumn,
NewVersionColumn,
- UncompressedSizeColumn
+ UncompressedSizeColumn,
+ ComponentStatus
};
explicit ComponentModelHelper();
diff --git a/src/libs/installer/constants.h b/src/libs/installer/constants.h
index ea512ed76..6a5037ff4 100644
--- a/src/libs/installer/constants.h
+++ b/src/libs/installer/constants.h
@@ -76,7 +76,7 @@ static const QLatin1String scRemoveTargetDir("RemoveTargetDir");
static const QLatin1String scRunProgramDescription("RunProgramDescription");
static const QLatin1String scTargetConfigurationFile("TargetConfigurationFile");
static const QLatin1String scAllowNonAsciiCharacters("AllowNonAsciiCharacters");
-
+static const QLatin1String scPackageStatus("PackageStatus");
}
#endif // CONSTANTS_H
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp
index 2dda4205f..c0879f7eb 100644
--- a/src/libs/installer/packagemanagercore.cpp
+++ b/src/libs/installer/packagemanagercore.cpp
@@ -1917,8 +1917,11 @@ void PackageManagerCore::updateDisplayVersions(const QString &displayKey)
const QString displayVersionRemote = findDisplayVersion(key, components, scRemoteVersion, visited);
if (displayVersionRemote.isEmpty())
components.value(key)->setValue(displayKey, tr("invalid"));
- else
- components.value(key)->setValue(displayKey, displayVersionRemote);
+ else {
+ components.value(key)->setValue(displayKey, displayVersionRemote);
+ if (displayVersionRemote > findDisplayVersion(key, components, scVersion, visited ) )
+ components.value(key)->setValue(scPackageStatus, tr("Updates available"));
+ }
}
}
@@ -1942,8 +1945,7 @@ QString PackageManagerCore::findDisplayVersion(const QString &componentName,
ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, const QString &objectName) const
{
- ComponentModel *model = new ComponentModel(4, core);
-
+ ComponentModel *model = new ComponentModel(5, core);
model->setObjectName(objectName);
model->setHeaderData(ComponentModelHelper::NameColumn, Qt::Horizontal,
ComponentModel::tr("Component Name"));
@@ -1953,6 +1955,8 @@ ComponentModel *PackageManagerCore::componentModel(PackageManagerCore *core, con
ComponentModel::tr("New Version"));
model->setHeaderData(ComponentModelHelper::UncompressedSizeColumn, Qt::Horizontal,
ComponentModel::tr("Size"));
+ model->setHeaderData(ComponentModelHelper::ComponentStatus, Qt::Horizontal,
+ ComponentModel::tr("Status"));
connect(this, SIGNAL(setRootComponents(QList<QInstaller::Component*>)), model,
SLOT(setRootComponents(QList<QInstaller::Component*>)));
connect(model, SIGNAL(defaultCheckStateChanged(bool)), this, SLOT(componentsToInstallNeedsRecalculation()));
diff --git a/src/s40/componentviewpage.cpp b/src/s40/componentviewpage.cpp
index 74dc576b6..cb6e2fb78 100644
--- a/src/s40/componentviewpage.cpp
+++ b/src/s40/componentviewpage.cpp
@@ -49,6 +49,7 @@
#include <QtGui/QRadioButton>
#include <QtGui/QStackedWidget>
#include <QtGui/QVBoxLayout>
+#include <QCheckBox>
using namespace QInstaller;
@@ -64,66 +65,76 @@ ComponentViewPage::ComponentViewPage(QInstaller::PackageManagerCore *core)
, m_updaterModel(m_core->updaterComponentModel())
, m_currentModel(m_allModel)
{
-
setPixmap(QWizard::LogoPixmap, logoPixmap());
setPixmap(QWizard::WatermarkPixmap, QPixmap());
setObjectName(QLatin1String("ComponentViewPage"));
setTitle(titleForPage(QLatin1String("ComponentViewPage"), tr("Select Components")));
+ m_core->setPackageManager();
+ setFixedSize(970, 860);
+ //resize(970, 860);
+ QVBoxLayout *vMainLayout = new QVBoxLayout;
+ QHBoxLayout *hMainLayout = new QHBoxLayout;
+ QHBoxLayout *hLayoutLeft = new QHBoxLayout;
+ QHBoxLayout *hLayoutRight= new QHBoxLayout;
+ //creating check box and buttons for sdk manager
- m_treeView->setObjectName(QLatin1String("ComponentsTreeView"));
+ showLabel = new QLabel(QLatin1String("Show:"));
+ hLayoutLeft->addWidget(showLabel);
- connect(m_allModel, SIGNAL(defaultCheckStateChanged(bool)), this, SLOT(setModified(bool)));
- connect(m_updaterModel, SIGNAL(defaultCheckStateChanged(bool)), this, SLOT(setModified(bool)));
+ showInstalled = new QCheckBox(QLatin1String("Installed"));
+ showInstalled->setChecked(true);
+ hLayoutLeft->addWidget(showInstalled);
- m_descriptionLabel = new QLabel(this);
- m_descriptionLabel->setWordWrap(true);
- m_descriptionLabel->setObjectName(QLatin1String("ComponentDescriptionLabel"));
+ showUpdates = new QCheckBox(QLatin1String("Updates/New"));
+ hLayoutLeft->addWidget(showUpdates);
- m_sizeLabel = new QLabel(this);
- m_sizeLabel->setWordWrap(true);
- m_sizeLabel->setObjectName(QLatin1String("ComponentSizeLabel"));
- m_checkDefault = new QPushButton;
- connect(m_checkDefault, SIGNAL(clicked()), this, SLOT(selectDefault()));
- connect(m_allModel, SIGNAL(defaultCheckStateChanged(bool)), m_checkDefault, SLOT(setEnabled(bool)));
- const QVariantHash hash = elementsForPage(QLatin1String("ComponentViewPage"));
- if (m_core->isInstaller()) {
- m_checkDefault->setObjectName(QLatin1String("SelectDefaultComponentsButton"));
- m_checkDefault->setShortcut(QKeySequence(ComponentViewPage::tr("Alt+A", "select default components")));
- m_checkDefault->setText(hash.value(QLatin1String("SelectDefaultComponentsButton"), ComponentViewPage::tr("Def&ault"))
- .toString());
- } else {
- m_checkDefault->setEnabled(false);
- m_checkDefault->setObjectName(QLatin1String("ResetComponentsButton"));
- m_checkDefault->setShortcut(QKeySequence(ComponentViewPage::tr("Alt+R", "reset to already installed components")));
- m_checkDefault->setText(hash.value(QLatin1String("ResetComponentsButton"), ComponentViewPage::tr("&Reset")).toString());
- }
+ hMainLayout->addLayout(hLayoutLeft);
+ hMainLayout->setAlignment(hLayoutLeft, Qt::AlignLeft);
- m_checkAll = new QPushButton;
- connect(m_checkAll, SIGNAL(clicked()), this, SLOT(selectAll()));
- m_checkAll->setObjectName(QLatin1String("SelectAllComponentsButton"));
- m_checkAll->setShortcut(QKeySequence(ComponentViewPage::tr("Alt+S", "select all components")));
- m_checkAll->setText(hash.value(QLatin1String("SelectAllComponentsButton"), ComponentViewPage::tr("&Select All")).toString());
+ hMainLayout->setAlignment(hLayoutRight, Qt::AlignRight);
- m_uncheckAll = new QPushButton;
- connect(m_uncheckAll, SIGNAL(clicked()), this, SLOT(deselectAll()));
- m_uncheckAll->setObjectName(QLatin1String("DeselectAllComponentsButton"));
- m_uncheckAll->setShortcut(QKeySequence(ComponentViewPage::tr("Alt+D", "deselect all components")));
- m_uncheckAll->setText(hash.value(QLatin1String("DeselectAllComponentsButton"), ComponentViewPage::tr("&Deselect All"))
- .toString());
+ m_treeView->setObjectName(QLatin1String("ComponentsTreeView"));
+ m_treeView->setModel(m_allModel);
+ m_treeView->resizeColumnToContents ( 0 );
+ m_treeView->setExpanded(m_allModel->index(0,0), true);
m_progressBar = new QProgressBar(this);
m_progressBar->setRange(0, 0);
+ vMainLayout->addWidget(m_treeView);
+
+ vMainLayout->addLayout(hMainLayout);
+ vMainLayout->addSpacing(5);
+
+ QFrame* line = new QFrame;
+ line->setObjectName(QString::fromUtf8("line"));
+ line->setFrameShape(QFrame::HLine);
+ line->setFrameShadow(QFrame::Sunken);
+
+ vMainLayout->addWidget(line);
+ vMainLayout->addWidget(m_progressBar);
+
+ progressStatusLabel = new QLabel (QLatin1String("Status:"));
+ vMainLayout->addWidget(progressStatusLabel);
+ setLayout(vMainLayout);
+ //setWindowTitle(QLatin1String("SDK Manager"));
+
- m_errorLabel = new QLabel(this);
- m_errorLabel->setWordWrap(true);
+ //signal and slots
+ connect(showInstalled, SIGNAL(stateChanged(int)),
+ this, SLOT(showInstalledComponents()));
+ connect(showUpdates, SIGNAL(stateChanged(int)),
+ this, SLOT(showUpdateNewComponents()));
+
+ fetchComponentsData();
+
+ setButtonText(QWizard::NextButton, tr("Install"));
- gui()->showSettingsButton(true);
connect(core, SIGNAL(metaJobInfoMessage(QString)), this, SLOT(setMessage(QString)));
- connect(core, SIGNAL(coreNetworkSettingsChanged()), this, SLOT(onCoreNetworkSettingsChanged()));
+ //connect(core, SIGNAL(coreNetworkSettingsChanged()), this, SLOT(onCoreNetworkSettingsChanged()));
}
void ComponentViewPage::currentChanged(const QModelIndex &current)
@@ -152,36 +163,8 @@ ComponentViewPage::~ComponentViewPage()
{
}
-
-// TODO: all *select* function ignore the fact that components can be selected inside the tree view as
-// well, which will result in e.g. a disabled button state as long as "ALL" components not
-// unchecked again.
-void ComponentViewPage::selectAll()
-{
- m_currentModel->selectAll();
-
- m_checkAll->setEnabled(false);
- m_uncheckAll->setEnabled(true);
-}
-
-void ComponentViewPage::deselectAll()
-{
- m_currentModel->deselectAll();
-
- m_checkAll->setEnabled(true);
- m_uncheckAll->setEnabled(false);
-}
-
-void ComponentViewPage::selectDefault()
-{
- m_currentModel->selectDefault();
-
- m_checkAll->setEnabled(true);
- m_uncheckAll->setEnabled(true);
-}
-
-/*!
- Selects the component with /a id in the component tree.
+/*
+ Selects the component with /a id in the component tree.
*/
void ComponentViewPage::selectComponent(const QString &id)
{
@@ -190,8 +173,8 @@ void ComponentViewPage::selectComponent(const QString &id)
m_currentModel->setData(idx, Qt::Checked, Qt::CheckStateRole);
}
-/*!
- Deselects the component with /a id in the component tree.
+/*
+ Deselects the component with /a id in the component tree.
*/
void ComponentViewPage::deselectComponent(const QString &id)
{
@@ -203,7 +186,6 @@ void ComponentViewPage::deselectComponent(const QString &id)
void ComponentViewPage::updateTreeView()
{
- m_checkDefault->setVisible(m_core->isInstaller() || m_core->isPackageManager());
if (m_treeView->selectionModel()) {
disconnect(m_treeView->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)),
this, SLOT(currentChanged(QModelIndex)));
@@ -240,168 +222,91 @@ void ComponentViewPage::updateTreeView()
}
-bool ComponentViewPage::validatePage()
-{
- PackageManagerCore *core = packageManagerCore();
-
- setComplete(false);
- gui()->setSettingsButtonEnabled(false);
-
- const bool maintanence = core->isUpdater() || core->isPackageManager();
- if (maintanence) {
- showAll();
- } else {
- showMetaInfoUdate();
- }
-
- // fetch updater packages
- if (core->isUpdater()) {
- if (!m_updatesFetched) {
- m_updatesFetched = core->fetchRemotePackagesTree();
- if (!m_updatesFetched)
- setErrorMessage(core->error());
- }
-
- callControlScript(QLatin1String("UpdaterSelectedCallback"));
-
- if (m_updatesFetched) {
- if (core->updaterComponents().count() <= 0)
- setErrorMessage(QLatin1String("<b>") + tr("No updates available.") + QLatin1String("</b>"));
- else
- setComplete(true);
- }
- }
-
- // fetch common packages
- if (core->isInstaller() || core->isPackageManager()) {
- bool localPackagesTreeFetched = false;
- if (!m_allPackagesFetched) {
- // first try to fetch the server side packages tree
- m_allPackagesFetched = core->fetchRemotePackagesTree();
- if (!m_allPackagesFetched) {
- QString error = core->error();
- if (core->isPackageManager()) {
- // if that fails and we're in maintenance mode, try to fetch local installed tree
- localPackagesTreeFetched = core->fetchLocalPackagesTree();
- if (localPackagesTreeFetched) {
- // if that succeeded, adjust error message
- error = QLatin1String("<font color=\"red\">") + error + tr(" Only local package "
- "management available.") + QLatin1String("</font>");
- }
- }
- setErrorMessage(error);
- }
- }
-
- callControlScript(QLatin1String("PackageManagerSelectedCallback"));
-
- if (m_allPackagesFetched | localPackagesTreeFetched)
- setComplete(true);
- }
- if (maintanence) {
- showMaintenanceTools();
- } else {
- hideAll();
- }
- gui()->setSettingsButtonEnabled(true);
- return isComplete();
-}
-
-void ComponentViewPage::showAll()
+void ComponentViewPage::setMessage(const QString &msg)
{
- showWidgets(true);
+ m_label->setText(msg);
}
-void ComponentViewPage::hideAll()
+void ComponentViewPage::setErrorMessage(const QString &error)
{
- showWidgets(false);
+// QPalette palette;
+// const PackageManagerCore::Status s = packageManagerCore()->status();
+// if (s == PackageManagerCore::Failure || s == PackageManagerCore::Failure) {
+// palette.setColor(QPalette::WindowText, Qt::red);
+// } else {
+// palette.setColor(QPalette::WindowText, palette.color(QPalette::WindowText));
+// }
+
+// m_errorLabel->setText(error);
+// m_errorLabel->setPalette(palette);
}
-void ComponentViewPage::showMetaInfoUdate()
-{
- showWidgets(false);
- m_label->setVisible(true);
- m_progressBar->setVisible(true);
-}
-void ComponentViewPage::showMaintenanceTools()
-{
- showWidgets(true);
- m_label->setVisible(false);
- m_progressBar->setVisible(false);
-}
+//void ComponentViewPage::onCoreNetworkSettingsChanged()
+//{
+// // force a repaint of the ui as after the settings dialog has been closed and the wizard has been
+// // restarted, the "Next" button looks still disabled. TODO: figure out why this happens at all!
+// gui()->repaint();
-// -- public slots
+// m_updatesFetched = false;
+// m_allPackagesFetched = false;
+//}
-void ComponentViewPage::setMessage(const QString &msg)
-{
- m_label->setText(msg);
+void ComponentViewPage::showInstalledComponents()
+{//required later
}
-void ComponentViewPage::setErrorMessage(const QString &error)
+void ComponentViewPage::showUpdateNewComponents()
{
- QPalette palette;
- const PackageManagerCore::Status s = packageManagerCore()->status();
- if (s == PackageManagerCore::Failure || s == PackageManagerCore::Failure) {
- palette.setColor(QPalette::WindowText, Qt::red);
- } else {
- palette.setColor(QPalette::WindowText, palette.color(QPalette::WindowText));
+ if (showUpdates->checkState()){
+ setButtonText(QWizard::NextButton, tr("Update"));
+ m_core->setUpdater();
+ fetchUpdateComponent();
+ }
+ else{
+ setButtonText(QWizard::NextButton, tr("Install"));
+ m_core->setPackageManager();
+ m_allPackagesFetched = false;
+ fetchComponentsData();
}
-
- m_errorLabel->setText(error);
- m_errorLabel->setPalette(palette);
-}
-
-void ComponentViewPage::callControlScript(const QString &callback)
-{
- // Initialize the gui. Needs to be done after check repositories as only then the ui can handle
- // hide of pages depending on the components.
- gui()->init();
- gui()->callControlScriptMethod(callback);
}
-void ComponentViewPage::onCoreNetworkSettingsChanged()
+void ComponentViewPage::fetchComponentsData()
{
- // force a repaint of the ui as after the settings dialog has been closed and the wizard has been
- // restarted, the "Next" button looks still disabled. TODO: figure out why this happens at all!
- gui()->repaint();
-
m_updatesFetched = false;
- m_allPackagesFetched = false;
+ // fetch common packages
+ bool localPackagesTreeFetched = false;
+ if (!m_allPackagesFetched) {
+ // first try to fetch the server side packages tree
+ m_allPackagesFetched = m_core->fetchRemotePackagesTree();
+ if (!m_allPackagesFetched) {
+ QString error = m_core->error();
+ if (m_core->isPackageManager()) {
+ // if that fails and we're in maintenance mode, try to fetch local installed tree
+ localPackagesTreeFetched = 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>");
+ }
+ }
+ setErrorMessage(error);
+ }
+ }
}
-// -- private
-void ComponentViewPage::entering()
+void ComponentViewPage::fetchUpdateComponent()
{
- setComplete(true);
- showWidgets(false);
- setMessage(QString());
- setErrorMessage(QString());
- setButtonText(QWizard::CancelButton, tr("Quit"));
-
- PackageManagerCore *core = packageManagerCore();
- if (core->isUninstaller() ||core->isUpdater() || core->isPackageManager()) {
- showMaintenanceTools();
+ if (m_core->isUpdater()) {
+ if (!m_updatesFetched) {
+ m_updatesFetched = m_core->fetchRemotePackagesTree();
+ if (!m_updatesFetched)
+ setErrorMessage(m_core->error());
+ }
}
-}
-void ComponentViewPage::setModified(bool modified)
-{
- setComplete(modified);
}
-void ComponentViewPage::leaving()
-{
- // TODO: force repaint on next page, keeps unpainted after fetch
- QTimer::singleShot(100, gui()->page(nextId()), SLOT(repaint()));
- setButtonText(QWizard::CancelButton, gui()->defaultButtonText(QWizard::CancelButton));
-}
-
-void ComponentViewPage::showWidgets(bool show)
-{
- m_label->setVisible(show);
- m_progressBar->setVisible(show);
-}
diff --git a/src/s40/componentviewpage.h b/src/s40/componentviewpage.h
index 5d4db7553..2769810f9 100644
--- a/src/s40/componentviewpage.h
+++ b/src/s40/componentviewpage.h
@@ -55,47 +55,25 @@ public:
explicit ComponentViewPage(QInstaller::PackageManagerCore *core);
~ComponentViewPage();
- bool validatePage();
-
- void showAll();
- void hideAll();
- void showMetaInfoUdate();
- void showMaintenanceTools();
void updateTreeView();
public slots:
- void onCoreNetworkSettingsChanged();
+ // void onCoreNetworkSettingsChanged();
void setMessage(const QString &msg);
void setErrorMessage(const QString &error);
public slots:
void currentChanged(const QModelIndex &current);
-
- void selectAll();
- void deselectAll();
- void selectDefault();
void selectComponent(const QString &id);
void deselectComponent(const QString &id);
-signals:
- void packageManagerCoreTypeChanged();
-
-
- bool isComplete() const;
-
-
-protected:
- void entering();
-
-private Q_SLOTS:
- void setModified(bool modified);
+ void showInstalledComponents();
+ void showUpdateNewComponents();
private:
- void leaving();
-
- void showWidgets(bool show);
- void callControlScript(const QString &callback);
+ void fetchComponentsData();
+ void fetchUpdateComponent();
private:
bool m_updatesFetched;
@@ -103,9 +81,16 @@ private:
bool m_allPackagesFetched;
QLabel *m_label;
- QLabel *m_errorLabel;
QProgressBar *m_progressBar;
+ QPushButton* installButton;
+ QPushButton* cancelButton;
+ QLabel* showLabel;
+ QLabel* progressStatusLabel;
+ QLabel* progressLabel;
+ QCheckBox* showInstalled;
+ QCheckBox* showUpdates;
+
PackageManagerCore *m_core;
QTreeView *m_treeView;
@@ -114,9 +99,6 @@ private:
ComponentModel *m_currentModel;
QLabel *m_sizeLabel;
QLabel *m_descriptionLabel;
- QPushButton *m_checkAll;
- QPushButton *m_uncheckAll;
- QPushButton *m_checkDefault;
};
} //namespace QInstaller
diff --git a/src/s40/installerbasecommons.cpp b/src/s40/installerbasecommons.cpp
index 3440fd1ca..debc71656 100644
--- a/src/s40/installerbasecommons.cpp
+++ b/src/s40/installerbasecommons.cpp
@@ -501,7 +501,6 @@ MaintenanceGui::MaintenanceGui(PackageManagerCore *core)
: PackageManagerGui(core, 0)
{
setPage(PackageManagerCore::Introduction + 1, new ComponentViewPage(core));
- setPage(PackageManagerCore::ComponentSelection, new ComponentSelectionPage(core));
setPage(PackageManagerCore::LicenseCheck, new LicenseAgreementPage(core));
setPage(PackageManagerCore::ReadyForInstallation, new ReadyForInstallationPage(core));
setPage(PackageManagerCore::PerformInstallation, new PerformInstallationPage(core));