diff options
author | Maurice Kalinowski <maurice.kalinowski@nokia.com> | 2011-09-15 10:14:52 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@nokia.com> | 2011-09-15 10:26:32 +0200 |
commit | 14bdc38ec44c687d65d78350c17be2d168bac334 (patch) | |
tree | c142b6ed1af476e1cc4595b3ffb3b548b9805b35 /tools/repocompare/mainwindow.cpp | |
parent | 725f38b31bf0be09d28a05c573eef7d92c9e967a (diff) |
store commits locally in settings
that way a user does not need to enter all repositories again. Only
valid entries will be stored, so the lists should not become overblown
in a regular situation.
Change-Id: I694d564dd0f0f1e8ea54f083aab586800e74ea34
Reviewed-on: http://codereview.qt-project.org/4954
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Tim Jenssen <tim.jenssen@nokia.com>
Diffstat (limited to 'tools/repocompare/mainwindow.cpp')
-rw-r--r-- | tools/repocompare/mainwindow.cpp | 38 |
1 files changed, 36 insertions, 2 deletions
diff --git a/tools/repocompare/mainwindow.cpp b/tools/repocompare/mainwindow.cpp index 82a6ef38f..51a388c72 100644 --- a/tools/repocompare/mainwindow.cpp +++ b/tools/repocompare/mainwindow.cpp @@ -38,17 +38,45 @@ #include <QtCore/QTextStream> #include <QtCore/QUrl> #include <QtCore/QXmlStreamReader> +#include <QtCore/QSettings> #include <QtGui/QMessageBox> #include <QtGui/QFileDialog> #include <QtNetwork/QNetworkReply> #include <QtNetwork/QNetworkRequest> +namespace { +const QLatin1String productionIdentifier = QLatin1String("ProductionRepositories"); +const QLatin1String updateIdentifier = QLatin1String("UpdateRepositories"); + +void uniqueAppend(QComboBox* box, const QString &url) { + const int itemCount = box->count(); + for (int i = 0; i < itemCount; ++i) { + if (box->itemText(i) == url) + return; + } + box->insertItem(0, url); +} + +QStringList itemsToList(QComboBox* box) { + QStringList result; + const int itemCount = box->count(); + for (int i = 0; i < itemCount; ++i) { + result.append(box->itemText(i)); + } + return result; +} +} + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); + QSettings settings; + ui->productionRepo->insertItems(0, settings.value(productionIdentifier).toStringList()); + ui->updateRepo->insertItems(0, settings.value(updateIdentifier).toStringList()); + connect(ui->actionExit, SIGNAL(triggered()), this, SLOT(close())); connect(ui->productionButton, SIGNAL(clicked()), this, SLOT(getProductionRepository())); connect(ui->updateButton, SIGNAL(clicked()), this, SLOT(getUpdateRepository())); @@ -59,6 +87,9 @@ MainWindow::MainWindow(QWidget *parent) : MainWindow::~MainWindow() { + QSettings settings; + settings.setValue(productionIdentifier, itemsToList(ui->productionRepo)); + settings.setValue(updateIdentifier, itemsToList(ui->updateRepo)); delete ui; } @@ -104,10 +135,13 @@ void MainWindow::receiveRepository(QNetworkReply *reply) { QByteArray data = reply->readAll(); reply->deleteLater(); - if (reply == productionReply) + if (reply == productionReply) { createRepositoryMap(data, productionMap); - else if (reply == updateReply) + uniqueAppend(ui->productionRepo, reply->url().toString()); + } else if (reply == updateReply) { createRepositoryMap(data, updateMap); + uniqueAppend(ui->updateRepo, reply->url().toString()); + } if (productionMap.size() && updateMap.size()) compareRepositories(); |