summaryrefslogtreecommitdiffstats
path: root/qt-ui
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2013-05-26 11:33:45 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2013-05-26 11:33:45 -0700
commitb947cc924ff5c78ca7e0561d3ee3891207bea5e6 (patch)
tree55383890dcaa3158e0749cc59d7c950a67c96395 /qt-ui
parent96f74d9939c3394bb8ece0888b473cdf4bc88b1a (diff)
downloadsubsurface-b947cc924ff5c78ca7e0561d3ee3891207bea5e6.tar.gz
Hook up most of the Preferences dialog
The imperial/metric super setting doesn't have any effect. But changing the individual units now works and is tracked. And causes the display to change after clicking "OK" (but not yet when clicking "Apply"). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui')
-rw-r--r--qt-ui/mainwindow.cpp22
-rw-r--r--qt-ui/mainwindow.h4
-rw-r--r--qt-ui/preferences.cpp48
-rw-r--r--qt-ui/profilegraphics.cpp9
-rw-r--r--qt-ui/profilegraphics.h5
5 files changed, 53 insertions, 35 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 0c042cae5..69ffdb224 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -40,6 +40,8 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow())
ui->setupUi(this);
setWindowIcon(QIcon(":subsurface-icon"));
connect(ui->ListWidget, SIGNAL(currentDiveChanged(int)), this, SLOT(current_dive_changed(int)));
+ connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), this, SLOT(readSettings()));
+ connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui->ProfileWidget, SLOT(refresh()));
ui->mainErrorMessage->hide();
ui->ProfileWidget->setFocusProxy(ui->ListWidget);
ui->ListWidget->reload();
@@ -355,11 +357,11 @@ void MainWindow::readSettings()
settings.endGroup();
settings.beginGroup("Units");
- GET_UNIT(v, "feet", length, units::FEET, units::METERS);
- GET_UNIT(v, "psi", pressure, units::PSI, units::BAR);
- GET_UNIT(v, "cuft", volume, units::CUFT, units::LITER);
- GET_UNIT(v, "fahrenheit", temperature, units::FAHRENHEIT, units::CELSIUS);
- GET_UNIT(v, "lbs", weight, units::LBS, units::KG);
+ GET_UNIT(v, "length", length, units::FEET, units::METERS);
+ GET_UNIT(v, "pressure", pressure, units::PSI, units::BAR);
+ GET_UNIT(v, "volume", volume, units::CUFT, units::LITER);
+ GET_UNIT(v, "temperature", temperature, units::FAHRENHEIT, units::CELSIUS);
+ GET_UNIT(v, "weight", weight, units::LBS, units::KG);
settings.endGroup();
settings.beginGroup("DisplayListColumns");
GET_BOOL(v, "CYLINDER", prefs.visible_cols.cylinder);
@@ -437,11 +439,11 @@ void MainWindow::writeSettings()
settings.setValue(QString("colwidth%1").arg(i), ui->ListWidget->columnWidth(i));
settings.endGroup();
settings.beginGroup("Units");
- SAVE_VALUE("feet", units.length);
- SAVE_VALUE("psi", units.pressure);
- SAVE_VALUE("cuft", units.volume);
- SAVE_VALUE("fahrenheit", units.temperature);
- SAVE_VALUE("lbs", units.weight);
+ SAVE_VALUE("length", units.length);
+ SAVE_VALUE("pressure", units.pressure);
+ SAVE_VALUE("volume", units.volume);
+ SAVE_VALUE("temperature", units.temperature);
+ SAVE_VALUE("weight", units.weight);
settings.endGroup();
settings.beginGroup("DisplayListColumns");
SAVE_VALUE("TEMPERATURE", visible_cols.temperature);
diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h
index a5b1a9b48..2366617c6 100644
--- a/qt-ui/mainwindow.h
+++ b/qt-ui/mainwindow.h
@@ -85,6 +85,9 @@ private Q_SLOTS:
protected:
void closeEvent(QCloseEvent *);
+public Q_SLOTS:
+ void readSettings();
+
private:
Ui::MainWindow *ui;
QAction *actionNextDive;
@@ -92,7 +95,6 @@ private:
QString filter();
bool askSaveChanges();
- void readSettings();
void writeSettings();
void redrawProfile();
void file_save();
diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp
index 1c38fe317..3e684d88a 100644
--- a/qt-ui/preferences.cpp
+++ b/qt-ui/preferences.cpp
@@ -21,6 +21,7 @@ PreferencesDialog::PreferencesDialog(QWidget* parent, Qt::WindowFlags f) : QDial
QSettings s;
// Graph
+ s.beginGroup("TecDetails");
ui->calculated_ceiling->setChecked(B(show_calculated_ceiling));
ui->phe->setChecked(B(show_phe));
ui->po2->setChecked(B(show_po2));
@@ -34,39 +35,44 @@ PreferencesDialog::PreferencesDialog(QWidget* parent, Qt::WindowFlags f) : QDial
ui->increment_3m->setChecked(B(show_3m_increments));
ui->gflow->setValue(D(gflow));
ui->gfhigh->setValue(D(gfhigh));
+ s.endGroup();
// Units
+ s.beginGroup("Units");
bool value = s.value("units_metric").toBool();
ui->metric->setChecked(value);
ui->imperial->setChecked(!value);
- value = s.value("units_celcius").toBool();
- ui->celsius->setChecked( value);
- ui->fahrenheit->setChecked( !value);
+ int unit = s.value("temperature").toInt();
+ ui->celsius->setChecked(unit == units::CELSIUS);
+ ui->fahrenheit->setChecked(unit == units::FAHRENHEIT);
+
+ unit = s.value("length").toInt();
+ ui->meter->setChecked(unit == units::METERS);
+ ui->feet->setChecked(unit == units::FEET);
- value = s.value("units_meters").toBool();
- ui->meter->setChecked(value);
- ui->feet->setChecked(!value);
+ unit = s.value("pressure").toInt();
+ ui->bar->setChecked(unit == units::BAR);
+ ui->psi->setChecked(unit == units::PSI);
- value = s.value("units_bar").toBool();
- ui->bar->setChecked(value);
- ui->psi->setChecked(!value);
+ unit = s.value("volume").toInt();
+ ui->liter->setChecked(unit == units::LITER);
+ ui->cuft->setChecked(unit == units::CUFT);
- value = s.value("units_liter").toBool();
- ui->liter->setChecked(value);
- ui->cuft->setChecked(!value);
+ unit = s.value("weight").toInt();
+ ui->kgs->setChecked(unit == units::KG);
+ ui->lbs->setChecked(unit == units::LBS);
- value = s.value("units_kgs").toBool();
- ui->kgs->setChecked(value);
- ui->lbs->setChecked(!value);
+ s.endGroup();
// Defaults
+ s.beginGroup("GeneralSettings");
ui->font->setFont( QFont(s.value("table_fonts").toString()));
ui->fontsize->setValue(D(font_size));
ui->defaultfilename->setText(s.value("default_file").toString());
ui->displayinvalid->setChecked(B(show_invalid));
-
+ s.endGroup();
#undef B
#undef D
}
@@ -95,11 +101,11 @@ void PreferencesDialog::syncSettings()
// Units
s.beginGroup("Units");
s.setValue("units_metric", ui->metric->isChecked());
- s.setValue("fahrenheit", ui->fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS);
- s.setValue("feet", ui->feet->isChecked() ? units::FEET : units::METERS);
- s.setValue("psi", ui->psi->isChecked() ? units::PSI : units::BAR);
- s.setValue("cuft", ui->cuft->isChecked() ? units::CUFT : units::LITER);
- s.setValue("lbs", ui->lbs->isChecked() ? units::LBS : units::KG);
+ s.setValue("temperature", ui->fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS);
+ s.setValue("length", ui->feet->isChecked() ? units::FEET : units::METERS);
+ s.setValue("pressure", ui->psi->isChecked() ? units::PSI : units::BAR);
+ s.setValue("volume", ui->cuft->isChecked() ? units::CUFT : units::LITER);
+ s.setValue("weight", ui->lbs->isChecked() ? units::LBS : units::KG);
s.endGroup();
// Defaults
s.beginGroup("GeneralSettings");
diff --git a/qt-ui/profilegraphics.cpp b/qt-ui/profilegraphics.cpp
index deef8a9d5..722cea6bd 100644
--- a/qt-ui/profilegraphics.cpp
+++ b/qt-ui/profilegraphics.cpp
@@ -220,14 +220,19 @@ void ProfileGraphicsView::clear()
toolTip = 0;
}
-void ProfileGraphicsView::plot(struct dive *d)
+void ProfileGraphicsView::refresh()
+{
+ plot(current_dive, TRUE);
+}
+
+void ProfileGraphicsView::plot(struct dive *d, bool forceRedraw)
{
struct divecomputer *dc;
if (d)
dc = select_dc(&d->dc);
- if (dive == d && (d && dc == diveDC))
+ if (!forceRedraw && dive == d && (d && dc == diveDC))
return;
clear();
diff --git a/qt-ui/profilegraphics.h b/qt-ui/profilegraphics.h
index 715c81ebf..963dd7d90 100644
--- a/qt-ui/profilegraphics.h
+++ b/qt-ui/profilegraphics.h
@@ -62,7 +62,7 @@ class ProfileGraphicsView : public QGraphicsView
Q_OBJECT
public:
ProfileGraphicsView(QWidget* parent = 0);
- void plot(struct dive *d);
+ void plot(struct dive *d, bool forceRedraw = FALSE);
bool eventFilter(QObject* obj, QEvent* event);
void clear();
@@ -72,6 +72,9 @@ protected:
void wheelEvent(QWheelEvent* event);
void showEvent(QShowEvent* event);
+public Q_SLOTS:
+ void refresh();
+
private:
void plot_depth_profile();
QGraphicsSimpleTextItem* plot_text(text_render_options_t *tro, const QPointF& pos, const QString &text, QGraphicsItem *parent = 0);