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>
This commit is contained in:
Willem Ferguson 2019-11-10 13:09:19 -08:00 committed by Dirk Hohndel
parent dc95b077d9
commit 7a4abd7477
6 changed files with 483 additions and 284 deletions

View file

@ -1,6 +1,8 @@
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "TabDiveInformation.h" #include "TabDiveInformation.h"
#include "ui_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 "../tagwidget.h"
#include "core/units.h" #include "core/units.h"
#include "core/dive.h" #include "core/dive.h"
@ -12,6 +14,7 @@
#define COMBO_CHANGED 0 #define COMBO_CHANGED 0
#define TEXT_EDITED 1 #define TEXT_EDITED 1
#define CSS_SET_HEADING_BLUE "QLabel { color: mediumblue;} "
TabDiveInformation::TabDiveInformation(QWidget *parent) : TabBase(parent), ui(new Ui::TabDiveInformation()) 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"}; QStringList atmPressTypes { "mbar", get_depth_unit() ,"use dc"};
ui->atmPressType->insertItems(0, atmPressTypes); ui->atmPressType->insertItems(0, atmPressTypes);
pressTypeIndex = 0; 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() TabDiveInformation::~TabDiveInformation()
@ -34,7 +59,6 @@ void TabDiveInformation::clear()
ui->maxcnsText->clear(); ui->maxcnsText->clear();
ui->oxygenHeliumText->clear(); ui->oxygenHeliumText->clear();
ui->gasUsedText->clear(); ui->gasUsedText->clear();
ui->dateText->clear();
ui->diveTimeText->clear(); ui->diveTimeText->clear();
ui->surfaceIntervalText->clear(); ui->surfaceIntervalText->clear();
ui->maximumDepthText->clear(); ui->maximumDepthText->clear();
@ -43,6 +67,22 @@ void TabDiveInformation::clear()
ui->airTemperatureText->clear(); ui->airTemperatureText->clear();
ui->atmPressVal->clear(); ui->atmPressVal->clear();
ui->salinityText->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 // Update fields that depend on the dive profile
@ -87,7 +127,6 @@ void TabDiveInformation::updateProfile()
if (current_dive->surface_pressure.mbar == 0) { if (current_dive->surface_pressure.mbar == 0) {
ui->atmPressVal->clear(); // If no atm pressure for dive then clear text box ui->atmPressVal->clear(); // If no atm pressure for dive then clear text box
} else { } else {
ui->atmPressVal->setEnabled(true); ui->atmPressVal->setEnabled(true);
QString pressStr; QString pressStr;
pressStr.sprintf("%d",current_dive->surface_pressure.mbar); pressStr.sprintf("%d",current_dive->surface_pressure.mbar);
@ -98,7 +137,6 @@ void TabDiveInformation::updateProfile()
// Update fields that depend on start of dive // Update fields that depend on start of dive
void TabDiveInformation::updateWhen() void TabDiveInformation::updateWhen()
{ {
ui->dateText->setText(get_short_dive_date_string(current_dive->when));
timestamp_t surface_interval = get_surface_interval(current_dive->when); timestamp_t surface_interval = get_surface_interval(current_dive->when);
if (surface_interval >= 0) if (surface_interval >= 0)
ui->surfaceIntervalText->setText(get_dive_surfint_string(surface_interval, tr("d"), tr("h"), tr("min"))); 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() 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)); 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->salinityText->clear();
ui->waterTypeText->clear();
}
} }
void TabDiveInformation::updateData() void TabDiveInformation::updateData()
@ -125,12 +172,11 @@ void TabDiveInformation::updateData()
updateWhen(); updateWhen();
ui->waterTemperatureText->setText(get_temperature_string(current_dive->watertemp, true)); ui->waterTemperatureText->setText(get_temperature_string(current_dive->watertemp, true));
ui->airTemperatureText->setText(get_temperature_string(current_dive->airtemp, 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->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. // 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)) if (!current_dive || !dives.contains(current_dive))
return; return;
if (field.visibility)
ui->visibility->setCurrentStars(current_dive->visibility);
if (field.mode)
updateMode(current_dive);
if (field.duration || field.depth || field.mode) if (field.duration || field.depth || field.mode)
updateProfile(); updateProfile();
if (field.air_temp) 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)); ui->waterTemperatureText->setText(get_temperature_string(current_dive->watertemp, true));
if (field.atm_press) if (field.atm_press)
ui->atmPressVal->setText(ui->atmPressVal->text().sprintf("%d",current_dive->surface_pressure.mbar)); ui->atmPressVal->setText(ui->atmPressVal->text().sprintf("%d",current_dive->surface_pressure.mbar));
if (field.datetime)
updateWhen();
if (field.salinity) if (field.salinity)
updateSalinity(); 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_atmPressType_currentIndexChanged(int index) { updateTextBox(COMBO_CHANGED); }
void TabDiveInformation::on_atmPressVal_editingFinished() { updateTextBox(TEXT_EDITED); } void TabDiveInformation::on_atmPressVal_editingFinished() { updateTextBox(TEXT_EDITED); }
@ -193,7 +260,7 @@ void TabDiveInformation::updateTextBox(int event) // Either the text box has bee
break; break;
} }
if (atmpress.mbar) 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
} }
} }

View file

@ -18,8 +18,10 @@ public:
void clear() override; void clear() override;
private slots: private slots:
void divesChanged(const QVector<dive *> &dives, DiveField field); void divesChanged(const QVector<dive *> &dives, DiveField field);
void diveModeChanged(int index);
void on_atmPressVal_editingFinished(); void on_atmPressVal_editingFinished();
void on_atmPressType_currentIndexChanged(int index); void on_atmPressType_currentIndexChanged(int index);
void on_visibility_valueChanged(int value);
private: private:
Ui::TabDiveInformation *ui; Ui::TabDiveInformation *ui;
void updateProfile(); void updateProfile();
@ -27,6 +29,9 @@ private:
void updateWhen(); void updateWhen();
int pressTypeIndex; int pressTypeIndex;
void updateTextBox(int event); void updateTextBox(int event);
void updateMode(struct dive *d);
void divesEdited(int);
void closeWarning();
}; };
#endif #endif

View file

@ -14,6 +14,9 @@
<string>Information</string> <string>Information</string>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="KMessageWidget" name="multiDiveWarningMessage"/>
</item>
<item> <item>
<widget class="QScrollArea" name="scrollArea_3"> <widget class="QScrollArea" name="scrollArea_3">
<property name="frameShape"> <property name="frameShape">
@ -48,35 +51,65 @@
<number>0</number> <number>0</number>
</property> </property>
<property name="horizontalSpacing"> <property name="horizontalSpacing">
<number>6</number> <number>4</number>
</property> </property>
<property name="verticalSpacing"> <property name="verticalSpacing">
<number>0</number> <number>0</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QGroupBox" name="groupBox_5"> <widget class="QLabel" name="diveHeadingLabel">
<property name="title"> <property name="text">
<string>Date</string> <string>DIVE</string>
</property>
</widget>
</item>
<item row="0" column="0">
<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>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> </property>
<layout class="QHBoxLayout" name="diveInfoDateLayout">
<item> <item>
<widget class="QLabel" name="dateText"> <widget class="QComboBox" name="diveType">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="0" column="2">
<item row="1" column="1">
<widget class="QGroupBox" name="groupBox_12"> <widget class="QGroupBox" name="groupBox_12">
<property name="title"> <property name="title">
<string>Interval</string> <string>Interval</string>
</property> </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"> <layout class="QHBoxLayout" name="diveInfoSurfintervallLayout">
<item> <item>
<widget class="QLabel" name="surfaceIntervalText"> <widget class="QLabel" name="surfaceIntervalText">
@ -84,17 +117,120 @@
<string/> <string/>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignHCenter</set>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="2">
<widget class="QGroupBox" name="groupBox_11">
<property name="title">
<string>Duration</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="diveInfoDiveTimeLayout">
<item>
<widget class="QLabel" name="diveTimeText">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="3">
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Max. depth</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="diveInfoMaxDepthLayout">
<item>
<widget class="QLabel" name="maximumDepthText">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="4">
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>Avg. depth</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="diveInfoAvgDepthLayout">
<item>
<widget class="QLabel" name="averageDepthText">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="2" column="0">
<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"> <widget class="QGroupBox" name="groupBox_3">
<property name="title"> <property name="title">
<string>Gases used</string> <string> Gas name</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> </property>
<layout class="QHBoxLayout" name="diveInfoGasesUsedLayout"> <layout class="QHBoxLayout" name="diveInfoGasesUsedLayout">
<item> <item>
@ -110,11 +246,20 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="3" column="1">
<widget class="QGroupBox" name="groupBox_4"> <widget class="QGroupBox" name="groupBox_4">
<property name="title"> <property name="title">
<string>Gas consumed</string> <string>Gas consumed</string>
</property> </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="diveInfoGasConsumedLayout"> <layout class="QHBoxLayout" name="diveInfoGasConsumedLayout">
<item> <item>
<widget class="QLabel" name="gasUsedText"> <widget class="QLabel" name="gasUsedText">
@ -129,11 +274,20 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="1" column="2"> <item row="3" column="2">
<widget class="QGroupBox" name="groupBox"> <widget class="QGroupBox" name="groupBox">
<property name="title"> <property name="title">
<string>SAC</string> <string>SAC</string>
</property> </property>
<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"> <layout class="QHBoxLayout" name="diveInfoSacLayout">
<item> <item>
<widget class="QLabel" name="sacText"> <widget class="QLabel" name="sacText">
@ -148,11 +302,20 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="3" column="3">
<widget class="QGroupBox" name="groupBox_15"> <widget class="QGroupBox" name="groupBox_15">
<property name="title"> <property name="title">
<string>CNS</string> <string>CNS</string>
</property> </property>
<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"> <layout class="QHBoxLayout" name="diveInfoCnsLayout">
<item> <item>
<widget class="QLabel" name="maxcnsText"> <widget class="QLabel" name="maxcnsText">
@ -167,55 +330,32 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item row="3" column="4">
<widget class="QGroupBox" name="groupBox_2"> <widget class="QGroupBox" name="groupBox_2">
<property name="title"> <property name="title">
<string>OTU</string> <string>OTU</string>
</property> </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="diveInfoOtuLayout"> <layout class="QHBoxLayout" name="diveInfoOtuLayout">
<item> <item>
<widget class="QLabel" name="otuText"> <widget class="QLabel" name="otuText">
<property name="text"> <property name="text">
<string/> <string/>
</property> </property>
<property name="alignment"> <property name="sizePolicy">
<set>Qt::AlignCenter</set> <sizepolicy hsizetype="Expanding" vsizetype="Preferred">
</property> <horstretch>0</horstretch>
</widget> <verstretch>0</verstretch>
</item> </sizepolicy>
</layout>
</widget>
</item>
<item row="3" column="1">
<widget class="QGroupBox" name="groupBox_6">
<property name="title">
<string>Max. depth</string>
</property> </property>
<layout class="QHBoxLayout" name="diveInfoMaxDepthLayout">
<item>
<widget class="QLabel" name="maximumDepthText">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="3" column="0">
<widget class="QGroupBox" name="groupBox_7">
<property name="title">
<string>Avg. depth</string>
</property>
<layout class="QHBoxLayout" name="diveInfoAvgDepthLayout">
<item>
<widget class="QLabel" name="averageDepthText">
<property name="text">
<string/>
</property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
</property> </property>
@ -225,17 +365,125 @@
</widget> </widget>
</item> </item>
<item row="2" column="2" colspan="1"> <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">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<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">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignHCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<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>Water type/Density</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="diveInfoWaterDensityLayout">
<item>
<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="0" column="1">
<widget class="QGroupBox" name="groupBox_10"> <widget class="QGroupBox" name="groupBox_10">
<property name="title"> <property name="title">
<string>Atm. pressure</string> <string>Atm. pressure/Altitude</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignHCenter</set> <set>Qt::AlignHCenter</set>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum"> <sizepolicy hsizetype="Ignored" vsizetype="Preferred">
<horstretch>0</horstretch> <horstretch>1</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </property>
@ -255,80 +503,59 @@
</widget> </widget>
</item> </item>
<item row="3" column="2"> </layout>
<widget class="QGroupBox" name="groupBox_9"> </item>
<item row="6" column="1" alignment="Qt::AlignVCenter">
<widget class="QGroupBox" name="groupBox_visibility">
<property name="title"> <property name="title">
<string>Air temp.</string> <string>Visibility</string>
</property> </property>
<layout class="QHBoxLayout" name="diveInfoAirTempLayout"> <property name="alignment">
<item> <set>Qt::AlignHCenter</set>
<widget class="QLabel" name="airTemperatureText"> </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"> <property name="text">
<string/> <string>Bad</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property> </property>
</widget> </widget>
</item>
<item row="1" column="1" alignment="Qt::AlignRight">
<widget class="QLabel" name="visLabel2">
<property name="text">
<string>Good</string>
</property>
</widget>
</item> </item>
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="4" column="0">
<widget class="QGroupBox" name="groupBox_8"> <item row="7" column="0">
<property name="title">
<string>Water temp.</string>
</property>
<layout class="QHBoxLayout" name="diveInfoWaterTempLayout">
<item>
<widget class="QLabel" name="waterTemperatureText">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="0" column="1">
<widget class="QGroupBox" name="groupBox_11">
<property name="title">
<string>Dive time</string>
</property>
<layout class="QHBoxLayout" name="diveInfoDiveTimeLayout">
<item>
<widget class="QLabel" name="diveTimeText">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="4" column="1">
<widget class="QGroupBox" name="groupBox_1">
<property name="title">
<string>Water type</string>
</property>
<layout class="QHBoxLayout" name="diveInfoSalinityLayout">
<item>
<widget class="QLabel" name="salinityText">
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="0">
<spacer> <spacer>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@ -336,6 +563,12 @@
<property name="sizeType"> <property name="sizeType">
<enum>QSizePolicy::Expanding</enum> <enum>QSizePolicy::Expanding</enum>
</property> </property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>

View file

@ -116,13 +116,6 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
// filled from a dive, they are made writeable // filled from a dive, they are made writeable
setEnabled(false); 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 completers;
completers.buddy = new QCompleter(&buddyModel, ui.buddy); completers.buddy = new QCompleter(&buddyModel, ui.buddy);
completers.divemaster = new QCompleter(&diveMasterModel, ui.divemaster); 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)); ui.watertemp->setText(get_temperature_string(current_dive->watertemp, true));
if (field.rating) if (field.rating)
ui.rating->setCurrentStars(current_dive->rating); ui.rating->setCurrentStars(current_dive->rating);
if (field.visibility)
ui.visibility->setCurrentStars(current_dive->visibility);
if (field.notes) if (field.notes)
updateNotes(current_dive); updateNotes(current_dive);
if (field.mode)
updateMode(current_dive);
if (field.datetime) { if (field.datetime) {
updateDateTime(current_dive); updateDateTime(current_dive);
MainWindow::instance()->graphics->dateTimeChanged(); 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) static QDateTime timestampToDateTime(timestamp_t when)
{ {
// Subsurface always uses "local time" as in "whatever was the local time at the location" // 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.BuddyLabel->setVisible(false);
ui.rating->setVisible(false); ui.rating->setVisible(false);
ui.RatingLabel->setVisible(false); ui.RatingLabel->setVisible(false);
ui.visibility->setVisible(false);
ui.visibilityLabel->setVisible(false);
ui.tagWidget->setVisible(false); ui.tagWidget->setVisible(false);
ui.TagLabel->setVisible(false); ui.TagLabel->setVisible(false);
ui.airTempLabel->setVisible(false); ui.airTempLabel->setVisible(false);
ui.airtemp->setVisible(false); ui.airtemp->setVisible(false);
ui.DiveType->setVisible(false);
ui.TypeLabel->setVisible(false);
ui.waterTempLabel->setVisible(false); ui.waterTempLabel->setVisible(false);
ui.watertemp->setVisible(false); ui.watertemp->setVisible(false);
ui.dateEdit->setReadOnly(true); ui.dateEdit->setReadOnly(true);
@ -496,16 +475,12 @@ void MainTab::updateDiveInfo()
ui.buddy->setVisible(true); ui.buddy->setVisible(true);
ui.rating->setVisible(true); ui.rating->setVisible(true);
ui.RatingLabel->setVisible(true); ui.RatingLabel->setVisible(true);
ui.visibility->setVisible(true);
ui.visibilityLabel->setVisible(true);
ui.BuddyLabel->setVisible(true); ui.BuddyLabel->setVisible(true);
ui.DivemasterLabel->setVisible(true); ui.DivemasterLabel->setVisible(true);
ui.TagLabel->setVisible(true); ui.TagLabel->setVisible(true);
ui.tagWidget->setVisible(true); ui.tagWidget->setVisible(true);
ui.airTempLabel->setVisible(true); ui.airTempLabel->setVisible(true);
ui.airtemp->setVisible(true); ui.airtemp->setVisible(true);
ui.TypeLabel->setVisible(true);
ui.DiveType->setVisible(true);
ui.waterTempLabel->setVisible(true); ui.waterTempLabel->setVisible(true);
ui.watertemp->setVisible(true); ui.watertemp->setVisible(true);
ui.dateEdit->setReadOnly(false); ui.dateEdit->setReadOnly(false);
@ -513,7 +488,6 @@ void MainTab::updateDiveInfo()
ui.timeEdit->setVisible(true); ui.timeEdit->setVisible(true);
/* and fill them from the dive */ /* and fill them from the dive */
ui.rating->setCurrentStars(current_dive->rating); ui.rating->setCurrentStars(current_dive->rating);
ui.visibility->setCurrentStars(current_dive->visibility);
// reset labels in case we last displayed trip notes // reset labels in case we last displayed trip notes
ui.LocationLabel->setText(tr("Location")); ui.LocationLabel->setText(tr("Location"));
ui.NotesLabel->setText(tr("Notes")); ui.NotesLabel->setText(tr("Notes"));
@ -525,7 +499,6 @@ void MainTab::updateDiveInfo()
ui.durationLabel->setVisible(isManual); ui.durationLabel->setVisible(isManual);
updateNotes(current_dive); updateNotes(current_dive);
updateMode(current_dive);
updateDiveSite(current_dive); updateDiveSite(current_dive);
updateDateTime(current_dive); updateDateTime(current_dive);
ui.divemaster->setText(current_dive->divemaster); ui.divemaster->setText(current_dive->divemaster);
@ -548,7 +521,6 @@ void MainTab::updateDiveInfo()
/* clear the fields */ /* clear the fields */
clearTabs(); clearTabs();
ui.rating->setCurrentStars(0); ui.rating->setCurrentStars(0);
ui.visibility->setCurrentStars(0);
ui.location->clear(); ui.location->clear();
ui.divemaster->clear(); ui.divemaster->clear();
ui.buddy->clear(); ui.buddy->clear();
@ -771,13 +743,6 @@ void MainTab::on_airtemp_editingFinished()
divesEdited(Command::editAirTemp(parseTemperatureToMkelvin(ui.airtemp->text()), false)); 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() void MainTab::on_watertemp_editingFinished()
{ {
// If the field wasn't modified by the user, don't post a new undo command. // 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)); 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. // Remove focus from any active field to update the corresponding value in the dive.
// Do this by setting the focus to ourself // Do this by setting the focus to ourself
void MainTab::stealFocus() void MainTab::stealFocus()

View file

@ -51,7 +51,6 @@ slots:
void tripChanged(dive_trip *trip, TripField field); void tripChanged(dive_trip *trip, TripField field);
void updateDiveInfo(); void updateDiveInfo();
void updateNotes(const struct dive *d); void updateNotes(const struct dive *d);
void updateMode(struct dive *d);
void updateDateTime(const struct dive *d); void updateDateTime(const struct dive *d);
void updateTripDate(const struct dive_trip *t); void updateTripDate(const struct dive_trip *t);
void updateDiveSite(struct dive *d); void updateDiveSite(struct dive *d);
@ -66,12 +65,10 @@ slots:
void on_airtemp_editingFinished(); void on_airtemp_editingFinished();
void on_duration_editingFinished(); void on_duration_editingFinished();
void on_depth_editingFinished(); void on_depth_editingFinished();
void divetype_Changed(int);
void on_watertemp_editingFinished(); void on_watertemp_editingFinished();
void on_dateEdit_dateChanged(const QDate &date); void on_dateEdit_dateChanged(const QDate &date);
void on_timeEdit_timeChanged(const QTime & time); void on_timeEdit_timeChanged(const QTime & time);
void on_rating_valueChanged(int value); void on_rating_valueChanged(int value);
void on_visibility_valueChanged(int value);
void on_tagWidget_editingFinished(); void on_tagWidget_editingFinished();
void hideMessage(); void hideMessage();
void closeMessage(); void closeMessage();

View file

@ -298,100 +298,15 @@
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QGridLayout" name="gridLayout_8" columnstretch="0,0,1"> <layout class="QHBoxLayout" name="gridLayout_9">
<property name="leftMargin"> <property name="Spacing">
<number>5</number> <number>5</number>
</property> </property>
<property name="rightMargin">
<number>5</number>
</property>
<property name="horizontalSpacing">
<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> <item>
<layout class="QGridLayout" name="gridLayout_9"> <layout class="QVBoxLayout" name="gridLayout_tags">
<property name="horizontalSpacing"> <property name="Spacing">
<number>5</number> <number>5</number>
</property> </property>
<property name="verticalSpacing">
<number>0</number>
</property>
<item row="1" column="1">
<widget class="QComboBox" name="DiveType"/>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="TagLabel"> <widget class="QLabel" name="TagLabel">
<property name="text"> <property name="text">
@ -402,16 +317,6 @@
</property> </property>
</widget> </widget>
</item> </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"> <item row="1" column="0">
<widget class="TagWidget" name="tagWidget"> <widget class="TagWidget" name="tagWidget">
<property name="sizePolicy"> <property name="sizePolicy">
@ -439,6 +344,41 @@
</item> </item>
</layout> </layout>
</item> </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> <item>
<layout class="QVBoxLayout" name="verticalLayout_7"> <layout class="QVBoxLayout" name="verticalLayout_7">
<property name="spacing"> <property name="spacing">