diff options
author | kh1 <karsten.heimrich@nokia.com> | 2012-01-30 17:29:59 +0100 |
---|---|---|
committer | Karsten Heimrich <karsten.heimrich@nokia.com> | 2012-01-31 12:30:10 +0100 |
commit | 22cf926f6d70abcf77a23972fec2f1e4e6bcb7e4 (patch) | |
tree | 158b94ecfe0e85e922d0acba3ed9ee5dd0416d18 /installerbuilder | |
parent | 35c8468339b47f1f16928a48a06187a7741aa619 (diff) |
We missed a connect, thus the label on the right got only updated
in case we switched the current node as well. Also hide 0 size infos.
Change-Id: I7aa5b689ed9928fc4918b6e9cf651d14183e25a8
Reviewed-by: Alexander Lenhardt <alexander.lenhardt@nokia.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
Reviewed-by: Niels Weber <niels.2.weber@nokia.com>
Diffstat (limited to 'installerbuilder')
-rw-r--r-- | installerbuilder/libinstaller/packagemanagergui.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/installerbuilder/libinstaller/packagemanagergui.cpp b/installerbuilder/libinstaller/packagemanagergui.cpp index b3d8b1b75..82963a58d 100644 --- a/installerbuilder/libinstaller/packagemanagergui.cpp +++ b/installerbuilder/libinstaller/packagemanagergui.cpp @@ -1077,6 +1077,8 @@ public: if (m_treeView->selectionModel()) { disconnect(m_treeView->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(currentChanged(QModelIndex))); + disconnect(m_currentModel, SIGNAL(checkStateChanged(QModelIndex)), this, + SLOT(currentChanged(QModelIndex))); } m_currentModel = m_core->isUpdater() ? m_updaterModel : m_allModel; @@ -1101,6 +1103,8 @@ public: connect(m_treeView->selectionModel(), SIGNAL(currentChanged(QModelIndex, QModelIndex)), this, SLOT(currentChanged(QModelIndex))); + connect(m_currentModel, SIGNAL(checkStateChanged(QModelIndex)), this, + SLOT(currentChanged(QModelIndex))); m_treeView->setCurrentIndex(m_currentModel->index(0, 0)); } @@ -1108,16 +1112,20 @@ public: public slots: void currentChanged(const QModelIndex ¤t) { - m_sizeLabel->clear(); - m_descriptionLabel->clear(); + // if there is not selection or the current selected node didn't change, return + if (!current.isValid() || current != m_treeView->selectionModel()->currentIndex()) + return; - if (current.isValid()) { - m_descriptionLabel->setText(m_currentModel->data(m_currentModel->index(current.row(), - ComponentModelHelper::NameColumn, current.parent()), Qt::ToolTipRole).toString()); - if (!m_core->isUninstaller()) { + m_descriptionLabel->setText(m_currentModel->data(m_currentModel->index(current.row(), + ComponentModelHelper::NameColumn, current.parent()), Qt::ToolTipRole).toString()); + + m_sizeLabel->clear(); + if (!m_core->isUninstaller()) { + Component *component = m_currentModel->componentFromIndex(current); + if (component && component->updateUncompressedSize() > 0) { const QVariantHash hash = q->elementsForPage(QLatin1String("ComponentSelectionPage")); - m_sizeLabel->setText(tr("%1").arg(hash.value(QLatin1String("ComponentSizeLabel"), tr("This " - "component will occupy approximately %1 on your hard disk drive.")).toString() + m_sizeLabel->setText(tr("%1").arg(hash.value(QLatin1String("ComponentSizeLabel"), + tr("This component will occupy approximately %1 on your hard disk drive.")).toString() .arg(m_currentModel->data(m_currentModel->index(current.row(), ComponentModelHelper::UncompressedSizeColumn, current.parent())).toString()))); } |