Added domain connection options

pull/87/head
parent 7cd0f748da
commit c051c6caa0
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -6,6 +6,7 @@
<file>ubl-settings-system-domain.glade</file>
<file>ubl-settings-system-connection.glade</file>
<file>ubl-settings-system-domain-view.glade</file>
<file>ubl-settings-system-domain-options.glade</file>
</gresource>
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-system.css</file>

@ -291,3 +291,7 @@ msgstr ""
#: source/ubl-strings.h:78
msgid "Remove language"
msgstr ""
#: source/ubl-strings.h:78
msgid "Additional authentication profile options"
msgstr ""

@ -298,3 +298,7 @@ msgstr "Удалить язык"
msgid "Domain connection"
msgstr "Соединение домена"
#: source/ubl-strings.h:78
msgid "Additional authentication profile options"
msgstr "Дополнительные опции профиля аутентификации"

@ -35,6 +35,7 @@ set(DEPENDFILES
../ubl-settings-system-domain.glade
../ubl-settings-system-connection.glade
../ubl-settings-system-domain-view.glade
../ubl-settings-system-domain-options.glade
../ubl-settings-system-layouts.glade
../gresource.xml
../ubl-settings-system.css

@ -41,12 +41,13 @@ void on_domain_connect(GtkWidget *, dictionary *dict){
char *kerberos = (char*)gtk_entry_get_text(GTK_ENTRY(window->KerberosServerEntry));
char *dns = (char*)gtk_entry_get_text(GTK_ENTRY(window->DNSEntry));
char *ou = (char*)gtk_entry_get_text(GTK_ENTRY(window->OuEntry));
char *options = (char*)gtk_entry_get_text(GTK_ENTRY(window->AdditionalParametersEntry));
char *client = NULL;
if (gtk_combo_box_get_active(GTK_COMBO_BOX(window->ClientCombo))){
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);
char *command = domain_connect_command(adress,login,password,final,ou);
char *command = domain_connect_command(adress,login,password,final,ou,options);
yon_debug_output("%s\n",command);
domain_info_window *dialog = yon_information_window_new();
gtk_label_set_text(GTK_LABEL(dialog->HeadLabel),DOMAIN_CONNECTING_LABEL);
@ -131,6 +132,101 @@ gboolean on_main_window_domain_status_update(connection_window *window){
return 1;
}
void yon_domain_client_changed(GtkWidget*,connection_window *window){
gtk_entry_set_text(GTK_ENTRY(window->AdditionalParametersEntry),"");
const char *id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ClientCombo));
if (gtk_switch_get_active(GTK_SWITCH(window->AdditionalParametersDefaultSwitch))&&!yon_char_is_empty(id)&&strcmp(id,"none")){
gtk_widget_set_sensitive(window->EditButton,1);
gtk_widget_set_sensitive(window->AdditionalParametersEntry,1);
} else {
gtk_widget_set_sensitive(window->EditButton,0);
gtk_widget_set_sensitive(window->AdditionalParametersEntry,1);
}
}
void yon_domain_client_changed_switch(GtkWidget*,int ,connection_window *window){
yon_domain_client_changed(NULL,window);
}
void on_domain_options_accept(GtkWidget *,domain_options_window *dialog){
connection_window *window = g_object_get_data(G_OBJECT(dialog->Window),"connection_window");
const char *options = gtk_entry_get_text(GTK_ENTRY(dialog->OptionsEntry));
gtk_entry_set_text(GTK_ENTRY(window->AdditionalParametersEntry),options?options:"");
on_subwindow_close(dialog->Window);
}
void on_domain_options_cell_toggled(GtkCellRenderer*, gchar *path,domain_options_window *window){
char *options = (char*)gtk_entry_get_text(GTK_ENTRY(window->OptionsEntry));
GtkTreeModel *model = GTK_TREE_MODEL(window->List);
GtkTreeIter iter;
if (gtk_tree_model_get_iter_from_string(model,&iter,path)){
int status;
char *target;
gtk_tree_model_get(model,&iter,0,&status,1,&target,-1);
gtk_list_store_set(window->List,&iter,0,!status,-1);
if (!status){
char *temp = yon_char_append_element(options,target,",");
gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),temp);
if (!yon_char_is_empty(temp)) free(temp);
} else {
char *temp = yon_char_remove_element(options,target,",");
gtk_entry_set_text(GTK_ENTRY(window->OptionsEntry),temp);
if (!yon_char_is_empty(temp)) free(temp);
}
}
}
domain_options_window *yon_domain_options_window_new(){
domain_options_window *window = malloc(sizeof(domain_options_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_domain_options_path);
window->Window = yon_gtk_builder_get_widget(builder,"Window");
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel");
window->OptionsTree = yon_gtk_builder_get_widget(builder,"OptionsTree");
window->OptionsEntry = yon_gtk_builder_get_widget(builder,"OptionsEntry");
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->List = GTK_LIST_STORE(gtk_builder_get_object(builder,"List"));
window->ChooseCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ChooseCell"));
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_domain_options_accept),window);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->ChooseCell),"toggled",G_CALLBACK(on_domain_options_cell_toggled),window);
return window;
}
void yon_domain_additional_options_open(GtkWidget *, connection_window *window){
char *command = NULL;
const char *id = gtk_combo_box_get_active_id(GTK_COMBO_BOX(window->ClientCombo));
if (yon_char_is_empty(id)||!strcmp(id,"none")){
} else if (!strcmp(id,"realmd_sssd")){
command = sssd_client_parameters_command;
} else if (!strcmp(id,"realmd_winbind")){
command = windbind_client_parameters_command;
} else if (!strcmp(id,"samba")){
command = samba_client_parameters_command;
}
if (yon_char_is_empty(command)){
return;
} else {
GtkTreeIter iter;
domain_options_window *dialog = yon_domain_options_window_new();
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),ADDITIONAL_OPTIONS_LABEL,main_icon,"options_window");
g_object_set_data(G_OBJECT(dialog->Window),"connection_window",window);
int size;
config_str options = yon_config_load(command,&size);
for (int i=0;i<size;i++){
yon_char_remove_last_symbol(options[i],'\n');
gtk_list_store_append(dialog->List,&iter);
gtk_list_store_set(dialog->List,&iter,1,options[i],-1);
}
yon_char_parsed_free(options,size);
}
}
connection_window *yon_connection_window_new(){
GtkBuilder *builder = gtk_builder_new_from_resource(glade_connection_path);
connection_window *window = malloc(sizeof(connection_window));
@ -143,18 +239,20 @@ connection_window *yon_connection_window_new(){
window->KerberosServerEntry = yon_gtk_builder_get_widget(builder,"KerberosServerEntry");
window->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry");
window->ClientCombo = yon_gtk_builder_get_widget(builder,"ClientCombo");
window->AdditionalCombo = yon_gtk_builder_get_widget(builder,"AdditionalCombo");
window->EditButton = yon_gtk_builder_get_widget(builder,"EditButton");
window->SettingsTree = yon_gtk_builder_get_widget(builder,"SettingsTree");
window->SaveButton = yon_gtk_builder_get_widget(builder,"SaveButton");
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
window->CheckButton = yon_gtk_builder_get_widget(builder,"CheckButton");
window->OuEntry = yon_gtk_builder_get_widget(builder,"OuEntry");
window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
window->EditButton = yon_gtk_builder_get_widget(builder,"EditButton");
window->AdditionalParametersEntry = yon_gtk_builder_get_widget(builder,"AdditionalParametersEntry");
window->AdditionalParametersDefaultSwitch = yon_gtk_builder_get_widget(builder,"AdditionalParametersDefaultSwitch");
yon_gtk_entry_block_symbols(GTK_ENTRY(window->OuEntry),"!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~.");
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_signal_connect(G_OBJECT(window->StatusEntry),"clicked",G_CALLBACK(on_status_clicked),window);
g_signal_connect(G_OBJECT(window->CheckButton),"clicked",G_CALLBACK(yon_update_thread),window);
g_signal_connect(G_OBJECT(window->ClientCombo),"changed",G_CALLBACK(yon_domain_client_changed),window);
g_signal_connect(G_OBJECT(window->AdditionalParametersDefaultSwitch),"state-set",G_CALLBACK(yon_domain_client_changed_switch),window);
g_signal_connect(G_OBJECT(window->EditButton),"clicked",G_CALLBACK(yon_domain_additional_options_open),window);
yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry));
return window;

@ -73,7 +73,7 @@ void *yon_locales_load_func(language_window *window){
data_struct->lang = yon_char_new(parsed[1]);
data_struct->territory = yon_char_new(parsed[2]);
if (config_parsed_size&&yon_char_parsed_check_exist(config_parsed,config_parsed_size,parsed[2])>-1){
if (config_parsed_size&&yon_char_parsed_check_exist(config_parsed,config_parsed_size,parsed[0])>-1){
data_struct->chosen=1;
} else {
data_struct->chosen=0;

@ -25,7 +25,7 @@
#define glade_connection_path "/com/ublinux/ui/ubl-settings-system-connection.glade"
#define glade_domain_view_path "/com/ublinux/ui/ubl-settings-system-domain-view.glade"
#define glade_locales_path "/com/ublinux/ui/ubl-settings-system-layouts.glade"
#define banner_path "/com/ublinux/images/ubl-settings-system-banner.png"
#define glade_domain_options_path "/com/ublinux/ui/ubl-settings-system-domain-options.glade"
#define CssPath "/com/ublinux/css/ubl-settings-system.css"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define locale_transcriptions_path "/usr/share/ubl-settings-system/csv/locales.csv"
@ -52,12 +52,22 @@
#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,ou) 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,"\"",!yon_char_is_empty(ou)?" --ou \"":"",!yon_char_is_empty(ou)?ou:"",!yon_char_is_empty(ou)?"\"":"", addition,NULL)
#define domain_connect_command(target,user,password, addition,ou,options) 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,"\"",\
!yon_char_is_empty(ou)?" --ou \"":"",!yon_char_is_empty(ou)?ou:"",!yon_char_is_empty(ou)?"\"":"",\
!yon_char_is_empty(options)?" --authpam_opt \"":"",!yon_char_is_empty(options)?options:"",!yon_char_is_empty(options)?"\"":"",\
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 sssd_client_parameters_command "authselect list-features sssd"
#define windbind_client_parameters_command "authselect list-features winbind"
#define samba_client_parameters_command "authselect list-features winbind"
#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"
@ -187,10 +197,9 @@ typedef struct {
GtkWidget *CheckButton;
GtkWidget *KerberosServerEntry;
GtkWidget *ClientCombo;
GtkWidget *AdditionalCombo;
GtkWidget *AdditionalParametersEntry;
GtkWidget *AdditionalParametersDefaultSwitch;
GtkWidget *EditButton;
GtkWidget *SettingsTree;
GtkListStore *list;
guint timer_id;
} connection_window;
@ -204,6 +213,18 @@ typedef struct {
GtkWidget *TerminalScroll;
} domain_info_window;
typedef struct {
GtkWidget *Window;
GtkWidget *StatusBox;
GtkWidget *TitleLabel;
GtkWidget *OptionsTree;
GtkWidget *OptionsEntry;
GtkWidget *AcceptButton;
GtkWidget *CancelButton;
GtkListStore *List;
GtkCellRenderer *ChooseCell;
} domain_options_window;
struct locales_struct {
char *locale;
char *lang;
@ -272,4 +293,10 @@ void on_language_default_toggled(GtkWidget *, int status, main_window *widgets);
void on_language_remove(GtkWidget *, main_window *widgets);
gboolean yon_locale_window_set_locales(struct locales_struct *data);
void *yon_locales_load_func(language_window *window);
gboolean yon_locale_window_unlock(GtkWidget *spinner);
gboolean yon_locale_window_unlock(GtkWidget *spinner);
void yon_domain_client_changed(GtkWidget*,connection_window *window);
void on_domain_options_accept(GtkWidget *,domain_options_window *dialog);
void on_domain_options_cell_toggled(GtkCellRenderer*, gchar *path,domain_options_window *window);
domain_options_window *yon_domain_options_window_new();
void yon_domain_additional_options_open(GtkWidget *, connection_window *window);
void yon_domain_client_changed_switch(GtkWidget*,int ,connection_window *window);

@ -78,4 +78,5 @@
#define ADD_LANGUAGE_TITLE_LABEL _("Add locales")
#define ADD_LANGUAGE_TOOLTIP_LABEL _("Add locale")
#define REMOVE_LANGUAGE_LABEL _("Remove language")
#define RESTRICTED_SYMBOLS_LABEL _("OU, Organizational Unit restricted symbols: ! \" # $ % & \' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | } ~.")
#define RESTRICTED_SYMBOLS_LABEL _("OU, Organizational Unit restricted symbols: ! \" # $ % & \' ( ) * + , - . / : ; < = > ? @ [ \\ ] ^ _ ` { | } ~.")
#define ADDITIONAL_OPTIONS_LABEL _("Additional authentication profile options")

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-system">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-system.css -->
@ -13,13 +13,12 @@
<property name="can-focus">False</property>
<property name="icon-name">document-edit-symbolic</property>
</object>
<object class="GtkListStore" id="liststore1"/>
<object class="GtkApplicationWindow" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">400</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>
@ -387,8 +386,9 @@
</child>
<child>
<object class="GtkFrame">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label-xalign">0</property>
<property name="label-xalign">0.019999999552965164</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkAlignment">
@ -404,13 +404,33 @@
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkComboBoxText" id="AdditionalCombo">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<items>
<item translatable="yes">Default</item>
<item translatable="yes">Set</item>
</items>
<property name="spacing">5</property>
<child>
<object class="GtkSwitch" id="AdditionalParametersDefaultSwitch">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Default</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
@ -423,6 +443,18 @@
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkEntry" id="AdditionalParametersEntry">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">False</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
@ -432,6 +464,7 @@
<child>
<object class="GtkButton" id="EditButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image3</property>
@ -442,48 +475,19 @@
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkFrame">
<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="GtkTreeView" id="SettingsTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore1</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
@ -496,12 +500,12 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Additional options for autentification profile</property>
<property name="label" translatable="yes">Additional authentication profile options</property>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
@ -593,4 +597,5 @@
</object>
</child>
</object>
<object class="GtkListStore" id="liststore1"/>
</interface>

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.40.0 -->
<interface domain="ubl-settings-system">
<requires lib="gtk+" version="3.24"/>
<!-- interface-css-provider-path ubl-settings-system.css -->
<object class="GtkListStore" id="List">
<columns>
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name Parameter -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.cancel-uncolored-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.accept-symbolic</property>
</object>
<object class="GtkApplicationWindow" id="Window">
<property name="width-request">450</property>
<property name="height-request">400</property>
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-system</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="StatusBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<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="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">never</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="OptionsTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">List</property>
<property name="headers-visible">False</property>
<property name="show-expanders">False</property>
<child>
<object class="GtkTreeViewColumn">
<child>
<object class="GtkCellRendererToggle" id="ChooseCell"/>
<attributes>
<attribute name="active">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Option</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="markup">1</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkEntry" id="OptionsEntry">
<property name="visible">True</property>
<property name="can-focus">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</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">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar" id="SettingsBar2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child type="title">
<object class="GtkLabel" id="TitleLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Additional authentication profile options</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-system</property>
</object>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
Loading…
Cancel
Save