Merge pull request 'Fixed checking of domain status before interface data loading' (#42) from YanTheKaller/ubl-settings-system:master into master

Reviewed-on: #42
pull/69/head^2 v2.15
Dmitry Razumov 2 years ago
commit 926236c662

@ -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);
}

@ -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)

@ -13,6 +13,7 @@
<property name="width-request">800</property>
<property name="height-request">600</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<child>
<object class="GtkBox">

@ -4,9 +4,11 @@
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-system.css -->
<object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">240</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-repomanager</property>
<property name="icon-name">com.ublinux.ubl-settings-system</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>

Loading…
Cancel
Save