From b8c9cf21758ff6c26eda2fbc2b55b24673275861 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Thu, 20 Apr 2023 17:46:30 +0600 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B1=D0=BB=D0=BE=D0=BA=D0=B8=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20gui.=20=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=20help?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/main.cc | 20 +++++++++- source/my_cmd.h | 2 + source/ubl-settings-bootloader.cc | 63 +++++++++++++++++++++++++------ source/ubl-settings-bootloader.h | 8 +++- ubl-settings-bootloader.glade | 6 +++ ubl-settings-bootloader_ru.po | 10 +++++ 6 files changed, 94 insertions(+), 15 deletions(-) diff --git a/source/main.cc b/source/main.cc index ba163a9..bc66d05 100644 --- a/source/main.cc +++ b/source/main.cc @@ -66,11 +66,29 @@ void pars_flag(int index_start, int argc, char* argv[]) { cout << version.c_str(); exit(1); } + else if (str_argv == "--lock-help") { + flag_lock_help = true; + } + else if (str_argv == "--lock-save") { + flag_save = true; + flag_save_local = true; + flag_save_global = true; + } + else if (str_argv == "--lock-save-local"){ + flag_save_local = true; + } + else if (str_argv == "--lock-save-global"){ + flag_save_global = true; + } + else if (str_argv == "--lock-load-global"){ + flag_load_global = true; + } else{ if (index_start == 1){ - cout << (_("Argument not recognized\n")) << endl; + g_print(_("Argument not recognized\n")); } } + } } \ No newline at end of file diff --git a/source/my_cmd.h b/source/my_cmd.h index 177897b..268e218 100644 --- a/source/my_cmd.h +++ b/source/my_cmd.h @@ -9,5 +9,7 @@ #define system_save "ubconfig --target system set boot " #define global_remove "ubconfig --target global remove boot " #define system_remove "ubconfig --target system remove boot " +#define open_link "xdg-open " +#define other_user "su -l {} -c \" DISPLAY=$DISPLAY {} \"" #endif \ No newline at end of file diff --git a/source/ubl-settings-bootloader.cc b/source/ubl-settings-bootloader.cc index e89f94a..9390c9f 100755 --- a/source/ubl-settings-bootloader.cc +++ b/source/ubl-settings-bootloader.cc @@ -10,6 +10,11 @@ string path_resources = "/usr/share/ubl-settings-bootloader"; const string path_img_head_background = "/usr/share/ubl-settings-bootloader/images/logo-background.png"; int socket_ext_id_I = 0; int socket_trd_id_I = 0; +bool flag_save = false; +bool flag_save_local = false; +bool flag_save_global = false; +bool flag_load_global = false; +bool flag_lock_help = false; string version_application = "1.0"; CmdArgParser::CmdArgParser(const std::string& p_name, const std::string& p_description, const std::string& p_help) @@ -85,6 +90,7 @@ void MainWindow::settings(){ overHead->add_overlay(*boxWidget); btnBoxAboutDialog->set_visible(false); ubl_make_plugs(boxSave,boxButton, socket_ext_id_I, socket_trd_id_I); + this->flag_block_gui(); if (this->check_root() == 0) { spbSecond->set_range(1, 60); spbSecond->set_increments(1.0, 1.0); @@ -95,8 +101,6 @@ void MainWindow::settings(){ this->set_active_boot_second(); this->download_local_cfg(); this->download_globl_cfg(); - - } else{ boxWidgetAll->set_sensitive(false); @@ -111,6 +115,29 @@ void MainWindow::settings(){ this->event(); } +void MainWindow::flag_block_gui() { + if (flag_load_global == true) { + btnLoadGlob->set_sensitive(false); + } + if (flag_save_local == true && flag_save_global == true) { + btnSave->set_sensitive(false); + } + if (flag_save == true) { + btnSave->set_sensitive(false); + } + if (flag_save_local == true) { + btnSaveLocal->set_sensitive(false); + btnSaveLocalGlob->set_sensitive(false); + } + if (flag_save_global == true) { + btnSaveGlob->set_sensitive(false); + btnSaveLocalGlob->set_sensitive(false); + } + if (flag_lock_help == true) { + btnSynopsis->set_sensitive(false); + } +} + void MainWindow::fill_in_view() { list_store_kernel = Gtk::ListStore::create(m_columns); list_store_IPT = Gtk::ListStore::create(m_columns); @@ -669,9 +696,15 @@ void MainWindow::set_active_boot_second() { void MainWindow::wrapper_save_all_cfg() { this->set_data_cfg(); - bool _flag_save_global = this->save_template(global_save, global_remove , "global"); - bool _flag_save_local = this->save_template(system_save, system_remove , "global"); - if (_flag_save_global && _flag_save_local) { + bool _flag_save_global1 = true; + bool _flag_save_local1 = true; + if (flag_save_global == true) { + _flag_save_global1 = this->save_template(global_save, global_remove , "global"); + } + if (flag_save_local == true) { + _flag_save_local1 = this->save_template(system_save, system_remove , "system"); + } + if (_flag_save_global1 && _flag_save_local1) { this->info_warning_error(5); } else { @@ -708,7 +741,7 @@ bool MainWindow::save_template(string cmd, string cmd_remove, string flag_save) void MainWindow::wrapper_save_local_cfg() { this->set_data_cfg(); - if (this->save_template(system_save, system_remove , "global")) { + if (this->save_template(system_save, system_remove , "system")) { this->info_warning_error(5); } else { @@ -845,7 +878,7 @@ void MainWindow::set_row(Glib::RefPtr &list_store, int size, std } void MainWindow::synopsis_show() { - string cmd = "xdg-open " + string(_("https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/")) + app_name; + string cmd = open_link + string(_("https://wiki.ublinux.com/ru/Программное_обеспечение/Программы_и_утилиты/Все/")) + app_name; if (geteuid() == 0) { string response_user = getlogin(); cmd = "su -l " + response_user + " -c \" DISPLAY=$DISPLAY " + cmd + " \""; @@ -935,11 +968,17 @@ void help() { string version = string(_("ubl-settings-bootloader version: ")) + version_application + "\n"; cout << version.c_str(); string help; - help = "GTK settings bootloader for UBLinux\n\n" - "Usage: ubl-settings-bootloader [OPTIONS...]\n" - "Options:\n" - " -h, --help Show this help\n" - " -V, --version Show package version\n"; + help = "GTK settings bootloader for UBLinux\n" + "\n" + "Usage: ubl-settings-bootloader [OPTIONS...]\n" + "Options:\n" + " -h, --help\t Show this help\n" + " -V, --version\t Show package version\n" + " --lock-help Lock utility help\n" + " --lock-save Lock saving local and global configuration\n" + " --lock-save-local Lock save global configuration\n" + " --lock-save-global Lock load global configuration\n" + " --lock-load-global Lock load global configuration\n"; cout << _(help.c_str()); } diff --git a/source/ubl-settings-bootloader.h b/source/ubl-settings-bootloader.h index 5d4a3ae..a50f0b5 100644 --- a/source/ubl-settings-bootloader.h +++ b/source/ubl-settings-bootloader.h @@ -28,6 +28,11 @@ extern int socket_ext_id_I; extern int socket_trd_id_I; extern const string path_img_head_background; extern string version_application; +extern bool flag_save; +extern bool flag_save_local; +extern bool flag_save_global; +extern bool flag_load_global; +extern bool flag_lock_help; void me_thread(string cmd); class CmdArgParser : public Glib::OptionGroup { @@ -122,8 +127,6 @@ class MainWindow : public Gtk::ApplicationWindow { My_Process::My_Process_call obj_process_call = My_Process::My_Process_call(); bool flag_load = false; bool flag_save_all = false; - bool flag_save_global = false; - bool flag_save_local = false; bool flag_blocked_tree_view = false; bool flag_save_block = false; size_t size_kernel = 0; @@ -169,6 +172,7 @@ class MainWindow : public Gtk::ApplicationWindow { vector read_file_and_view(string file_name ,Gtk::TreeModel::Row &row, Glib::RefPtr list_store_m); void download_local_cfg(); void download_globl_cfg(); + void flag_block_gui(); void info_status_app(string stule); bool check_save(string flag_save, string key_name); void info_warning_error(int mess); diff --git a/ubl-settings-bootloader.glade b/ubl-settings-bootloader.glade index 3f57d18..942e4aa 100644 --- a/ubl-settings-bootloader.glade +++ b/ubl-settings-bootloader.glade @@ -629,6 +629,8 @@ specified priority -1 True True + 5 + 5 @@ -745,6 +747,8 @@ specified priority True True + 5 + 5 @@ -861,6 +865,8 @@ specified priority True True + 5 + 5 diff --git a/ubl-settings-bootloader_ru.po b/ubl-settings-bootloader_ru.po index 95b5c2b..b73d9bb 100644 --- a/ubl-settings-bootloader_ru.po +++ b/ubl-settings-bootloader_ru.po @@ -102,6 +102,11 @@ msgid "" "Options:\n" " -h, --help\t Show this help\n" " -V, --version\t Show package version\n" +" --lock-help Lock utility help\n" +" --lock-save Lock saving local and global configuration\n" +" --lock-save-local Lock save global configuration\n" +" --lock-save-global Lock load global configuration\n" +" --lock-load-global Lock load global configuration\n" msgstr "" "GTK-утилита настройки загрузчика для UBLinux\n" "\n" @@ -109,6 +114,11 @@ msgstr "" "Параметры приложения:\n" " -h, --help\t Показать параметры справки\n" " -V, --version\t Показать версию пакета\n" +" --lock-help Блокировка вызова справки\n" +" --lock-save Блокировка сохранения локальной и глобальной конфигурации\n" +" --lock-save-local Блокировка сохранения локальной конфигурации\n" +" --lock-save-global Блокировка сохранения глобальной конфигурации\n" +" --lock-load-global Блокировка загрузки глобальной конфигурации\n" #: source/ubl-settings-bootloader.cc:911 source/ubl-settings-bootloader.cc:455 msgid "Global configuration downloaded successfully"