Исправления после код ревью

pull/18/head
Igor Belitskiy 3 years ago
parent 38f193d76d
commit 60e0c63db4

@ -126,7 +126,7 @@ install: check uninstall
@install -Dm644 -t /usr/share/${PKGNAME}/ cmdline-linux.csv @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-input.csv
@install -Dm644 -t /usr/share/${PKGNAME}/ grub-terminal-output.csv @install -Dm644 -t /usr/share/${PKGNAME}/ grub-terminal-output.csv
@install -Dm644 -t /usr/share/${PKGNAME}/ grub-beeplist.csv @install -Dm644 -t /usr/share/${PKGNAME}/ grub-melodylist.csv
@if [ -z ${DESTDIR} ]; then \ @if [ -z ${DESTDIR} ]; then \
[ -d "${DESTDIR}${PREFIX}/share/icons/hicolor/" ] && gtk-update-icon-cache -fiq "${DESTDIR}${PREFIX}/share/icons/hicolor/" &>/dev/null || true; \ [ -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; \ update-desktop-database --quiet &>/dev/null || true; \

@ -101,7 +101,7 @@ void MainWindow::settings(){
this->download_local_cfg(); this->download_local_cfg();
this->download_globl_cfg(); this->download_globl_cfg();
this->view_add_colums_music(*treeViewMusic); this->view_add_colums_melody(*treeViewMusic);
this->view_add_colums_user(*treeViewUser); this->view_add_colums_user(*treeViewUser);
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);
@ -218,10 +218,10 @@ void MainWindow::view_add_colums_user(Gtk::TreeView &treeView) {
treeView.append_column_editable(str_password, m_columns_user.password); treeView.append_column_editable(str_password, m_columns_user.password);
} }
void MainWindow::view_add_colums_music(Gtk::TreeView &treeView) { void MainWindow::view_add_colums_melody(Gtk::TreeView &treeView) {
treeView.append_column_editable(str_active, m_columns_music.check_button); treeView.append_column_editable(str_active, m_columns_melody.check_button);
treeView.append_column_editable(str_option, m_columns_music.title); treeView.append_column_editable(str_option, m_columns_melody.title);
treeView.append_column_editable(str_melody_code, m_columns_music.melody_code); treeView.append_column_editable(str_melody_code, m_columns_melody.melody_code);
} }
void MainWindow::item_selected_kernel(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator&) { void MainWindow::item_selected_kernel(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator&) {
@ -632,11 +632,11 @@ void MainWindow::cmd_entry_all(Gtk::Entry &entry, string cmd_settings, string cm
void MainWindow::event() { void MainWindow::event() {
btnRemoveUser->signal_clicked().connect([&]() {remove_user();}); btnRemoveUser->signal_clicked().connect([&]() {remove_user();});
btnRemoveMusic->signal_clicked().connect([&]() {remove_music();}); btnRemoveMusic->signal_clicked().connect([&]() {remove_melody();});
btnAddUser->signal_clicked().connect([&]() {string name = "", passwd = ""; btnAddUser->signal_clicked().connect([&]() {string name = "", passwd = "";
set_add_data_user(row_user, false, name, passwd);}); set_add_data_user(row_user, false, name, passwd);});
btnAddMusic->signal_clicked().connect([&]() {string code = "", name = ""; btnAddMusic->signal_clicked().connect([&]() {string code = "", name = "";
set_add_data_music(row_music, false,name, code);}); set_add_data_melody(row_melody, false,name, code);});
btnOpenMenuOS->signal_clicked().connect([&]() {obj_menu_os.show();}); btnOpenMenuOS->signal_clicked().connect([&]() {obj_menu_os.show();});
btnCancelHelp->signal_clicked().connect([&]() {wndShowWeb->hide();}); btnCancelHelp->signal_clicked().connect([&]() {wndShowWeb->hide();});
chkAlwaysOpenHelp->signal_toggled().connect([&]() {flag_open_browser = true;}); chkAlwaysOpenHelp->signal_toggled().connect([&]() {flag_open_browser = true;});
@ -667,7 +667,7 @@ void MainWindow::event() {
Glib::RefPtr<Gtk::TreeModel> treeViewUserModel = treeViewUser->get_model(); Glib::RefPtr<Gtk::TreeModel> treeViewUserModel = treeViewUser->get_model();
treeViewUserModel->signal_row_changed().connect(sigc::mem_fun(*this, &MainWindow::remove_line_user)); treeViewUserModel->signal_row_changed().connect(sigc::mem_fun(*this, &MainWindow::remove_line_user));
Glib::RefPtr<Gtk::TreeModel> treeViewMusicModel = treeViewMusic->get_model(); Glib::RefPtr<Gtk::TreeModel> treeViewMusicModel = treeViewMusic->get_model();
treeViewMusicModel->signal_row_changed().connect(sigc::mem_fun(*this, &MainWindow::remove_line_music)); treeViewMusicModel->signal_row_changed().connect(sigc::mem_fun(*this, &MainWindow::remove_line_melody));
} }
this->signal_delete_event().connect(sigc::mem_fun(*this, &MainWindow::gui_exit)); this->signal_delete_event().connect(sigc::mem_fun(*this, &MainWindow::gui_exit));
chbLoadVariantSelectionTimer->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_active_boot_second)); chbLoadVariantSelectionTimer->signal_toggled().connect(sigc::mem_fun(*this, &MainWindow::set_active_boot_second));
@ -742,28 +742,28 @@ void MainWindow::set_init_data_superuser(std::map<string, string> &map_temp) {
} }
} }
void MainWindow::set_data_csv_music() { void MainWindow::set_data_csv_melody() {
string path_name = ""; string path_name = "";
path_name = path_name + path_resources + "/" + "grub-beeplist.csv"; path_name = path_name + path_resources + "/" + "grub-melodylist.csv";
string line; string line;
string all_music = ""; string all_melody = "";
string all_music_old = ""; string all_melody_old = "";
string code_melodies = ""; string code_melodyes = "";
ifstream in(path_name); ifstream in(path_name);
if (in.is_open()) { if (in.is_open()) {
while (getline(in, line)){ while (getline(in, line)){
all_music_old += line + "\n"; all_melody_old += line + "\n";
} }
} }
Glib::RefPtr<Gtk::TreeModel> treeViewMusic_model = treeViewMusic->get_model(); Glib::RefPtr<Gtk::TreeModel> treeViewMusic_model = treeViewMusic->get_model();
Gtk::TreeModel::Children children = treeViewMusic_model->children(); Gtk::TreeModel::Children children = treeViewMusic_model->children();
for(Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); ++iter){ for(Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); ++iter){
Gtk::TreeModel::Row row = *iter; Gtk::TreeModel::Row row = *iter;
code_melodies = row[m_columns_music.melody_code] + ""; code_melodyes = row[m_columns_melody.melody_code] + "";
if (code_melodies.length() != 0 && (row[m_columns_music.title] + "").length() != 0) { if (code_melodyes.length() != 0 && (row[m_columns_melody.title] + "").length() != 0) {
all_music += row[m_columns_music.title] + "," + code_melodies + "\n"; all_melody += row[m_columns_melody.title] + "," + code_melodyes + "\n";
if (row[m_columns_music.check_button]) { if (row[m_columns_melody.check_button]) {
map_cmd_selection["GRUB_PLAY"] = code_melodies + ""; map_cmd_selection["GRUB_PLAY"] = code_melodyes + "";
} }
else { else {
map_cmd_selection["GRUB_PLAY"] = ""; map_cmd_selection["GRUB_PLAY"] = "";
@ -772,13 +772,13 @@ void MainWindow::set_data_csv_music() {
else { else {
imgInfo->set_from_icon_name(icon_warning, Gtk::ICON_SIZE_MENU); imgInfo->set_from_icon_name(icon_warning, Gtk::ICON_SIZE_MENU);
info_status_app(info_box_error_css); info_status_app(info_box_error_css);
lblWarning->set_text(str_null_music_name); lblWarning->set_text(str_null_melody_name);
} }
} }
if (all_music_old != all_music) { if (all_melody_old != all_melody) {
ofstream fout(path_name, ios_base::out | ios_base::trunc); ofstream fout(path_name, ios_base::out | ios_base::trunc);
if (fout.is_open()) { if (fout.is_open()) {
fout << all_music; fout << all_melody;
fout.close(); fout.close();
} }
} }
@ -791,28 +791,28 @@ void MainWindow::set_add_data_user(Gtk::TreeModel::Row &row, bool flag, string &
row[m_columns_user.password] = password; row[m_columns_user.password] = password;
} }
void MainWindow::set_init_data_music(std::map<string, string> &map_temp) { void MainWindow::set_init_data_melody(std::map<string, string> &map_temp) {
treeViewMusic->reset_expander_column(); treeViewMusic->reset_expander_column();
list_store_music = Gtk::ListStore::create(m_columns_music); list_store_melody = Gtk::ListStore::create(m_columns_melody);
treeViewMusic->set_model(list_store_music); treeViewMusic->set_model(list_store_melody);
string path_name = ""; string path_name = "";
path_name = path_name + path_resources + "/" + "grub-beeplist.csv"; path_name = path_name + path_resources + "/" + "grub-melodylist.csv";
vector<tuple<string, string>> vec_music = Utils::read_csv_music(path_name); vector<tuple<string, string>> vec_melody = Utils::read_csv_melody(path_name);
bool flag = false; bool flag = false;
string cgf_code_music = map_temp["GRUB_PLAY"]; string cgf_code_melody = map_temp["GRUB_PLAY"];
for (tuple<string, string>& tuple_music: vec_music) { for (tuple<string, string>& tuple_melody: vec_melody) {
string name = get<0>(tuple_music); string name = get<0>(tuple_melody);
string code = get<1>(tuple_music); string code = get<1>(tuple_melody);
flag = (cgf_code_music == code); flag = (cgf_code_melody == code);
this->set_add_data_music(row_music, flag, name, code); this->set_add_data_melody(row_melody, flag, name, code);
} }
} }
void MainWindow::set_add_data_music(Gtk::TreeModel::Row &row, bool flag, string &name, string &code) { void MainWindow::set_add_data_melody(Gtk::TreeModel::Row &row, bool flag, string &name, string &code) {
row = *(list_store_music->append()); row = *(list_store_melody->append());
row[m_columns_music.check_button] = flag; row[m_columns_melody.check_button] = flag;
row[m_columns_music.title] = name; row[m_columns_melody.title] = name;
row[m_columns_music.melody_code] = code; row[m_columns_melody.melody_code] = code;
} }
void MainWindow::remove_user() { void MainWindow::remove_user() {
@ -823,12 +823,12 @@ void MainWindow::remove_user() {
flag_validate_del_user = false; flag_validate_del_user = false;
} }
void MainWindow::remove_music() { void MainWindow::remove_melody() {
if (flag_validate_del_music && list_store_music->iter_is_valid(iter_music_del)) { if (flag_validate_del_melody && list_store_melody->iter_is_valid(iter_melody_del)) {
list_store_music->erase(iter_music_del); list_store_melody->erase(iter_melody_del);
flag_validate_del_music = false; flag_validate_del_melody = false;
} }
flag_validate_del_music = false; flag_validate_del_melody = false;
} }
void MainWindow::remove_line_user(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter) { void MainWindow::remove_line_user(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter) {
@ -860,17 +860,17 @@ void MainWindow::remove_line_user(const Gtk::TreeModel::Path&, const Gtk::TreeMo
} }
} }
void MainWindow::remove_line_music(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter) { void MainWindow::remove_line_melody(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter) {
iter_music_del = iter; iter_melody_del = iter;
flag_validate_del_music = true; flag_validate_del_melody = true;
string code_melodies = ""; string code_melodyes = "";
bool flag_error = false; bool flag_error = false;
Glib::RefPtr<Gtk::TreeModel> treeViewMusic_model = treeViewMusic->get_model(); Glib::RefPtr<Gtk::TreeModel> treeViewMusic_model = treeViewMusic->get_model();
Gtk::TreeModel::Children children = treeViewMusic_model->children(); Gtk::TreeModel::Children children = treeViewMusic_model->children();
for(Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); ++iter){ for(Gtk::TreeModel::iterator iter = children.begin(); iter != children.end(); ++iter){
Gtk::TreeModel::Row row = *iter; Gtk::TreeModel::Row row = *iter;
code_melodies = row[m_columns_music.melody_code] + ""; code_melodyes = row[m_columns_melody.melody_code] + "";
if (code_melodies.length() == 0 && (row[m_columns_music.title] + "").length() == 0) { if (code_melodyes.length() == 0 && (row[m_columns_melody.title] + "").length() == 0) {
flag_error = true; flag_error = true;
break; break;
} }
@ -878,7 +878,7 @@ void MainWindow::remove_line_music(const Gtk::TreeModel::Path&, const Gtk::TreeM
if (flag_error == true) { if (flag_error == true) {
imgInfo->set_from_icon_name(icon_warning, Gtk::ICON_SIZE_MENU); imgInfo->set_from_icon_name(icon_warning, Gtk::ICON_SIZE_MENU);
info_status_app(info_box_error_css); info_status_app(info_box_error_css);
lblWarning->set_text(str_null_music_name); lblWarning->set_text(str_null_melody_name);
} }
else { else {
info_status_app(info_box_ok_css); info_status_app(info_box_ok_css);
@ -1020,7 +1020,7 @@ void MainWindow::set_data_cfg() {
} }
this->set_download_mode(); this->set_download_mode();
this->set_tree_view_user(); this->set_tree_view_user();
this->set_data_csv_music(); this->set_data_csv_melody();
} }
void MainWindow::download_globl_cfg() { void MainWindow::download_globl_cfg() {
@ -1062,7 +1062,7 @@ void MainWindow::load_template(std::map<string, string>* map_temp, string cmd) {
this->set_entry(entryOTT, *map_temp, "GRUB_TERMINAL_OUTPUT"); this->set_entry(entryOTT, *map_temp, "GRUB_TERMINAL_OUTPUT");
string str_last_launched_os_ubconfig = (*map_temp)["GRUB_DEFAULT"]; string str_last_launched_os_ubconfig = (*map_temp)["GRUB_DEFAULT"];
this->set_init_data_user(*map_temp); this->set_init_data_user(*map_temp);
this->set_init_data_music(*map_temp); this->set_init_data_melody(*map_temp);
this->set_init_data_superuser(*map_temp); this->set_init_data_superuser(*map_temp);
if (str_last_launched_os_ubconfig.length() != 0) { if (str_last_launched_os_ubconfig.length() != 0) {
entrListOS->set_text(str_last_launched_os_ubconfig); entrListOS->set_text(str_last_launched_os_ubconfig);

@ -103,7 +103,7 @@ void me_thread(string cmd);
#define str_description _("Description") #define str_description _("Description")
#define str_title_Boot_Menu_Users _("Boot Menu Users") #define str_title_Boot_Menu_Users _("Boot Menu Users")
#define str_title_Ringtone_Startup _("Ringtone at startup") #define str_title_Ringtone_Startup _("Ringtone at startup")
#define str_null_music_name _("Enter the name and code of the tune in the \"Ringtone at startup\" field") #define str_null_melody_name _("Enter the name and code of the tune in the \"Ringtone at startup\" field")
#define str_null_username _("Enter name and password code in the \"Boot Menu Users\" field") #define str_null_username _("Enter name and password code in the \"Boot Menu Users\" field")
#define str_help_h _("GTK settings bootloader for UBLinux\n" \ #define str_help_h _("GTK settings bootloader for UBLinux\n" \
"\n" \ "\n" \
@ -182,10 +182,10 @@ public:
Gtk::TreeModelColumn<Glib::ustring> name; Gtk::TreeModelColumn<Glib::ustring> name;
Gtk::TreeModelColumn<Glib::ustring> password; Gtk::TreeModelColumn<Glib::ustring> password;
}; };
class ModelColumnsMusic : public Gtk::TreeModel::ColumnRecord class ModelColumnsMelody : public Gtk::TreeModel::ColumnRecord
{ {
public: public:
ModelColumnsMusic() ModelColumnsMelody()
{ {
add(check_button), add(title); add(check_button), add(title);
add(melody_code); add(melody_code);
@ -198,7 +198,7 @@ public:
ModelColumns m_columns; ModelColumns m_columns;
ModelColumnsUser m_columns_user; ModelColumnsUser m_columns_user;
ModelColumnsMusic m_columns_music; ModelColumnsMelody m_columns_melody;
Glib::RefPtr<Gtk::Builder> builder; Glib::RefPtr<Gtk::Builder> builder;
Gtk::SpinButton *spbSecond; Gtk::SpinButton *spbSecond;
Gtk::Label *lblBootMenuUsers; Gtk::Label *lblBootMenuUsers;
@ -271,7 +271,7 @@ public:
Glib::RefPtr<Gtk::ListStore> list_store_IPT; Glib::RefPtr<Gtk::ListStore> list_store_IPT;
Glib::RefPtr<Gtk::ListStore> list_store_OTT; Glib::RefPtr<Gtk::ListStore> list_store_OTT;
Glib::RefPtr<Gtk::ListStore> list_store_user; Glib::RefPtr<Gtk::ListStore> list_store_user;
Glib::RefPtr<Gtk::ListStore> list_store_music; Glib::RefPtr<Gtk::ListStore> list_store_melody;
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
Gtk::Window *wndWeb; Gtk::Window *wndWeb;
Gtk::Widget *three; Gtk::Widget *three;
@ -281,14 +281,14 @@ public:
Gtk::TreeModel::Row row_IPT; Gtk::TreeModel::Row row_IPT;
Gtk::TreeModel::Row row_OTT; Gtk::TreeModel::Row row_OTT;
Gtk::TreeModel::Row row_user; Gtk::TreeModel::Row row_user;
Gtk::TreeModel::Row row_music; Gtk::TreeModel::Row row_melody;
std::map<string, string> map_cmd_selection; std::map<string, string> map_cmd_selection;
std::map<string, string> map_global_cmd_selection; std::map<string, string> map_global_cmd_selection;
std::map<string, string> map_local_cmd_selection; std::map<string, string> map_local_cmd_selection;
Gtk::TreeModel::iterator iter_user_del; Gtk::TreeModel::iterator iter_user_del;
Gtk::TreeModel::iterator iter_music_del; Gtk::TreeModel::iterator iter_melody_del;
bool flag_validate_del_user = false; bool flag_validate_del_user = false;
bool flag_validate_del_music = false; bool flag_validate_del_melody = false;
Gtk::Label *lblDownloadMode; Gtk::Label *lblDownloadMode;
Lib_save::Save obj_save = Lib_save::Save(); Lib_save::Save obj_save = Lib_save::Save();
@ -334,11 +334,11 @@ public:
void localization(); void localization();
void event(); void event();
void remove_user(); void remove_user();
void remove_music(); void remove_melody();
void settings(); void settings();
void remove_line_music(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter); void remove_line_melody(const Gtk::TreeModel::Path&, const Gtk::TreeModel::iterator& iter);
void view_add_colums_user(Gtk::TreeView &treeView); void view_add_colums_user(Gtk::TreeView &treeView);
void view_add_colums_music(Gtk::TreeView &treeView); void view_add_colums_melody(Gtk::TreeView &treeView);
void set_bat_save(Gtk::Button *btnSave); void set_bat_save(Gtk::Button *btnSave);
string pars_last_launched_os(); string pars_last_launched_os();
vector<string> pars_os(vector<string> &os_control_list); vector<string> pars_os(vector<string> &os_control_list);
@ -346,7 +346,7 @@ public:
void fn_event_intelMax4(); void fn_event_intelMax4();
void synopsis_show(); void synopsis_show();
void set_data_cfg(); void set_data_cfg();
void set_data_csv_music(); void set_data_csv_melody();
std::map<string, vector<string>> format_os_list(vector<string> &os_control_list); std::map<string, vector<string>> format_os_list(vector<string> &os_control_list);
void set_active_boot_second(); void set_active_boot_second();
void get_download_mode(std::map<string, string> &map_temp); void get_download_mode(std::map<string, string> &map_temp);
@ -388,8 +388,8 @@ public:
void item_selected_OTT(const Gtk::TreeModel::Path &, const Gtk::TreeModel::iterator &); void item_selected_OTT(const Gtk::TreeModel::Path &, const Gtk::TreeModel::iterator &);
void item_selected_IPT(const Gtk::TreeModel::Path &, const Gtk::TreeModel::iterator &); void item_selected_IPT(const Gtk::TreeModel::Path &, const Gtk::TreeModel::iterator &);
string template_item_selected(int size, Glib::RefPtr<Gtk::ListStore> &list_store, string key); string template_item_selected(int size, Glib::RefPtr<Gtk::ListStore> &list_store, string key);
void set_add_data_music(Gtk::TreeModel::Row &row, bool flag, string &name, string &code); void set_add_data_melody(Gtk::TreeModel::Row &row, bool flag, string &name, string &code);
void set_init_data_music(std::map<string, string> &map_temp); void set_init_data_melody(std::map<string, string> &map_temp);
void set_add_data_user(Gtk::TreeModel::Row &row, bool flag, string &name, string &password); void set_add_data_user(Gtk::TreeModel::Row &row, bool flag, string &name, string &password);
void set_init_data_user(std::map<string, string> &map_temp); void set_init_data_user(std::map<string, string> &map_temp);
void set_init_data_superuser(std::map<string, string> &map_temp); void set_init_data_superuser(std::map<string, string> &map_temp);

@ -50,7 +50,7 @@ array<vector<string>, 5> read_csv(const string& filename) {
return array_vectors; return array_vectors;
} }
vector<tuple<string, string>> read_csv_music(const string& filename) { vector<tuple<string, string>> read_csv_melody(const string& filename) {
vector<tuple<string, string>> vec_music; vector<tuple<string, string>> vec_music;
ifstream file(filename); ifstream file(filename);
string line; string line;

@ -45,6 +45,6 @@ vector<int> find_all(string &str_ntp, string substr);
void str_remove(std::string& source, std::string to_remove); void str_remove(std::string& source, std::string to_remove);
void str_replace_all(string &str_base, string str_find, string str_replace); void str_replace_all(string &str_base, string str_find, string str_replace);
std::vector<std::string> split(std::string text, char delim); std::vector<std::string> split(std::string text, char delim);
vector<tuple<string, string>> read_csv_music(const string& filename); vector<tuple<string, string>> read_csv_melody(const string& filename);
} }
#endif #endif

@ -359,7 +359,7 @@ msgid "User"
msgstr "Пользователь" msgstr "Пользователь"
msgid "Enter the name and code of the tune in the \"Ringtone at startup\" field" msgid "Enter the name and code of the tune in the \"Ringtone at startup\" field"
msgstr "Введите название и код мелодии в поле \"Мелодия при загрузки\"" msgstr "Введите название и код мелодии в поле \"Мелодия при загрузке\""
msgid "Enter name and password code in the \"Boot Menu Users\" field" msgid "Enter name and password code in the \"Boot Menu Users\" field"
msgstr "Введите имя и код пароль в поле \"Пользователи меню загрузчика\"" msgstr "Введите имя и код пароль в поле \"Пользователи меню загрузчика\""
@ -377,7 +377,7 @@ msgid "Melody code"
msgstr "Код мелодии" msgstr "Код мелодии"
msgid "Ringtone at startup" msgid "Ringtone at startup"
msgstr "Мелодия при загрузки" msgstr "Мелодия при загрузке"
#: source/ubl-settings-bootloader.h:58 source/ubl-settings-bootloader.h:57 #: source/ubl-settings-bootloader.h:58 source/ubl-settings-bootloader.h:57
#: source/ubl-settings-bootloader.cc:434 source/ubl-settings-bootloader.cc:304 #: source/ubl-settings-bootloader.cc:434 source/ubl-settings-bootloader.cc:304

Loading…
Cancel
Save