Частично исправлены баги с сохранением

pull/11/head
Igor Belitskiy 3 years ago
parent c6a8dd96fd
commit 0562684db6

@ -34,7 +34,15 @@ bool Save::check_save(string flag_save, string key_name) {
} }
iter_map_data = (*map_gui).find(key_name); iter_map_data = (*map_gui).find(key_name);
iter_map_data_old = (*map_data_old).find(key_name); iter_map_data_old = (*map_data_old).find(key_name);
if (iter_map_data_old == (*map_data_old).end() && iter_map_data != (*map_gui).end()) { if ((*map_local).find(key_name) != (*map_local).end() && (*map_global).find(key_name) != (*map_global).end()) {
if (iter_map_data->second != iter_map_data_old->second) {
return true;
}
else {
return false;
}
}
else if (iter_map_data_old == (*map_data_old).end() && iter_map_data != (*map_gui).end()) {
return true; return true;
} }
else if (iter_map_data->second != iter_map_data_old->second) { else if (iter_map_data->second != iter_map_data_old->second) {

@ -134,12 +134,9 @@ void MainWindow::item_selected_kernel(const Gtk::TreeModel::Path& path, const Gt
auto selection_OTT = treeViewOTT->get_selection(); auto selection_OTT = treeViewOTT->get_selection();
selection_IPT->unselect_all(); selection_IPT->unselect_all();
selection_OTT->unselect_all(); selection_OTT->unselect_all();
flag_save_local = true;
flag_save_global = true;
flag_save_all = true;
if (flag_blocked_tree_view == false) { if (flag_blocked_tree_view == false) {
template_item_selected(map_cmd_selection, path, list_store_kernel); template_item_selected("GRUB_CMDLINE_LINUX", map_cmd_selection, path, list_store_kernel);
string str_flags = this->dynamic_update_entry(map_cmd_selection, vec_Option_kernel); string str_flags = this->dynamic_update_entry("GRUB_CMDLINE_LINUX", map_cmd_selection, vec_Option_kernel);
entryKernel->set_text(str_flags); entryKernel->set_text(str_flags);
} }
} }
@ -149,12 +146,9 @@ void MainWindow::item_selected_OTT(const Gtk::TreeModel::Path& path, const Gtk::
auto selection_IPT = treeViewIPT->get_selection(); auto selection_IPT = treeViewIPT->get_selection();
selection_kernel->unselect_all(); selection_kernel->unselect_all();
selection_IPT->unselect_all(); selection_IPT->unselect_all();
flag_save_local = true;
flag_save_global = true;
flag_save_all = true;
if (flag_blocked_tree_view == false) { if (flag_blocked_tree_view == false) {
template_item_selected(map_cmd_selection , path, list_store_OTT); template_item_selected("GRUB_TERMINAL_OUTPUT", map_cmd_selection , path, list_store_OTT);
string str_flags = this->dynamic_update_entry(map_cmd_selection, vec_Option_OTT); string str_flags = this->dynamic_update_entry("GRUB_TERMINAL_OUTPUT", map_cmd_selection, vec_Option_OTT);
entryOTT->set_text(str_flags); entryOTT->set_text(str_flags);
} }
} }
@ -163,12 +157,9 @@ void MainWindow::item_selected_IPT(const Gtk::TreeModel::Path& path, const Gtk::
auto selection_OTT = treeViewOTT->get_selection(); auto selection_OTT = treeViewOTT->get_selection();
selection_kernel->unselect_all(); selection_kernel->unselect_all();
selection_OTT->unselect_all(); selection_OTT->unselect_all();
flag_save_local = true;
flag_save_global = true;
flag_save_all = true;
if (flag_blocked_tree_view == false) { if (flag_blocked_tree_view == false) {
template_item_selected(map_cmd_selection , path, list_store_IPT); template_item_selected("GRUB_TERMINAL_INPUT", map_cmd_selection , path, list_store_IPT);
string str_flags = this->dynamic_update_entry(map_cmd_selection, vec_Option_IPT); string str_flags = this->dynamic_update_entry("GRUB_TERMINAL_INPUT", map_cmd_selection, vec_Option_IPT);
entryIPT->set_text(str_flags); entryIPT->set_text(str_flags);
} }
} }
@ -307,7 +298,7 @@ void MainWindow::get_password_protec(std::map <string, string> &map_temp) {
} }
} }
void MainWindow::template_item_selected(std::map<string, string> &map_view, const Gtk::TreeModel::Path& path, Glib::RefPtr<Gtk::ListStore> &list_store) { void MainWindow::template_item_selected(string key, std::map<string, string> &map_view, const Gtk::TreeModel::Path& path, Glib::RefPtr<Gtk::ListStore> &list_store) {
const auto iter = list_store->get_iter(path); const auto iter = list_store->get_iter(path);
if(iter) { if(iter) {
const auto row = *iter; const auto row = *iter;
@ -322,16 +313,18 @@ void MainWindow::template_item_selected(std::map<string, string> &map_view, con
} }
Glib::ustring name = row[m_columns.name]; Glib::ustring name = row[m_columns.name];
cout << key + "_" + name << endl;
map_view[name] = cmd; map_view[name] = cmd;
} }
} }
string MainWindow::dynamic_update_entry(std::map<string, string> &map_view, vector<string> &vec_allowed) { string MainWindow::dynamic_update_entry(string key,std::map<string, string> &map_view, vector<string> &vec_allowed) {
string keys = ""; string keys = "";
for (auto &key: vec_allowed) { cout << key << endl;
if (map_view.find(key) != map_view.end()) { for (auto &key_local: vec_allowed) {
if (map_view[key] == "1") { if (map_view.find(key_local) != map_view.end()) {
keys += string(key) + ", "; if (map_view[key_local] == "1") {
keys += string(key_local) + ", ";
} }
} }
} }
@ -442,7 +435,6 @@ void MainWindow::localization(){
lblLoadMenu->set_text(_("Download menu")); lblLoadMenu->set_text(_("Download menu"));
lblInfoInputTerminal->set_text(_("Terminal for input")); lblInfoInputTerminal->set_text(_("Terminal for input"));
lblInfoOutputTerminal->set_text(_("Terminal for output")); lblInfoOutputTerminal->set_text(_("Terminal for output"));
chbLoadVariantSelectionTimer->set_label(_("Load option timer")); chbLoadVariantSelectionTimer->set_label(_("Load option timer"));
btnSynopsis->set_label(_("Help")); btnSynopsis->set_label(_("Help"));
btnAbout->set_label(_("About")); btnAbout->set_label(_("About"));
@ -455,17 +447,13 @@ void MainWindow::localization(){
btnLoad->set_label(_("Load")); btnLoad->set_label(_("Load"));
this->set_title(_("ubl-settings-bootloader")); this->set_title(_("ubl-settings-bootloader"));
lblSecurityLogin->set_tooltip_text(gettext("User name to enter boot configuration editing mode")); lblSecurityLogin->set_tooltip_text(gettext("User name to enter boot configuration editing mode"));
lblDownloadMode->set_text(_("Load screen display mode:")); lblDownloadMode->set_text(_("Load screen display mode:"));
lblSecurityLogin->set_text(_("Load menu user name:")); lblSecurityLogin->set_text(_("Load menu user name:"));
lblPasswordProtec->set_text(_("Load menu user password:")); lblPasswordProtec->set_text(_("Load menu user password:"));
chbSecurityLogin->append(_("Not available")); chbSecurityLogin->append(_("Not available"));
chbSecurityLogin->append(_("Mine")); chbSecurityLogin->append(_("Mine"));
chbPasswordProtecc->append(_("Not available")); chbPasswordProtecc->append(_("Not available"));
chbPasswordProtecc->append(_("Mine")); chbPasswordProtecc->append(_("Mine"));
cmbDownloadMode->append(_("Loading animation with the magazine")); cmbDownloadMode->append(_("Loading animation with the magazine"));
cmbDownloadMode->append(_("Loading animation without a magazine")); cmbDownloadMode->append(_("Loading animation without a magazine"));
cmbDownloadMode->append(_("Нет анимации загрузки, полный журнал")); cmbDownloadMode->append(_("Нет анимации загрузки, полный журнал"));
@ -483,11 +471,12 @@ vector<string> MainWindow::get_setting_entry_all(string key, Gtk::Entry &entry_t
Utils::str_replace_all(value, "\"", ""); Utils::str_replace_all(value, "\"", "");
vec_params = Utils::split(value, ' '); vec_params = Utils::split(value, ' ');
Utils::str_replace_all(value, " ", ", "); Utils::str_replace_all(value, " ", ", ");
entry_text.set_text(value); cout << value << endl;
for (auto &param: vec_params) { for (auto &param: vec_params) {
map_cmd_selection[key+"_" + param] = "1"; map_cmd_selection[param] = "1";
map_temp[key + "_" + param] = "1"; map_temp[param] = "1";
} }
entry_text.set_text(value);
Utils::str_remove(value, ","); Utils::str_remove(value, ",");
map_temp[key] = value; map_temp[key] = value;
} }
@ -696,11 +685,11 @@ void MainWindow::set_active_boot_second() {
} }
void MainWindow::wrapper_save_all_cfg() { void MainWindow::wrapper_save_all_cfg() {
bool _flag_local = this->save_local_cfg(); this->set_data_cfg();
bool _flag_global = this->save_global_cfg(); bool _flag_save_global = this->save_global_cfg();
if (_flag_local && _flag_global) { bool _flag_save_local = this->save_local_cfg();
if (_flag_save_global && _flag_save_local) {
this->info_warning_error(5); this->info_warning_error(5);
flag_save_all = false;
} }
else { else {
info_warning_error(4); info_warning_error(4);
@ -720,25 +709,20 @@ void MainWindow::wrapper_save_global_cfg() {
bool MainWindow::save_global_cfg() { bool MainWindow::save_global_cfg() {
bool flag_no_save = true; bool flag_no_save = true;
if (flag_save_global) { obj_save.set_data_local(map_cmd_selection);
if (flag_save_all) { obj_save.set_data_global(map_global_cmd_selection);
flag_save_global = false; obj_save.set_data_gui(map_cmd_selection);
obj_save.set_data_local(map_cmd_selection); obj_save.set_vec_params(vec_param_names);
obj_save.set_data_global(map_local_cmd_selection); obj_save.save("boot", "global");
obj_save.set_data_gui(map_cmd_selection); vector<string> obj_vec_error = obj_save.get_error();
obj_save.set_vec_params(vec_param_names); flag_no_save = obj_save.get_state_save();
obj_save.save("boot", "global"); map_global_cmd_selection = map_cmd_selection;
vector<string> obj_vec_error = obj_save.get_error();
flag_no_save = obj_save.get_state_save();
}
}
map_local_cmd_selection = map_cmd_selection;
return flag_no_save; return flag_no_save;
} }
void MainWindow::wrapper_save_local_cfg() { void MainWindow::wrapper_save_local_cfg() {
this->set_data_cfg(); this->set_data_cfg();
if (this->save_local_cfg()){ if (this->save_local_cfg()) {
this->info_warning_error(5); this->info_warning_error(5);
} }
else { else {
@ -748,18 +732,13 @@ void MainWindow::wrapper_save_local_cfg() {
bool MainWindow::save_local_cfg() { bool MainWindow::save_local_cfg() {
bool flag_no_save = true; bool flag_no_save = true;
if (flag_save_local) { obj_save.set_data_local(map_cmd_selection);
if (flag_save_all) { obj_save.set_data_global(map_local_cmd_selection);
flag_save_local = false; obj_save.set_data_gui(map_cmd_selection);
obj_save.set_data_local(map_cmd_selection); obj_save.set_vec_params(vec_param_names);
obj_save.set_data_global(map_global_cmd_selection); obj_save.save("boot", "system");
obj_save.set_data_gui(map_cmd_selection); vector<string> obj_vec_error = obj_save.get_error();
obj_save.set_vec_params(vec_param_names); flag_no_save = obj_save.get_state_save();
obj_save.save("boot", "system");
vector<string> obj_vec_error = obj_save.get_error();
flag_no_save = obj_save.get_state_save();
}
}
map_local_cmd_selection = map_cmd_selection; map_local_cmd_selection = map_cmd_selection;
return flag_no_save; return flag_no_save;
} }
@ -797,33 +776,35 @@ void MainWindow::set_data_cfg() {
} }
void MainWindow::download_globl_cfg() { void MainWindow::download_globl_cfg() {
this->load_template(&map_global_cmd_selection, "global");
}
void MainWindow::download_local_cfg() {
this->load_template(&map_local_cmd_selection, "system");
}
void MainWindow::load_template(std::map<string, string>* map_temp, string str_load) {
this->init_dict(); this->init_dict();
entryKernel->set_text(""); entryKernel->set_text("");
entryOTT->set_text(""); entryOTT->set_text("");
entryIPT->set_text(""); entryIPT->set_text("");
flag_save_local = true;
flag_save_global = true;
flag_save_all = true;
vector<string> vec_sections; vector<string> vec_sections;
vec_sections.push_back("boot"); vec_sections.push_back("boot");
obj_load.set_sections(vec_sections); obj_load.set_sections(vec_sections);
map_local_cmd_selection = obj_load.get_load_data(map_global_cmd_selection, "global"); *map_temp = obj_load.get_load_data(*map_temp, str_load);
this->get_menu_boot(map_global_cmd_selection); this->get_menu_boot(*map_temp);
this->get_setting_entry_all("GRUB_CMDLINE_LINUX", *entryKernel, *map_temp);
this->get_setting_entry_all("GRUB_CMDLINE_LINUX", *entryKernel, map_global_cmd_selection); this->get_setting_entry_all("GRUB_TERMINAL_INPUT", *entryIPT, *map_temp);
this->get_setting_entry_all("GRUB_TERMINAL_INPUT", *entryIPT, map_global_cmd_selection); this->get_setting_entry_all("GRUB_TERMINAL_OUTPUT", *entryOTT, *map_temp);
this->get_setting_entry_all("GRUB_TERMINAL_OUTPUT", *entryOTT, map_global_cmd_selection); this->set_row_all(*map_temp, list_store_kernel, vec_Option_kernel, size_kernel, "GRUB_CMDLINE_LINUX");
this->set_row_all(map_global_cmd_selection, list_store_kernel, vec_Option_kernel, size_kernel, "GRUB_CMDLINE_LINUX"); this->set_row_all(*map_temp, list_store_IPT, vec_Option_IPT, size_IPT, "GRUB_TERMINAL_INPUT");
this->set_row_all(map_global_cmd_selection, list_store_IPT, vec_Option_IPT, size_IPT, "GRUB_TERMINAL_INPUT"); this->set_row_all(*map_temp, list_store_OTT, vec_Option_OTT, size_OTT, "GRUB_TERMINAL_OUTPUT");
this->set_row_all(map_global_cmd_selection, list_store_OTT, vec_Option_OTT, size_OTT, "GRUB_TERMINAL_OUTPUT"); this->get_download_mode(*map_temp);
this->get_download_mode(map_global_cmd_selection); this->get_security_login(*map_temp);
this->get_security_login(map_global_cmd_selection); this->get_password_protec(*map_temp);
this->get_password_protec(map_global_cmd_selection); this->get_default_load(*map_temp);
this->get_default_load(map_global_cmd_selection);
info_warning_error(1); info_warning_error(1);
map_cmd_selection = map_global_cmd_selection; map_cmd_selection = *map_temp;
} }
void MainWindow::init_dict() { void MainWindow::init_dict() {
@ -839,41 +820,20 @@ void MainWindow::init_dict() {
map_local_cmd_selection = map_cmd_selection; map_local_cmd_selection = map_cmd_selection;
} }
void MainWindow::download_local_cfg() {
entryKernel->set_text("");
entryOTT->set_text("");
entryIPT->set_text("");
flag_save_local = true;
flag_save_global = true;
flag_save_all = true;
this->init_dict();
vector<string> vec_sections;
vec_sections.push_back("boot");
obj_load.set_sections(vec_sections);
map_local_cmd_selection = obj_load.get_load_data(map_local_cmd_selection, "system");
this->get_menu_boot(map_local_cmd_selection);
this->get_setting_entry_all("GRUB_CMDLINE_LINUX", *entryKernel, map_local_cmd_selection);
this->get_setting_entry_all("GRUB_TERMINAL_INPUT", *entryIPT, map_local_cmd_selection);
this->get_setting_entry_all("GRUB_TERMINAL_OUTPUT", *entryOTT, map_local_cmd_selection);
this->set_row_all(map_local_cmd_selection, list_store_kernel, vec_Option_kernel, size_kernel, "GRUB_CMDLINE_LINUX");
this->set_row_all(map_local_cmd_selection, list_store_IPT, vec_Option_IPT, size_IPT, "GRUB_TERMINAL_INPUT");
this->set_row_all(map_local_cmd_selection, list_store_OTT, vec_Option_OTT, size_OTT, "GRUB_TERMINAL_OUTPUT");
this->get_download_mode(map_local_cmd_selection);
this->get_security_login(map_local_cmd_selection);
this->get_password_protec(map_local_cmd_selection);
this->get_default_load(map_local_cmd_selection);
info_warning_error(0);
map_cmd_selection = map_local_cmd_selection;
}
void MainWindow::set_row_all(std::map <string, string> &map_cmd, Glib::RefPtr<Gtk::ListStore> &list_store, vector<string> &list_params, size_t size,string key="") { void MainWindow::set_row_all(std::map <string, string> &map_cmd, Glib::RefPtr<Gtk::ListStore> &list_store, vector<string> &list_params, size_t size,string key="") {
for (auto &name: list_params) { for (auto &name: list_params) {
if (map_cmd.find(key + "_" + name) != map_cmd.end()){ this->set_row(list_store, size, name, false);
this->set_row(list_store, size, name, true); }
cout << key << endl;
for (auto &name: list_params) {
if (map_cmd.find(name) != map_cmd.end()) {
if (map_cmd[name] == "1") {
this->set_row(list_store, size, name, true);
}
else {
this->set_row(list_store, size, name, false);
}
} }
else { else {
this->set_row(list_store, size, name, false); this->set_row(list_store, size, name, false);

@ -191,13 +191,14 @@ class MainWindow : public Gtk::ApplicationWindow {
bool focus_out_txt_password(GdkEventFocus*); bool focus_out_txt_password(GdkEventFocus*);
void get_password_protec(std::map <string, string> &map_temp); void get_password_protec(std::map <string, string> &map_temp);
void set_password_protec(); void set_password_protec();
void load_template(std::map<string, string>* map_temp, string str_load);
vector<string> get_setting_entry_all(string key, Gtk::Entry &entry_text, std::map <string, string> &map_temp); vector<string> get_setting_entry_all(string key, Gtk::Entry &entry_text, std::map <string, string> &map_temp);
void cmd_entry_all(Gtk::Entry &entry, string cmd_settings, string cmd_remove); void cmd_entry_all(Gtk::Entry &entry, string cmd_settings, string cmd_remove);
string dynamic_update_entry(std::map<string, string> &map_view, vector<string> &vec_allowed); string dynamic_update_entry(string key, std::map<string, string> &map_view, vector<string> &vec_allowed);
void item_selected_kernel(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator&); void item_selected_kernel(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator&);
void item_selected_OTT(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator&); void item_selected_OTT(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator&);
void item_selected_IPT(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator&); void item_selected_IPT(const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator&);
void template_item_selected(std::map<string, string> &map_view, const Gtk::TreeModel::Path& path, Glib::RefPtr<Gtk::ListStore> &list_store); void template_item_selected(string key, std::map<string, string> &map_view, const Gtk::TreeModel::Path& path, Glib::RefPtr<Gtk::ListStore> &list_store);
}; };
class SettingsPlug : public Gtk::Plug{ class SettingsPlug : public Gtk::Plug{

Loading…
Cancel
Save