From 0b612b8a05edb63bae2a0050fec703a5faf0dee7 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 6 Sep 2023 10:54:45 +0600 Subject: [PATCH] Test fix for drivers screen crash --- source/ubl-settings-video.c | 71 ++++++++++++++++++++++--------------- source/ubl-settings-video.h | 3 ++ source/ubl-strings.h | 3 +- ubl-settings-video.glade | 15 ++++---- ubl-settings-video.pot | 14 +++++--- ubl-settings-video_ru.po | 52 +++++++++++++++------------ 6 files changed, 94 insertions(+), 64 deletions(-) diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 9ee1d2c..ab84496 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -548,13 +548,12 @@ void on_monitor_add(GtkWidget *self,monitor_window *window){ } } -void on_proprietary_get(GtkWidget *notebook, GtkWidget *page, int pagen, gpointer data){ - if (pagen==1&&videoconfig.dblock==0){ +void on_proprietary_get(GtkWidget *self, gpointer data){ + if (videoconfig.dblock==0){ GtkTreeIter iter; - if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){ pthread_t tid; pthread_create(&tid,NULL,(void*)yon_proprieary_get,NULL); - } + videoconfig.dblock=1; } } @@ -1079,33 +1078,44 @@ void on_config_fill_interface(widgets_dict *widgets) dictionary *dict = NULL; } +void yon_proprietary_local_get(){ + int drivers_size=0; + int size; + config_str rtn=NULL; + rtn = yon_config_load(get_proprietary_drivers_info_command,&size); + config_str drivers=yon_config_load(get_proprietary_installed_command,&drivers_size); + for (int dr_desc=0;dr_descTerminalOverlay = yon_gtk_builder_get_widget(widgets->builder, "TerminalOverlay"); widgets->MenusTab = yon_gtk_builder_get_widget(widgets->builder, "MenusTab"); widgets->driversTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(widgets->builder, "driversTreeSelection")); - + widgets->LoadDriversButton = yon_gtk_builder_get_widget(widgets->builder,"LoadDriversButton"); + widgets->proprietaryNotebook = yon_gtk_builder_get_widget(widgets->builder,"notebook1"); + widgets->proprietartInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "proprietartInstalledColumn")); widgets->ProprietaryPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "ProprietaryPackageColumn")); widgets->ProprietaryDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(widgets->builder, "ProprietaryDriverColumn")); @@ -1642,7 +1653,7 @@ void yon_setup_widgets(widgets_dict *widgets) gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->proprietaryTreeView),GTK_TREE_MODEL(videoconfig.list)); - g_signal_connect(G_OBJECT(widgets->MenusTab), "switch-page", G_CALLBACK(on_proprietary_get), widgets); + g_signal_connect(G_OBJECT(widgets->LoadDriversButton), "clicked", G_CALLBACK(on_proprietary_get), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets); g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets); @@ -1740,6 +1751,8 @@ void yon_setup_widgets(widgets_dict *widgets) gtk_widget_set_sensitive(widgets->mainHeaderSaveLocalMenuItem,0); if (videoconfig.lock_save_global==1||videoconfig.lock_save_local==1) gtk_widget_set_sensitive(widgets->mainHeaderSaveGlobalLocalMenuItem,0); + + gtk_notebook_set_action_widget(GTK_NOTEBOOK(widgets->proprietaryNotebook),widgets->LoadDriversButton,GTK_PACK_END); } int main(int argc, char *argv[]) @@ -1820,14 +1833,13 @@ int main(int argc, char *argv[]) } if (getuid()!=0){ - char *args=""; - for (int i=0;i/dev/null"); gtk_init(&argc, &argv); GError error; yon_setup_config(load_drivers_local_command); @@ -1841,6 +1853,7 @@ int main(int argc, char *argv[]) yon_monitor_set_resolutions(); yon_adapter_window_setup(&widgets); GtkCssProvider *css = gtk_css_provider_new(); + yon_proprietary_local_get(); gtk_css_provider_load_from_resource(css, CssPath); gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), GTK_STYLE_PROVIDER(css), diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index 1d3f663..36d6633 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -289,6 +289,9 @@ typedef struct GtkWidget *PlugLoadBox; GtkWidget *MenusTab; + + GtkWidget *LoadDriversButton; + GtkWidget *proprietaryNotebook; } widgets_dict; typedef struct diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 2ad4199..b93fabe 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -117,4 +117,5 @@ #define VENDOR_LABEL _("Vendor") #define MODEL_LABEL _("Model") #define USED_KERNEL_DRIVER_LABEL _("Kernel driver in use") -#define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules") \ No newline at end of file +#define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules") +#define LOAD_DRIVERS_LABEL _("Load drivers from database") \ No newline at end of file diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade index 83ce219..f9dfd06 100644 --- a/ubl-settings-video.glade +++ b/ubl-settings-video.glade @@ -239,6 +239,15 @@ translated and supported by community. + + Load drivers from database + True + True + True + + True False @@ -2419,12 +2428,6 @@ translated and supported by community. False - - - - - - -1 diff --git a/ubl-settings-video.pot b/ubl-settings-video.pot index a7344ef..ff5faf3 100644 --- a/ubl-settings-video.pot +++ b/ubl-settings-video.pot @@ -17,23 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/ubl-settings-video.h:26 +#: source/ubl-settings-video.h:25 msgid "https://wiki.ublinux.com" msgstr "" -#: source/ubl-settings-video.h:36 +#: source/ubl-settings-video.h:35 msgid "Failed to load global configuration" msgstr "" -#: source/ubl-settings-video.h:37 +#: source/ubl-settings-video.h:36 msgid "Failed to load local configuration" msgstr "" -#: source/ubl-settings-video.h:39 +#: source/ubl-settings-video.h:38 msgid "Saving to global configuration Succeeded" msgstr "" -#: source/ubl-settings-video.h:40 +#: source/ubl-settings-video.h:39 msgid "Saving to local configuration Succeeded" msgstr "" @@ -478,6 +478,10 @@ msgstr "" msgid "Kernel modules" msgstr "" +#: source/ubl-strings.h:121 +msgid "Load drivers from database" +msgstr "" + #: source/ubl-settings-video.c:713 msgid "Project Home Page" msgstr "" diff --git a/ubl-settings-video_ru.po b/ubl-settings-video_ru.po index 43922c7..5705273 100644 --- a/ubl-settings-video_ru.po +++ b/ubl-settings-video_ru.po @@ -17,23 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: source/ubl-settings-video.h:26 +#: source/ubl-settings-video.h:25 msgid "https://wiki.ublinux.com" msgstr "https://wiki.ublinux.ru" -#: source/ubl-settings-video.h:36 +#: source/ubl-settings-video.h:35 msgid "Failed to load global configuration" msgstr "Ошибка загрузки глобальной конфигурации" -#: source/ubl-settings-video.h:37 +#: source/ubl-settings-video.h:36 msgid "Failed to load local configuration" msgstr "Ошибка загрузки локальной конфигурации" -#: source/ubl-settings-video.h:39 +#: source/ubl-settings-video.h:38 msgid "Saving to global configuration Succeeded" msgstr "Успешное сохранение глобальной конфигурации" -#: source/ubl-settings-video.h:40 +#: source/ubl-settings-video.h:39 msgid "Saving to local configuration Succeeded" msgstr "Успешно записана локальная конфигурация" @@ -74,22 +74,18 @@ msgid "Lock this help menu" msgstr "Блокировка вызова справки" #: source/ubl-strings.h:2 -#, fuzzy msgid "Lock configration saving" msgstr "Блокировка сохранения локальной и глобальной конфигурации" #: source/ubl-strings.h:2 -#, fuzzy msgid "Lock local configration saving" msgstr "Блокировка сохранения локальной конфигурации" #: source/ubl-strings.h:2 -#, fuzzy msgid "Lock global configration saving" msgstr "Блокировка сохранения глобальной конфигурации" #: source/ubl-strings.h:2 -#, fuzzy msgid "Lock global configration loading" msgstr "Блокировка загрузки глобальной конфигурации" @@ -272,7 +268,7 @@ msgid "Automatically choose and use driver" msgstr "Автоматический выбор и использование драйвера" #: source/ubl-strings.h:49 -msgid "Launch programms through optirun (Nvidia): " +msgid "Launch programs through optirun (Nvidia): " msgstr "Запуск программ через optirun (Nvidia)" #: source/ubl-strings.h:50 @@ -369,24 +365,20 @@ msgstr "" "список установленных драйверов." #: source/ubl-strings.h:73 -#, fuzzy msgid "Configure monitor" -msgstr "Основной" +msgstr "Настроить монитоор" #: source/ubl-strings.h:74 -#, fuzzy msgid "Delete monitor configuration" -msgstr "Настройка экрана" +msgstr "Удалить конфигурацию мониотра" #: source/ubl-strings.h:75 -#, fuzzy msgid "Add monitor configuration" -msgstr "Настройка экрана" +msgstr "Добавить монитор" #: source/ubl-strings.h:76 -#, fuzzy msgid "Switch monitor" -msgstr "Основной" +msgstr "Переключить монтор" #: source/ubl-strings.h:77 msgid "More" @@ -429,7 +421,6 @@ msgid "Driver modules" msgstr "Модули драйвера" #: source/ubl-strings.h:87 -#, fuzzy msgid "Read documentation" msgstr "Справка" @@ -493,55 +484,70 @@ msgstr "Используемый драйвер ядра" msgid "Kernel modules" msgstr "Модули ядра" +#: source/ubl-strings.h:121 +msgid "Load drivers from database" +msgstr "Загрузить список доступных драйверов" + #: source/ubl-settings-video.c:713 msgid "Project Home Page" msgstr "Домашняя страница проекта" + msgid "UBlinux Video Configuration" msgstr "Видеокарта/Экран" + msgid "Videocard and monitor configuration manager" msgstr "Настройка вывода изображения" + msgid "Saving to local and global configuration Succeeded" msgstr "Успешно записаны локальная и глобальная конфигурация" + msgid "VGA compitable controller" msgstr "VGA-совместимый адаптер" + msgid "Configuration has been loaded" msgstr "Конфигурация была загружена" + msgid "Proprietary driver: " msgstr "Проприетарный драйвер: " + msgid "DPMS off" msgstr "DMPS выключен" + msgid "UBLinux module includes NVIDIA 340xx driver and utilities" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 340xx" + msgid "UBLinux module includes NVIDIA 390xx driver and utilities" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 390xx" + msgid "UBLinux module includes NVIDIA 470xx driver and utilities" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 470xx" + msgid "UBLinux module includes NVIDIA 510xx driver and utilities" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 510xx" -#: source/ubl-settings-video-strings.h:112 + msgid "UBLinux package includes NVIDIA 340xx driver and utilities" msgstr "Пакет с драйвером NVIDIA 340xx" -#: source/ubl-settings-video-strings.h:112 + msgid "UBLinux package includes NVIDIA 390xx driver and utilities" msgstr "Пакет с драйвером NVIDIA 390xx" -#: source/ubl-settings-video-strings.h:112 + msgid "UBLinux package includes NVIDIA 470xx driver and utilities" msgstr "Пакет с драйвером NVIDIA 470xx" -#: source/ubl-settings-video-strings.h:112 + msgid "UBLinux package includes NVIDIA 510xx driver and utilities" msgstr "Пакет с драйвером NVIDIA 510xx"