Сделал чтение из конфига параметров для заполнения entry

pull/11/head
Igor Belitskiy 3 years ago
parent e31256c2d9
commit 3d358d4ce0

@ -303,6 +303,22 @@ void MainWindow::localization(){
this->set_title(gettext("ubl-settings-bootloader"));
}
void MainWindow::get_setting_entry_all(string cmd, Gtk::Entry &entry_text) {
struct Result<string> res_response = this->wrapper_call(cmd);
if (res_response.error == 0) {
vector<string> vec_cmd_kernel = split(res_response.response, ' ');
str_replace_all(res_response.response, " ", ", ");
str_replace_all(res_response.response, "\"", "");
entry_text.set_text(res_response.response);
}
else if (res_response.error == 3) {
}
else {
}
}
void MainWindow::get_menu_boot(string cmd) {
struct Result<string> res_response = this->wrapper_call(cmd);
@ -333,6 +349,20 @@ void MainWindow::set_menu_boot(string cmd) {
}
}
void MainWindow::cmd_entry_all(string cmd_settings_kernel,string cmd_settings_IPT,string cmd_settings_OTT) {
string cmd_kernel = entryKernel->get_text();
string cmd_IPT = entryIPT->get_text();
string cmd_OTT = entryIPT->get_text();
str_remove(cmd_kernel, ",");
str_remove(cmd_IPT, ",");
str_remove(cmd_OTT, ",");
cmd_settings_kernel += "\"" + cmd_kernel + "\"";
this->wrapper_call(cmd_settings_kernel);
cmd_settings_IPT += "\"" + cmd_IPT + "\"";
this->wrapper_call(cmd_settings_IPT);
cmd_settings_OTT += "\"" + cmd_OTT + "\"";
this->wrapper_call(cmd_settings_OTT);
}
void MainWindow::event(){
btnSynopsis->signal_activate().connect(sigc::mem_fun(*this, &MainWindow::synopsis_show));
btnAbout->signal_activate().connect([&]() {aboutWindows->show();});
@ -351,16 +381,27 @@ void MainWindow::event(){
}
}
void MainWindow::save_global_local_cfg() {
if (flag_save_global == false) {
flag_save_all = true;
std::string cmd_boot_time = "sudo ubconfig --default --source global get boot GRUB_TIMEOU";
std::string cmd_boot_time = "sudo ubconfig --default --source global set boot GRUB_TIMEOUT";
this->set_menu_boot(cmd_boot_time);
string cmd_settings_kernel = "sudo ubconfig --default --source global set boot GRUB_BOOT_SILENT=";
string cmd_settings_IPT = "sudo ubconfig --default --source global set boot GRUB_TERMINAL_OUTPUT=";
string cmd_settings_OTT = "sudo ubconfig --default --source global set boot GRUB_TERMINAL_INPUT=";
this->cmd_entry_all(cmd_settings_kernel,cmd_settings_IPT,cmd_settings_OTT);
flag_save_all = true;
}
else if (flag_save_local == false) {
flag_save_all = true;
std::string cmd_boot_time = "sudo ubconfig --default --source system get boot GRUB_TIMEOU";
std::string cmd_boot_time = "sudo ubconfig --default --source system set boot GRUB_TIMEOUT";
this->set_menu_boot(cmd_boot_time);
string cmd_settings_kernel = "sudo ubconfig --default --source system set boot GRUB_BOOT_SILENT=";
string cmd_settings_IPT = "sudo ubconfig --default --source system set boot GRUB_TERMINAL_OUTPUT=";
string cmd_settings_OTT = "sudo ubconfig --default --source system set boot GRUB_TERMINAL_INPUT=";
this->cmd_entry_all(cmd_settings_kernel,cmd_settings_IPT,cmd_settings_OTT);
flag_save_all = true;
}
else{
info_status_app("boxInfoMessOK");
@ -373,10 +414,14 @@ void MainWindow::save_global_local_cfg() {
void MainWindow::save_global_cfg() {
if (flag_save_global == false) {
flag_save_global = true;
if (flag_save_all == false) {
std::string cmd_boot_time = "sudo ubconfig --default --source global get boot GRUB_TIMEOU";
std::string cmd_boot_time = "sudo ubconfig --default --source global set boot GRUB_TIMEOUT";
this->set_menu_boot(cmd_boot_time);
string cmd_settings_kernel = "sudo ubconfig --default --source global set boot GRUB_BOOT_SILENT=";
string cmd_settings_IPT = "sudo ubconfig --default --source global set boot GRUB_TERMINAL_OUTPUT";
string cmd_settings_OTT = "sudo ubconfig --default --source global set boot GRUB_TERMINAL_INPUT=";
this->cmd_entry_all(cmd_settings_kernel,cmd_settings_IPT,cmd_settings_OTT);
flag_save_global = true;
}
}
else{
@ -388,10 +433,14 @@ void MainWindow::save_global_cfg() {
void MainWindow::save_local_cfg() {
if (flag_save_local == false) {
flag_save_local = true;
if (flag_save_all == false) {
std::string cmd_boot_time = "sudo ubconfig --default --source system get boot GRUB_TIMEOU";
std::string cmd_boot_time = "sudo ubconfig --default --source system set boot GRUB_TIMEOUT";
this->set_menu_boot(cmd_boot_time);
string cmd_settings_kernel = "sudo ubconfig --default --source system set boot GRUB_BOOT_SILENT=";
string cmd_settings_IPT = "sudo ubconfig --default --source system set boot GRUB_TERMINAL_OUTPUT";
string cmd_settings_OTT = "sudo ubconfig --default --source system set boot GRUB_TERMINAL_INPUT=";
this->cmd_entry_all(cmd_settings_kernel,cmd_settings_IPT,cmd_settings_OTT);
flag_save_local = true;
}
}
else {
@ -405,13 +454,18 @@ void MainWindow::download_globl_cfg() {
entryKernel->set_text("");
entryOTT->set_text("");
entryIPT->set_text("");
flag_save_local = true;
flag_save_global = true;
flag_save_all = true;
flag_load = true;
std::string cmd_boot_time = "sudo ubconfig --default --source system get boot GRUB_TIMEOU";
std::string cmd_boot_time = "sudo ubconfig --default --source global get boot GRUB_TIMEOUT";
this->get_menu_boot(cmd_boot_time);
string cmd_kernel_entry = "sudo ubconfig --default --source global get boot GRUB_BOOT_SILENT";
this->get_setting_entry_all(cmd_kernel_entry, *entryKernel);
string cmd_ipt_entry = "sudo ubconfig --default --source global get boot GRUB_TERMINAL_INPUT";
this->get_setting_entry_all(cmd_ipt_entry, *entryIPT);
string cmd_opt_entry = "sudo ubconfig --default --source global get boot GRUB_TERMINAL_OUTPUT";
this->get_setting_entry_all(cmd_opt_entry, *entryOTT);
info_warning_error(1);
}
@ -423,8 +477,14 @@ void MainWindow::download_local_cfg() {
flag_save_local = true;
flag_save_global = true;
flag_save_all = true;
std::string cmd_boot_time = "sudo ubconfig --default --source global get boot GRUB_TIMEOU";
std::string cmd_boot_time = "sudo ubconfig --default --source system get boot GRUB_TIMEOUT";
this->get_menu_boot(cmd_boot_time);
string cmd_kernel_entry = "sudo ubconfig --default --source system get boot GRUB_BOOT_SILENT";
this->get_setting_entry_all(cmd_kernel_entry, *entryKernel);
string cmd_ipt_entry = "sudo ubconfig --default --source system get boot GRUB_TERMINAL_INPUT";
this->get_setting_entry_all(cmd_ipt_entry, *entryIPT);
string cmd_opt_entry = "sudo ubconfig --default --source system get boot GRUB_TERMINAL_OUTPUT";
this->get_setting_entry_all(cmd_opt_entry, *entryOTT);
info_warning_error(0);
}

@ -151,6 +151,8 @@ class MainWindow : public Gtk::ApplicationWindow {
void info_warning_error(int mess);
int check_root();
void fill_in_view();
void get_setting_entry_all(string cmd, Gtk::Entry &entry_text);
void cmd_entry_all(string cmd_settings_kernel,string cmd_settings_IPT,string cmd_settings_OTT);
string dynamic_update_entry(std::map<string, string> &map_view, std::map<string, string> &map_global_view, std::map<string, string> &map_local_view) ;
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&);

@ -87,4 +87,31 @@ vector<int> find_all(string &str_ntp, string substr) {
sub_index.push_back(index);
}
return sub_index;
}
void str_remove(std::string& source, std::string to_remove) {
string::size_type n = to_remove.length();
for (string::size_type i = source.find(to_remove);
i != string::npos;
i = source.find(to_remove))
source.erase(i, n);
}
void str_replace_all(std::string& str_base, string str_find, string sReplacement)
{
size_t pos = 0, fpos;
while ((fpos = str_base.find(str_find, pos)) != std::string::npos)
{
str_base.replace(fpos, str_find.size(), sReplacement);
pos = fpos + sReplacement.size();
}
}
std::vector<std::string> split(std::string text, char delim) {
std::string line;
std::vector<std::string> vec;
std::stringstream ss(text);
while(std::getline(ss, line, delim)) {
vec.push_back(line);
}
return vec;
}

@ -12,4 +12,7 @@ using namespace std;
std::array<std::vector<std::string>, 5> read_csv(const std::string& filename);
std::string call(std::string cmd);
vector<int> find_all(string &str_ntp, string substr);
vector<int> find_all(string &str_ntp, string substr);
void str_remove(std::string& source, std::string to_remove);
void str_replace_all(string &str_base, string str_find, string str_replace);
std::vector<std::string> split(std::string text, char delim);

@ -8,7 +8,7 @@ Comment=ubl-settings-bootloader
Comment[ru]=Загрузчик
Type=Application
Exec=pkexec ubl-settings-bootloader
Icon=ubl-settings-bootloader
Icon=com.ublinux.ubl-settings-bootloader
Terminal=false
X-XfcePluggable=true
X-UBLPluggable=true

Loading…
Cancel
Save