|
|
|
|
@ -145,69 +145,115 @@ void on_driver_pack_info(GtkWidget *self, main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_pack_install_activate(GtkCellRendererToggle* self,gchar* path,main_window *widgets){
|
|
|
|
|
|
|
|
|
|
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
|
|
|
|
|
char *package;
|
|
|
|
|
int installed;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(main_config.list),&iter,1,&installed,8,&package,-1);
|
|
|
|
|
if (!installed){
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=INSTALL_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
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 {
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
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);
|
|
|
|
|
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 = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=INSTALL_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
} else {
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_module_install_activate(GtkCellRendererToggle* self,gchar* path,main_window *widgets){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree));
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(main_config.list),&iter,path);
|
|
|
|
|
char *package;
|
|
|
|
|
int installed;
|
|
|
|
|
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 = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=INSTALL_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=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);
|
|
|
|
|
if (!installed){
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=INSTALL_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
} else {
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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));
|
|
|
|
|
char *cur;
|
|
|
|
|
gtk_tree_model_get(model,iter,2,&cur,-1);
|
|
|
|
|
if (!strcmp(cur,target))return 1;
|
|
|
|
|
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);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(gtk_tree_view_get_model(GTK_TREE_VIEW(widgets->DriversTree))));
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
} else {
|
|
|
|
|
dialog_confirmation_data *data = malloc(sizeof(dialog_confirmation_data));
|
|
|
|
|
data->action_text=REMOVE_CONFIRMATION_LABEL(package);
|
|
|
|
|
data->function=NULL;
|
|
|
|
|
data->data=NULL;
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
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));
|
|
|
|
|
}
|
|
|
|
|
free(data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1279,6 +1325,7 @@ template_main_window *yon_main_window_complete(main_window *widgets){
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_custom_save),NULL);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->OptirunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->OptirunEntry);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry);
|
|
|
|
|
g_signal_connect(G_OBJECT(widgets->KernelsCombo),"changed",G_CALLBACK(on_kernel_filter_changed),widgets);
|
|
|
|
|
// yon_monitor_view_setup(widgets->mainMonitorVisualConfigurationBox);
|
|
|
|
|
|
|
|
|
|
yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->DriversTree));
|
|
|
|
|
|