summaryrefslogtreecommitdiff
path: root/src/problemsdialog.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2014-04-05 15:36:42 +0200
committerTannin <devnull@localhost>2014-04-05 15:36:42 +0200
commitcabed9b268c9f095d5e3b98a6797b0bcdcd38b1f (patch)
tree454b03b0c5664e90fe586e7b39603e34a526d35b /src/problemsdialog.cpp
parent98e5e57a845541acddf519a81957261f58008cb9 (diff)
parentc017f4a0d50b67a44e276bd5ae8929ed3990c62c (diff)
Merge with branch1.1
Diffstat (limited to 'src/problemsdialog.cpp')
-rw-r--r--src/problemsdialog.cpp31
1 files changed, 19 insertions, 12 deletions
diff --git a/src/problemsdialog.cpp b/src/problemsdialog.cpp
index d5700381..edb34f39 100644
--- a/src/problemsdialog.cpp
+++ b/src/problemsdialog.cpp
@@ -10,11 +10,26 @@ using namespace MOBase;
ProblemsDialog::ProblemsDialog(std::vector<MOBase::IPluginDiagnose *> diagnosePlugins, QWidget *parent)
- : QDialog(parent), ui(new Ui::ProblemsDialog)
+ : QDialog(parent), ui(new Ui::ProblemsDialog), m_DiagnosePlugins(diagnosePlugins)
{
ui->setupUi(this);
- foreach (IPluginDiagnose *diagnose, diagnosePlugins) {
+ runDiagnosis();
+
+ connect(ui->problemsWidget, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged()));
+ connect(ui->descriptionText, SIGNAL(anchorClicked(QUrl)), this, SLOT(urlClicked(QUrl)));
+}
+
+
+ProblemsDialog::~ProblemsDialog()
+{
+ delete ui;
+}
+
+void ProblemsDialog::runDiagnosis()
+{
+ ui->problemsWidget->clear();
+ foreach (IPluginDiagnose *diagnose, m_DiagnosePlugins) {
std::vector<unsigned int> activeProblems = diagnose->activeProblems();
foreach (unsigned int key, activeProblems) {
QTreeWidgetItem *newItem = new QTreeWidgetItem();
@@ -26,7 +41,7 @@ ProblemsDialog::ProblemsDialog(std::vector<MOBase::IPluginDiagnose *> diagnosePl
ui->problemsWidget->addTopLevelItem(newItem);
if (diagnose->hasGuidedFix(key)) {
- newItem->setText(1, tr("fix"));
+ newItem->setText(1, tr("Fix"));
QPushButton *fixButton = new QPushButton(tr("Fix"));
connect(fixButton, SIGNAL(clicked()), this, SLOT(startFix()));
ui->problemsWidget->setItemWidget(newItem, 1, fixButton);
@@ -35,17 +50,8 @@ ProblemsDialog::ProblemsDialog(std::vector<MOBase::IPluginDiagnose *> diagnosePl
}
}
}
- connect(ui->problemsWidget, SIGNAL(itemSelectionChanged()), this, SLOT(selectionChanged()));
- connect(ui->descriptionText, SIGNAL(anchorClicked(QUrl)), this, SLOT(urlClicked(QUrl)));
-}
-
-
-ProblemsDialog::~ProblemsDialog()
-{
- delete ui;
}
-
bool ProblemsDialog::hasProblems() const
{
return ui->problemsWidget->topLevelItemCount() != 0;
@@ -62,6 +68,7 @@ void ProblemsDialog::startFix()
{
IPluginDiagnose *plugin = reinterpret_cast<IPluginDiagnose*>(ui->problemsWidget->currentItem()->data(1, Qt::UserRole).value<void*>());
plugin->startGuidedFix(ui->problemsWidget->currentItem()->data(1, Qt::UserRole + 1).toUInt());
+ runDiagnosis();
}
void ProblemsDialog::urlClicked(const QUrl &url)