Test fix for terminal command call #16

Merged
asmeron merged 1 commits from YanTheKaller/libublsettings-gtk3:master into master 2 years ago

@ -18,12 +18,7 @@ static void child_ready(VteTerminal *terminal, GPid pid, GError *error, gpointer
void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, void *endwork_function, void* endwork_function_argument){
GtkWidget *terminal = vte_terminal_new();
int size;
config_str parsed = NULL;
yon_char_parsed_add_or_create_if_exists(parsed,&size,"/usr/bin/bash");
yon_char_parsed_add_or_create_if_exists(parsed,&size,"-c");
yon_char_parsed_add_or_create_if_exists(parsed,&size,yon_char_unite("\"",command,"\"",NULL));
yon_char_parsed_add_or_create_if_exists(parsed,&size,NULL);
config_str parsed = g_strsplit(command, " ", -1);
vte_terminal_spawn_async(VTE_TERMINAL(terminal),VTE_PTY_NO_HELPER,NULL,parsed,NULL,G_SPAWN_SEARCH_PATH,NULL,NULL,NULL,2000,NULL,NULL,NULL);
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
if(endwork_function)
@ -35,11 +30,8 @@ void yon_terminal_integrated_launch(GtkWidget *place_to_show, char* command, voi
}
void yon_terminal_integrated_start(GtkWidget *terminal, char* command){
int size;
gchar *envv[] = { NULL };
config_str parsed = yon_char_parse(command,&size," ");
yon_char_parsed_add_or_create_if_exists(parsed,&size,"\0");
yon_char_parsed_add_or_create_if_exists(parsed,&size,NULL);
config_str parsed = g_strsplit(command, " ", -1);
vte_terminal_spawn_async(VTE_TERMINAL(terminal),VTE_PTY_NO_HELPER,"/bin",parsed,envv,G_SPAWN_SEARCH_PATH,NULL,NULL,NULL,20,NULL,NULL,NULL);
vte_terminal_set_size(VTE_TERMINAL(terminal),10,15);
vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), -1);
@ -1094,4 +1086,82 @@ rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (show_function
// char *current_text = gtk_entry_get_text(entry);
user-166 commented 2 years ago
Review

закомментированный код, если не нужен - удалить

закомментированный код, если не нужен - удалить
// }
// GtkTreeStore section
dictionary *yon_gtk_tree_store_get_children(GtkTreeStore *tree, GtkTreeIter *parent,int column){
g_return_val_if_fail(GTK_IS_TREE_STORE(tree),NULL);
dictionary *children = NULL;
GtkTreeIter iter;
if(gtk_tree_model_iter_has_child){
gtk_tree_model_iter_children(GTK_TREE_MODEL(tree),&iter,parent);
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(tree),&iter);
for (;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(tree),&iter)){
void *result = NULL;
gtk_tree_model_get(GTK_TREE_MODEL(tree),&iter,column,&result,-1);
dictionary *child_children = yon_gtk_tree_store_get_children(tree,&iter,column);
yon_dictionary_add_or_create_if_exists_with_data(children,result,child_children);
}
return children;
}
return NULL;
}
void yon_gtk_tree_store_fill_children(GtkTreeStore *tree, GtkTreeIter *parent, dictionary *data, int column){
GtkTreeIter iter;
dictionary *dict=NULL;
for_dictionaries(dict,data){
gtk_tree_store_append(tree,&iter,parent);
gtk_tree_store_set(tree,&iter,column,data->key,-1);
if (data->data){
yon_gtk_tree_store_fill_children(tree,&iter,data->data,column);
}
}
}
#include <gtk/gtk.h>
void yon_gtk_tree_store_copy_recursive(GtkTreeModel *sourceModel, GtkTreeIter *sourceIter, GtkTreeStore *destination, GtkTreeIter *parentIter) {
GtkTreeIter destIter;
gtk_tree_store_append(destination, &destIter, parentIter);
gint nColumns = gtk_tree_model_get_n_columns(sourceModel);
for (gint col = 0; col < nColumns; col++) {
GValue value = G_VALUE_INIT;
gtk_tree_model_get_value(sourceModel, sourceIter, col, &value);
gtk_tree_store_set_value(destination, &destIter, col, &value);
g_value_unset(&value);
}
if (gtk_tree_model_iter_has_child(sourceModel, sourceIter)) {
GtkTreeIter childIter;
gboolean validChild = gtk_tree_model_iter_children(sourceModel, &childIter, sourceIter);
while (validChild) {
yon_gtk_tree_store_copy_recursive(sourceModel, &childIter, destination, &destIter);
validChild = gtk_tree_model_iter_next(sourceModel, &childIter);
}
}
}
void yon_gtk_tree_store_copy_full(GtkTreeStore *source, GtkTreeStore *destination) {
GtkTreeModel *sourceModel = GTK_TREE_MODEL(source);
GtkTreeIter iter;
gboolean valid;
valid = gtk_tree_model_get_iter_first(sourceModel, &iter);
while (valid) {
yon_gtk_tree_store_copy_recursive(sourceModel, &iter, destination, NULL);
valid = gtk_tree_model_iter_next(sourceModel, &iter);
}
}
#endif

@ -44,6 +44,8 @@ void yon_terminal_integrated_start_shell(GtkWidget *terminal, char* command, voi
#endif
#define for_iter(model,iter) for(int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model),iter);valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model),iter))
/**yon_gtk_widget_set_scroll_window_for_scroll(GtkWidget *target, GtkScrollbar *scroll)
* [EN]
*
@ -453,4 +455,12 @@ typedef struct {
} rmb_menu_window;
rmb_menu_window *yon_rmb_menu_setup(GtkWidget *target_widget, int (*show_function)(void*), void *show_data, const char *button_label, const char *icon_name, GCallback function, gpointer data,...);
#endif
#endif
// GtkTreeStore section
dictionary *yon_gtk_tree_store_get_children(GtkTreeStore *tree, GtkTreeIter *parent,int column);
void yon_gtk_tree_store_fill_children(GtkTreeStore *tree, GtkTreeIter *parent, dictionary *data, int column);
void yon_gtk_tree_store_copy_full(GtkTreeStore *source, GtkTreeStore *destination);
Loading…
Cancel
Save