summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjkobus <jaroslaw.kobus@digia.com>2014-08-26 12:49:36 +0200
committerJarek Kobus <jaroslaw.kobus@digia.com>2014-08-27 11:01:15 +0200
commit0931738b103962b01b1c429c17e3e0b7fe09a4aa (patch)
treeb28dc409d5403bbfdf004a3b25b373a104083b0b /src
parent2312e7fd59cc75aad51ef526a33982fda1ecb4fd (diff)
Show the details text box when dependencies are not met.
This was broken in change 2f5c612538984122018e118b506119dd0e2a2e6e It stopped working when verbose (-v) option was not provided. Change-Id: I1f269faf9b8ce14cd40508c5f7622504fb3f373d Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/libs/installer/packagemanagergui.cpp47
-rw-r--r--src/libs/installer/packagemanagergui.h2
2 files changed, 25 insertions, 24 deletions
diff --git a/src/libs/installer/packagemanagergui.cpp b/src/libs/installer/packagemanagergui.cpp
index e61dcae5b..4ed6b0474 100644
--- a/src/libs/installer/packagemanagergui.cpp
+++ b/src/libs/installer/packagemanagergui.cpp
@@ -1963,11 +1963,6 @@ void ReadyForInstallationPage::entering()
{
setCommitPage(false);
- if (isVerbose())
- m_taskDetailsBrowser->setVisible(true);
- else
- m_taskDetailsBrowser->setVisible(false);
-
if (packageManagerCore()->isUninstaller()) {
m_taskDetailsBrowser->setVisible(false);
setButtonText(QWizard::CommitButton, tr("U&ninstall"));
@@ -1992,7 +1987,11 @@ void ReadyForInstallationPage::entering()
.arg(productName()));
}
- refreshTaskDetailsBrowser();
+ QString htmlOutput;
+ bool componentsOk = calculateComponents(&htmlOutput);
+ m_taskDetailsBrowser->setHtml(htmlOutput);
+ m_taskDetailsBrowser->setVisible(!componentsOk || isVerbose());
+ setCommitPage(componentsOk);
const VolumeInfo tempVolume = VolumeInfo::fromPath(QDir::tempPath());
const VolumeInfo targetVolume = VolumeInfo::fromPath(packageManagerCore()->value(scTargetDir));
@@ -2005,7 +2004,6 @@ void ReadyForInstallationPage::entering()
qDebug() << QString::fromLatin1("Could not determine available space on device. Volume "
"descriptor: %1, Mount path: %2. Continue silently.").arg(targetVolume
.volumeDescriptor(), targetVolume.mountPath());
- setCommitPage(true);
return; // TODO: Shouldn't this also disable the "Next" button?
}
@@ -2050,6 +2048,7 @@ void ReadyForInstallationPage::entering()
"installation! Available space: %1, at least required %2.")
.arg(humanReadableSize(installVolumeAvailableSize),
humanReadableSize(required + tempRequired)));
+ setCommitPage(false);
return;
}
@@ -2057,6 +2056,7 @@ void ReadyForInstallationPage::entering()
m_msgLabel->setText(tr("Not enough disk space to store all selected components! Available "
"space: %1, at least required: %2.").arg(humanReadableSize(installVolumeAvailableSize),
humanReadableSize(required)));
+ setCommitPage(false);
return;
}
@@ -2064,6 +2064,7 @@ void ReadyForInstallationPage::entering()
m_msgLabel->setText(tr("Not enough disk space to store temporary files! Available space: "
"%1, at least required: %2.").arg(humanReadableSize(tempVolumeAvailableSize),
humanReadableSize(tempRequired)));
+ setCommitPage(false);
return;
}
@@ -2081,27 +2082,25 @@ void ReadyForInstallationPage::entering()
m_msgLabel->setText(QString::fromLatin1("%1 %2").arg(m_msgLabel->text(),
tr("Installation will use %1 of disk space.").arg(humanReadableSize(required))));
-
- setCommitPage(true);
}
-void ReadyForInstallationPage::refreshTaskDetailsBrowser()
+bool ReadyForInstallationPage::calculateComponents(QString *displayString)
{
QString htmlOutput;
QString lastInstallReason;
if (!packageManagerCore()->calculateComponentsToUninstall() ||
- !packageManagerCore()->calculateComponentsToInstall()) {
- htmlOutput.append(QString::fromLatin1("<h2><font color=\"red\">%1</font></h2><ul>")
- .arg(tr("Can not resolve all dependencies!")));
- //if we have a missing dependency or a recursion we can display it
- if (!packageManagerCore()->componentsToInstallError().isEmpty()) {
- htmlOutput.append(QString::fromLatin1("<li> %1 </li>").arg(
- packageManagerCore()->componentsToInstallError()));
- }
- htmlOutput.append(QLatin1String("</ul>"));
- m_taskDetailsBrowser->setHtml(htmlOutput);
- setCommitPage(false);
- return;
+ !packageManagerCore()->calculateComponentsToInstall()) {
+ htmlOutput.append(QString::fromLatin1("<h2><font color=\"red\">%1</font></h2><ul>")
+ .arg(tr("Can not resolve all dependencies!")));
+ //if we have a missing dependency or a recursion we can display it
+ if (!packageManagerCore()->componentsToInstallError().isEmpty()) {
+ htmlOutput.append(QString::fromLatin1("<li> %1 </li>").arg(
+ packageManagerCore()->componentsToInstallError()));
+ }
+ htmlOutput.append(QLatin1String("</ul>"));
+ if (displayString)
+ *displayString = htmlOutput;
+ return false;
}
// In case of updater mode we don't uninstall components.
@@ -2126,7 +2125,9 @@ void ReadyForInstallationPage::refreshTaskDetailsBrowser()
}
htmlOutput.append(QString::fromLatin1("<li> %1 </li>").arg(component->name()));
}
- m_taskDetailsBrowser->setHtml(htmlOutput);
+ if (displayString)
+ *displayString = htmlOutput;
+ return true;
}
void ReadyForInstallationPage::leaving()
diff --git a/src/libs/installer/packagemanagergui.h b/src/libs/installer/packagemanagergui.h
index 322252719..5a02f85fb 100644
--- a/src/libs/installer/packagemanagergui.h
+++ b/src/libs/installer/packagemanagergui.h
@@ -400,7 +400,7 @@ protected:
void leaving();
private:
- void refreshTaskDetailsBrowser();
+ bool calculateComponents(QString *displayString);
private:
QLabel *m_msgLabel;