saving output settings
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
OutputDialog::OutputDialog(QWidget *parent, std::vector<Check> *checks)
|
||||
: QDialog(parent), ui(new Ui::OutputDialog), checks(checks),
|
||||
options(OutputOptions()) {
|
||||
Settings settings(get_path_relative_to_home(".local/share/checks_parser/settings.json"));
|
||||
settings = new Settings(get_path_relative_to_home(".local/share/checks_parser/settings.json"));
|
||||
|
||||
ui->setupUi(this);
|
||||
|
||||
@@ -26,29 +26,24 @@ OutputDialog::OutputDialog(QWidget *parent, std::vector<Check> *checks)
|
||||
|
||||
ui->listView->setModel(model);
|
||||
|
||||
const std::map<std::string, ColumnType> column_names = {
|
||||
{"date", ColumnType::date},
|
||||
{"goods_name", ColumnType::goods_name},
|
||||
{"goods_price_per_unit", ColumnType::goods_price_per_unit},
|
||||
{"goods_quantity", ColumnType::goods_quantity},
|
||||
{"goods_net_weight", ColumnType::goods_net_weight},
|
||||
{"goods_total", ColumnType::goods_total}
|
||||
};
|
||||
for (unsigned short i = 0; i < 6; i ++)
|
||||
columns->push_back(OutputColumn(tr("Кто здесь?"), ColumnType::date));
|
||||
|
||||
for (auto &column : column_names) {
|
||||
std::string name = settings.get_all_settings()["output_order"][column.first]["name"];
|
||||
unsigned short position = settings.get_all_settings()["output_order"][column.first]["position"];
|
||||
std::string name = settings->get_all_settings()["output_order"][column.first]["name"];
|
||||
unsigned short position = settings->get_all_settings()["output_order"][column.first]["position"];
|
||||
ColumnType type = column.second;
|
||||
columns->at(position - 1) = (OutputColumn(QString::fromStdString(name), type));
|
||||
}
|
||||
|
||||
ui->printHeaderCheckBox->setChecked(settings.get_all_settings()["print_header"]);
|
||||
ui->printTotalCheckBox->setChecked(settings.get_all_settings()["print_total"]);
|
||||
ui->printHeaderCheckBox->setChecked(settings->get_all_settings()["print_header"]);
|
||||
ui->printTotalCheckBox->setChecked(settings->get_all_settings()["print_total"]);
|
||||
}
|
||||
|
||||
OutputDialog::~OutputDialog() { delete ui; }
|
||||
OutputDialog::~OutputDialog() {
|
||||
delete settings;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void OutputDialog::on_buttonBox_accepted() {
|
||||
std::ofstream output_file(this->options.get_path());
|
||||
@@ -94,22 +89,9 @@ void OutputDialog::on_buttonBox_accepted() {
|
||||
}
|
||||
}
|
||||
output_file.close();
|
||||
save_settings();
|
||||
}
|
||||
|
||||
// void update_settings(OutputOptions &options, ColumnType t, std::string name,
|
||||
// int value) {
|
||||
// Column column;
|
||||
// column.type = t;
|
||||
// column.name = name;
|
||||
// column.position = value;
|
||||
|
||||
// if (value) {
|
||||
// options.add_or_update_column(column);
|
||||
// } else {
|
||||
// options.remove_column(t);
|
||||
// }
|
||||
// }
|
||||
|
||||
void OutputDialog::on_chooseFileButton_clicked() {
|
||||
QString filename = QFileDialog::getSaveFileName();
|
||||
this->options.set_path(filename.toStdString());
|
||||
@@ -136,3 +118,13 @@ void OutputDialog::print_header(std::ofstream *output_file) {
|
||||
*output_file << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void OutputDialog::save_settings() {
|
||||
for (int i = 0; i < columns->size(); i ++) {
|
||||
OutputColumn &column = columns->at(i);
|
||||
std::string key = find_key_by_value(column_names, column.get_column_type());
|
||||
settings->get_all_settings()["output_order"][key]["name"] = column.get_text().toStdString();
|
||||
settings->get_all_settings()["output_order"][key]["position"] = i + 1;
|
||||
}
|
||||
settings->flush();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user