WIP driver tab rework

pull/118/head
parent 3d3efda1cb
commit bda9c029be
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -88,6 +88,7 @@ endif()
set(SOURCE_FILES
ubl-settings-video.c
ubl-settings-video-driver.c
ubl-settings-video-install.c
ubl-settings-video.h
ubl-strings.h
)

@ -0,0 +1,68 @@
#include "ubl-settings-video.h"
void on_terminal_revealer_open(GtkWidget *, main_window *widgets){
int opened = gtk_widget_get_visible(widgets->TerminalPaned);
switch (opened){
case 0: { // opens
gtk_button_set_label(GTK_BUTTON(widgets->MoreButton),LESS_LABEL);
g_object_ref(widgets->MenusTab);
gtk_container_remove(GTK_CONTAINER(gtk_widget_get_parent(widgets->MenusTab)),widgets->MenusTab);
gtk_paned_add1(GTK_PANED(widgets->TerminalPaned),widgets->MenusTab);
int pos;
if (yon_window_config_get_parameter("settings","paned_pos",&pos,YON_TYPE_INT)) {
gtk_paned_set_position(GTK_PANED(widgets->TerminalPaned),pos);
}
gtk_widget_show(widgets->TerminalPaned);
gtk_widget_show(widgets->MenusTab);
} break;
case 1: { //closes
gtk_button_set_label(GTK_BUTTON(widgets->MoreButton),MORE_LABEL);
int pos = gtk_paned_get_position(GTK_PANED(widgets->TerminalPaned));
yon_window_config_add_instant_parameter("paned_pos","settings",&pos,YON_TYPE_INT);
GValue val = G_VALUE_INIT;
g_object_get_property(G_OBJECT(widgets->TerminalPaned),"max-position",&val);
gtk_paned_set_position(GTK_PANED(widgets->TerminalPaned),g_value_get_int(&val));
g_value_unset(&val);
g_object_ref(widgets->MenusTab);
gtk_container_remove(GTK_CONTAINER(widgets->TerminalPaned),widgets->MenusTab);
gtk_box_pack_start(GTK_BOX(gtk_widget_get_parent(widgets->TerminalPaned)),widgets->MenusTab,1,1,0);
gtk_box_reorder_child(GTK_BOX(gtk_widget_get_parent(widgets->MenusTab)),widgets->MenusTab,0);
gtk_widget_hide(widgets->TerminalPaned);
} break;
}
}
// void on_terminal_destroy(GtkWidget *, main_window *widgets){
// gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0);
// gtk_widget_destroy(widgets->TerminalRevealer);
// GtkTreeModel *model;
// GtkTreeIter iter;
// if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree)),&model,&iter)){
// char *module, *package;
// gtk_tree_model_get(model, &iter, 7,&module, 8,&package,-1);
// if (!yon_char_is_empty(module)){
// if (!system(yon_get_is_installed_command(module))){
// gtk_list_store_set(main_config.list,&iter,9,1,-1);
// }
// } else {
// if (!system(yon_get_is_installed_command(package))){
// gtk_list_store_set(main_config.list,&iter,10,1,-1);
// }
// }
// }
// yon_proprietary_get_thread(NULL,widgets);
// yon_ubl_status_box_render(yon_char_unite(PROPRIETARY_OPETAION_DONE_LABEL,". ",PROPRIETARY_LOADING_LABEL,NULL),BACKGROUND_IMAGE_SUCCESS_TYPE);
// }

@ -13,28 +13,6 @@ void on_terminal_more(GtkWidget *, main_window *widgets){
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalMoreRevieler),active);
}
void on_terminal_destroy(GtkWidget *, main_window *widgets){
gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->TerminalRevealer),0);
gtk_widget_destroy(widgets->TerminalRevealer);
GtkTreeModel *model;
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree)),&model,&iter)){
char *module, *package;
gtk_tree_model_get(model, &iter, 7,&module, 8,&package,-1);
if (!yon_char_is_empty(module)){
if (!system(yon_get_is_installed_command(module))){
gtk_list_store_set(main_config.list,&iter,9,1,-1);
}
} else {
if (!system(yon_get_is_installed_command(package))){
gtk_list_store_set(main_config.list,&iter,10,1,-1);
}
}
}
yon_proprietary_get_thread(NULL,widgets);
yon_ubl_status_box_render(yon_char_unite(PROPRIETARY_OPETAION_DONE_LABEL,". ",PROPRIETARY_LOADING_LABEL,NULL),BACKGROUND_IMAGE_SUCCESS_TYPE);
}
gboolean on_command_execute_success(GtkWidget *self,gint status,main_window *widgets){
@ -142,20 +120,20 @@ void yon_terminal_start(main_window *widgets, char *usr_command){
g_idle_add((GSourceFunc)on_terminal_check_progress,widgets);
}
void on_driver_pack_selection_change(GtkWidget *, main_window *widgets){
GtkTreeIter iter;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
gtk_widget_set_sensitive(widgets->InfoButton,1);
int installed=0;
gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)),&iter,0,&installed,-1);
if (installed==1){
}
} else {
gtk_widget_set_sensitive(widgets->InfoButton,0);
}
}
// void on_driver_pack_selection_change(GtkWidget *, main_window *widgets){
// GtkTreeIter iter;
// GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
// GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
// if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
// gtk_widget_set_sensitive(widgets->InfoButton,1);
// int installed=0;
// gtk_tree_model_get(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)),&iter,0,&installed,-1);
// if (installed==1){
// }
// } else {
// gtk_widget_set_sensitive(widgets->InfoButton,0);
// }
// }
gpointer yon_driver_info_launch(void *command){
if (!system((char*)command)){
@ -166,98 +144,98 @@ gpointer yon_driver_info_launch(void *command){
return NULL;
}
void on_driver_pack_info(GtkWidget *, main_window *widgets){
GtkTreeIter iter;
char *module, *package;
GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
yon_ubl_status_box_render(yon_char_get_localised_from_lib(INFO_PROCESS_LABEL),BACKGROUND_IMAGE_INFO_TYPE);
gtk_tree_model_get(list_s,&iter,7,&module,8,&package,-1);
char *command = get_info_proprietary_command(yon_char_is_empty(module)?package:module);
g_thread_new("info_thread",yon_driver_info_launch,(void*)command);
} else {
yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
}
}
void on_pack_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *widgets){
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
GtkTreeIter iter;
if (!GTK_IS_TREE_MODEL_FILTER(model)){
// void on_driver_pack_info(GtkWidget *, main_window *widgets){
// GtkTreeIter iter;
// char *module, *package;
// GtkTreeModel *list_s=GTK_TREE_MODEL(main_config.list);
// GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->DriversTree));
// if (gtk_tree_selection_get_selected(selection,&list_s,&iter)){
// yon_ubl_status_box_render(yon_char_get_localised_from_lib(INFO_PROCESS_LABEL),BACKGROUND_IMAGE_INFO_TYPE);
// gtk_tree_model_get(list_s,&iter,7,&module,8,&package,-1);
// char *command = get_info_proprietary_command(yon_char_is_empty(module)?package:module);
// g_thread_new("info_thread",yon_driver_info_launch,(void*)command);
// } else {
// yon_ubl_status_box_render(PROPRIETARY_NOTHING_SELECTED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
// }
// }
// void on_pack_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *widgets){
// GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
// GtkTreeIter iter;
// if (!GTK_IS_TREE_MODEL_FILTER(model)){
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
model=GTK_TREE_MODEL(main_config.list);
} else {
GtkTreeIter itar;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,path);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model),&iter,&itar);
}
char *package;
int installed;
gtk_tree_model_get(GTK_TREE_MODEL(model),&iter,1,&installed,8,&package,-1);
if (!installed){
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text=yon_char_unite(INSTALL_CONFIRMATION_LABEL(package),"\n",INSTALL_ATTENTION_LABEL,NULL);
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
if (!yon_char_is_empty(package)){
char *command = install_proprietary_command(package);
yon_terminal_start(widgets,command);
yon_ubl_status_box_render(PACKAGE_INSTALL_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
}
}
free(data);
} else {
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
if (!yon_char_is_empty(package)){
char *command = delete_proprietary_command(package);
yon_terminal_start(widgets,command);
yon_ubl_status_box_render(PACKAGE_REMOVE_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
}
}
free(data);
}
}
void on_module_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *widgets){
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
GtkTreeIter iter;
if (!GTK_IS_TREE_MODEL_FILTER(model)){
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
} else {
GtkTreeIter itar;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,path);
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model),&iter,&itar);
}
char *package;
int installed;
gtk_tree_model_get(GTK_TREE_MODEL(main_config.list),&iter,1,&installed,7,&package,-1);
if (!installed){
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text=INSTALL_CONFIRMATION_LABEL(package);
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
if (!yon_char_is_empty(package)){
char *command = install_proprietary_command(package);
yon_terminal_start(widgets,command);
yon_ubl_status_box_render(MODULE_INSTALL_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
}
}
free(data);
} else {
dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
if (!yon_char_is_empty(package)){
char *command = delete_proprietary_command(package);
yon_terminal_start(widgets,command);
yon_ubl_status_box_render(MODULE_REMOVE_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
}
}
free(data);
}
}
// gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
// model=GTK_TREE_MODEL(main_config.list);
// } else {
// GtkTreeIter itar;
// gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,path);
// gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model),&iter,&itar);
// }
// char *package;
// int installed;
// gtk_tree_model_get(GTK_TREE_MODEL(model),&iter,1,&installed,8,&package,-1);
// if (!installed){
// dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
// data->action_text=yon_char_unite(INSTALL_CONFIRMATION_LABEL(package),"\n",INSTALL_ATTENTION_LABEL,NULL);
// if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
// if (!yon_char_is_empty(package)){
// char *command = install_proprietary_command(package);
// yon_terminal_start(widgets,command);
// yon_ubl_status_box_render(PACKAGE_INSTALL_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
// }
// }
// free(data);
// } else {
// dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
// data->action_text=REMOVE_CONFIRMATION_LABEL(package);
// if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
// if (!yon_char_is_empty(package)){
// char *command = delete_proprietary_command(package);
// yon_terminal_start(widgets,command);
// yon_ubl_status_box_render(PACKAGE_REMOVE_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
// }
// }
// free(data);
// }
// }
// void on_module_install_activate(GtkCellRendererToggle* ,gchar* path,main_window *widgets){
// GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
// GtkTreeIter iter;
// if (!GTK_IS_TREE_MODEL_FILTER(model)){
// gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
// } else {
// GtkTreeIter itar;
// gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,path);
// gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(model),&iter,&itar);
// }
// char *package;
// int installed;
// gtk_tree_model_get(GTK_TREE_MODEL(main_config.list),&iter,1,&installed,7,&package,-1);
// if (!installed){
// dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
// data->action_text=INSTALL_CONFIRMATION_LABEL(package);
// if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
// if (!yon_char_is_empty(package)){
// char *command = install_proprietary_command(package);
// yon_terminal_start(widgets,command);
// yon_ubl_status_box_render(MODULE_INSTALL_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
// }
// }
// free(data);
// } else {
// dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
// data->action_text=REMOVE_CONFIRMATION_LABEL(package);
// if (yon_confirmation_dialog_call(widgets->Window,data)==GTK_RESPONSE_ACCEPT){
// if (!yon_char_is_empty(package)){
// char *command = delete_proprietary_command(package);
// yon_terminal_start(widgets,command);
// yon_ubl_status_box_render(MODULE_REMOVE_PROCESS_LABEL(package),BACKGROUND_IMAGE_INFO_TYPE);
// }
// }
// free(data);
// }
// }
gboolean yon_filter_func(GtkTreeModel* model,GtkTreeIter* iter,main_window *widgets){
const char *target = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->KernelsCombo));
@ -267,25 +245,25 @@ gboolean yon_filter_func(GtkTreeModel* model,GtkTreeIter* iter,main_window *widg
return 0;
}
void on_kernel_filter_changed(GtkWidget *self, main_window *widgets){
int active = gtk_combo_box_get_active(GTK_COMBO_BOX(self));
if (active){
if (!GTK_IS_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)))){
GtkTreeModel *model = gtk_tree_model_filter_new(GTK_TREE_MODEL(main_config.list),NULL);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),model);
gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(model),(GtkTreeModelFilterVisibleFunc)yon_filter_func,widgets,NULL);
}
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree))));
} else {
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
if (GTK_IS_TREE_MODEL_FILTER(model)) {
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
g_object_unref(model);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
}
}
}
// void on_kernel_filter_changed(GtkWidget *self, main_window *widgets){
// int active = gtk_combo_box_get_active(GTK_COMBO_BOX(self));
// if (active){
// if (!GTK_IS_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree)))){
// GtkTreeModel *model = gtk_tree_model_filter_new(GTK_TREE_MODEL(main_config.list),NULL);
// gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),model);
// gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(model),(GtkTreeModelFilterVisibleFunc)yon_filter_func,widgets,NULL);
// }
// gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree))));
// } else {
// GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
// if (GTK_IS_TREE_MODEL_FILTER(model)) {
// gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
// g_object_unref(model);
// gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
// }
// }
// }
void on_port_chosen_changed(GtkWidget *, monitor_edit_window *window){
dictionary *dict=NULL;
@ -1096,11 +1074,11 @@ void yon_drivers_resize(main_window *widgets){
}
}
gboolean yon_proprietary_set(main_window *widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
gtk_widget_set_sensitive(widgets->LoadDriversButton,1);
return G_SOURCE_REMOVE;
}
// gboolean yon_proprietary_set(main_window *widgets){
// gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
// gtk_widget_set_sensitive(widgets->LoadDriversButton,1);
// return G_SOURCE_REMOVE;
// }
gboolean yon_proprietary_append(driver_struct *){
@ -1118,18 +1096,18 @@ gboolean yon_proprietary_append_kernels(struct proprietary_kernel_append_struct
return G_SOURCE_REMOVE;
}
gboolean yon_proprietary_disconnect(main_window *widgets){
g_object_ref(main_config.list);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
return G_SOURCE_REMOVE;
}
// gboolean yon_proprietary_disconnect(main_window *widgets){
// g_object_ref(main_config.list);
// gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
// return G_SOURCE_REMOVE;
// }
gboolean yon_proprietary_connect(main_window *widgets){
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
gtk_spinner_stop(GTK_SPINNER(widgets->DriversLoadingSpinner));
gtk_widget_hide(widgets->DriversLoadingSpinner);
return G_SOURCE_REMOVE;
}
// gboolean yon_proprietary_connect(main_window *widgets){
// gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),GTK_TREE_MODEL(main_config.list));
// gtk_spinner_stop(GTK_SPINNER(widgets->DriversLoadingSpinner));
// gtk_widget_hide(widgets->DriversLoadingSpinner);
// return G_SOURCE_REMOVE;
// }
void yon_proprietary_local_get(main_window *widgets){
g_idle_add((GSourceFunc)yon_proprietary_clear,widgets);
@ -1202,11 +1180,11 @@ void yon_proprietary_local_get(main_window *widgets){
yon_drivers_resize(widgets);
}
void yon_proprietary_get_thread(GtkWidget *,main_window *widgets){
yon_ubl_status_box_render(PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
yon_proprietary_local_get(widgets);
}
// void yon_proprietary_get_thread(GtkWidget *,main_window *widgets){
// yon_ubl_status_box_render(PROPRIETARY_LOADING_LABEL,BACKGROUND_IMAGE_INFO_TYPE);
// gtk_tree_view_set_model(GTK_TREE_VIEW(widgets->DriversTree),NULL);
// yon_proprietary_local_get(widgets);
// }
void yon_monitor_view_dictionary_destroy(void *window){
monitor_data *monitor=(monitor_data*)window;
@ -1497,14 +1475,11 @@ template_main_window *yon_main_window_complete(main_window *widgets){
widgets->PrimusrunButton = yon_gtk_builder_get_widget(builder,"PrimusrunButton");
widgets->FrameGapCombo = yon_gtk_builder_get_widget(builder,"FrameGapCombo");
widgets->DriversTree = yon_gtk_builder_get_widget(builder, "DriversTree");
widgets->InfoButton = yon_gtk_builder_get_widget(builder, "InfoButton");
widgets->TerminalOverlay = yon_gtk_builder_get_widget(builder, "TerminalOverlay");
widgets->MenusTab = yon_gtk_builder_get_widget(builder, "MenusTab");
widgets->LoadDriversButton = yon_gtk_builder_get_widget(builder,"LoadDriversButton");
widgets->DriversTree = yon_gtk_builder_get_widget(builder,"DriversTree");
widgets->TopTree = yon_gtk_builder_get_widget(builder,"TopTree");
widgets->KernelsCombo = yon_gtk_builder_get_widget(builder,"KernelsCombo");
widgets->InstalledBox = yon_gtk_builder_get_widget(builder,"InstalledBox");
@ -1515,6 +1490,12 @@ template_main_window *yon_main_window_complete(main_window *widgets){
widgets->DescriptionLabel = yon_gtk_builder_get_widget(builder,"DescriptionLabel");
widgets->DevicesLabel = yon_gtk_builder_get_widget(builder,"DevicesLabel");
widgets->MoreButton = yon_gtk_builder_get_widget(builder,"MoreButton");
widgets->TerminalPaned = yon_gtk_builder_get_widget(builder,"TerminalPaned");
widgets->TerminalMoreRevieler = yon_gtk_builder_get_widget(builder,"TerminalMoreRevieler");
widgets->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
widgets->InstallTerminal = yon_gtk_builder_get_widget(builder,"InstallTerminal");
widgets->DriverModulesTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriverModulesTab"));
widgets->DriversTab = GTK_WIDGET(gtk_builder_get_object(builder, "DriversTab"));
// widgets->MainTabLabel = GTK_WIDGET(gtk_builder_get_object(builder, "MainTabLabel"));
@ -1530,23 +1511,13 @@ template_main_window *yon_main_window_complete(main_window *widgets){
widgets->DriversLoadingOverlay = GTK_WIDGET(gtk_builder_get_object(builder, "DriversLoadingOverlay"));
widgets->DriversLoadingSpinner = GTK_WIDGET(gtk_builder_get_object(builder, "DriversLoadingSpinner"));
widgets->PackageRenderer = GTK_CELL_RENDERER(gtk_builder_get_object(builder, "PackageRenderer"));
widgets->ModuleRenderer = GTK_CELL_RENDERER(gtk_builder_get_object(builder, "ModuleRenderer"));
widgets->DriversList = yon_gtk_builder_get_widget(builder, "DriversList");
main_config.list = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore6"));
main_config.list2 = GTK_LIST_STORE(gtk_builder_get_object(builder, "liststore1"));
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->DriversLoadingOverlay),widgets->DriversLoadingSpinner);
g_signal_connect(G_OBJECT(widgets->LoadDriversButton), "clicked", G_CALLBACK(yon_proprietary_get_thread), widgets);
if (!getuid()){
g_signal_connect(G_OBJECT(widgets->PackageRenderer), "toggled", G_CALLBACK(on_pack_install_activate), widgets);
g_signal_connect(G_OBJECT(widgets->ModuleRenderer), "toggled", G_CALLBACK(on_module_install_activate), widgets);
}
g_signal_connect(G_OBJECT(widgets->InfoButton), "clicked", G_CALLBACK(on_driver_pack_info), widgets);
g_signal_connect(G_OBJECT(widgets->DriversTree), "cursor-changed", G_CALLBACK(on_driver_pack_selection_change), 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);
@ -1564,6 +1535,7 @@ template_main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->FrameGapCombo),"changed",G_CALLBACK(on_gapfix_changed),widgets);
g_signal_connect(G_OBJECT(widgets->OptirunButton),"clicked",G_CALLBACK(on_app_chooser_open),widgets);
g_signal_connect(G_OBJECT(widgets->PrimusrunButton),"clicked",G_CALLBACK(on_app_chooser_open),widgets);
g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets);
{
int size;
config_str default_driver = yon_config_load(yon_config_parameter_prepare_command(VGADRV_AUTO_command,"default",NULL,NULL),&size);
@ -1688,8 +1660,6 @@ template_main_window *yon_main_window_complete(main_window *widgets){
gtk_combo_box_text_prepend_text(GTK_COMBO_BOX_TEXT(widgets->PrimusrunCombo),final);
}
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->DriversTree));
yon_adapter_window_setup(widgets);
}
yon_save_window_set_postsave_function(on_save_done,widgets);

@ -145,10 +145,6 @@ typedef struct
GtkWidget *PrimusrunButton;
GtkWidget *FrameGapCombo;
GtkWidget *DriversTree;
GtkWidget *TopTree;
GtkCellRenderer *ModuleRenderer;
GtkCellRenderer *PackageRenderer;
GtkWidget *KernelsCombo;
GtkWidget *InfoButton;
@ -167,7 +163,6 @@ typedef struct
GtkWidget *TerminalOverlay;
GtkWidget *TerminalBox;
GtkWidget *TerminalRevealer;
GtkWidget *TerminalInfoLabel;
GtkWidget *TerminalMoreButton;
GtkWidget *TerminalCancelButton;
@ -185,6 +180,12 @@ typedef struct
GtkWidget *DescriptionLabel;
GtkWidget *DevicesLabel;
GtkWidget *MoreButton;
GtkWidget *CancelButton;
GtkWidget *TerminalPaned;
GtkWidget *TerminalRevealer;
GtkWidget *InstallTerminal;
GtkWidget *MenusTab;
GtkWidget *terminal;
@ -202,8 +203,6 @@ typedef struct
monitor_config monitors;
proprietary_config proprietary;
dictionary *supported_resolutions;
GtkListStore *list;
GtkListStore *list2;
char *failsafenVidia;
char *failsafeATI;
int descreteOnly;
@ -227,6 +226,8 @@ typedef struct
} config;
extern config main_config;
typedef struct {
GtkWidget *MainBox;
GtkWidget *ModuleInstalledCheck;
@ -411,5 +412,6 @@ driver_struct *yon_driver_struct_new();
void yon_driver_struct_update(driver_struct *driver);
void yon_drivers_resize(main_window *);
void on_link_activate(GtkWidget *, char*, driver_struct *driver);
void on_terminal_revealer_open(GtkWidget *, main_window *widgets);
#endif

@ -81,6 +81,7 @@
#define ADD_LABEL _("Add monitor configuration")
#define SWITCH_LABEL _("Switch monitor")
#define MORE_LABEL _("More")
#define LESS_LABEL _("Less")
#define PORT_EDIT_LABEL(target) yon_char_unite(_("Configuration: Monitor"),"(",target,")",NULL)
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-video">
<requires lib="gtk+" version="3.24"/>
<requires lib="vte-2.91" version="0.76"/>
<!-- interface-css-provider-path ubl-settings-video.css -->
<object class="GtkSpinner" id="DriversLoadingSpinner">
<property name="visible">True</property>
@ -21,6 +22,77 @@
<property name="valign">start</property>
<property name="pixel-size">64</property>
</object>
<object class="GtkFrame" id="TerminalMoreRevieler">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="left-padding">12</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="TerminalBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="VteTerminal" id="TerminalTerminal">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="encoding">UTF-8</property>
<property name="pointer-autohide">True</property>
<property name="scroll-on-keystroke">True</property>
<property name="scroll-on-output">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkScrollbar" id="TerminalScroll">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="show-fill-level">True</property>
<property name="restrict-to-fill-level">False</property>
<property name="fill-level">1</property>
<property name="round-digits">2</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label_item">
<placeholder/>
</child>
</object>
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">300</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -1296,6 +1368,128 @@
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkPaned" id="TerminalPaned">
<property name="can-focus">True</property>
<property name="orientation">vertical</property>
<property name="position">250</property>
<property name="position-set">True</property>
<property name="wide-handle">True</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkRevealer" id="TerminalRevealer">
<property name="visible">True</property>
<property name="app-paintable">True</property>
<property name="can-focus">False</property>
<property name="reveal-child">True</property>
<child>
<object class="GtkFrame" id="TerminalFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<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="spacing">5</property>
<child>
<object class="GtkProgressBar" id="TerminalInfoLabel">
<property name="visible">True</property>
<property name="app-paintable">True</property>
<property name="can-focus">False</property>
<property name="valign">center</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TerminalCancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="TerminalMoreButton">
<property name="label" translatable="yes">More</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="can-default">True</property>
<property name="receives-default">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
<style>
<class name="workingbg"/>
</style>
</object>
</child>
<style>
<class name="opacited"/>
<class name="workingbg"/>
<class name="borders"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<object class="GtkSizeGroup" id="ExtraSizeGroup">
<widgets>
@ -1346,145 +1540,4 @@
<column type="gboolean"/>
</columns>
</object>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkTreeView" id="TopTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">fixed</property>
<property name="fixed-width">160</property>
<property name="title" translatable="yes">Installed</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn"/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<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="DriversTree">
<property name="visible">True</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 internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="sizing">fixed</property>
<property name="fixed-width">80</property>
<property name="title" translatable="yes">Module</property>
<child>
<object class="GtkCellRendererToggle" id="ModuleRenderer"/>
<attributes>
<attribute name="sensitive">9</attribute>
<attribute name="visible">9</attribute>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="InstalledColumn">
<property name="fixed-width">80</property>
<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="sensitive">10</attribute>
<attribute name="visible">10</attribute>
<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="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>
</child>
<style>
<class name="thin"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</interface>

Loading…
Cancel
Save