Test fix for drivers screen crash

pull/45/head
parent e2ae3d977e
commit 0b612b8a05

@ -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){ void on_proprietary_get(GtkWidget *self, gpointer data){
if (pagen==1&&videoconfig.dblock==0){ if (videoconfig.dblock==0){
GtkTreeIter iter; GtkTreeIter iter;
if(!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(videoconfig.list),&iter)){
pthread_t tid; pthread_t tid;
pthread_create(&tid,NULL,(void*)yon_proprieary_get,NULL); 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; 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_desc<drivers_size;dr_desc++){
for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
drivers[dr_foun]=yon_char_divide_search(drivers[dr_foun],"\n",-1);
char *pack=yon_char_new(rtn[dr_desc]);
char *ubm=yon_char_divide_search(pack,";",-1);
pack=yon_char_divide_search(pack,";",-1);
if (strcmp(drivers[dr_foun],ubm)==0){
yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]);
}
// else if (strcmp(pack,"")!=0&&!(yon_dictionary_find(!videoconfig.proprietary||&videoconfig.proprietary,pack))){
// yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]);
// }
}
}
if (videoconfig.proprietary){
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
videoconfig.proprietary=NULL;
}
}
/**dictionary *yon_proprieary_get() /**dictionary *yon_proprieary_get()
* [EN] * [EN]
*/ */
dictionary *yon_proprieary_get(){ dictionary *yon_proprieary_get(){
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
videoconfig.dblock=1;
videoconfig.proprietary=NULL; videoconfig.proprietary=NULL;
int drivers_size=0; int drivers_size=0;
int size=0; int size=0;
config_str drivers=NULL; config_str drivers=NULL;
config_str rtn=NULL; config_str rtn=NULL;
rtn = yon_config_load(get_proprietary_drivers_info_command,&size); rtn = yon_config_load(get_proprietary_drivers_info_command,&size);
// drivers=yon_config_load(get_proprietary_installed_command,&drivers_size);
// for (int dr_desc=0;dr_desc<drivers_size;dr_desc++){
// for (int dr_foun=0;dr_foun<drivers_size;dr_foun++){
// drivers[dr_foun]=yon_char_divide_search(drivers[dr_foun],"\n",-1);
// char *pack=yon_char_new(rtn[dr_desc]);
// char *ubm=yon_char_divide_search(pack,";",-1);
// pack=yon_char_divide_search(pack,";",-1);
// if (strcmp(drivers[dr_foun],ubm)==0){
// yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,drivers[dr_foun],rtn[dr_desc]);
// }
// // else if (strcmp(pack,"")!=0&&!(yon_dictionary_find(!videoconfig.proprietary||&videoconfig.proprietary,pack))){
// // yon_dictionary_add_or_create_if_exists_with_data(videoconfig.proprietary,pack,rtn[dr_desc]);
// // }
// }
// }
if (videoconfig.proprietary){ if (videoconfig.proprietary){
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
videoconfig.proprietary=NULL; videoconfig.proprietary=NULL;
@ -1149,7 +1159,6 @@ dictionary *yon_proprieary_get(){
yon_gtk_list_store_fill_with_proprietaries(videoconfig.list); yon_gtk_list_store_fill_with_proprietaries(videoconfig.list);
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_USE_LOCAL_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
} else { } else {
videoconfig.dblock=0;
yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(videoconfig.status_render,PROPRIETARY_LOADING_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
} }
@ -1612,7 +1621,9 @@ void yon_setup_widgets(widgets_dict *widgets)
widgets->TerminalOverlay = yon_gtk_builder_get_widget(widgets->builder, "TerminalOverlay"); widgets->TerminalOverlay = yon_gtk_builder_get_widget(widgets->builder, "TerminalOverlay");
widgets->MenusTab = yon_gtk_builder_get_widget(widgets->builder, "MenusTab"); widgets->MenusTab = yon_gtk_builder_get_widget(widgets->builder, "MenusTab");
widgets->driversTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(widgets->builder, "driversTreeSelection")); 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->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->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")); 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)); 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->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryInstallButton), "clicked", G_CALLBACK(on_driver_pack_install), 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); gtk_widget_set_sensitive(widgets->mainHeaderSaveLocalMenuItem,0);
if (videoconfig.lock_save_global==1||videoconfig.lock_save_local==1) if (videoconfig.lock_save_global==1||videoconfig.lock_save_local==1)
gtk_widget_set_sensitive(widgets->mainHeaderSaveGlobalLocalMenuItem,0); 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[]) int main(int argc, char *argv[])
@ -1820,14 +1833,13 @@ int main(int argc, char *argv[])
} }
if (getuid()!=0){ if (getuid()!=0){
char *args=""; // char *args="";
for (int i=0;i<argc;i++) // for (int i=0;i<argc;i++)
args=yon_char_unite(args," ",argv[i],NULL); // args=yon_char_unite(args," ",argv[i],NULL);
if (system(yon_char_get_augumented("/usr/bin/pkexec ubl-settings-video ",args))); // if (system(yon_char_get_augumented("/usr/bin/pkexec ubl-settings-video ",args)));
return 0; // return 0;
} else { } else {
int ssize=0; int ssize=0;
yon_launch_app("pacman -Sy >/dev/null");
gtk_init(&argc, &argv); gtk_init(&argc, &argv);
GError error; GError error;
yon_setup_config(load_drivers_local_command); yon_setup_config(load_drivers_local_command);
@ -1841,6 +1853,7 @@ int main(int argc, char *argv[])
yon_monitor_set_resolutions(); yon_monitor_set_resolutions();
yon_adapter_window_setup(&widgets); yon_adapter_window_setup(&widgets);
GtkCssProvider *css = gtk_css_provider_new(); GtkCssProvider *css = gtk_css_provider_new();
yon_proprietary_local_get();
gtk_css_provider_load_from_resource(css, CssPath); gtk_css_provider_load_from_resource(css, CssPath);
gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), gtk_style_context_add_provider_for_screen(gdk_screen_get_default(),
GTK_STYLE_PROVIDER(css), GTK_STYLE_PROVIDER(css),

@ -289,6 +289,9 @@ typedef struct
GtkWidget *PlugLoadBox; GtkWidget *PlugLoadBox;
GtkWidget *MenusTab; GtkWidget *MenusTab;
GtkWidget *LoadDriversButton;
GtkWidget *proprietaryNotebook;
} widgets_dict; } widgets_dict;
typedef struct typedef struct

@ -117,4 +117,5 @@
#define VENDOR_LABEL _("Vendor") #define VENDOR_LABEL _("Vendor")
#define MODEL_LABEL _("Model") #define MODEL_LABEL _("Model")
#define USED_KERNEL_DRIVER_LABEL _("Kernel driver in use") #define USED_KERNEL_DRIVER_LABEL _("Kernel driver in use")
#define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules") #define AVALIABLE_KERNEL_DRIVERS_LABEL _("Kernel modules")
#define LOAD_DRIVERS_LABEL _("Load drivers from database")

@ -239,6 +239,15 @@ translated and supported by community.</property>
</object> </object>
</child> </child>
</object> </object>
<object class="GtkButton" id="LoadDriversButton">
<property name="label" translatable="yes">Load drivers from database</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<style>
<class name="thin"/>
</style>
</object>
<object class="GtkMenu" id="SaveConfigurationMenu"> <object class="GtkMenu" id="SaveConfigurationMenu">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -2419,12 +2428,6 @@ translated and supported by community.</property>
<property name="tab-fill">False</property> <property name="tab-fill">False</property>
</packing> </packing>
</child> </child>
<child>
<placeholder/>
</child>
<child type="tab">
<placeholder/>
</child>
</object> </object>
<packing> <packing>
<property name="index">-1</property> <property name="index">-1</property>

@ -17,23 +17,23 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-video.h:26 #: source/ubl-settings-video.h:25
msgid "https://wiki.ublinux.com" msgid "https://wiki.ublinux.com"
msgstr "" msgstr ""
#: source/ubl-settings-video.h:36 #: source/ubl-settings-video.h:35
msgid "Failed to load global configuration" msgid "Failed to load global configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.h:37 #: source/ubl-settings-video.h:36
msgid "Failed to load local configuration" msgid "Failed to load local configuration"
msgstr "" msgstr ""
#: source/ubl-settings-video.h:39 #: source/ubl-settings-video.h:38
msgid "Saving to global configuration Succeeded" msgid "Saving to global configuration Succeeded"
msgstr "" msgstr ""
#: source/ubl-settings-video.h:40 #: source/ubl-settings-video.h:39
msgid "Saving to local configuration Succeeded" msgid "Saving to local configuration Succeeded"
msgstr "" msgstr ""
@ -478,6 +478,10 @@ msgstr ""
msgid "Kernel modules" msgid "Kernel modules"
msgstr "" msgstr ""
#: source/ubl-strings.h:121
msgid "Load drivers from database"
msgstr ""
#: source/ubl-settings-video.c:713 #: source/ubl-settings-video.c:713
msgid "Project Home Page" msgid "Project Home Page"
msgstr "" msgstr ""

@ -17,23 +17,23 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: source/ubl-settings-video.h:26 #: source/ubl-settings-video.h:25
msgid "https://wiki.ublinux.com" msgid "https://wiki.ublinux.com"
msgstr "https://wiki.ublinux.ru" msgstr "https://wiki.ublinux.ru"
#: source/ubl-settings-video.h:36 #: source/ubl-settings-video.h:35
msgid "Failed to load global configuration" msgid "Failed to load global configuration"
msgstr "Ошибка загрузки глобальной конфигурации" msgstr "Ошибка загрузки глобальной конфигурации"
#: source/ubl-settings-video.h:37 #: source/ubl-settings-video.h:36
msgid "Failed to load local configuration" msgid "Failed to load local configuration"
msgstr "Ошибка загрузки локальной конфигурации" msgstr "Ошибка загрузки локальной конфигурации"
#: source/ubl-settings-video.h:39 #: source/ubl-settings-video.h:38
msgid "Saving to global configuration Succeeded" msgid "Saving to global configuration Succeeded"
msgstr "Успешное сохранение глобальной конфигурации" msgstr "Успешное сохранение глобальной конфигурации"
#: source/ubl-settings-video.h:40 #: source/ubl-settings-video.h:39
msgid "Saving to local configuration Succeeded" msgid "Saving to local configuration Succeeded"
msgstr "Успешно записана локальная конфигурация" msgstr "Успешно записана локальная конфигурация"
@ -74,22 +74,18 @@ msgid "Lock this help menu"
msgstr "Блокировка вызова справки" msgstr "Блокировка вызова справки"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
#, fuzzy
msgid "Lock configration saving" msgid "Lock configration saving"
msgstr "Блокировка сохранения локальной и глобальной конфигурации" msgstr "Блокировка сохранения локальной и глобальной конфигурации"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
#, fuzzy
msgid "Lock local configration saving" msgid "Lock local configration saving"
msgstr "Блокировка сохранения локальной конфигурации" msgstr "Блокировка сохранения локальной конфигурации"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
#, fuzzy
msgid "Lock global configration saving" msgid "Lock global configration saving"
msgstr "Блокировка сохранения глобальной конфигурации" msgstr "Блокировка сохранения глобальной конфигурации"
#: source/ubl-strings.h:2 #: source/ubl-strings.h:2
#, fuzzy
msgid "Lock global configration loading" msgid "Lock global configration loading"
msgstr "Блокировка загрузки глобальной конфигурации" msgstr "Блокировка загрузки глобальной конфигурации"
@ -272,7 +268,7 @@ msgid "Automatically choose and use driver"
msgstr "Автоматический выбор и использование драйвера" msgstr "Автоматический выбор и использование драйвера"
#: source/ubl-strings.h:49 #: source/ubl-strings.h:49
msgid "Launch programms through optirun (Nvidia): " msgid "Launch programs through optirun (Nvidia): "
msgstr "Запуск программ через optirun (Nvidia)" msgstr "Запуск программ через optirun (Nvidia)"
#: source/ubl-strings.h:50 #: source/ubl-strings.h:50
@ -369,24 +365,20 @@ msgstr ""
"список установленных драйверов." "список установленных драйверов."
#: source/ubl-strings.h:73 #: source/ubl-strings.h:73
#, fuzzy
msgid "Configure monitor" msgid "Configure monitor"
msgstr "Основной" msgstr "Настроить монитоор"
#: source/ubl-strings.h:74 #: source/ubl-strings.h:74
#, fuzzy
msgid "Delete monitor configuration" msgid "Delete monitor configuration"
msgstr "Настройка экрана" msgstr "Удалить конфигурацию мониотра"
#: source/ubl-strings.h:75 #: source/ubl-strings.h:75
#, fuzzy
msgid "Add monitor configuration" msgid "Add monitor configuration"
msgstr "Настройка экрана" msgstr "Добавить монитор"
#: source/ubl-strings.h:76 #: source/ubl-strings.h:76
#, fuzzy
msgid "Switch monitor" msgid "Switch monitor"
msgstr "Основной" msgstr "Переключить монтор"
#: source/ubl-strings.h:77 #: source/ubl-strings.h:77
msgid "More" msgid "More"
@ -429,7 +421,6 @@ msgid "Driver modules"
msgstr "Модули драйвера" msgstr "Модули драйвера"
#: source/ubl-strings.h:87 #: source/ubl-strings.h:87
#, fuzzy
msgid "Read documentation" msgid "Read documentation"
msgstr "Справка" msgstr "Справка"
@ -493,55 +484,70 @@ msgstr "Используемый драйвер ядра"
msgid "Kernel modules" msgid "Kernel modules"
msgstr "Модули ядра" msgstr "Модули ядра"
#: source/ubl-strings.h:121
msgid "Load drivers from database"
msgstr "Загрузить список доступных драйверов"
#: source/ubl-settings-video.c:713 #: source/ubl-settings-video.c:713
msgid "Project Home Page" msgid "Project Home Page"
msgstr "Домашняя страница проекта" msgstr "Домашняя страница проекта"
msgid "UBlinux Video Configuration" msgid "UBlinux Video Configuration"
msgstr "Видеокарта/Экран" msgstr "Видеокарта/Экран"
msgid "Videocard and monitor configuration manager" msgid "Videocard and monitor configuration manager"
msgstr "Настройка вывода изображения" msgstr "Настройка вывода изображения"
msgid "Saving to local and global configuration Succeeded" msgid "Saving to local and global configuration Succeeded"
msgstr "Успешно записаны локальная и глобальная конфигурация" msgstr "Успешно записаны локальная и глобальная конфигурация"
msgid "VGA compitable controller" msgid "VGA compitable controller"
msgstr "VGA-совместимый адаптер" msgstr "VGA-совместимый адаптер"
msgid "Configuration has been loaded" msgid "Configuration has been loaded"
msgstr "Конфигурация была загружена" msgstr "Конфигурация была загружена"
msgid "Proprietary driver: " msgid "Proprietary driver: "
msgstr "Проприетарный драйвер: " msgstr "Проприетарный драйвер: "
msgid "DPMS off" msgid "DPMS off"
msgstr "DMPS выключен" msgstr "DMPS выключен"
msgid "UBLinux module includes NVIDIA 340xx driver and utilities" msgid "UBLinux module includes NVIDIA 340xx driver and utilities"
msgstr "Пакет с модулем драйвера и утилитами NVIDIA 340xx" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 340xx"
msgid "UBLinux module includes NVIDIA 390xx driver and utilities" msgid "UBLinux module includes NVIDIA 390xx driver and utilities"
msgstr "Пакет с модулем драйвера и утилитами NVIDIA 390xx" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 390xx"
msgid "UBLinux module includes NVIDIA 470xx driver and utilities" msgid "UBLinux module includes NVIDIA 470xx driver and utilities"
msgstr "Пакет с модулем драйвера и утилитами NVIDIA 470xx" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 470xx"
msgid "UBLinux module includes NVIDIA 510xx driver and utilities" msgid "UBLinux module includes NVIDIA 510xx driver and utilities"
msgstr "Пакет с модулем драйвера и утилитами NVIDIA 510xx" msgstr "Пакет с модулем драйвера и утилитами NVIDIA 510xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 340xx driver and utilities" msgid "UBLinux package includes NVIDIA 340xx driver and utilities"
msgstr "Пакет с драйвером NVIDIA 340xx" msgstr "Пакет с драйвером NVIDIA 340xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 390xx driver and utilities" msgid "UBLinux package includes NVIDIA 390xx driver and utilities"
msgstr "Пакет с драйвером NVIDIA 390xx" msgstr "Пакет с драйвером NVIDIA 390xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 470xx driver and utilities" msgid "UBLinux package includes NVIDIA 470xx driver and utilities"
msgstr "Пакет с драйвером NVIDIA 470xx" msgstr "Пакет с драйвером NVIDIA 470xx"
#: source/ubl-settings-video-strings.h:112
msgid "UBLinux package includes NVIDIA 510xx driver and utilities" msgid "UBLinux package includes NVIDIA 510xx driver and utilities"
msgstr "Пакет с драйвером NVIDIA 510xx" msgstr "Пакет с драйвером NVIDIA 510xx"

Loading…
Cancel
Save