Driver tab changes

pull/89/head
parent 9c4a672d3b
commit 8cf0e16e3f

@ -30,7 +30,7 @@ static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer
void on_terminal_check_progress(VteTerminal *terminal, main_window *widgets){ void on_terminal_check_progress(VteTerminal *terminal, main_window *widgets){
char *text = vte_terminal_get_text(terminal,NULL,NULL,NULL); char *text = vte_terminal_get_text(terminal,NULL,NULL,NULL);
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),(double)yon_char_find_count(text,"::")/4); gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->TerminalInfoLabel),(double)yon_char_count(text,"::")/4);
} }
void yon_terminal_start(main_window *widgets, char *usr_command){ void yon_terminal_start(main_window *widgets, char *usr_command){
@ -98,7 +98,7 @@ void on_driver_pack_install(GtkWidget *self,main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
char *name; char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list); GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView)); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
if(gtk_tree_selection_get_selected(selection,&list_s,&iter)){ if(gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_tree_model_get(list_s,&iter,1,&name,-1); gtk_tree_model_get(list_s,&iter,1,&name,-1);
yon_terminal_start(widgets,yon_char_append(install_proprietary_command,name)); yon_terminal_start(widgets,yon_char_append(install_proprietary_command,name));
@ -107,25 +107,11 @@ void on_driver_pack_install(GtkWidget *self,main_window *widgets){
} }
} }
void on_driver_install(GtkWidget *self,main_window *widgets){
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_tree_model_get(list_s,&iter,2,&name,-1);
yon_terminal_start(widgets,yon_char_append(install_proprietary_command,name));
gtk_list_store_set(main_config.list,&iter,0,1,-1);
} else {
yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
}
void on_driver_pack_delete(GtkWidget *self,main_window *widgets){ void on_driver_pack_delete(GtkWidget *self,main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
char *name; char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list); GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView)); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
if(gtk_tree_selection_get_selected(selection,&list_s,&iter)){ if(gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_tree_model_get(list_s,&iter,1,&name,-1); gtk_tree_model_get(list_s,&iter,1,&name,-1);
yon_terminal_start(widgets,yon_char_append(delete_proprietary_command,name)); yon_terminal_start(widgets,yon_char_append(delete_proprietary_command,name));
@ -138,70 +124,22 @@ void on_driver_pack_selection_change(GtkWidget *self, main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
char *name; char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list); GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView)); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){ if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_widget_set_sensitive(widgets->proprietaryInfoButton,1); gtk_widget_set_sensitive(widgets->InfoButton,1);
int installed=0; int installed=0;
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->proprietaryTreeView)),&iter,0,&installed,-1); gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)),&iter,0,&installed,-1);
if (installed==1){ if (installed==1){
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0); // gtk_widget_set_sensitive(widgets->InstallButton,0);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,1); // gtk_widget_set_sensitive(widgets->DeleteButton,1);
} else {
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,1);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0);
}
} else {
gtk_widget_set_sensitive(widgets->proprietaryInfoButton,0);
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0);
}
}
void on_driver_selection_change(GtkWidget *self, main_window *widgets){
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_widget_set_sensitive(widgets->driversInfoButton,1);
int installed=0;
char *module, *package;
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->driversTreeView)),&iter,0,&installed,1,&module,2,&package,-1);
char *target;
if (strcmp(module,""))
target = module;
else
target = package;
if (yon_char_parsed_check_exist(drivers_always_active,drivers_always_active_size,target)>-1){
gtk_widget_set_sensitive(widgets->driversInstallButton,0);
gtk_widget_set_sensitive(widgets->driversDeleteButton,0);
}
else if (installed==1){
gtk_widget_set_sensitive(widgets->driversInstallButton,0);
gtk_widget_set_sensitive(widgets->driversDeleteButton,1);
} else { } else {
gtk_widget_set_sensitive(widgets->driversInstallButton,1); // gtk_widget_set_sensitive(widgets->InstallButton,1);
gtk_widget_set_sensitive(widgets->driversDeleteButton,0); // gtk_widget_set_sensitive(widgets->DeleteButton,0);
} }
} else { } else {
gtk_widget_set_sensitive(widgets->proprietaryInfoButton,0); gtk_widget_set_sensitive(widgets->InfoButton,0);
gtk_widget_set_sensitive(widgets->proprietaryInstallButton,0); // gtk_widget_set_sensitive(widgets->InstallButton,0);
gtk_widget_set_sensitive(widgets->proprietaryDeleteButton,0); // gtk_widget_set_sensitive(widgets->DeleteButton,0);
}
}
void on_driver_delete(GtkWidget *self,main_window *widgets){
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_tree_model_get(list_s,&iter,2,&name,-1);
yon_terminal_start(widgets,yon_char_append(delete_proprietary_command,name));
gtk_list_store_set(main_config.list,&iter,0,0,-1);
} else {
yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
} }
} }
@ -213,7 +151,7 @@ void on_driver_pack_info(GtkWidget *self, main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
char *name; char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list); GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->proprietaryTreeView)); GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){ if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_tree_model_get(list_s,&iter,1,&name,-1); gtk_tree_model_get(list_s,&iter,1,&name,-1);
pthread_create(&tid,&attr,(void*)yon_launch,yon_char_append(get_info_proprietary_command,name)); pthread_create(&tid,&attr,(void*)yon_launch,yon_char_append(get_info_proprietary_command,name));
@ -223,22 +161,20 @@ void on_driver_pack_info(GtkWidget *self, main_window *widgets){
} }
} }
void on_driver_info(GtkWidget *self,main_window *widgets){ void on_pack_install_activate(){
}
void on_module_install_activate(){
}
void on_pack_remove_activate(){
}
void on_module_remove_activate(){
pthread_attr_t attr;
pthread_t tid;
pthread_attr_init(&attr);
GtkTreeIter iter;
char *name;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->driversTreeView));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_tree_model_get(list_s,&iter,2,&name,-1);
pthread_create(&tid,&attr,(void*)yon_launch,yon_char_append(get_info_proprietary_command,name));
yon_ubl_status_box_render(INFO_PROCESS_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
} else {
yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
} }
void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){ void on_port_chosen_changed(GtkWidget *self, monitor_edit_window *window){
@ -345,6 +281,10 @@ void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window
void on_save_done(main_window *widgets, config_str output, int size){ void on_save_done(main_window *widgets, config_str output, int size){
if (widgets) {}; if (widgets) {};
// char *gapfix1 = yon_config_get_by_key(KWIN_TRIPLE_BUFFER);
// char *gapfix2 = yon_config_get_by_key(GL_YIELD);
// int gapfix1_status = yon_config_get_status(KWIN_TRIPLE_BUFFER);
// int gapfix2_status = yon_config_get_status(GL_YIELD);
char *final_output = yon_char_parsed_to_string(output,size,""); char *final_output = yon_char_parsed_to_string(output,size,"");
printf("%s\n",final_output); printf("%s\n",final_output);
free(final_output); free(final_output);
@ -449,12 +389,18 @@ void yon_interface_save(){
// switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo))){ // switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo))){
// case 0: yon_config_remove_by_key(GL_YIELD); // case 0: yon_config_remove_by_key(GL_YIELD);
// yon_config_remove_by_key(KWIN_TRIPLE_BUFFER); // yon_config_remove_by_key(KWIN_TRIPLE_BUFFER);
// yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
// yon_config_set_status(GL_YIELD,-2);
// break; // break;
// case 2: yon_config_register(GL_YIELD,GL_YIELD_command,"USLEEP"); // case 2: yon_config_register(GL_YIELD,GL_YIELD_command,"USLEEP");
// yon_config_remove_by_key(KWIN_TRIPLE_BUFFER); // yon_config_remove_by_key(KWIN_TRIPLE_BUFFER);
// yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
// yon_config_set_status(GL_YIELD,-2);
// break; // break;
// case 3: yon_config_register(KWIN_TRIPLE_BUFFER,KWIN_TRIPLE_BUFFER_command,"1"); // case 3: yon_config_register(KWIN_TRIPLE_BUFFER,KWIN_TRIPLE_BUFFER_command,"1");
// yon_config_remove_by_key(GL_YIELD); // yon_config_remove_by_key(GL_YIELD);
// yon_config_set_status(KWIN_TRIPLE_BUFFER,-2);
// yon_config_set_status(GL_YIELD,-2);
// break; // break;
// } // }
switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->DisplayDiscreteOnly))){ switch (gtk_combo_box_get_active(GTK_COMBO_BOX(main_config.widgets->DisplayDiscreteOnly))){
@ -959,31 +905,41 @@ void yon_monitor_view_update(){
void yon_proprietary_local_get(){ void yon_proprietary_local_get(){
gtk_list_store_clear(main_config.list); gtk_list_store_clear(main_config.list);
gtk_list_store_clear(main_config.list2); gtk_list_store_clear(main_config.list2);
int drivers_size=0; int kernels_size;
config_str kernels_installed=yon_config_load(yon_debug_output("%s\n",yon_get_kernels_installed),&kernels_size);
for (int i=0;i<kernels_size;i++){
yon_char_remove_last_symbol(kernels_installed[i],'\n');
}
int size; int size;
config_str rtn=NULL; config_str rtn=NULL;
rtn = yon_file_open(get_proprietary_drivers_info_path,&size); rtn = yon_file_open(get_proprietary_drivers_info_path,&size);
config_str drivers=yon_config_load(get_proprietary_installed_command,&drivers_size); for (int i=1;i<size;i++){
for (int i=0;i<drivers_size;i++){ if (rtn[i][strlen(rtn[i])-1]=='\n') rtn[i][strlen(rtn[i])-1] = '\0';
if (drivers[i][strlen(drivers[i])-1]=='\n') drivers[i][strlen(drivers[i])-1] = '\0';
}
for (int i=0;i<size;i++){
if (rtn[i][strlen(rtn[i])-1]=='\n') rtn[i][strlen(rtn[i])-1] = '\0';
} }
for (int dr_desc=1;dr_desc<size;dr_desc++){ for (int dr_desc=1;dr_desc<size;dr_desc++){
int current_size; int current_size;
config_str current = yon_char_parse(rtn[dr_desc],&current_size,";"); config_str current = yon_char_parse(rtn[dr_desc],&current_size,";");
GtkTreeIter iter; GtkTreeIter iter;
if (strcmp(current[1],"")){ if ((!strcmp(current[0],"")||yon_char_parsed_check_exist(kernels_installed,kernels_size,current[0])>-1)){
int status= yon_char_parsed_check_exist(drivers,drivers_size,current[1])>-1; if ((!yon_char_is_empty(current[1])&&!system(yon_get_is_exist_command(current[1])))||(!yon_char_is_empty(current[1])&&!system(yon_get_is_exist_command(current[2])))){
gtk_list_store_append(main_config.list,&iter); int module_status = !yon_char_is_empty(current[1])?!system(yon_get_is_installed_command(current[1])):0;
gtk_list_store_set(main_config.list,&iter,0,status,1,current[1],2,current[2],3,current[3],4,_(current[4]),5,_(current[5]),-1); int package_status = !yon_char_is_empty(current[2])?!system(yon_get_is_installed_command(current[2])):0;
} else if (strcmp(current[2],"")){ gtk_list_store_append(main_config.list,&iter);
int status= yon_char_parsed_check_exist(drivers,drivers_size,current[2])>-1; gtk_list_store_set(main_config.list,&iter,0,module_status,1,package_status,2,current[0],3,current[3],4,current[4],5,_(current[5]),7,current[1],8,current[2],-1);
gtk_list_store_append(main_config.list2,&iter); }
gtk_list_store_set(main_config.list2,&iter,0,status,1,current[2],2,current[2],3,current[3],4,_(current[4]),5,_(current[5]),-1);
} }
} }
textdomain(template_ui_LocaleName);
yon_ubl_status_box_render(SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE);
textdomain(LocaleName);
}
void yon_proprietary_get_thread(){
yon_ubl_status_box_render(PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
GThread *thread = g_thread_new("drivers_loading",(GThreadFunc)(yon_proprietary_local_get),NULL);
} }
void yon_monitor_view_dictionary_destroy(void *window){ void yon_monitor_view_dictionary_destroy(void *window){
@ -1199,13 +1155,17 @@ void yon_set_sensitive_from_combo_box(GtkComboBox *toggle, GtkWidget *target){
gtk_widget_set_sensitive(target,active>1 ? 1 : 0); gtk_widget_set_sensitive(target,active>1 ? 1 : 0);
} }
void on_database_update(void *self,void *widgets){
yon_terminal_window_launch(GTK_WINDOW(((main_window*)widgets)->Window),install_proprietary_command);
}
/** void yon_setup_widgets(main_window *widgets) /** void yon_setup_widgets(main_window *widgets)
* [EN] * [EN]
* Sets up every element on main window * Sets up every element on main window
* [RU] * [RU]
* *
* */ * */
void yon_main_window_complete(main_window *widgets){ template_main_window *yon_main_window_complete(main_window *widgets){
widgets = yon_remalloc(widgets,sizeof(main_window)); widgets = yon_remalloc(widgets,sizeof(main_window));
main_config.widgets=widgets; main_config.widgets=widgets;
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
@ -1228,27 +1188,15 @@ void yon_main_window_complete(main_window *widgets){
widgets->PrimusrunButton = yon_gtk_builder_get_widget(builder,"PrimusrunButton"); widgets->PrimusrunButton = yon_gtk_builder_get_widget(builder,"PrimusrunButton");
widgets->FrameGapCombo = yon_gtk_builder_get_widget(builder,"FrameGapCombo"); widgets->FrameGapCombo = yon_gtk_builder_get_widget(builder,"FrameGapCombo");
widgets->proprietaryTreeView = yon_gtk_builder_get_widget(builder, "proprietaryTreeView"); widgets->DriversTree = yon_gtk_builder_get_widget(builder, "DriversTree");
widgets->proprietaryInfoButton = yon_gtk_builder_get_widget(builder, "proprietaryInfoButton"); widgets->InfoButton = yon_gtk_builder_get_widget(builder, "InfoButton");
widgets->proprietaryDeleteButton = yon_gtk_builder_get_widget(builder, "proprietaryDeleteButton"); // widgets->DeleteButton = yon_gtk_builder_get_widget(builder, "DeleteButton");
widgets->proprietaryInstallButton = yon_gtk_builder_get_widget(builder, "proprietaryInstallButton"); // widgets->InstallButton = yon_gtk_builder_get_widget(builder, "InstallButton");
widgets->proprietaryTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(builder, "proprietaryTreeSelection"));
widgets->driversTreeView = yon_gtk_builder_get_widget(builder, "driversTreeView");
widgets->driversInfoButton = yon_gtk_builder_get_widget(builder, "driversInfoButton");
widgets->driversDeleteButton = yon_gtk_builder_get_widget(builder, "driversDeleteButton");
widgets->driversInstallButton = yon_gtk_builder_get_widget(builder, "driversInstallButton");
widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay"); widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay");
widgets->MenusTab = yon_gtk_builder_get_widget(builder, "MenusTab"); widgets->MenusTab = yon_gtk_builder_get_widget(builder, "MenusTab");
widgets->driversTreeSelection = GTK_TREE_SELECTION(gtk_builder_get_object(builder, "driversTreeSelection"));
widgets->LoadDriversButton = yon_gtk_builder_get_widget(builder,"LoadDriversButton"); widgets->LoadDriversButton = yon_gtk_builder_get_widget(builder,"LoadDriversButton");
widgets->LoadDriversButton1 = yon_gtk_builder_get_widget(builder,"LoadDriversButton1");
widgets->proprietaryNotebook = yon_gtk_builder_get_widget(builder,"notebook1");
widgets->proprietartInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "proprietartInstalledColumn")); widgets->DriversTree = yon_gtk_builder_get_widget(builder,"DriversTree");
widgets->ProprietaryPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryPackageColumn"));
widgets->ProprietaryDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryDriverColumn"));
widgets->ProprietaryDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietaryDescriptionColumn"));
widgets->ProprietarySupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "ProprietarySupportedColumn"));
widgets->DriverModulesTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriverModulesTab")); widgets->DriverModulesTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriverModulesTab"));
widgets->DriversTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriversTab")); widgets->DriversTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriversTab"));
@ -1263,27 +1211,15 @@ void yon_main_window_complete(main_window *widgets){
widgets->InformationLabel = GTK_WIDGET(gtk_builder_get_object(builder, "InformationLabel")); widgets->InformationLabel = GTK_WIDGET(gtk_builder_get_object(builder, "InformationLabel"));
widgets->InformationLabel2 = GTK_WIDGET(gtk_builder_get_object(builder, "InformationLabel2")); widgets->InformationLabel2 = GTK_WIDGET(gtk_builder_get_object(builder, "InformationLabel2"));
widgets->driverInstalledColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverInstalledColumn"));
widgets->driverPackageColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverPackageColumn"));
widgets->driverDriverColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverDriverColumn"));
widgets->driverDescriptionColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverDescriptionColumn"));
widgets->driverSupportedColumn = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "driverSupportedColumn"));
main_config.list = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore6")); main_config.list = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore6"));
main_config.list2 = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore1")); main_config.list2 = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore1"));
g_signal_connect(G_OBJECT(widgets->LoadDriversButton), "clicked", G_CALLBACK(yon_proprietary_local_get), widgets); g_signal_connect(G_OBJECT(widgets->LoadDriversButton), "clicked", G_CALLBACK(yon_proprietary_get_thread), widgets);
g_signal_connect(G_OBJECT(widgets->LoadDriversButton1), "clicked", G_CALLBACK(yon_proprietary_local_get), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryDeleteButton), "clicked", G_CALLBACK(on_driver_pack_delete), widgets); // g_signal_connect(G_OBJECT(widgets->DeleteButton), "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->InstallButton), "clicked", G_CALLBACK(on_driver_pack_install), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryInfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets); g_signal_connect(G_OBJECT(widgets->InfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets);
g_signal_connect(G_OBJECT(widgets->proprietaryTreeView), "cursor-changed", G_CALLBACK(on_driver_pack_selection_change), widgets); g_signal_connect(G_OBJECT(widgets->DriversTree), "cursor-changed", G_CALLBACK(on_driver_pack_selection_change), widgets);
g_signal_connect(G_OBJECT(widgets->driversTreeView), "cursor-changed", G_CALLBACK(on_driver_selection_change), widgets);
g_signal_connect(G_OBJECT(widgets->driversDeleteButton), "clicked", G_CALLBACK(on_driver_delete), widgets);
g_signal_connect(G_OBJECT(widgets->driversInstallButton), "clicked", G_CALLBACK(on_driver_install), widgets);
g_signal_connect(G_OBJECT(widgets->driversInfoButton), "clicked", G_CALLBACK(on_driver_info), widgets);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets); g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets);
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets); g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets);
@ -1297,10 +1233,14 @@ void yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry); g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry);
// yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox); // yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox);
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->DriversTree));
yon_adapter_window_setup(widgets); yon_adapter_window_setup(widgets);
} }
yon_save_window_set_postsave_function(on_save_done,widgets); yon_save_window_set_postsave_function(on_save_done,widgets);
on_config_local_load(NULL,widgets); on_config_local_load(NULL,widgets);
return (template_main_window*)widgets;
} }
/**config_init() /**config_init()
@ -1335,7 +1275,7 @@ int main(int argc, char *argv[]){
gtk_init(&argc, &argv); gtk_init(&argc, &argv);
template_main_window *widgets = yon_ubl_window_setup(); template_main_window *widgets = yon_ubl_window_setup();
yon_main_window_complete((main_window*)widgets); widgets = yon_main_window_complete((main_window*)widgets);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path); yon_window_config_load(path);
@ -1344,8 +1284,15 @@ int main(int argc, char *argv[]){
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
textdomain(LocaleName); textdomain(LocaleName);
} }
if (system(yon_check_database_command)){
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
data->action_text=DATABASE_UNACCESSIBLE_LABEL;
data->function = on_database_update;
data->data = widgets;
yon_confirmation_dialog_call(widgets->HeadOverlay,data);
yon_proprietary_local_get(); }
yon_proprietary_get_thread();
// on_config_fill_interface(&widgets); // on_config_fill_interface(&widgets);
yon_monitor_set_resolutions(); yon_monitor_set_resolutions();
gtk_main(); gtk_main();

@ -1,9 +1,6 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gtk/gtkx.h> #include <gtk/gtkx.h>
#include "ubl-cmake.h" #include <webkit2/webkit2.h>
#ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h>
#endif
#include <vte/vte.h> #include <vte/vte.h>
#include <locale.h> #include <locale.h>
#include <stdio.h> #include <stdio.h>
@ -17,7 +14,6 @@
#include <libintl.h> #include <libintl.h>
#include <time.h> #include <time.h>
#include <json-c/json.h> #include <json-c/json.h>
// #include "ubl-utils.h"
#include "ubl-strings.h" #include "ubl-strings.h"
#define VTE_INCLUDE #define VTE_INCLUDE
#include <libublsettings.h> #include <libublsettings.h>
@ -81,9 +77,15 @@
#define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2" #define get_version_proprietary_command "grep \"VERSION_ID=\" /etc/os-release | cut -d= -f2"
#define yon_check_database_command "pacman -Sqs >/dev/null"
#define yon_get_kernels_installed "find /usr/lib/modules/ -maxdepth 2 -type f -iname \"pkgbase\" -exec cat {} + 2>/dev/null"
#define yon_get_is_installed_command(target) yon_char_append("pacman -Qs ",target)
#define yon_get_is_exist_command(target) yon_char_append("pacman -Ss ",target)
#define get_proprietary_drivers_command "pacman -Sysq 'ubm-nvidia-.*|amdgpu|^nvidia-[0-9]{1,}[a-zA-Z]{0,}-dkms|^mesa$|^xf86-video-intel$|^lib32-vulkan-intel$'" #define get_proprietary_drivers_command "pacman -Sysq 'ubm-nvidia-.*|amdgpu|^nvidia-[0-9]{1,}[a-zA-Z]{0,}-dkms|^mesa$|^xf86-video-intel$|^lib32-vulkan-intel$'"
#define get_proprietary_drivers_local_command "pacman -Qq |grep -E 'nvidia|^vulkan-amdgpu|^amdgpu-pro-libgl'" #define get_proprietary_drivers_local_command "pacman -Qq |grep -E 'nvidia|^vulkan-amdgpu|^amdgpu-pro-libgl'"
#define get_proprietary_installed_command "pacman -Qsq 'ubm-nvidia-.*|amdgpu|^nvidia-[0-9]{1,}[a-zA-Z]{0,}-dkms|^mesa$|^xf86-video-intel$|^lib32-vulkan-intel$'"
// #define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'" // #define get_proprietary_drivers_command "LC_ALL=C pacman -Ss ubm-nvidia-.* |grep -oE \"[a-zA-Z-]{1,}nvidia-[a-zA-Z0-9-]{1,}|installed\"|sed ':a;N;$!ba;s/\\ninstalled/ installed/g'"
#define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'" #define get_adapter_info "lshw -c display -quiet |grep -oE \"vendor:[0-9a-zA-Z ]{1,}|description:[0-9a-zA-Z ]{1,}|product:[]0-9a-zA-Z [-]{1,}\"|sed 's/: /=/g';lspci | grep -E ' VGA | Display ' | cut -d\" \" -f 1 | xargs -i lspci -v -s {} |grep -oE \"Kernel[:a-zA-Z0-9: ,_]{1,}\"|sed 's/: /=/g'|sed 's/ /-/g'"
@ -100,8 +102,8 @@
#define OPTIRUN "OPTIRUN" #define OPTIRUN "OPTIRUN"
#define PRIMUSRUN "PRIMUSRUN" #define PRIMUSRUN "PRIMUSRUN"
#define INTEGRATEDVGA "INTEGRATEDVGA" #define INTEGRATEDVGA "INTEGRATEDVGA"
#define KWIN_TRIPLE_BUFFER "\"export KWIN_TRIPLE_BUFFER" #define KWIN_TRIPLE_BUFFER "export KWIN_TRIPLE_BUFFER"
#define GL_YIELD "\"export __GL_YIELD" #define GL_YIELD "export __GL_YIELD"
#define VGADRV_AUTO_command "ubconfig --source global get [video] VGADRV_AUTO" #define VGADRV_AUTO_command "ubconfig --source global get [video] VGADRV_AUTO"
#define VGADRV_NOFREE_command "ubconfig --source global get [video] VGADRV_NOFREE" #define VGADRV_NOFREE_command "ubconfig --source global get [video] VGADRV_NOFREE"
@ -176,28 +178,8 @@ typedef struct
GtkWidget *PrimusrunButton; GtkWidget *PrimusrunButton;
GtkWidget *FrameGapCombo; GtkWidget *FrameGapCombo;
GtkWidget *proprietaryTreeView; GtkWidget *DriversTree;
GtkWidget *proprietaryInfoButton; GtkWidget *InfoButton;
GtkWidget *proprietaryDeleteButton;
GtkWidget *proprietaryInstallButton;
GtkTreeSelection *proprietaryTreeSelection;
GtkWidget *driversTreeView;
GtkWidget *driversInfoButton;
GtkWidget *driversDeleteButton;
GtkWidget *driversInstallButton;
GtkTreeSelection *driversTreeSelection;
GtkTreeViewColumn *proprietartInstalledColumn;
GtkTreeViewColumn *ProprietaryPackageColumn;
GtkTreeViewColumn *ProprietaryDriverColumn;
GtkTreeViewColumn *ProprietaryDescriptionColumn;
GtkTreeViewColumn *ProprietarySupportedColumn;
GtkTreeViewColumn *driverInstalledColumn;
GtkTreeViewColumn *driverPackageColumn;
GtkTreeViewColumn *driverDriverColumn;
GtkTreeViewColumn *driverDescriptionColumn;
GtkTreeViewColumn *driverSupportedColumn;
GtkWidget *DriverModulesTab; GtkWidget *DriverModulesTab;
GtkWidget *DriversTab; GtkWidget *DriversTab;
@ -223,8 +205,6 @@ typedef struct
GtkWidget *MenusTab; GtkWidget *MenusTab;
GtkWidget *LoadDriversButton; GtkWidget *LoadDriversButton;
GtkWidget *LoadDriversButton1;
GtkWidget *proprietaryNotebook;
} main_window; } main_window;
typedef struct typedef struct

@ -183,3 +183,5 @@
#define DESCR36_LABEL _("X.org vmware video driver") #define DESCR36_LABEL _("X.org vmware video driver")
#define DESCR37_LABEL _("X.org 3dfx Voodoo1/Voodoo2 2D video driver") #define DESCR37_LABEL _("X.org 3dfx Voodoo1/Voodoo2 2D video driver")
#define DESCR38_LABEL _("X.org X11 qxl video driver") #define DESCR38_LABEL _("X.org X11 qxl video driver")
#define DATABASE_UNACCESSIBLE_LABEL _("Database files must be updated")

@ -280,16 +280,6 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">dialog-information-symbolic</property> <property name="icon-name">dialog-information-symbolic</property>
</object> </object>
<object class="GtkImage" id="image11">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">user-trash-symbolic</property>
</object>
<object class="GtkImage" id="image12">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">dialog-information-symbolic</property>
</object>
<object class="GtkImage" id="image2"> <object class="GtkImage" id="image2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -300,26 +290,6 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.sync-symbolic</property> <property name="icon-name">com.ublinux.libublsettingsui-gtk3.sync-symbolic</property>
</object> </object>
<object class="GtkImage" id="image4">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.sync-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">go-bottom-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">user-trash-symbolic</property>
</object>
<object class="GtkImage" id="image9">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">go-bottom-symbolic</property>
</object>
<object class="GtkListStore" id="liststore1"> <object class="GtkListStore" id="liststore1">
<columns> <columns>
<!-- column-name is_installed --> <!-- column-name is_installed -->
@ -338,18 +308,24 @@
</object> </object>
<object class="GtkListStore" id="liststore6"> <object class="GtkListStore" id="liststore6">
<columns> <columns>
<!-- column-name is_installed --> <!-- column-name module_installed -->
<column type="gboolean"/>
<!-- column-name package_installed -->
<column type="gboolean"/> <column type="gboolean"/>
<!-- column-name package_module --> <!-- column-name package_module -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name package --> <!-- column-name kernel_ver -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name driver --> <!-- column-name driver_name -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name description --> <!-- column-name description -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name devices --> <!-- column-name devices -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name Module -->
<column type="gchararray"/>
<!-- column-name Package -->
<column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkBox" id="BoxMain"> <object class="GtkBox" id="BoxMain">
@ -1057,410 +1033,280 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkOverlay" id="TerminalOverlay"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkNotebook" id="notebook1"> <object class="GtkOverlay" id="TerminalOverlay">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-left">5</property> <property name="margin-left">5</property>
<property name="margin-right">5</property> <property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">external</property>
<child>
<object class="GtkTreeView" id="proprietaryTreeView">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin-top">5</property>
<property name="model">liststore6</property>
<property name="search-column">1</property>
<property name="enable-grid-lines">vertical</property>
<property name="enable-tree-lines">True</property>
<property name="tooltip-column">4</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="proprietartInstalledColumn">
<property name="title" translatable="yes">Installed</property>
<property name="sort-order">descending</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererToggle"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietaryPackageColumn">
<property name="title" translatable="yes">Package</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietaryDriverColumn">
<property name="title" translatable="yes">Driver</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietaryDescriptionColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Description</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="ProprietarySupportedColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Supported Devices</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">220</property>
</object>
<attributes>
<attribute name="text">5</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="valign">center</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkButton" id="LoadDriversButton"> <object class="GtkLabel">
<property name="label" translatable="yes">Update</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image3</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="proprietaryInstallButton">
<property name="label" translatable="yes"> Установить</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="can-focus">False</property>
<property name="can-focus">True</property> <property name="label" translatable="yes">Kernel:</property>
<property name="receives-default">True</property>
<property name="image">image9</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkButton" id="proprietaryDeleteButton"> <object class="GtkComboBoxText">
<property name="label" translatable="yes"> Удалить</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property> <property name="can-focus">False</property>
<property name="can-focus">True</property> <property name="active">0</property>
<property name="receives-default">True</property> <items>
<property name="image">image11</property> <item translatable="yes">Default (All installed)</item>
</items>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="proprietaryInfoButton">
<property name="label" translatable="yes"> Подробнее</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image10</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="DriverModulesTab">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Driver Modules</property>
</object>
<packing>
<property name="tab-fill">False</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child> <child>
<object class="GtkScrolledWindow"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="hscrollbar-policy">external</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkTreeView" id="driversTreeView"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="margin-top">5</property> <property name="orientation">vertical</property>
<property name="model">liststore1</property> <property name="spacing">5</property>
<property name="search-column">0</property> <child>
<property name="enable-grid-lines">vertical</property> <object class="GtkButton" id="LoadDriversButton">
<property name="enable-tree-lines">True</property> <property name="visible">True</property>
<property name="tooltip-column">4</property> <property name="can-focus">True</property>
<child internal-child="selection"> <property name="receives-default">True</property>
<object class="GtkTreeSelection"/> <property name="image">image3</property>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn" id="driverInstalledColumn"> <object class="GtkButton" id="InfoButton">
<property name="title" translatable="yes">Installed</property> <property name="visible">True</property>
<child> <property name="sensitive">False</property>
<object class="GtkCellRendererToggle"/> <property name="can-focus">True</property>
<attributes> <property name="receives-default">True</property>
<attribute name="active">0</attribute> <property name="image">image10</property>
</attributes> <style>
</child> <class name="thin"/>
</style>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child> </child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkTreeViewColumn" id="driverPackageColumn"> <object class="GtkTreeView" id="TopTree">
<property name="title" translatable="yes">Package</property> <property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<child> <child>
<object class="GtkCellRendererText"> <object class="GtkTreeViewColumn">
<property name="wrap-mode">word</property> <property name="title" translatable="yes">Installed</property>
<property name="wrap-width">175</property>
</object> </object>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child> </child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="driverDriverColumn">
<property name="title" translatable="yes">Driver</property>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkTreeViewColumn"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child> </child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="driverDescriptionColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Description</property>
<child> <child>
<object class="GtkCellRendererText"> <object class="GtkTreeViewColumn"/>
<property name="wrap-mode">word</property> </child>
<property name="wrap-width">150</property> <child>
</object> <object class="GtkTreeViewColumn"/>
<attributes> </child>
<attribute name="text">4</attribute> <child>
</attributes> <object class="GtkTreeViewColumn"/>
</child> </child>
</object> </object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<object class="GtkTreeViewColumn" id="driverSupportedColumn"> <object class="GtkScrolledWindow">
<property name="sizing">autosize</property> <property name="visible">True</property>
<property name="title" translatable="yes">Supported Devices</property> <property name="can-focus">True</property>
<property name="hscrollbar-policy">external</property>
<property name="shadow-type">in</property>
<child> <child>
<object class="GtkCellRendererText"> <object class="GtkTreeView" id="DriversTree">
<property name="wrap-mode">word</property> <property name="visible">True</property>
<property name="wrap-width">220</property> <property name="can-focus">True</property>
<property name="model">liststore6</property>
<property name="search-column">1</property>
<property name="enable-grid-lines">both</property>
<property name="enable-tree-lines">True</property>
<property name="tooltip-column">4</property>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Module</property>
<child>
<object class="GtkCellRendererToggle"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="InstalledColumn">
<property name="title" translatable="yes">Package</property>
<property name="sort-order">descending</property>
<property name="sort-column-id">0</property>
<child>
<object class="GtkCellRendererToggle" id="PackageRenderer"/>
<attributes>
<attribute name="active">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Kernel</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="DriverColumn">
<property name="title" translatable="yes">Driver</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="DescriptionColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Description</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">150</property>
</object>
<attributes>
<attribute name="text">4</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="SupportedColumn">
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Supported Devices</property>
<child>
<object class="GtkCellRendererText">
<property name="wrap-mode">word</property>
<property name="wrap-width">220</property>
</object>
<attributes>
<attribute name="text">5</attribute>
</attributes>
</child>
</object>
</child>
</object> </object>
<attributes>
<attribute name="text">5</attribute>
</attributes>
</child> </child>
<style>
<class name="thin"/>
</style>
</object> </object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child> </child>
</object> </object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="LoadDriversButton1">
<property name="label" translatable="yes">Update</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image4</property>
</object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="driversInstallButton">
<property name="label" translatable="yes"> Установить</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image6</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="driversDeleteButton">
<property name="label" translatable="yes"> Удалить</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image7</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkButton" id="driversInfoButton">
<property name="label" translatable="yes"> Подробнее</property>
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image12</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">True</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<style>
<class name="workingbg"/>
</style>
</object> </object>
<packing> <packing>
<property name="position">1</property> <property name="index">-1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="DriversTab">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Drivers</property>
</object>
<packing>
<property name="position">1</property>
<property name="tab-fill">False</property>
</packing> </packing>
</child> </child>
<style>
<class name="workingbg"/>
</style>
</object> </object>
<packing> <packing>
<property name="index">-1</property> <property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
</object> </object>

@ -1,23 +1,37 @@
OS_VERSION_ID;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT KERNEL_PACKAGE;DRV_PAСKAGE_UBM;DRV_PAСKAGE;DRV_NAME;DRV_DESCRIPTION;DRV_SUPPORT
2204;ubm-nvidia-340;;nvidia-340;UBLinux module includes NVIDIA 340xx driver and utilities;Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video cards ;;xf86-video-amdgpu;video-amdgpu;X.org amdgpu video driver;AMD graphics
2204;;nvidia-340xx-dkms;nvidia-340;UBLinux package includes NVIDIA 340xx driver and utilities;Driver for nVidia 8XXX, 9XXX, 1XX, 2XX, 3XX, 4XX, 5XX, 6XX, 7XX series video cards ;;xf86-video-ati;video-ati;X.org ati video driver;ATI graphics
2204;ubm-nvidia-390;;nvidia-390;UBLinux module includes NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards ;;xf86-video-dummy;video-dummy;X.org dummy video driver;Dummy video
2204;;nvidia-390xx-dkms;nvidia-390;UBLinux package includes NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards ;;xf86-video-fbdev;video-fbdev;X.org framebuffer video driver;Framebuffer
2204;ubm-nvidia-470;;nvidia-470;UBLinux module includes NVIDIA 470xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards ;;xf86-video-intel;video-intel;X.org Intel video driver;Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600
2204;;nvidia-470xx-dkms;nvidia-470;UBLinux package includes NVIDIA 470xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards ;;xf86-video-nouveau;video-nouveau;X.org nVidia video driver;nVidia graphics
2204;ubm-nvidia-510;;nvidia-510;UBLinux module includes NVIDIA 510xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards ;;xf86-video-qxl;video-qxl;X.org X11 qxl video driver;QXL
2204;;nvidia-510xx-dkms;nvidia-510;UBLinux package includes NVIDIA 510xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards ;;xf86-video-sisusb;video-sisusb;X.org SiS USB video driver;SiS USB
2204;;xf86-video-nouveau;video-nouveau;UBLinux package includes opensource driver NVIDIA;Open source nvidia graphics card driver ;;xf86-video-vesa;video-vesa;X.org vesa video driver;Vesa
2204;;vulkan-amdgpu-pro;vulkan-amdgpu-pro;UBLinux package includes AMD Vulkan driver and utilities;Driver for AMD Radeon™ R9 285/290/290X, Radeon™ R9 360/380/380X/390/390X, Radeon™ R9 Fury/Fury X/Nano, Radeon™ RX 400/500, Radeon™ RX Vega, Radeon™ VII, Radeon™ RX 5000/6000/7000 series video cards ;;xf86-video-vmware;video-vmware;X.org vmware video driver;Vmware
2204;ubm-amdgpu-pro;;vulkan-amdgpu-pro;UBLinux module includes AMD driver and utilities;Driver for AMD серий Radeon™ R9 285/290/290X, Radeon™ R9 360/380/380X/390/390X, Radeon™ R9 Fury/Fury X/Nano, Radeon™ RX 400/500, Radeon™ RX Vega, Radeon™ VII, Radeon™ RX 5000/6000/7000 series video cards ;;xf86-video-voodoo;video-voodoo;X.org 3dfx Voodoo1/Voodoo2 2D video driver;3dfx Voodoo1/Voodoo2 2D
2204;;xf86-video-intel;video-intel;UBLinux package includes Intel driver and utilities;Driver for video cards Intel i810/i830/i915/945G/G965+ and newer, except GMA 3600 ;;xf86-video-openchrome;video-openchrome;X.Org Openchrome drivers;Openchrome
2204;;xf86-video-amdgpu;video-amdgpu;UBLinux package includes AMD opensource driver;Opensource X.org amdgpu video driver for AMD graphics card ;;xf86-video-tdfx;video-tdfx;X.org tdfx video driver;TDFX
2204;;xf86-video-ati;video-ati;UBLinux package includes ATI opensource driver;Opensource X.org ati video driver for ATI graphics card ;;xf86-video-r128;video-r128;X.org ati Rage128 video driver;ATI Rage128
2204;;xf86-video-dummy;video-dummy;UBLinux package includes dummy driver;X.org dummy video driver ;;xf86-video-mach64;video-mach64;X.org mach64 video driver;ATI Mach64
2204;;xf86-video-fbdev;video-fbdev;UBLinux package includes framebuffer video driver;X.org framebuffer video driver ;;xf86-video-siliconmotion;video-siliconmotion;X.org siliconmotion video driver;Driver for Silicon Motion based video cards (Lynx, LynxE, Lynx3D, LynxEM, LynxEM+, Lynx3DM, Cougar3DR, MSOC)
2204;;xf86-video-openchrome;video-openchrome;UBLinux package includes VIA video driver;Open Source X driver for VIA IGPs ;;xf86-video-s3virge;video-s3virge;X.org S3 Virge video driver;Driver for S3 based video cards (ViRGE, ViRGE VX, ViRGE DX, ViRGE GX, ViRGE GX2, ViRGE MX, ViRGE MX+, Trio 3D, Trio 3D/2X)
2204;;xf86-video-sisusb;video-sisusb;UBLinux package includes SiS video driver;X.org SiS USB video driver ;;xf86-video-s3;video-s3virge;X.org S3 video driver;Driver for S3 based video cards (Trio32, Trio64, Trio64V+, Aurora64V+,Trio64UV+, Trio64V2/DX, Trio64V2/GX, Vision964, Vision968)
2204;;xf86-video-vesa;video-vesa;UBLinux package includes vesa video driver;X.org vesa video driver ;;xf86-video-rendition;video-rendition;X.org Rendition video driver;Driver for Rendition/Micron based video card (V1000, V2100, V2200)
2204;;xf86-video-vmware;video-vmware;UBLinux package includes VMWare video driver;X.org vmware video driver ;;xf86-video-neomagic;video-neomagic;X.org neomagic video driver;Driver for the Neomagic graphics chipsets (MagicGraph 128, 128V, 128ZV, 128ZV+, 128XD, 256AV, 256AV+, 256ZX, 256XL+)
2204;;xf86-video-voodoo;video-voodoo;UBLinux package includes Voodoo video driver;X.org 3dfx Voodoo1/Voodoo2 2D video driver ;;xf86-video-mga;video-mga;X.org mga video driver;Driver for Matrox video cards (MGA2064W, MGA1064SG, MGA2164W, G100, G200, G400, G450, G550)
2204;;xf86-video-qxl;video-qxl;UBLinux package includes qxl video driver;X.org X11 qxl video driver ;;xf86-video-i740;video-i740;X.org Intel i740 video driver;Driver for Intel i740 video cards
;;xf86-video-i128;video-i128;X.org Number 9 I128 video driver;Driver for Number 9 I128 video cards (I128 rev 1, I128-II, I128-T2R, I128-T2R4)
;;xf86-video-dummy-with-vt;dummy-with-vt;X.org dummy video driver with an allocated vt;Dummy video
;;xf86-video-cirrus;video-cirrus;Cirrus Logic video driver for the Xorg X server;Driver for Cirrus Logic video chips
;;xf86-video-chips;video-chips;X.org Chips and Technologies video driver;Driver for Chips and Technologies video processors (ct65520, ct65525, ct65530, ct65535, ct65540, ct65545, ct65546, ct65548, ct64200, ct64300, ct65550, ct65554, ct65555, ct68554, ct69000, ct69030)
;;ubm-amdgpu-pro;vulkan-amdgpu-pro;vulkan-amdgpu-pro;AMD Vulkan driver and utilities;Driver for AMD Radeon™ R9 285/290/290X, Radeon™ R9 360/380/380X/390/390X, Radeon™ R9 Fury/Fury X/Nano, Radeon™ RX 400/500, Radeon™ RX Vega, Radeon™ VII, Radeon™ RX 5000/6000/7000 series video cards
linux515;ubm-linux515-nvidia-390xx;linux515-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards
linux515;ubm-linux515-nvidia-470xx;linux515-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for nVidia MX100, MX200, MX300, MX400, MX500, 6XX, 7XX, 8XX, 9XX, 10XX, 16XX, 20XX, 30XX, NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX series video cards
linux515;ubm-linux515-nvidia;linux515-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards
linux61;ubm-linux61-nvidia-390xx;linux61-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards
linux61;ubm-linux61-nvidia-470xx;linux61-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for nVidia MX100, MX200, MX300, MX400, MX500, 6XX, 7XX, 8XX, 9XX, 10XX, 16XX, 20XX, 30XX, NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX series video cards
linux61;ubm-linux61-nvidia;linux61-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards
linux66;ubm-linux66-nvidia-390xx;linux66-nvidia-390xx;nvidia-390;NVIDIA 390xx driver and utilities;Driver for nVidia 6XX, 7XX, 9XX, 10XX, 16XX series video cards
linux66;ubm-linux66-nvidia-470xx;linux66-nvidia-470xx;nvidia-470;NVIDIA 470xx driver and utilities;Driver for nVidia MX100, MX200, MX300, MX400, MX500, 6XX, 7XX, 8XX, 9XX, 10XX, 16XX, 20XX, 30XX, NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX series video cards
linux66;ubm-linux66-nvidia;linux66-nvidia;nvidia-550;NVIDIA 550xx driver and utilities;Driver for nVidia NVS, Quadro Sync, Quadro NVS, Quadro Blade/Embedded, Quadro, Quadro RTX, NVIDIA RTX series video cards
Can't render this file because it has a wrong number of fields in line 28.
Loading…
Cancel
Save