diff --git a/Makefile b/Makefile index 76288d0..f6d42e7 100644 --- a/Makefile +++ b/Makefile @@ -126,6 +126,7 @@ install: check uninstall @install -Dm644 -t /usr/share/${PKGNAME}/ cmdline-linux.csv @install -Dm644 -t /usr/share/${PKGNAME}/ grub-terminal-input.csv @install -Dm644 -t /usr/share/${PKGNAME}/ grub-terminal-output.csv + @install -Dm644 -t /usr/share/${PKGNAME}/ grub-music.csv @if [ -z ${DESTDIR} ]; then \ [ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ update-desktop-database --quiet &>/dev/null || true; \ diff --git a/grub-music.csv b/grub-music.csv new file mode 100644 index 0000000..ec53b91 --- /dev/null +++ b/grub-music.csv @@ -0,0 +1,3 @@ +ubbeep,1 22 333 4444 5555 +acdc,23 233 444 +kipelov,23 66 333 \ No newline at end of file diff --git a/source/ubl-settings-bootloader.cc b/source/ubl-settings-bootloader.cc index 54eb8bf..346a67c 100755 --- a/source/ubl-settings-bootloader.cc +++ b/source/ubl-settings-bootloader.cc @@ -93,6 +93,7 @@ void MainWindow::settings(){ spbSecond->set_increments(1.0, 1.0); spbSecond->set_value(1); this->fill_in_view(); + this->set_init_data_music(); this->change_password_protecc(); this->change_security_login(); this->set_active_boot_second(); @@ -110,6 +111,7 @@ void MainWindow::settings(){ obj_menu_os.init(); obj_menu_os.event(); + } else{ boxWidgetAll->set_sensitive(false); @@ -196,12 +198,11 @@ void MainWindow::fill_in_view() { list_store_IPT = Gtk::ListStore::create(m_columns); list_store_OTT = Gtk::ListStore::create(m_columns); list_store_user = Gtk::ListStore::create(m_columns_user); - list_store_music = Gtk::ListStore::create(m_columns_music); treeViewKernel->set_model(list_store_kernel); treeViewIPT->set_model(list_store_IPT); treeViewOTT->set_model(list_store_OTT); treeViewUser->set_model(list_store_user); - treeViewMusic->set_model(list_store_music); + vec_Option_kernel = this->read_file_and_view(kernel_csv, row_kernel, list_store_kernel); vec_Option_IPT = this->read_file_and_view(IPT_csv, row_IPT, list_store_IPT); @@ -213,7 +214,6 @@ void MainWindow::fill_in_view() { this->view_add_colums(*treeViewIPT); this->view_add_colums(*treeViewOTT); this->view_add_colums_user(*treeViewUser); - this->view_add_colums_music(*treeViewMusic); } void MainWindow::view_add_colums_user(Gtk::TreeView &treeView) { @@ -837,35 +837,61 @@ void get_tree_view_user() { } map_cmd_selection["GRUB_SUPERUSERS"] = users_root } -*/ + void get_tree_view_music() { } +*/ + +void MainWindow::set_init_data_music() { + list_store_music = Gtk::ListStore::create(m_columns_music); + treeViewMusic->set_model(list_store_music); + string path_name = ""; + path_name = path_name + path_resources + "/" + "grub-music.csv"; + vector> vec_music = Utils::read_csv_music(path_name); + bool flag = false; + string cgf_code_music = map_cmd_selection["GRUB_PLAY"]; + for (tuple& tuple_music: vec_music) { + string name = get<0>(tuple_music); + string code = get<1>(tuple_music); + flag = (cgf_code_music == code); + this->set_add_data_music(row_music, flag, name, code); + } + + this->view_add_colums_music(*treeViewMusic); +} + +void MainWindow::set_add_data_music(Gtk::TreeModel::Row &row, bool flag, string &name, string &code) { + row = *(list_store_music->append()); + row[m_columns_music.check_button] = flag; + row[m_columns_music.title] = name; + row[m_columns_music.melody_code] = code; +} void MainWindow::remove_user() { - if (flag_valide_del_user) { + if (flag_validate_del_user && list_store_user->iter_is_valid(iter_user_del)) { list_store_user->erase(iter_user_del); - flag_valide_del_user = false; + flag_validate_del_user = false; } - flag_valide_del_user = false; + flag_validate_del_user = false; } void MainWindow::remove_music() { - if (flag_valide_del_music) { - list_store_user->erase(iter_music_del); - flag_valide_del_music = false; + if (flag_validate_del_music && list_store_music->iter_is_valid(iter_music_del)) { + list_store_music->erase(iter_music_del); + flag_validate_del_music = false; } - flag_valide_del_music = false; + flag_validate_del_music = false; } void MainWindow::remove_line_user(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter) { iter_user_del = iter; - flag_valide_del_user = true; + flag_validate_del_user = true; } void MainWindow::remove_line_music(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter) { iter_music_del = iter; - flag_valide_del_music = true; + flag_validate_del_music = true; } bool MainWindow::focus_tree_view(GdkEventFocus*) { @@ -1113,6 +1139,7 @@ void MainWindow::init_dict(string flag_load) { map_cmd_selection_n["GRUB_USER"] = ""; map_cmd_selection_n["GRUB_PASSWORD"] = ""; map_cmd_selection_n["GRUB_DEFAULT"] = ""; + map_cmd_selection_n["GRUB_PLAY"] = ""; map_cmd_selection = map_cmd_selection_n; if (flag_load == "global") { map_global_cmd_selection = map_cmd_selection_n; diff --git a/source/ubl-settings-bootloader.h b/source/ubl-settings-bootloader.h index 84169b8..4dd4b94 100644 --- a/source/ubl-settings-bootloader.h +++ b/source/ubl-settings-bootloader.h @@ -288,8 +288,8 @@ public: std::map map_local_cmd_selection; Gtk::TreeModel::iterator iter_user_del; Gtk::TreeModel::iterator iter_music_del; - bool flag_valide_del_user = false; - bool flag_valide_del_music = false; + bool flag_validate_del_user = false; + bool flag_validate_del_music = false; Gtk::Label *lblDownloadMode; Lib_save::Save obj_save = Lib_save::Save(); @@ -397,6 +397,8 @@ public: string template_item_selected(int size, Glib::RefPtr &list_store, string key); void view_add_line_user(Gtk::TreeModel::Row &row, Glib::RefPtr list_store_m); void view_add_line_music(Gtk::TreeModel::Row &row, Glib::RefPtr list_store_m); + void set_add_data_music(Gtk::TreeModel::Row &row, bool flag, string &name, string &code); + void set_init_data_music(); }; class SettingsPlug : public Gtk::Plug diff --git a/source/util.cc b/source/util.cc index b1ae35a..15a6c25 100644 --- a/source/util.cc +++ b/source/util.cc @@ -50,6 +50,23 @@ array, 5> read_csv(const string& filename) { return array_vectors; } +vector> read_csv_music(const string& filename) { + vector> vec_music; + ifstream file(filename); + string line; + char delimiter = ','; + while (getline(file, line)) { + stringstream stream(line); + string name; + string code; + getline(stream, name, delimiter); + getline(stream, code, delimiter); + tuple tuple_music(name, code); + vec_music.push_back(tuple_music); + } + return vec_music; +} + string call(string cmd) { FILE *fp; int status; diff --git a/source/util.h b/source/util.h index 12e6667..3f97598 100644 --- a/source/util.h +++ b/source/util.h @@ -1,6 +1,7 @@ #ifndef UTIL_H #define UTIL_H #include +#include #include #include #include @@ -44,5 +45,6 @@ vector 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 split(std::string text, char delim); +vector> read_csv_music(const string& filename); } #endif \ No newline at end of file