some blockers should just go away.
From 126ed0f89a92fc79f59bbca022ba9f33b6a50919 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <tomaz.canabr...@intel.com>
Date: Tue, 15 Jul 2014 14:43:20 -0300
Subject: [PATCH 1/3] Do not create a backup for Q_FOREACH container

Q_FOREACH will expand and already creates a copy of the
contained container, so this is just a waste of cpu cycles
and also increases a tiny bit the memory consumption.

Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com>
---
 qt-ui/divelistview.cpp            | 3 +--
 qt-ui/divepicturewidget.cpp       | 3 +--
 qt-ui/maintab.cpp                 | 3 +--
 qt-ui/models.cpp                  | 3 +--
 qt-ui/preferences.cpp             | 3 +--
 qt-ui/profile/divetooltipitem.cpp | 4 ++--
 6 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp
index eb56d2e..5fde4c4 100644
--- a/qt-ui/divelistview.cpp
+++ b/qt-ui/divelistview.cpp
@@ -199,9 +199,8 @@ void DiveListView::unselectDives()
 
 QList<dive_trip_t *> DiveListView::selectedTrips()
 {
-	QModelIndexList indexes = selectionModel()->selectedRows();
 	QList<dive_trip_t *> ret;
-	Q_FOREACH (const QModelIndex &index, indexes) {
+	Q_FOREACH (const QModelIndex &index, selectionModel()->selectedRows()) {
 		dive_trip_t *trip = static_cast<dive_trip_t *>(index.data(DiveTripModel::TRIP_ROLE).value<void *>());
 		if (!trip)
 			continue;
diff --git a/qt-ui/divepicturewidget.cpp b/qt-ui/divepicturewidget.cpp
index 46e87d4..fd64f61 100644
--- a/qt-ui/divepicturewidget.cpp
+++ b/qt-ui/divepicturewidget.cpp
@@ -52,8 +52,7 @@ void DivePictureModel::updateDivePictures()
 		pictures.push_back(QString(picture->filename));
 	}
 
-	SPixmapList retList = QtConcurrent::blockingMapped<SPixmapList>(pictures, scaleImages);
-	Q_FOREACH (const SPixmap &pixmap, retList)
+	Q_FOREACH (const SPixmap &pixmap, QtConcurrent::blockingMapped<SPixmapList>(pictures, scaleImages))
 		stringPixmapCache[pixmap.first].image = pixmap.second;
 
 	beginInsertRows(QModelIndex(), 0, numberOfPictures - 1);
diff --git a/qt-ui/maintab.cpp b/qt-ui/maintab.cpp
index a7950c0..050cf32 100644
--- a/qt-ui/maintab.cpp
+++ b/qt-ui/maintab.cpp
@@ -80,8 +80,7 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
 	ui.timeEdit->installEventFilter(this);
 	ui.tagWidget->installEventFilter(this);
 
-	QList<QObject *> statisticsTabWidgets = ui.statisticsTab->children();
-	Q_FOREACH (QObject *obj, statisticsTabWidgets) {
+	Q_FOREACH (QObject *obj, ui.statisticsTab->children()) {
 		QLabel *label = qobject_cast<QLabel *>(obj);
 		if (label)
 			label->setAlignment(Qt::AlignHCenter);
diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index ca6f637..a0bb97a 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -2035,8 +2035,7 @@ LanguageModel::LanguageModel(QObject *parent) : QAbstractListModel(parent)
 {
 	QSettings s;
 	QDir d(getSubsurfaceDataPath("translations"));
-	QStringList result = d.entryList();
-	Q_FOREACH (const QString &s, result) {
+	Q_FOREACH (const QString &s, d.entryList()) {
 		if (s.startsWith("subsurface_") && s.endsWith(".qm")) {
 			languages.push_back((s == "subsurface_source.qm") ? "English" : s);
 		}
diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp
index cb24ec3..a356756 100644
--- a/qt-ui/preferences.cpp
+++ b/qt-ui/preferences.cpp
@@ -399,8 +399,7 @@ void PreferencesDialog::on_resetSettings_clicked()
 	if (result == QMessageBox::Ok) {
 		prefs = default_prefs;
 		setUiFromPrefs();
-		QStringList keys = s.allKeys();
-		Q_FOREACH (QString key, keys) {
+		Q_FOREACH (QString key, s.allKeys()) {
 			s.remove(key);
 		}
 		syncSettings();
diff --git a/qt-ui/profile/divetooltipitem.cpp b/qt-ui/profile/divetooltipitem.cpp
index 032daf6..40c556c 100644
--- a/qt-ui/profile/divetooltipitem.cpp
+++ b/qt-ui/profile/divetooltipitem.cpp
@@ -229,8 +229,8 @@ void ToolTipItem::refresh(const QPointF &pos)
 	addToolTip(QString::fromUtf8(mb.buffer, mb.len));
 	free_buffer(&mb);
 
-	QList<QGraphicsItem *> items = scene()->items(pos, Qt::IntersectsItemShape, Qt::DescendingOrder, scene()->views().first()->transform());
-	Q_FOREACH (QGraphicsItem *item, items) {
+	Q_FOREACH (QGraphicsItem *item, scene()->items(pos, Qt::IntersectsItemShape
+		,Qt::DescendingOrder, scene()->views().first()->transform())) {
 		if (!item->toolTip().isEmpty())
 			addToolTip(item->toolTip());
 	}
-- 
2.0.1

From c1ce45d183b4d59a11e6f5893aaf93a31e625b71 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <tomaz.canabr...@intel.com>
Date: Tue, 15 Jul 2014 14:58:24 -0300
Subject: [PATCH 2/3] Selects the delegate text on Cylinder edition

The text selection was not being set, bummer.

Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com>
---
 qt-ui/modeldelegates.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/qt-ui/modeldelegates.cpp b/qt-ui/modeldelegates.cpp
index a3796e0..a000df2 100644
--- a/qt-ui/modeldelegates.cpp
+++ b/qt-ui/modeldelegates.cpp
@@ -73,10 +73,13 @@ void ComboBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index)
 	QComboBox *c = qobject_cast<QComboBox *>(editor);
 	QString data = index.model()->data(index, Qt::DisplayRole).toString();
 	int i = c->findText(data);
-	if (i != -1)
+	if (i != -1){
 		c->setCurrentIndex(i);
-	else
+	}
+	else{
 		c->setEditText(data);
+	}
+	c->lineEdit()->setSelection(0, c->lineEdit()->text().length());
 }
 
 struct CurrSelected {
-- 
2.0.1

From 306856df49518e64b05163851fd33aa39f5cefd6 Mon Sep 17 00:00:00 2001
From: Tomaz Canabrava <tomaz.canabr...@intel.com>
Date: Tue, 15 Jul 2014 15:39:13 -0300
Subject: [PATCH 3/3] Save and restore Dive Planner Settings

This patch adds the code that saves and restores the dive planner
settings.

Signed-off-by: Tomaz Canabrava <tomaz.canabr...@intel.com>
---
 qt-ui/diveplanner.cpp | 28 +++++++++++++++++++++++++++-
 qt-ui/diveplanner.h   |  2 +-
 qt-ui/mainwindow.cpp  |  1 -
 3 files changed, 28 insertions(+), 3 deletions(-)

diff --git a/qt-ui/diveplanner.cpp b/qt-ui/diveplanner.cpp
index 6b3c7b5..7c69c7d 100644
--- a/qt-ui/diveplanner.cpp
+++ b/qt-ui/diveplanner.cpp
@@ -364,6 +364,18 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
 {
 	ui.setupUi(this);
 
+	QSettings s;
+	s.beginGroup("Planner");
+	prefs.ascrate75 = s.value("ascrate75", 9).toInt();
+	prefs.ascrate50 = s.value("ascrate50", 6).toInt();
+	prefs.ascratestops = s.value("ascratestops", 6).toInt();
+	prefs.ascratelast6m = s.value("ascratelast6m", 1).toInt();
+	prefs.descrate = s.value("descrate", 18).toInt();
+	prefs.bottompo2 = s.value("bottompo2", 1400).toInt();
+	prefs.decopo2 = s.value("decopo2",1600).toInt();
+	prefs.doo2breaks = s.value("doo2breaks", false).toBool();
+	s.endGroup();
+
 	ui.ascRate75->setValue(prefs.ascrate75 / UNIT_FACTOR);
 	ui.ascRate50->setValue(prefs.ascrate50 / UNIT_FACTOR);
 	ui.ascRateStops->setValue(prefs.ascratestops / UNIT_FACTOR);
@@ -373,7 +385,6 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
 	ui.decopo2->setValue(prefs.decopo2 / 1000.0);
 	ui.backgasBreaks->setChecked(prefs.doo2breaks);
 
-
 	connect(ui.lastStop, SIGNAL(toggled(bool)), plannerModel, SLOT(setLastStop6m(bool)));
 	connect(ui.verbatim_plan, SIGNAL(toggled(bool)), plannerModel, SLOT(setVerbatim(bool)));
 	connect(ui.display_duration, SIGNAL(toggled(bool)), plannerModel, SLOT(setDisplayDuration(bool)));
@@ -407,6 +418,21 @@ PlannerSettingsWidget::PlannerSettingsWidget(QWidget *parent, Qt::WindowFlags f)
 	setMinimumHeight(0);
 }
 
+PlannerSettingsWidget::~PlannerSettingsWidget()
+{
+	QSettings s;
+	s.beginGroup("Planner");
+	s.setValue("ascrate75", prefs.ascrate75);
+	s.setValue("ascrate50", prefs.ascrate50);
+	s.setValue("ascratestops", prefs.ascratestops);
+	s.setValue("ascratelast6m", prefs.ascratelast6m);
+	s.setValue("descrate", prefs.descrate);
+	s.setValue("bottompo2", prefs.bottompo2);
+	s.setValue("decopo2", prefs.decopo2);
+	s.setValue("doo2breaks", prefs.doo2breaks);
+	s.endGroup();
+}
+
 void PlannerSettingsWidget::settingsChanged()
 {
 	if (get_units()->length == units::FEET) {
diff --git a/qt-ui/diveplanner.h b/qt-ui/diveplanner.h
index a2c33f8..dda7dae 100644
--- a/qt-ui/diveplanner.h
+++ b/qt-ui/diveplanner.h
@@ -150,7 +150,7 @@ class PlannerSettingsWidget : public QWidget {
 	Q_OBJECT
 public:
 	explicit PlannerSettingsWidget(QWidget *parent = 0, Qt::WindowFlags f = 0);
-
+	virtual ~PlannerSettingsWidget();
 public
 slots:
 	void settingsChanged();
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index fdad2ba..01024a5 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -797,7 +797,6 @@ void MainWindow::readSettings()
 	default_dive_computer_product = getSetting(s, "dive_computer_product");
 	default_dive_computer_device = getSetting(s, "dive_computer_device");
 	s.endGroup();
-
 	QNetworkProxy proxy;
 	proxy.setType(QNetworkProxy::ProxyType(prefs.proxy_type));
 	proxy.setHostName(prefs.proxy_host);
-- 
2.0.1

_______________________________________________
subsurface mailing list
subsurface@hohndel.org
http://lists.hohndel.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to