Добавлено выделение жирным текстом последнею загруженную ОС

pull/18/head
Igor Belitskiy 3 years ago
parent 163acb5be6
commit 1f0fdfee2d

@ -9,9 +9,8 @@ Menu_os::~Menu_os()
{ {
} }
void Menu_os::set_bnt_save(Gtk::Button *btnSave, bool flag_save) { void Menu_os::set_last_launched_os(string str_last_launched_os) {
this->btnSave = btnSave; this->str_last_launched_os = str_last_launched_os;
this->flag_save = flag_save;
} }
void Menu_os::set_builder(Glib::RefPtr<Gtk::Builder>& builder, string path_glade) { void Menu_os::set_builder(Glib::RefPtr<Gtk::Builder>& builder, string path_glade) {
@ -44,9 +43,9 @@ void Menu_os::init() {
map_menu_level_1[key]->btnToL2AndLv3_css = map_menu_level_1[key]->btnToL2AndLv3->get_style_context(); map_menu_level_1[key]->btnToL2AndLv3_css = map_menu_level_1[key]->btnToL2AndLv3->get_style_context();
map_menu_level_1[key]->btnToL2AndLv3_css->add_class("noborder"); map_menu_level_1[key]->btnToL2AndLv3_css->add_class("noborder");
map_menu_level_1[key]->builder = builder_level_1; 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)); boxLevel1->pack_end(*(map_menu_level_1[key]->boxMenuLevel1));
map_menu_level_1[key]->name = key; map_menu_level_1[key]->name = key;
this->html_last_launched_os(key, map_menu_level_1[key]->lblRevL1);
map_menu_level_1[key]->btnToL2AndLv3->signal_clicked().connect( map_menu_level_1[key]->btnToL2AndLv3->signal_clicked().connect(
sigc::bind<Gtk::Label*, string&, string&> (sigc::mem_fun( *this, sigc::bind<Gtk::Label*, string&, string&> (sigc::mem_fun( *this,
&Menu_os::event_template), map_menu_level_1[key]->lblRevL1, &Menu_os::event_template), map_menu_level_1[key]->lblRevL1,
@ -62,7 +61,7 @@ void Menu_os::init() {
} }
size_t index_l3 = 0; size_t index_l3 = 0;
for (string& str_level_2: vec_value) { for (string& str_level_3: vec_value) {
auto builder_level_3 = Gtk::Builder::create_from_file(path_glade); auto builder_level_3 = Gtk::Builder::create_from_file(path_glade);
map_menu_level_1[key]->vec_menu_level_3.push_back(new struct_menu_level_3); map_menu_level_1[key]->vec_menu_level_3.push_back(new struct_menu_level_3);
builder_level_3->get_widget("btnToL3", builder_level_3->get_widget("btnToL3",
@ -72,7 +71,7 @@ void Menu_os::init() {
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3_css = map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3_css =
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3->get_style_context(); map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3->get_style_context();
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3_css->add_class("noborder"); map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3_css->add_class("noborder");
map_menu_level_1[key]->vec_menu_level_3[index_l3]->lblToL3->set_text(str_level_2); this->html_last_launched_os(str_level_3, map_menu_level_1[key]->vec_menu_level_3[index_l3]->lblToL3);
map_menu_level_1[key]->boxLevel3->pack_start( 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));
map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3->signal_clicked().connect( map_menu_level_1[key]->vec_menu_level_3[index_l3]->btnToL3->signal_clicked().connect(
@ -108,7 +107,10 @@ void Menu_os::set_entry(Gtk::Entry *entry) {
void Menu_os::event_template(Gtk::Label* label, string& name_level, string& key) { void Menu_os::event_template(Gtk::Label* label, string& name_level, string& key) {
name_level = label->get_label(); name_level = label->get_label();
key_global = key; key_global = key;
Utils::str_remove(name_level_1, "<b>");
Utils::str_remove(name_level_1, "</b>");
Utils::str_remove(name_level_3, "<b>");
Utils::str_remove(name_level_3, "</b>");
Gtk::Revealer *revealer = map_menu_level_1[key]->revealer; 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) { if (&name_level == &name_level_1 && map_menu_level_1[key]->vec_menu_level_3.size() != 0) {
this->close_revealer(); this->close_revealer();
@ -134,4 +136,34 @@ void Menu_os::to_l1() {
map_menu_level_1[key_global]->revealer->set_reveal_child(false); map_menu_level_1[key_global]->revealer->set_reveal_child(false);
key_global = ""; key_global = "";
} }
void Menu_os::html_last_launched_os(string name_os, Gtk::Label *label) {
string margin_name_os = "";
size_t index_find = this->str_last_launched_os.find(">");
size_t len_last_launched_os = this->str_last_launched_os.length();
if (index_find != string::npos) {
string level_1 = this->str_last_launched_os.substr(0, index_find + 1);
string level_3 = this->str_last_launched_os.substr(index_find + 1, len_last_launched_os - 1);
if (name_os == level_1) {
margin_name_os = "<b>" + name_os + "</b>";
label->set_markup(margin_name_os);
}
else if (name_os == level_3) {
margin_name_os = "<b>" + name_os + "</b>";
label->set_markup(margin_name_os);
}
else {
label->set_text(name_os);
}
}
else {
if (this->str_last_launched_os == name_os) {
margin_name_os = "<b>" + name_os + "</b>";
label->set_markup(margin_name_os);
}
else {
label->set_text(name_os);
}
}
}

@ -4,6 +4,7 @@
#include <map> #include <map>
#include <iostream> #include <iostream>
#include <vector> #include <vector>
#include "util.h"
using namespace std; using namespace std;
class Menu_os class Menu_os
@ -16,9 +17,7 @@ private:
Gtk::Revealer *revealerL1; Gtk::Revealer *revealerL1;
Gtk::Revealer *revealerL2; Gtk::Revealer *revealerL2;
Gtk::Button *btnToLev1; Gtk::Button *btnToLev1;
bool flag_save = false; string str_last_launched_os = "";
Gtk::Button *btnSave;
private: private:
string name_level_1 = ""; string name_level_1 = "";
string name_level_3 = ""; string name_level_3 = "";
@ -56,11 +55,12 @@ public:
void show(); void show();
void close_revealer(); void close_revealer();
void settings(); void settings();
void html_last_launched_os(string name_os, Gtk::Label *label);
void set_last_launched_os(string str_last_launched_os);
void set_entry(Gtk::Entry *entry); void set_entry(Gtk::Entry *entry);
void event_template(Gtk::Label* label, string& name_level, string& key); void event_template(Gtk::Label* label, string& name_level, string& key);
void event(); void event();
void to_l1(); void to_l1();
void set_bnt_save(Gtk::Button *btnSave, bool flag_save);
~Menu_os(); ~Menu_os();
}; };
#endif #endif

@ -99,14 +99,17 @@ void MainWindow::settings(){
this->str_last_launched_os = this->pars_last_launched_os(); this->str_last_launched_os = this->pars_last_launched_os();
vector<string> os_control_list; vector<string> os_control_list;
this->pars_os(os_control_list); this->pars_os(os_control_list);
this->download_local_cfg();
this->download_globl_cfg();
std::map<string, vector<string>> map_list_os = format_os_list(os_control_list); std::map<string, vector<string>> map_list_os = format_os_list(os_control_list);
obj_menu_os.set_builder(builder, path_glade); obj_menu_os.set_builder(builder, path_glade);
obj_menu_os.set_map(map_list_os); obj_menu_os.set_map(map_list_os);
obj_menu_os.set_entry(entrListOS); obj_menu_os.set_entry(entrListOS);
// obj_menu_os.set_last_launched_os(map_global_cmd_selection["GRUB_DEFAULT"]);
obj_menu_os.set_last_launched_os(this->str_last_launched_os);
obj_menu_os.init(); obj_menu_os.init();
obj_menu_os.event(); obj_menu_os.event();
this->download_local_cfg();
this->download_globl_cfg();
} }
else{ else{
boxWidgetAll->set_sensitive(false); boxWidgetAll->set_sensitive(false);
@ -890,7 +893,7 @@ void MainWindow::set_data_cfg() {
} }
string name_os = entrListOS->get_text(); string name_os = entrListOS->get_text();
if (name_os.length() != 0) { if (name_os.length() != 0) {
map_cmd_selection["GRUB_DEFAULT"] = name_os; map_cmd_selection["GRUB_DEFAULT"] = "\"" + name_os + "\"";
} }
else { else {
map_cmd_selection["GRUB_DEFAULT"] = ""; map_cmd_selection["GRUB_DEFAULT"] = "";

@ -1332,6 +1332,8 @@ specified priority</property>
<object class="GtkImage"> <object class="GtkImage">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="stock">gtk-goto-first</property> <property name="stock">gtk-goto-first</property>
</object> </object>
</child> </child>

Loading…
Cancel
Save