data;
switch (ui->aliasComboBox->currentIndex()) {
case 0:
data.insert("alias", "self");
break;
case 1:
data.insert("alias","SELF");
break;
case 2:{
QString name;
name.append(ui->lastnameLineEdit->text());
name.append(QLatin1String(", "));
name.append(ui->firstnameLineEdit->text().left(1));
name.append(QLatin1Char('.'));
data.insert("alias", name);
}
break;
default:
break;
}
data.insert("lastname", ui->lastnameLineEdit->text());
data.insert("firstname", ui->firstnameLineEdit->text());
data.insert("company", ui->companyLineEdit->text());
data.insert("employeeid", ui->employeeidLineEdit->text());
data.insert("phone", ui->phoneLineEdit->text());
data.insert("email", ui->emailLineEdit->text());
auto pic = APilotEntry(1);
pic.setData(data);
aDB()->commit(pic);
}
/*
* Slots
*/
/*
* Personal Tab
*/
void SettingsWidget::on_lastnameLineEdit_editingFinished()
{
if(ui->lastnameLineEdit->text().isEmpty()){
ui->lastnameLineEdit->setText(ASettings::read(ASettings::UserData::LastName).toString());
ui->lastnameLineEdit->setFocus();
} else {
ASettings::write(ASettings::UserData::LastName, ui->lastnameLineEdit->text());
updatePersonalDetails();
}
}
void SettingsWidget::on_firstnameLineEdit_editingFinished()
{
if(ui->firstnameLineEdit->text().isEmpty()){
ui->firstnameLineEdit->setText(ASettings::read(ASettings::UserData::FirstName).toString());
ui->firstnameLineEdit->setFocus();
} else {
ASettings::write(ASettings::UserData::FirstName,ui->firstnameLineEdit->text());
updatePersonalDetails();
}
}
void SettingsWidget::on_companyLineEdit_editingFinished()
{
ASettings::write(ASettings::UserData::Company, ui->companyLineEdit->text());
updatePersonalDetails();
}
void SettingsWidget::on_employeeidLineEdit_editingFinished()
{
ASettings::write(ASettings::UserData::EmployeeID, ui->employeeidLineEdit->text());
updatePersonalDetails();
}
void SettingsWidget::on_emailLineEdit_editingFinished()
{
ASettings::write(ASettings::UserData::Email, ui->emailLineEdit->text());
updatePersonalDetails();
}
void SettingsWidget::on_phoneLineEdit_editingFinished()
{
ASettings::write(ASettings::UserData::Phone, ui->phoneLineEdit->text());
updatePersonalDetails();
}
/*
* Flight Logging Tab
*/
void SettingsWidget::on_aliasComboBox_currentIndexChanged(int index)
{
ASettings::write(ASettings::UserData::DisplaySelfAs, index);
updatePersonalDetails();
}
void SettingsWidget::on_functionComboBox_currentIndexChanged(const QString &arg1)
{
ASettings::write(ASettings::FlightLogging::Function, arg1);
}
void SettingsWidget::on_rulesComboBox_currentIndexChanged(const QString &arg1)
{
ASettings::write(ASettings::FlightLogging::Rules, arg1);
}
void SettingsWidget::on_approachComboBox_currentIndexChanged(const QString &arg1)
{
ASettings::write(ASettings::FlightLogging::Approach, arg1);
}
void SettingsWidget::on_nightComboBox_currentIndexChanged(int index)
{
ASettings::write(ASettings::FlightLogging::NightLogging, index);
switch (index) {
case 1:
ASettings::write(ASettings::FlightLogging::NightAngle, -6);
break;
case 2:
ASettings::write(ASettings::FlightLogging::NightAngle, 0);
break;
default:
ASettings::write(ASettings::FlightLogging::NightAngle, -6);
}
}
void SettingsWidget::on_prefixLineEdit_textChanged(const QString &arg1)
{
ASettings::write(ASettings::FlightLogging::FlightNumberPrefix, arg1);
}
/*
* Misc Tab
*/
void SettingsWidget::on_logbookViewComboBox_currentIndexChanged(int index)
{
ASettings::write(ASettings::LogBook::View, index);
emit viewSelectionChanged(index);
}
void SettingsWidget::on_pilotSortComboBox_currentIndexChanged(int index)
{
ASettings::write(ASettings::UserData::PilSortColumn, index);
}
void SettingsWidget::on_acSortComboBox_currentIndexChanged(int index)
{
ASettings::write(ASettings::UserData::AcSortColumn, index);
}
void SettingsWidget::on_acAllowIncompleteComboBox_currentIndexChanged(int index)
{
ASettings::write(ASettings::UserData::AcAllowIncomplete, index);
if (index) {
QMessageBox::StandardButton reply;
reply = QMessageBox::warning(this, "Warning",
"Enabling incomplete logging will enable you to add aircraft with incomplete data.\n\n"
"If you do not fill out the aircraft details, "
"it will be impossible to automatically determine Single/Multi Pilot Times or Single/Multi Engine Time. "
"This will also impact statistics and auto-logging capabilites as well as jeopardise database integrity.\n\n"
"It is highly recommended to keep this option off unless you have a specific reason not to.\n\n"
"Are you sure you want to proceed?",
QMessageBox::Yes | QMessageBox::No);
if (reply == QMessageBox::Yes) {
ASettings::write(ASettings::UserData::AcAllowIncomplete, index);
} else {
ui->acAllowIncompleteComboBox->setCurrentIndex(0);
}
}
}
/*
* About Tab
*/
void SettingsWidget::on_aboutPushButton_clicked()
{
auto message_box = QMessageBox(this);
QString SQLITE_VERSION = aDB()->sqliteVersion();
QString text = QMessageBox::tr(
"About openPilotLog
"
"
"
"(c) 2020 Felix Turowsky"
"
"
"This is a collaboratively developed Free and Open Source Application. "
"Visit us here for more information.
"
"This program is free software: you can redistribute it and/or modify "
"it under the terms of the GNU General Public License as published by "
"the Free Software Foundation, either version 3 of the License, or "
"(at your option) any later version.
"
"This program is distributed in the hope that it will be useful, "
"but WITHOUT ANY WARRANTY; without even the implied warranty of "
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the "
"GNU General Public License for more details.
"
"You should have received a copy of the GNU General Public License "
"along with this program. If not, "
"please click here.
"
"
"
"This program uses Qt version %3 and "
"SQLite version %4
"
).arg(QLatin1String("github.com/fiffty-50/openpilotlog"),
QLatin1String("qt.io"),
QLatin1String(QT_VERSION_STR),
QString(SQLITE_VERSION));
message_box.setText(text);
message_box.exec();
}
void SettingsWidget::on_styleComboBox_currentTextChanged(const QString& text)
{
DEB << text;
AStyle::setStyle(text);
}
void SettingsWidget::on_darkStyleCheckBox_stateChanged(int state)
{
DEB << "Setting to:" << (state ? "dark" : "default");
if(state == Qt::Checked)
AStyle::setStyleSheet(AStyle::Dark);
else
AStyle::setStyleSheet(AStyle::Default);
}