summaryrefslogtreecommitdiffstats
path: root/tools/repocompare
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@nokia.com>2011-09-15 10:14:52 +0200
committerTim Jenssen <tim.jenssen@nokia.com>2011-09-15 10:26:32 +0200
commit14bdc38ec44c687d65d78350c17be2d168bac334 (patch)
treec142b6ed1af476e1cc4595b3ffb3b548b9805b35 /tools/repocompare
parent725f38b31bf0be09d28a05c573eef7d92c9e967a (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')
-rw-r--r--tools/repocompare/main.cpp1
-rw-r--r--tools/repocompare/mainwindow.cpp38
2 files changed, 37 insertions, 2 deletions
diff --git a/tools/repocompare/main.cpp b/tools/repocompare/main.cpp
index 1914cade3..419e0bd21 100644
--- a/tools/repocompare/main.cpp
+++ b/tools/repocompare/main.cpp
@@ -36,6 +36,7 @@
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
+ QCoreApplication::setApplicationName(QLatin1String("IFW_repocompare"));
MainWindow w;
w.show();
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();