From 66e1593fed9d699f9c821305d4bed5f9d40404ec Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 7 Apr 2026 18:37:50 +0600 Subject: [PATCH] Fixed crash --- locale/ubinstall-gtk.pot | 5 ++++- locale/ubinstall-gtk_ru.po | 9 ++++++--- source/ubinstall-gtk-components.c | 16 +++++++++++++--- source/ubinstall-gtk-page-switch.c | 6 +++--- source/ubinstall-gtk-region.c | 12 ------------ source/ubinstall-gtk.c | 1 + source/ubinstall-gtk.h | 4 +++- source/ubl-strings.h | 3 ++- ubinstall-gtk-os-row.glade | 23 +++++++++++++++-------- ubinstall-gtk-source.glade | 4 ++-- ubinstall-gtk.glade | 11 +++++------ 11 files changed, 54 insertions(+), 40 deletions(-) diff --git a/locale/ubinstall-gtk.pot b/locale/ubinstall-gtk.pot index ed7007c..faa09e2 100644 --- a/locale/ubinstall-gtk.pot +++ b/locale/ubinstall-gtk.pot @@ -1947,7 +1947,7 @@ msgid "" "network or the Internet (even over slow connection channels)." msgstr "" -msgid "No modules were found.\nSelect a different installation source." +msgid "No modules were found.\nSelect a different installation sources." msgstr "" msgid "File system label" @@ -5354,4 +5354,7 @@ msgid "Close installer" msgstr "" msgid "Application is already running" +msgstr "" + +msgid "Select installation sources" msgstr "" \ No newline at end of file diff --git a/locale/ubinstall-gtk_ru.po b/locale/ubinstall-gtk_ru.po index f561ea7..02ac4d2 100644 --- a/locale/ubinstall-gtk_ru.po +++ b/locale/ubinstall-gtk_ru.po @@ -2085,9 +2085,9 @@ msgstr "" "Позволяет загрузку системы для бездисковых и обычных рабочих станций через " "локальную сеть или Интернет (даже используя \"слабые\" каналы связи)" -msgid "No modules were found.\nSelect a different installation source." +msgid "No modules were found.\nSelect a different installation sources." msgstr "Модули не найдены.\n" -"Выберите другой источник установки." +"Выберите другие источники установки." msgid "About" msgstr "О программе" @@ -5549,4 +5549,7 @@ msgid "Close installer" msgstr "Закрыть установщик" msgid "Application is already running" -msgstr "Приложение уже запущено" \ No newline at end of file +msgstr "Приложение уже запущено" + +msgid "Select installation sources" +msgstr "Выберите источники для " \ No newline at end of file diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 67fd321..0407c06 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -180,8 +180,9 @@ int yon_os_components_save(main_window *widgets){ return 1; } -void on_os_components_info(GtkWidget *, char *, os_row *row){ +gboolean on_os_components_info(GtkWidget *, GdkEventButton *, os_row *row){ yon_package_info_window_create(row->modules); + return 1; } os_row *yon_os_row_new(){ @@ -190,6 +191,7 @@ os_row *yon_os_row_new(){ row->RowBox = yon_gtk_builder_get_widget(builder,"TableRow"); row->InstallCheck = yon_gtk_builder_get_widget(builder,"InstallCheck"); row->NameLabel = yon_gtk_builder_get_widget(builder,"NameLabel"); + row->NameEvent = yon_gtk_builder_get_widget(builder,"NameEvent"); row->TagsBox = yon_gtk_builder_get_widget(builder,"TagsBox"); row->VersionLabel = yon_gtk_builder_get_widget(builder,"VersionLabel"); row->DescriptionLabel = yon_gtk_builder_get_widget(builder,"DescriptionLabel"); @@ -199,10 +201,9 @@ os_row *yon_os_row_new(){ row->modules=NULL; row->version=NULL; - g_signal_connect(G_OBJECT(row->NameLabel),"activate-link",G_CALLBACK(on_os_components_info),row); + g_signal_connect(G_OBJECT(row->NameEvent),"button-press-event",G_CALLBACK(on_os_components_info),row); row->row = yon_gtk_builder_get_widget(builder,"MainRow"); gtk_widget_show(row->row); - g_object_set_data(G_OBJECT(row->InstallCheck),"kernel_row",row); g_object_set_data(G_OBJECT(row->row),"kernel_row",row); @@ -219,6 +220,9 @@ void *yon_modules_list_load(main_window *widgets){ int parsed_size=0; config_str parsed = NULL; parsed = yon_char_parse(modules[i],&parsed_size,";"); + if (parsed_size<5){ + continue; + } struct row_data *row = malloc(sizeof(struct row_data)); row->version = parsed[3]; row->name = parsed[1]; @@ -290,6 +294,12 @@ gboolean yon_spinner_switch_off(GtkSpinner *target){ gboolean yon_os_components_load(main_window *widgets){ int size=0; GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); + if (!list){ + gtk_widget_show(widgets->OSSoftwareEmptyLabel); + return G_SOURCE_REMOVE; + } else { + gtk_widget_hide(widgets->OSSoftwareEmptyLabel); + } GList *iter; for(iter = list;iter;iter=iter->next){ os_row *row = g_object_get_data(iter->data,"kernel_row"); diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index 6ee374d..986bb7f 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -268,7 +268,7 @@ int yon_page_save(main_window *widgets, enum YON_PAGES page){ case YON_PAGE_CONFIG_HUB: return yon_configuration_hub_save(widgets); case YON_PAGE_OS_COMPONENTS: - return yon_os_components_save(widgets); + // return yon_os_components_save(widgets); break; case YON_PAGE_KERNEL: return yon_kernel_save(widgets); @@ -432,8 +432,8 @@ void yon_configuration_mode_check(main_window *widgets){ void yon_page_update(main_window *widgets){ // yon_resize_images_update(widgets); yon_navigation_buttons_set_sensetiveness(widgets); - yon_switch_page_render(widgets); - yon_configuration_mode_check(widgets); + // yon_switch_page_render(widgets); + // yon_configuration_mode_check(widgets); } enum YON_PAGES yon_sections_get_next_page(main_window *widgets){ diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index 4437408..7f9bf58 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -126,7 +126,6 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind char *timezone = (char*)cc_timezone_location_get_zone(location); GtkTreeIter iter; - // int found = 0; for_iter(widgets->RegionTimezoneCompletionList,&iter){ char *render, *tz; gtk_tree_model_get(GTK_TREE_MODEL(widgets->RegionTimezoneCompletionList),&iter,0,&render,1,&tz,-1); @@ -137,21 +136,10 @@ void on_map_selection_changed(GtkWidget *,CcTimezoneLocation *location,main_wind gtk_entry_set_text(GTK_ENTRY(widgets->RegionEntry),render); char *utc = yon_timezone_get_utc(tz); yon_map_status_show(widgets,NULL,MAP_TITLE_LABEL(utc),render); - // found = 1; break; } } - // if (!found){ - // const char *region = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo)); - // const char *zone = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo)); - // char *timezone = yon_char_unite(region,"/",zone,NULL); - // g_signal_handlers_block_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets); - // cc_timezone_map_set_timezone(CC_TIMEZONE_MAP(widgets->RegionMapTarget),timezone); - // g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets); - // free(timezone); - // } - if (!yon_char_is_empty(region)) free(region); g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ZoneCombo),G_CALLBACK(on_zone_changed),widgets); g_signal_handlers_unblock_by_func(G_OBJECT(widgets->RegionMapTarget),G_CALLBACK(on_map_selection_changed),widgets); diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 6c9a88a..bb6fdc0 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -603,6 +603,7 @@ void yon_main_window_create(main_window *widgets){ widgets->OSSoftwareNameLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareNameLabel"); widgets->OSSoftwareTagsLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareTagsLabel"); widgets->OSSoftwareDescriptionLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareDescriptionLabel"); + widgets->OSSoftwareEmptyLabel = yon_gtk_builder_get_widget(builder,"OSSoftwareEmptyLabel"); widgets->PacmanSoftwareSearchEntry = yon_gtk_builder_get_widget(builder,"PacmanSoftwareSearchEntry"); widgets->PacmanSoftwareStatusImage = yon_gtk_builder_get_widget(builder,"PacmanSoftwareStatusImage"); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 528e95f..fae96a2 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -734,6 +734,7 @@ typedef struct GtkWidget *OSSoftwareNameLabel; GtkWidget *OSSoftwareTagsLabel; GtkWidget *OSSoftwareDescriptionLabel; + GtkWidget *OSSoftwareEmptyLabel; GtkWidget *PacmanSoftwareSearchEntry; GtkWidget *PacmanSoftwareStatusImage; @@ -1061,6 +1062,7 @@ typedef struct char *version; char *tags; char *description; + GtkWidget *NameEvent; } os_row; typedef struct @@ -1635,5 +1637,5 @@ yon_window *yon_package_info_window_create(const char *package); info_element *yon_package_info_element_new(); void yon_gtk_label_set_font(GtkLabel *label); void on_kernel_info(GtkWidget *, char *link, kernel_row *row); -void on_os_components_info(GtkWidget *, char *, os_row *row); +gboolean on_os_components_info(GtkWidget *, GdkEventButton *, os_row *row); void on_software_info(GtkWidget*, main_window *widgets); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 7d6d5dc..e972d3f 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -479,6 +479,7 @@ NULL) // #define _LABEL _("Source:") // #define _LABEL _("Version:") // #define _LABEL _("Size:") +// #define _LABEL _("Select installation sources") #define slide_1_title _("Product ecosystem") #define slide_1_text _("Developed by a team of professionals and successfully presented on the market.\n\ @@ -586,5 +587,5 @@ For more information, visit our website the \"Support Levels\" section.") #define slide_22_title _("Network Boot") #define slide_22_text _("Allows system booting for diskless and standard workstations over a local network or the Internet (even over slow connection channels).") -#define MAIN_COMPONENTS_NOT_FOUND_LABEL _("No modules were found.\nSelect a different installation source") +#define MAIN_COMPONENTS_NOT_FOUND_LABEL _("No modules were found.\nSelect a different installation sources") #define MAIN_COMPONENTS_ALL_SELECTED_LABEL _("All local modules of the system are selected") \ No newline at end of file diff --git a/ubinstall-gtk-os-row.glade b/ubinstall-gtk-os-row.glade index a4df9df..6234eee 100644 --- a/ubinstall-gtk-os-row.glade +++ b/ubinstall-gtk-os-row.glade @@ -44,16 +44,23 @@ False 7 - + True False - Name - 0 - False - 0 - - - + True + + + True + True + Name + 0 + False + 0 + + + + + False diff --git a/ubinstall-gtk-source.glade b/ubinstall-gtk-source.glade index 192097f..a483fcb 100644 --- a/ubinstall-gtk-source.glade +++ b/ubinstall-gtk-source.glade @@ -51,7 +51,7 @@ True False start - com.ublinux.ubinstall-gtk + com.ublinux.ubinstall-gtk.source 6 @@ -70,7 +70,7 @@ True False - Choose a path for configuration file + Select installation sources 0 diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 001dd0c..506c9d4 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -2105,7 +2105,7 @@ agreement False No modules were found. -Select a different installation source. +Select a different installation sources. center True @@ -7428,9 +7428,7 @@ Select a different installation source. column - - 0 - + 4 3 @@ -7438,7 +7436,9 @@ Select a different installation source. - + + 500 + 2 @@ -14435,7 +14435,6 @@ separately into the selected partition. Cancel True - False True True image7