subsurface/desktop-widgets/preferences/preferences_equipment.cpp
Berthold Stoeger 50b11024d6 core: keep tank infos in a dynamic table
The list of known tank types were kept in a fixed size table.
Instead, use a dynamic table with our horrendous table macros.
This is more flexible and sensible.

While doing this, clean up the TankInfoModel, which was leaking
memory.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-12-13 11:49:59 -08:00

40 lines
1.1 KiB
C++

// SPDX-License-Identifier: GPL-2.0
#include "preferences_equipment.h"
#include "ui_preferences_equipment.h"
#include "core/settings/qPrefEquipment.h"
#include "core/qthelper.h"
#include "core/dive.h"
#include <QApplication>
#include <QMessageBox>
#include <QSortFilterProxyModel>
PreferencesEquipment::PreferencesEquipment() : AbstractPreferencesWidget(tr("Equipment"), QIcon(":preferences-equipment-icon"), 5)
{
ui = new Ui::PreferencesEquipment();
ui->setupUi(this);
}
PreferencesEquipment::~PreferencesEquipment()
{
delete ui;
}
void PreferencesEquipment::refreshSettings()
{
ui->display_unused_tanks->setChecked(prefs.display_unused_tanks);
ui->default_cylinder->clear();
for (int i = 0; i < tank_info_table.nr; i++) {
const tank_info &ti = tank_info_table.infos[i];
ui->default_cylinder->addItem(ti.name);
if (qPrefEquipment::default_cylinder() == ti.name)
ui->default_cylinder->setCurrentIndex(i);
}
}
void PreferencesEquipment::syncSettings()
{
auto equipment = qPrefEquipment::instance();
qPrefEquipment::set_display_unused_tanks(ui->display_unused_tanks->isChecked());
equipment->set_default_cylinder(ui->default_cylinder->currentText());
}