2019-12-07 18:27:25 +00:00
|
|
|
// 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"
|
2020-12-11 22:55:18 +00:00
|
|
|
#include "qt-models/tankinfomodel.h"
|
2019-12-07 18:27:25 +00:00
|
|
|
|
|
|
|
#include <QApplication>
|
|
|
|
#include <QMessageBox>
|
|
|
|
#include <QSortFilterProxyModel>
|
|
|
|
|
2019-12-09 18:58:20 +00:00
|
|
|
PreferencesEquipment::PreferencesEquipment() : AbstractPreferencesWidget(tr("Equipment"), QIcon(":preferences-equipment-icon"), 5)
|
2019-12-07 18:27:25 +00:00
|
|
|
{
|
|
|
|
ui = new Ui::PreferencesEquipment();
|
|
|
|
ui->setupUi(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
PreferencesEquipment::~PreferencesEquipment()
|
|
|
|
{
|
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
void PreferencesEquipment::refreshSettings()
|
|
|
|
{
|
|
|
|
ui->display_unused_tanks->setChecked(prefs.display_unused_tanks);
|
2020-12-11 22:55:18 +00:00
|
|
|
ui->display_default_tank_infos->setChecked(prefs.display_default_tank_infos);
|
2019-12-07 18:27:25 +00:00
|
|
|
ui->default_cylinder->clear();
|
2020-12-11 21:34:35 +00:00
|
|
|
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)
|
2019-12-07 18:27:25 +00:00
|
|
|
ui->default_cylinder->setCurrentIndex(i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void PreferencesEquipment::syncSettings()
|
|
|
|
{
|
|
|
|
auto equipment = qPrefEquipment::instance();
|
|
|
|
qPrefEquipment::set_display_unused_tanks(ui->display_unused_tanks->isChecked());
|
2020-12-11 22:55:18 +00:00
|
|
|
qPrefEquipment::set_display_default_tank_infos(ui->display_default_tank_infos->isChecked());
|
2019-12-07 18:27:25 +00:00
|
|
|
equipment->set_default_cylinder(ui->default_cylinder->currentText());
|
2020-12-11 22:55:18 +00:00
|
|
|
|
|
|
|
// In case the user changed the tank info settings,
|
|
|
|
// reset the tank_info_table and inform the TankInfoModel of
|
|
|
|
// the changed table. It is somewhat questionable to do this here.
|
|
|
|
// Moreover, it is a bit crude, as this will be called for *any*
|
|
|
|
// preferences change. Perhaps, the model should listen to the
|
|
|
|
// precise changed signal of the preferences system?
|
|
|
|
reset_tank_info_table(&tank_info_table);
|
|
|
|
TankInfoModel::instance()->update();
|
2019-12-07 18:27:25 +00:00
|
|
|
}
|