diff options
| author | Tannin <devnull@localhost> | 2014-04-05 15:36:42 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2014-04-05 15:36:42 +0200 |
| commit | cabed9b268c9f095d5e3b98a6797b0bcdcd38b1f (patch) | |
| tree | 454b03b0c5664e90fe586e7b39603e34a526d35b /src/problemsdialog.cpp | |
| parent | 98e5e57a845541acddf519a81957261f58008cb9 (diff) | |
| parent | c017f4a0d50b67a44e276bd5ae8929ed3990c62c (diff) | |
Merge with branch1.1
Diffstat (limited to 'src/problemsdialog.cpp')
| -rw-r--r-- | src/problemsdialog.cpp | 31 |
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)
|
