diff --git a/source/ubl-settings-system.c b/source/ubl-settings-system.c index 047ac4c..e417a1c 100644 --- a/source/ubl-settings-system.c +++ b/source/ubl-settings-system.c @@ -464,7 +464,7 @@ domain_info_window *yon_information_window_new(){ yon_gtk_widget_set_scroll_window_for_scroll(window->Window,GTK_SCROLLBAR(window->TerminalScroll)); GdkRGBA rgba; vte_terminal_get_color_background_for_draw(VTE_TERMINAL(window->ExecuteTerminal),&rgba); - // vte_terminal_set_color_cursor(VTE_TERMINAL(window->ExecuteTerminal),&rgba); + vte_terminal_set_color_cursor(VTE_TERMINAL(window->ExecuteTerminal),&rgba); yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,TITLE_LABEL,"com.ublinux.ubl-settings-system","InfoWindow"); return window; @@ -488,24 +488,32 @@ void on_domain_connect(GtkWidget *self, dictionary *dict){ client = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ClientCombo)); } char *final = yon_char_unite(!yon_char_is_empty(kerberos)?kerberos_addition_command(kerberos):"",!yon_char_is_empty(kerberos)?" ":"",!yon_char_is_empty(dns)?dns_addition_command(dns):"",!yon_char_is_empty(dns)?" ":"",!yon_char_is_empty(client)?client_addition_command(client):"",!yon_char_is_empty(client)?" ":"",NULL); - yon_debug_output(domain_connect_command(adress,login,password,final)); - yon_debug_output(terminal_command_start(TITLE_LABEL,domain_connect_command(adress,login,password,final))); - yon_launch_app_with_arguments(terminal_command_start(TITLE_LABEL,domain_connect_command(adress,login,password,final)),""); + yon_debug_output("%s\n",domain_connect_command(adress,login,password,final)); + domain_info_window *dialog = yon_information_window_new(); + yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_connect_command(adress,login,password,final)); + gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window)); + gtk_widget_show(dialog->Window); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); } void on_status_clicked(GtkWidget *self, connection_window *window){ char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdressEntry)); if (!yon_char_is_empty(target)){ - yon_debug_output(domain_info(target)); - yon_launch_app_with_arguments(terminal_command_start(TITLE_LABEL,domain_info(target)),""); + yon_debug_output("%s\n",domain_info(target)); + domain_info_window *dialog = yon_information_window_new(); + yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_info(target)); + gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window)); + gtk_widget_show(dialog->Window); } } void on_find_domains_clicked(GtkWidget *self, connection_window *window){ - yon_debug_output(domains_seek_command); - yon_launch_app_with_arguments(terminal_command_start(TITLE_LABEL,domains_seek_command),""); + yon_debug_output("%s\n",domains_seek_command); + domain_info_window *dialog = yon_information_window_new(); + yon_terminal_integrated_start(dialog->ExecuteTerminal,domains_seek_command); + gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window)); + gtk_widget_show(dialog->Window); } @@ -513,8 +521,11 @@ void on_main_window_domain_status_clicked(GtkWidget *self, GtkEntryIconPosition if (icon_pos==GTK_ENTRY_ICON_SECONDARY&&main_config.domain_connected){ char *target = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->DomainEntry)); if (!yon_char_is_empty(target)){ - yon_debug_output(get_domain_info_command); - yon_launch_app_with_arguments(terminal_command_start(TITLE_LABEL,get_domain_info_command),""); + yon_debug_output("%s\n",get_domain_info_command); + domain_info_window *dialog = yon_information_window_new(); + yon_terminal_integrated_start(dialog->ExecuteTerminal,get_domain_info_command); + gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(widgets->Window)); + gtk_widget_show(dialog->Window); } } } @@ -563,7 +574,6 @@ connection_window *yon_connection_window_new(){ g_signal_connect(G_OBJECT(window->FindEntry),"clicked",G_CALLBACK(on_find_domains_clicked),window); g_signal_connect(G_OBJECT(window->AdressEntry),"focus-out-event",G_CALLBACK(yon_update_thread),window); yon_update_thread(NULL,NULL,window); - return window; } @@ -578,8 +588,11 @@ void on_domain_disconnect(GtkWidget *self, dictionary *dict){ yon_ubl_status_highlight_incorrect(window->AdressEntry); return; } - yon_debug_output(domain_disconnect_command(adress,login,password)); - yon_launch_app_with_arguments(terminal_command_start(TITLE_LABEL,domain_disconnect_command(adress,login,password)),""); + yon_debug_output("%s\n",domain_disconnect_command(adress,login,password)); + domain_info_window *dialog = yon_information_window_new(); + yon_terminal_integrated_start(dialog->ExecuteTerminal,domain_disconnect_command(adress,login,password)); + gtk_window_set_transient_for(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window)); + gtk_widget_show(dialog->Window); gtk_entry_set_text(GTK_ENTRY(widgets->DomainEntry),adress); } @@ -649,6 +662,7 @@ void on_domain_opened(GtkWidget *self, main_window *widgets){ yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_domain_connect),dict); g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_check_domain_connected),widgets); + yon_update_thread(NULL,NULL,window); gtk_widget_show(window->Window); } diff --git a/source/ubl-settings-system.h b/source/ubl-settings-system.h index 345a4b4..208f262 100644 --- a/source/ubl-settings-system.h +++ b/source/ubl-settings-system.h @@ -65,18 +65,18 @@ #define check_domain_access_command(targeet) yon_char_append("adcli info --domain ",target) #define get_domain_info_command "ubdomain-client list " #define domains_seek_command "ubdomain-client discover" -#define domain_connect_command(target,user,password, addition) yon_char_unite("ubdomain-client join",!yon_char_is_empty(user)?" --user \"":"",!yon_char_is_empty(user)?user:"",!yon_char_is_empty(user)?"\"":"",!yon_char_is_empty(password)?" --password \"":"",!yon_char_is_empty(password)?password:"",!yon_char_is_empty(password)?"\"":""," --domain \"",target,"\"", addition,NULL) -#define domain_disconnect_command(target,user,password) yon_char_unite("ubdomain-client leave",!yon_char_is_empty(user)?" --user \"":"",!yon_char_is_empty(user)?user:"",!yon_char_is_empty(user)?"\"":"",!yon_char_is_empty(password)?" --password \"":"",!yon_char_is_empty(password)?password:"",!yon_char_is_empty(password)?"\"":""," --domain \"",target,"\"",NULL) -#define kerberos_addition_command(target) yon_char_unite(" --domain_server \"",target,"\"",NULL) -#define dns_addition_command(target) yon_char_unite(" --dns \"",target,"\"",NULL) -#define client_addition_command(target) yon_char_unite(" --domain_client \"",target,"\"",NULL) +#define domain_connect_command(target,user,password, addition) yon_char_unite("ubdomain-client join",!yon_char_is_empty(user)?" --user ":"",!yon_char_is_empty(user)?user:"",!yon_char_is_empty(password)?" --password ":"",!yon_char_is_empty(password)?password:""," --domain ",target, addition,NULL) +#define domain_disconnect_command(target,user,password) yon_char_unite("ubdomain-client leave",!yon_char_is_empty(user)?" --user ":"",!yon_char_is_empty(user)?user:"",!yon_char_is_empty(password)?" --password ":"",!yon_char_is_empty(password)?password:""," --domain ",target,NULL) +#define kerberos_addition_command(target) yon_char_unite(" --domain_server ",target,"",NULL) +#define dns_addition_command(target) yon_char_unite(" --dns ",target,"",NULL) +#define client_addition_command(target) yon_char_unite(" --domain_client ",target,"",NULL) -#define domain_info(target) yon_char_unite("ubdomain-client discover --domain \"",target,"\"",NULL) +#define domain_info(target) yon_char_unite("ubdomain-client discover --domain ",target,"",NULL) #define domain_connected_icon "com.ublinux.ubl-settings-system.plug-connected-symbolic" #define domain_disconnected_icon "com.ublinux.ubl-settings-system.plug-disconnected-symbolic" -#define domain_connect_check "ubdomain-client list|grep -q \"configured\"" +#define domain_connect_check "ubdomain-client list|grep -q 'configured'" #define domain_check_alive(target) yon_char_unite("timeout --kill-after=0.1 2 dig +time=1 +tries=1 +noall -t SRV _ldap._tcp.",target," @",target," &>/dev/null",NULL) diff --git a/ubl-settings-system-domain-view.glade b/ubl-settings-system-domain-view.glade index 71ebbdf..2d5dd4e 100644 --- a/ubl-settings-system-domain-view.glade +++ b/ubl-settings-system-domain-view.glade @@ -13,6 +13,7 @@ 800 600 False + True com.ublinux.ubl-settings-repomanager diff --git a/ubl-settings-system-domain.glade b/ubl-settings-system-domain.glade index 15a0436..9f1303a 100644 --- a/ubl-settings-system-domain.glade +++ b/ubl-settings-system-domain.glade @@ -4,9 +4,11 @@ + 450 + 240 False True - com.ublinux.ubl-settings-repomanager + com.ublinux.ubl-settings-system True