From 8aaa2a23630c234e630ab4e9835a0a83d34a3632 Mon Sep 17 00:00:00 2001 From: Igor Belitskiy Date: Fri, 28 Apr 2023 18:00:55 +0600 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=81=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA=20=D0=BC=D0=B5=D0=BD=D1=8E?= =?UTF-8?q?=20=D0=BE=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/menu_os.cc | 27 +++++++++++++++++++++------ source/menu_os.h | 3 ++- source/ubl-settings-bootloader.cc | 1 + ubl-settings-bootloader.glade | 16 +++++++--------- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/source/menu_os.cc b/source/menu_os.cc index 29cebb7..453529c 100644 --- a/source/menu_os.cc +++ b/source/menu_os.cc @@ -17,6 +17,7 @@ void Menu_os::set_builder(Glib::RefPtr& builder, string path_glade builder->get_widget("revealerL2", revealerL2); builder->get_widget("boxALLL3", boxALLL3); builder->get_widget("boxLevel1", boxLevel1); + builder->get_widget("btnToLev1", btnToLev1); revealerL1->set_reveal_child(true); } @@ -38,11 +39,12 @@ void Menu_os::init() { map_menu_level_1[key]->builder = builder_level_1; map_menu_level_1[key]->lblRevL1->set_text(key); boxLevel1->pack_end(*(map_menu_level_1[key]->boxMenuLevel1)); + map_menu_level_1[key]->name = key; map_menu_level_1[key]->btnToL2AndLv3->signal_clicked().connect( - sigc::bind (sigc::mem_fun( *this, + sigc::bind (sigc::mem_fun( *this, &Menu_os::event_template), map_menu_level_1[key]->lblRevL1, - name_level_1)); - map_menu_level_1[key]->name = key; + name_level_1, map_menu_level_1[key]->name)); + if (vec_value.size()!= 0) { builder_level_1->get_widget("revealerL3", map_menu_level_1[key]->revealer); @@ -64,9 +66,9 @@ void Menu_os::init() { map_menu_level_1[key]->boxLevel3->pack_start( *(map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3)); map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3->signal_clicked().connect( - sigc::bind (sigc::mem_fun(*this, + sigc::bind (sigc::mem_fun(*this, &Menu_os::event_template), map_menu_level_1[key]->vec_menu_level_3[index_l3]->lblToL3, - name_level_3)); + name_level_3, map_menu_level_1[key]->name)); map_menu_level_1[key]->vec_menu_level_3[index_l3]->builder = builder_level_3; boxALLL3->pack_start( *(map_menu_level_1[key]->revealer)); @@ -89,12 +91,25 @@ void Menu_os::event() { void Menu_os::set_entry(Gtk::Entry *entry) { this->entry = entry; } -void Menu_os::event_template(Gtk::Label* label, string& name_level) { +void Menu_os::event_template(Gtk::Label* label, string& name_level, string& key) { name_level = label->get_label(); + key_global = key; entry->set_text(name_level_1 + name_level_3); + Gtk::Revealer *revealer = map_menu_level_1[key]->revealer; + if (&name_level == &name_level_1 && map_menu_level_1[key]->vec_menu_level_3.size() != 0) { + revealerL1->set_reveal_child(false); + revealerL2->set_reveal_child(true); + revealer->set_reveal_child(true); + } + else { + popoverMenuOS->hide(); + } } void Menu_os::to_l1() { revealerL1->set_reveal_child(true); revealerL2->set_reveal_child(false); + map_menu_level_1[key_global]->revealer->set_reveal_child(false); + cout << key_global << endl; + key_global = ""; } diff --git a/source/menu_os.h b/source/menu_os.h index 4e240ef..a94810a 100644 --- a/source/menu_os.h +++ b/source/menu_os.h @@ -21,6 +21,7 @@ private: private: string name_level_1 = ""; string name_level_3 = ""; + string key_global = ""; Gtk::Entry *entry; string path_glade = ""; Gtk::Box *boxALLL3; @@ -53,7 +54,7 @@ public: void show(); void settings(); void set_entry(Gtk::Entry *entry); - void event_template(Gtk::Label* label, string& name_level); + void event_template(Gtk::Label* label, string& name_level, string& key); void event(); void to_l1(); ~Menu_os(); diff --git a/source/ubl-settings-bootloader.cc b/source/ubl-settings-bootloader.cc index 52e7446..a0ea0d3 100755 --- a/source/ubl-settings-bootloader.cc +++ b/source/ubl-settings-bootloader.cc @@ -104,6 +104,7 @@ void MainWindow::settings(){ obj_menu_os.set_map(map_list_os); obj_menu_os.set_entry(entrListOS); obj_menu_os.init(); + obj_menu_os.event(); this->write_list_entry_os(os_control_list); this->download_local_cfg(); this->download_globl_cfg(); diff --git a/ubl-settings-bootloader.glade b/ubl-settings-bootloader.glade index ad6e1aa..5b6233d 100644 --- a/ubl-settings-bootloader.glade +++ b/ubl-settings-bootloader.glade @@ -150,7 +150,10 @@ specified priority True False - gtk-missing-image + gtk-goto-last + @@ -165,16 +168,11 @@ specified priority True True True - 4 - 5 - 5 - 5 - 6 - 6 True False + 0 @@ -512,7 +510,7 @@ specified priority 6 - False + True True 2 @@ -1351,7 +1349,7 @@ specified priority True False - gtk-missing-image + gtk-goto-first