summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/tab-widgets
diff options
context:
space:
mode:
authorGravatar Willem Ferguson <willemferguson@zoology.up.ac.za>2019-11-10 13:09:19 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2019-11-10 13:10:03 -0800
commit7a4abd7477dc2a4f8e52f7bb00c19890c6ec2ca2 (patch)
tree6c11b1d41b52307de8c396a4d1e94d7f3b06c410 /desktop-widgets/tab-widgets
parentdc95b077d96fbbd2dc71213217c24cd1eea5ea51 (diff)
downloadsubsurface-7a4abd7477dc2a4f8e52f7bb00c19890c6ec2ca2.tar.gz
Reorganise the Information tab of the Info panel
1) Reorganise the existing widgets in the Information tab 2) Move divemode widget and visibility widget from Notes tab to Information tab 3) Translate water density to a word indicating water type 4) Reorganise the Notes tab to compensate for the moving the divemode and visibility widgets to the Information tab 5) Remove the problems in showing a QGroupBox in Qt Windows. I do this by removing the CSS specifying border characteristics Signed-off-by: willemferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'desktop-widgets/tab-widgets')
-rw-r--r--desktop-widgets/tab-widgets/TabDiveInformation.cpp93
-rw-r--r--desktop-widgets/tab-widgets/TabDiveInformation.h5
-rw-r--r--desktop-widgets/tab-widgets/TabDiveInformation.ui409
-rw-r--r--desktop-widgets/tab-widgets/maintab.cpp43
-rw-r--r--desktop-widgets/tab-widgets/maintab.h3
-rw-r--r--desktop-widgets/tab-widgets/maintab.ui138
6 files changed, 445 insertions, 246 deletions
diff --git a/desktop-widgets/tab-widgets/TabDiveInformation.cpp b/desktop-widgets/tab-widgets/TabDiveInformation.cpp
index 928627311..641e762f2 100644
--- a/desktop-widgets/tab-widgets/TabDiveInformation.cpp
+++ b/desktop-widgets/tab-widgets/TabDiveInformation.cpp
@@ -1,6 +1,8 @@
// SPDX-License-Identifier: GPL-2.0
#include "TabDiveInformation.h"
#include "ui_TabDiveInformation.h"
+#include "desktop-widgets/mainwindow.h" // TODO: Only used temporarilly for edit mode changes
+#include "profile-widget/profilewidget2.h"
#include "../tagwidget.h"
#include "core/units.h"
#include "core/dive.h"
@@ -12,6 +14,7 @@
#define COMBO_CHANGED 0
#define TEXT_EDITED 1
+#define CSS_SET_HEADING_BLUE "QLabel { color: mediumblue;} "
TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(new Ui::TabDiveInformation())
{
@@ -20,6 +23,28 @@ TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(ne
QStringList atmPressTypes { "mbar", get_depth_unit() ,"use dc"};
ui->atmPressType->insertItems(0, atmPressTypes);
pressTypeIndex = 0;
+ // This needs to be the same order as enum dive_comp_type in dive.h!
+ QStringList types;
+ for (int i = 0; i < NUM_DIVEMODE; i++)
+ types.append(gettextFromC::tr(divemode_text_ui[i]));
+ ui->diveType->insertItems(0, types);
+ connect(ui->diveType, SIGNAL(currentIndexChanged(int)), this, SLOT(diveModeChanged(int)));
+ QString CSSSetSmallLabel = "QLabel { color: mediumblue; font-size: " + /* // Using label height ... */
+ QString::number((int)(0.5 + ui->diveHeadingLabel->geometry().height() * 0.66)) + "px;}"; // .. set CSS font size of star widget subscripts
+ ui->scrollAreaWidgetContents_3->setStyleSheet("QGroupBox::title { color: mediumblue;} ");
+ ui->diveModeBox->setStyleSheet("QGroupBox{ padding: 0;} ");
+ ui->diveHeadingLabel->setStyleSheet(CSS_SET_HEADING_BLUE);
+ ui->gasHeadingLabel->setStyleSheet(CSS_SET_HEADING_BLUE);
+ ui->environmentHeadingLabel->setStyleSheet(CSS_SET_HEADING_BLUE);
+ ui->groupBox_visibility->setStyleSheet(CSSSetSmallLabel);
+ QAction *action = new QAction(tr("OK"), this);
+ connect(action, &QAction::triggered, this, &TabDiveInformation::closeWarning);
+ ui->multiDiveWarningMessage->addAction(action);
+ action = new QAction(tr("Undo"), this);
+ connect(action, &QAction::triggered, Command::undoAction(this), &QAction::trigger);
+ connect(action, &QAction::triggered, this, &TabDiveInformation::closeWarning);
+ ui->multiDiveWarningMessage->addAction(action);
+ ui->multiDiveWarningMessage->hide();
}
TabDiveInformation::~TabDiveInformation()
@@ -34,7 +59,6 @@ void TabDiveInformation::clear()
ui->maxcnsText->clear();
ui->oxygenHeliumText->clear();
ui->gasUsedText->clear();
- ui->dateText->clear();
ui->diveTimeText->clear();
ui->surfaceIntervalText->clear();
ui->maximumDepthText->clear();
@@ -43,6 +67,22 @@ void TabDiveInformation::clear()
ui->airTemperatureText->clear();
ui->atmPressVal->clear();
ui->salinityText->clear();
+ ui->waterTypeText->clear();
+}
+
+void TabDiveInformation::divesEdited(int i)
+{
+ // No warning if only one dive was edited
+ if (i <= 1)
+ return;
+ ui->multiDiveWarningMessage->setCloseButtonVisible(false);
+ ui->multiDiveWarningMessage->setText(tr("Warning: edited %1 dives").arg(i));
+ ui->multiDiveWarningMessage->show();
+}
+
+void TabDiveInformation::closeWarning()
+{
+ ui->multiDiveWarningMessage->hide();
}
// Update fields that depend on the dive profile
@@ -87,7 +127,6 @@ void TabDiveInformation::updateProfile()
if (current_dive->surface_pressure.mbar == 0) {
ui->atmPressVal->clear(); // If no atm pressure for dive then clear text box
} else {
-
ui->atmPressVal->setEnabled(true);
QString pressStr;
pressStr.sprintf("%d",current_dive->surface_pressure.mbar);
@@ -98,7 +137,6 @@ void TabDiveInformation::updateProfile()
// Update fields that depend on start of dive
void TabDiveInformation::updateWhen()
{
- ui->dateText->setText(get_short_dive_date_string(current_dive->when));
timestamp_t surface_interval = get_surface_interval(current_dive->when);
if (surface_interval >= 0)
ui->surfaceIntervalText->setText(get_dive_surfint_string(surface_interval, tr("d"), tr("h"), tr("min")));
@@ -108,10 +146,19 @@ void TabDiveInformation::updateWhen()
void TabDiveInformation::updateSalinity()
{
- if (current_dive->salinity)
+ if (current_dive->salinity) { // Set up the salinity string:
ui->salinityText->setText(QString("%1g/ℓ").arg(current_dive->salinity / 10.0));
- else
+ if (current_dive->salinity < 10050) // Set water type indicator:
+ ui->waterTypeText->setText(tr("Fresh"));
+ else if (current_dive->salinity < 10190)
+ ui->waterTypeText->setText(tr("Salty"));
+ else if (current_dive->salinity < 10210) // (EN13319 = 1.019 - 1.021 g/l)
+ ui->waterTypeText->setText(tr("EN13319"));
+ else ui->waterTypeText->setText(tr("Salt"));
+ } else {
ui->salinityText->clear();
+ ui->waterTypeText->clear();
+ }
}
void TabDiveInformation::updateData()
@@ -125,12 +172,11 @@ void TabDiveInformation::updateData()
updateWhen();
ui->waterTemperatureText->setText(get_temperature_string(current_dive->watertemp, true));
ui->airTemperatureText->setText(get_temperature_string(current_dive->airtemp, true));
- updateSalinity();
-
- ui->atmPressType->setEditable(true);
ui->atmPressType->setItemText(1, get_depth_unit()); // Check for changes in depth unit (imperial/metric)
- ui->atmPressType->setEditable(false);
- ui->atmPressType->setCurrentIndex(0); // Set the atmospheric pressure combo box to mbar
+ ui->atmPressType->setCurrentIndex(0); // Set the atmospheric pressure combo box to mbar
+ updateMode(current_dive);
+ updateSalinity();
+ ui->visibility->setCurrentStars(current_dive->visibility);
}
// This function gets called if a field gets updated by an undo command.
@@ -141,6 +187,10 @@ void TabDiveInformation::divesChanged(const QVector<dive *> &dives, DiveField fi
if (!current_dive || !dives.contains(current_dive))
return;
+ if (field.visibility)
+ ui->visibility->setCurrentStars(current_dive->visibility);
+ if (field.mode)
+ updateMode(current_dive);
if (field.duration || field.depth || field.mode)
updateProfile();
if (field.air_temp)
@@ -149,12 +199,29 @@ void TabDiveInformation::divesChanged(const QVector<dive *> &dives, DiveField fi
ui->waterTemperatureText->setText(get_temperature_string(current_dive->watertemp, true));
if (field.atm_press)
ui->atmPressVal->setText(ui->atmPressVal->text().sprintf("%d",current_dive->surface_pressure.mbar));
- if (field.datetime)
- updateWhen();
if (field.salinity)
updateSalinity();
}
+
+void TabDiveInformation::on_visibility_valueChanged(int value)
+{
+ if (current_dive)
+ divesEdited(Command::editVisibility(value, false));
+}
+
+void TabDiveInformation::updateMode(struct dive *d)
+{
+ ui->diveType->setCurrentIndex(get_dive_dc(d, dc_number)->divemode);
+ MainWindow::instance()->graphics->replot();
+}
+
+void TabDiveInformation::diveModeChanged(int index)
+{
+ if (current_dive)
+ divesEdited(Command::editMode(dc_number, (enum divemode_t)index, false));
+}
+
void TabDiveInformation::on_atmPressType_currentIndexChanged(int index) { updateTextBox(COMBO_CHANGED); }
void TabDiveInformation::on_atmPressVal_editingFinished() { updateTextBox(TEXT_EDITED); }
@@ -193,7 +260,7 @@ void TabDiveInformation::updateTextBox(int event) // Either the text box has bee
break;
}
if (atmpress.mbar)
- Command::editAtmPress(atmpress.mbar, false); // and save the pressure for undo
+ divesEdited(Command::editAtmPress(atmpress.mbar, false)); // and save the pressure for undo
}
}
diff --git a/desktop-widgets/tab-widgets/TabDiveInformation.h b/desktop-widgets/tab-widgets/TabDiveInformation.h
index 5305f4146..8b38797c3 100644
--- a/desktop-widgets/tab-widgets/TabDiveInformation.h
+++ b/desktop-widgets/tab-widgets/TabDiveInformation.h
@@ -18,8 +18,10 @@ public:
void clear() override;
private slots:
void divesChanged(const QVector<dive *> &dives, DiveField field);
+ void diveModeChanged(int index);
void on_atmPressVal_editingFinished();
void on_atmPressType_currentIndexChanged(int index);
+ void on_visibility_valueChanged(int value);
private:
Ui::TabDiveInformation *ui;
void updateProfile();
@@ -27,6 +29,9 @@ private:
void updateWhen();
int pressTypeIndex;
void updateTextBox(int event);
+ void updateMode(struct dive *d);
+ void divesEdited(int);
+ void closeWarning();
};
#endif
diff --git a/desktop-widgets/tab-widgets/TabDiveInformation.ui b/desktop-widgets/tab-widgets/TabDiveInformation.ui
index b35ddf01d..41be1bd8a 100644
--- a/desktop-widgets/tab-widgets/TabDiveInformation.ui
+++ b/desktop-widgets/tab-widgets/TabDiveInformation.ui
@@ -15,6 +15,9 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
+ <widget class="KMessageWidget" name="multiDiveWarningMessage"/>
+ </item>
+ <item>
<widget class="QScrollArea" name="scrollArea_3">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
@@ -48,35 +51,65 @@
<number>0</number>
</property>
<property name="horizontalSpacing">
- <number>6</number>
+ <number>4</number>
</property>
<property name="verticalSpacing">
<number>0</number>
</property>
+
+ <item row="0" column="0">
+ <widget class="QLabel" name="diveHeadingLabel">
+ <property name="text">
+ <string>DIVE</string>
+ </property>
+ </widget>
+ </item>
+
<item row="0" column="0">
- <widget class="QGroupBox" name="groupBox_5">
+ <widget class="QLabel" name="diveHeadingLabel">
+ <property name="text">
+ <string>DIVE</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QGroupBox" name="diveModeBox">
<property name="title">
- <string>Date</string>
+ <string>Dive mode</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveModeLayout">
+ <property name="alignment">
+ <set>Qt::AlignBottom</set>
</property>
- <layout class="QHBoxLayout" name="diveInfoDateLayout">
<item>
- <widget class="QLabel" name="dateText">
- <property name="text">
- <string/>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
+ <widget class="QComboBox" name="diveType">
</widget>
</item>
</layout>
</widget>
</item>
- <item row="0" column="2">
+
+ <item row="1" column="1">
<widget class="QGroupBox" name="groupBox_12">
<property name="title">
<string>Interval</string>
</property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<layout class="QHBoxLayout" name="diveInfoSurfintervallLayout">
<item>
<widget class="QLabel" name="surfaceIntervalText">
@@ -84,78 +117,124 @@
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="1" column="0">
- <widget class="QGroupBox" name="groupBox_3">
+ <item row="1" column="2">
+ <widget class="QGroupBox" name="groupBox_11">
<property name="title">
- <string>Gases used</string>
+ <string>Duration</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoGasesUsedLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoDiveTimeLayout">
<item>
- <widget class="QLabel" name="oxygenHeliumText">
+ <widget class="QLabel" name="diveTimeText">
<property name="text">
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="1" column="1">
- <widget class="QGroupBox" name="groupBox_4">
+ <item row="1" column="3">
+ <widget class="QGroupBox" name="groupBox_6">
<property name="title">
- <string>Gas consumed</string>
+ <string>Max. depth</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoGasConsumedLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoMaxDepthLayout">
<item>
- <widget class="QLabel" name="gasUsedText">
+ <widget class="QLabel" name="maximumDepthText">
<property name="text">
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="1" column="2">
- <widget class="QGroupBox" name="groupBox">
+
+ <item row="1" column="4">
+ <widget class="QGroupBox" name="groupBox_7">
<property name="title">
- <string>SAC</string>
+ <string>Avg. depth</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoSacLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoAvgDepthLayout">
<item>
- <widget class="QLabel" name="sacText">
+ <widget class="QLabel" name="averageDepthText">
<property name="text">
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
+
<item row="2" column="0">
- <widget class="QGroupBox" name="groupBox_15">
+ <widget class="QLabel" name="gasHeadingLabel">
+ <property name="text">
+ <string>GAS</string>
+ </property>
+ </widget>
+ </item>
+
+ <item row="3" column="0">
+ <widget class="QGroupBox" name="groupBox_3">
<property name="title">
- <string>CNS</string>
+ <string> Gas name</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoCnsLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoGasesUsedLayout">
<item>
- <widget class="QLabel" name="maxcnsText">
+ <widget class="QLabel" name="oxygenHeliumText">
<property name="text">
<string/>
</property>
@@ -167,14 +246,23 @@
</layout>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QGroupBox" name="groupBox_2">
+ <item row="3" column="1">
+ <widget class="QGroupBox" name="groupBox_4">
<property name="title">
- <string>OTU</string>
+ <string>Gas consumed</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoOtuLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoGasConsumedLayout">
<item>
- <widget class="QLabel" name="otuText">
+ <widget class="QLabel" name="gasUsedText">
<property name="text">
<string/>
</property>
@@ -186,14 +274,23 @@
</layout>
</widget>
</item>
- <item row="3" column="1">
- <widget class="QGroupBox" name="groupBox_6">
+ <item row="3" column="2">
+ <widget class="QGroupBox" name="groupBox">
<property name="title">
- <string>Max. depth</string>
+ <string>SAC</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoMaxDepthLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoSacLayout">
<item>
- <widget class="QLabel" name="maximumDepthText">
+ <widget class="QLabel" name="sacText">
<property name="text">
<string/>
</property>
@@ -205,14 +302,23 @@
</layout>
</widget>
</item>
- <item row="3" column="0">
- <widget class="QGroupBox" name="groupBox_7">
+ <item row="3" column="3">
+ <widget class="QGroupBox" name="groupBox_15">
<property name="title">
- <string>Avg. depth</string>
+ <string>CNS</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoAvgDepthLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>1</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoCnsLayout">
<item>
- <widget class="QLabel" name="averageDepthText">
+ <widget class="QLabel" name="maxcnsText">
<property name="text">
<string/>
</property>
@@ -224,42 +330,63 @@
</layout>
</widget>
</item>
-
- <item row="2" column="2" colspan="1">
- <widget class="QGroupBox" name="groupBox_10">
+ <item row="3" column="4">
+ <widget class="QGroupBox" name="groupBox_2">
<property name="title">
- <string>Atm. pressure</string>
+ <string>OTU</string>
</property>
<property name="alignment">
<set>Qt::AlignHCenter</set>
</property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <layout class="QHBoxLayout" name="diveInfoAirPressureLayout">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoOtuLayout">
<item>
- <widget class="QLineEdit" name="atmPressVal">
- <property name="readOnly">
- <bool>false</bool>
+ <widget class="QLabel" name="otuText">
+ <property name="text">
+ <string/>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
</property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="atmPressType">
</widget>
</item>
</layout>
</widget>
</item>
- <item row="3" column="2">
+ <item row="4" column="0">
+ <widget class="QLabel" name="environmentHeadingLabel">
+ <property name="text">
+ <string>ENVIRONMENT</string>
+ </property>
+ </widget>
+ </item>
+
+ <item row="5" column="0">
<widget class="QGroupBox" name="groupBox_9">
<property name="title">
<string>Air temp.</string>
</property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<layout class="QHBoxLayout" name="diveInfoAirTempLayout">
<item>
<widget class="QLabel" name="airTemperatureText">
@@ -267,18 +394,28 @@
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="4" column="0">
+
+ <item row="5" column="1">
<widget class="QGroupBox" name="groupBox_8">
<property name="title">
<string>Water temp.</string>
</property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<layout class="QHBoxLayout" name="diveInfoWaterTempLayout">
<item>
<widget class="QLabel" name="waterTemperatureText">
@@ -286,49 +423,139 @@
<string/>
</property>
<property name="alignment">
- <set>Qt::AlignCenter</set>
+ <set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QGroupBox" name="groupBox_11">
+
+ <item row="5" column="2" colspan="3">
+ <layout class="QGridLayout" name="envGroupLayout">
+ <property name="horizontalSpacing">
+ <number>4</number>
+ </property>
+
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="groupBox_1">
<property name="title">
- <string>Dive time</string>
+ <string>Water type/Density</string>
</property>
- <layout class="QHBoxLayout" name="diveInfoDiveTimeLayout">
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoWaterDensityLayout">
+
<item>
- <widget class="QLabel" name="diveTimeText">
- <property name="text">
- <string/>
- </property>
+ <widget class="QLabel" name="waterTypeText">
+ <property name="text">
+ <string>EN13319</string>
+ </property>
+ </widget>
+ </item>
+
+ <item>
+ <widget class="QLabel" name="salinityText">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
+
</layout>
</widget>
</item>
- <item row="4" column="1">
- <widget class="QGroupBox" name="groupBox_1">
+
+ <item row="0" column="1">
+ <widget class="QGroupBox" name="groupBox_10">
<property name="title">
- <string>Water type</string>
+ <string>Atm. pressure/Altitude</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
</property>
- <layout class="QHBoxLayout" name="diveInfoSalinityLayout">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QHBoxLayout" name="diveInfoAirPressureLayout">
<item>
- <widget class="QLabel" name="salinityText">
- <property name="alignment">
- <set>Qt::AlignCenter</set>
+ <widget class="QLineEdit" name="atmPressVal">
+ <property name="readOnly">
+ <bool>false</bool>
</property>
</widget>
</item>
+ <item>
+ <widget class="QComboBox" name="atmPressType">
+ </widget>
+ </item>
</layout>
</widget>
</item>
- <item row="5" column="0">
+
+ </layout>
+ </item>
+
+ <item row="6" column="1" alignment="Qt::AlignVCenter">
+ <widget class="QGroupBox" name="groupBox_visibility">
+ <property name="title">
+ <string>Visibility</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignHCenter</set>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <layout class="QGridLayout" name="visibilityLayout">
+ <property name="verticalSpacing">
+ <number>0</number>
+ </property>
+ <item row="0" column="0" colspan="2" alignment="Qt::AlignHCenter">
+ <widget class="StarWidget" name="visibility" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" alignment="Qt::AlignLeft">
+ <widget class="QLabel" name="visLabel1">
+ <property name="text">
+ <string>Bad</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" alignment="Qt::AlignRight">
+ <widget class="QLabel" name="visLabel2">
+ <property name="text">
+ <string>Good</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+
+ <item row="7" column="0">
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -336,6 +563,12 @@
<property name="sizeType">
<enum>QSizePolicy::Expanding</enum>
</property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
diff --git a/desktop-widgets/tab-widgets/maintab.cpp b/desktop-widgets/tab-widgets/maintab.cpp
index e10575942..7e82ca5f1 100644
--- a/desktop-widgets/tab-widgets/maintab.cpp
+++ b/desktop-widgets/tab-widgets/maintab.cpp
@@ -116,13 +116,6 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
// filled from a dive, they are made writeable
setEnabled(false);
- // This needs to be the same order as enum dive_comp_type in dive.h!
- QStringList types = QStringList();
- for (int i = 0; i < NUM_DIVEMODE; i++)
- types.append(gettextFromC::tr(divemode_text_ui[i]));
- ui.DiveType->insertItems(0, types);
- connect(ui.DiveType, SIGNAL(currentIndexChanged(int)), this, SLOT(divetype_Changed(int)));
-
Completers completers;
completers.buddy = new QCompleter(&buddyModel, ui.buddy);
completers.divemaster = new QCompleter(&diveMasterModel, ui.divemaster);
@@ -282,12 +275,8 @@ void MainTab::divesChanged(const QVector<dive *> &dives, DiveField field)
ui.watertemp->setText(get_temperature_string(current_dive->watertemp, true));
if (field.rating)
ui.rating->setCurrentStars(current_dive->rating);
- if (field.visibility)
- ui.visibility->setCurrentStars(current_dive->visibility);
if (field.notes)
updateNotes(current_dive);
- if (field.mode)
- updateMode(current_dive);
if (field.datetime) {
updateDateTime(current_dive);
MainWindow::instance()->graphics->dateTimeChanged();
@@ -352,12 +341,6 @@ void MainTab::updateNotes(const struct dive *d)
}
}
-void MainTab::updateMode(struct dive *d)
-{
- ui.DiveType->setCurrentIndex(get_dive_dc(d, dc_number)->divemode);
- MainWindow::instance()->graphics->replot();
-}
-
static QDateTime timestampToDateTime(timestamp_t when)
{
// Subsurface always uses "local time" as in "whatever was the local time at the location"
@@ -442,14 +425,10 @@ void MainTab::updateDiveInfo()
ui.BuddyLabel->setVisible(false);
ui.rating->setVisible(false);
ui.RatingLabel->setVisible(false);
- ui.visibility->setVisible(false);
- ui.visibilityLabel->setVisible(false);
ui.tagWidget->setVisible(false);
ui.TagLabel->setVisible(false);
ui.airTempLabel->setVisible(false);
ui.airtemp->setVisible(false);
- ui.DiveType->setVisible(false);
- ui.TypeLabel->setVisible(false);
ui.waterTempLabel->setVisible(false);
ui.watertemp->setVisible(false);
ui.dateEdit->setReadOnly(true);
@@ -496,16 +475,12 @@ void MainTab::updateDiveInfo()
ui.buddy->setVisible(true);
ui.rating->setVisible(true);
ui.RatingLabel->setVisible(true);
- ui.visibility->setVisible(true);
- ui.visibilityLabel->setVisible(true);
ui.BuddyLabel->setVisible(true);
ui.DivemasterLabel->setVisible(true);
ui.TagLabel->setVisible(true);
ui.tagWidget->setVisible(true);
ui.airTempLabel->setVisible(true);
ui.airtemp->setVisible(true);
- ui.TypeLabel->setVisible(true);
- ui.DiveType->setVisible(true);
ui.waterTempLabel->setVisible(true);
ui.watertemp->setVisible(true);
ui.dateEdit->setReadOnly(false);
@@ -513,7 +488,6 @@ void MainTab::updateDiveInfo()
ui.timeEdit->setVisible(true);
/* and fill them from the dive */
ui.rating->setCurrentStars(current_dive->rating);
- ui.visibility->setCurrentStars(current_dive->visibility);
// reset labels in case we last displayed trip notes
ui.LocationLabel->setText(tr("Location"));
ui.NotesLabel->setText(tr("Notes"));
@@ -525,7 +499,6 @@ void MainTab::updateDiveInfo()
ui.durationLabel->setVisible(isManual);
updateNotes(current_dive);
- updateMode(current_dive);
updateDiveSite(current_dive);
updateDateTime(current_dive);
ui.divemaster->setText(current_dive->divemaster);
@@ -548,7 +521,6 @@ void MainTab::updateDiveInfo()
/* clear the fields */
clearTabs();
ui.rating->setCurrentStars(0);
- ui.visibility->setCurrentStars(0);
ui.location->clear();
ui.divemaster->clear();
ui.buddy->clear();
@@ -771,13 +743,6 @@ void MainTab::on_airtemp_editingFinished()
divesEdited(Command::editAirTemp(parseTemperatureToMkelvin(ui.airtemp->text()), false));
}
-void MainTab::divetype_Changed(int index)
-{
- if (editMode == IGNORE_MODE || !current_dive)
- return;
- divesEdited(Command::editMode(dc_number, (enum divemode_t)index, false));
-}
-
void MainTab::on_watertemp_editingFinished()
{
// If the field wasn't modified by the user, don't post a new undo command.
@@ -881,14 +846,6 @@ void MainTab::on_rating_valueChanged(int value)
divesEdited(Command::editRating(value, false));
}
-void MainTab::on_visibility_valueChanged(int value)
-{
- if (editMode == IGNORE_MODE || !current_dive)
- return;
-
- divesEdited(Command::editVisibility(value, false));
-}
-
// Remove focus from any active field to update the corresponding value in the dive.
// Do this by setting the focus to ourself
void MainTab::stealFocus()
diff --git a/desktop-widgets/tab-widgets/maintab.h b/desktop-widgets/tab-widgets/maintab.h
index 55227c993..e4994a231 100644
--- a/desktop-widgets/tab-widgets/maintab.h
+++ b/desktop-widgets/tab-widgets/maintab.h
@@ -51,7 +51,6 @@ slots:
void tripChanged(dive_trip *trip, TripField field);
void updateDiveInfo();
void updateNotes(const struct dive *d);
- void updateMode(struct dive *d);
void updateDateTime(const struct dive *d);
void updateTripDate(const struct dive_trip *t);
void updateDiveSite(struct dive *d);
@@ -66,12 +65,10 @@ slots:
void on_airtemp_editingFinished();
void on_duration_editingFinished();
void on_depth_editingFinished();
- void divetype_Changed(int);
void on_watertemp_editingFinished();
void on_dateEdit_dateChanged(const QDate &date);
void on_timeEdit_timeChanged(const QTime & time);
void on_rating_valueChanged(int value);
- void on_visibility_valueChanged(int value);
void on_tagWidget_editingFinished();
void hideMessage();
void closeMessage();
diff --git a/desktop-widgets/tab-widgets/maintab.ui b/desktop-widgets/tab-widgets/maintab.ui
index 606f1dd54..8e172f91a 100644
--- a/desktop-widgets/tab-widgets/maintab.ui
+++ b/desktop-widgets/tab-widgets/maintab.ui
@@ -298,100 +298,15 @@
</layout>
</item>
<item>
- <layout class="QGridLayout" name="gridLayout_8" columnstretch="0,0,1">
- <property name="leftMargin">
- <number>5</number>
- </property>
- <property name="rightMargin">
- <number>5</number>
- </property>
- <property name="horizontalSpacing">
+ <layout class="QHBoxLayout" name="gridLayout_9">
+ <property name="Spacing">
<number>5</number>
</property>
- <property name="verticalSpacing">
- <number>0</number>
- </property>
- <item row="0" column="0">
- <widget class="QLabel" name="RatingLabel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Rating</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="QLabel" name="visibilityLabel">
- <property name="sizePolicy">
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Visibility</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" alignment="Qt::AlignVCenter">
- <widget class="StarWidget" name="rating" native="true">
- <property name="sizePolicy">
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="1" alignment="Qt::AlignVCenter">
- <widget class="StarWidget" name="visibility" native="true">
- <property name="sizePolicy">
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="focusPolicy">
- <enum>Qt::StrongFocus</enum>
- </property>
- </widget>
- </item>
- <item row="1" column="2">
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType">
- <enum>QSizePolicy::Expanding</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
<item>
- <layout class="QGridLayout" name="gridLayout_9">
- <property name="horizontalSpacing">
+ <layout class="QVBoxLayout" name="gridLayout_tags">
+ <property name="Spacing">
<number>5</number>
</property>
- <property name="verticalSpacing">
- <number>0</number>
- </property>
- <item row="1" column="1">
- <widget class="QComboBox" name="DiveType"/>
- </item>
<item row="0" column="0">
<widget class="QLabel" name="TagLabel">
<property name="text">
@@ -402,16 +317,6 @@
</property>
</widget>
</item>
- <item row="0" column="1">
- <widget class="QLabel" name="TypeLabel">
- <property name="text">
- <string>Dive mode</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
- </property>
- </widget>
- </item>
<item row="1" column="0">
<widget class="TagWidget" name="tagWidget">
<property name="sizePolicy">
@@ -440,6 +345,41 @@
</layout>
</item>
<item>
+ <layout class="QVBoxLayout" name="gridLayout_rating">
+ <property name="Spacing">
+ <number>5</number>
+ </property>
+ <item row="0" column="1">
+ <widget class="QLabel" name="RatingLabel">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Rating</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" alignment="Qt::AlignVCenter">
+ <widget class="StarWidget" name="rating" native="true">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="focusPolicy">
+ <enum>Qt::StrongFocus</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
<layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing">
<number>0</number>