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