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