User info window

pull/262/head
parent 4483dc7917
commit 12569020b2
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -1854,6 +1854,62 @@ void on_main_delete(GtkWidget *, main_window *widgets){
}
}
void on_user_info_print(GtkWidget *,yon_user_info_window *window){
filechooser_window *dialog = yon_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SAVE);
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),SAVE_USER_INFO_LABEL,icon_path,"filechooser_window");
GtkFileFilter *filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(filter,"*.pdf");
gtk_file_filter_set_name(filter,"PDF");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog->MainFileChooser),filter);
if (yon_file_chooser_start(dialog)==GTK_RESPONSE_APPLY){
char *path = dialog->last_success_selection;
char *command = user_info_pdf_command(window->target_user,path);
yon_launch(command);
free(command);
free(dialog);
}
}
void on_user_info_save(GtkWidget *,yon_user_info_window *window){
filechooser_window *dialog = yon_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SAVE);
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),SAVE_USER_INFO_LABEL,icon_path,"filechooser_window");
GtkFileFilter *filter = gtk_file_filter_new();
gtk_file_filter_add_pattern(filter,"*.txt");
gtk_file_filter_set_name(filter,"TXT");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog->MainFileChooser),filter);
if (yon_file_chooser_start(dialog)==GTK_RESPONSE_APPLY){
char *path = dialog->last_success_selection;
char *command = user_info_txt_command(window->target_user,path);
yon_launch(command);
free(command);
free(dialog);
}
}
yon_user_info_window *yon_user_info_window_new(){
yon_user_info_window *window = new(yon_user_info_window);
GtkBuilder *builder = gtk_builder_new_from_resource(ui_glade_path_debug);
window->Window = yon_gtk_builder_get_widget(builder,"Window");
window->Terminal = yon_gtk_builder_get_widget(builder,"DebuggerTerminal");
window->HeaderImage = yon_gtk_builder_get_widget(builder,"HeaderImage");
window->PrintButton = gtk_button_new_from_icon_name(icon_path_print,GTK_ICON_SIZE_BUTTON);
window->SaveButton = gtk_button_new_from_icon_name(icon_path_save,GTK_ICON_SIZE_BUTTON);
window->target_user = NULL;
g_signal_connect(G_OBJECT(window->PrintButton),"clicked",G_CALLBACK(on_user_info_print),window);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_user_info_save),window);
gtk_image_set_from_icon_name(GTK_IMAGE(window->HeaderImage),icon_path,GTK_ICON_SIZE_BUTTON);
gtk_widget_set_tooltip_markup(window->PrintButton,PRINT_TOOLTIP_LABEL);
gtk_widget_set_tooltip_markup(window->SaveButton,SAVE_LABEL);
GtkWidget *titlebar = gtk_window_get_titlebar(GTK_WINDOW(window->Window));
gtk_header_bar_pack_end(GTK_HEADER_BAR(titlebar),window->SaveButton);
gtk_header_bar_pack_end(GTK_HEADER_BAR(titlebar),window->PrintButton);
gtk_widget_show(window->PrintButton);
gtk_widget_show(window->SaveButton);
return window;
}
void on_user_info(GtkWidget *,main_window *widgets){
int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->MainNotebook));
char *target_user = NULL;
@ -1877,7 +1933,12 @@ void on_user_info(GtkWidget *,main_window *widgets){
}
gtk_tree_model_get(model,&iter,2,&target_user,-1);
char *command = user_info_command(target_user);
yon_terminal_window_launch(GTK_WINDOW(widgets->Window),command,yon_char_get_localised_from_lib(SUCCESS_LABEL),yon_char_get_localised_from_lib(FAIL_LABEL));
// yon_terminal_window_launch(GTK_WINDOW(widgets->Window),command,yon_char_get_localised_from_lib(SUCCESS_LABEL),yon_char_get_localised_from_lib(FAIL_LABEL));
yon_user_info_window *window = yon_user_info_window_new();
window->target_user = target_user;
yon_gtk_window_setup(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->Window),USER_INFO_LABEL,icon_path,"user_info_window");
yon_terminal_integrated_start(window->Terminal,command);
gtk_widget_show(window->Window);
}
void on_config_update(GtkWidget *, main_window *widgets){

@ -40,6 +40,9 @@
#define icon_path "com.ublinux.ubl-settings-usergroups"
#define sync_parameters_path "resource:///com/ublinux/csv/sync_parameters.csv"
#define icon_path_print "com.ublinux.libublsettingsui-gtk3.print-symbolic"
#define icon_path_save "com.ublinux.libublsettingsui-gtk3.save-symbolic"
#define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-usergroups"
@ -99,6 +102,8 @@
#define password_hash_get_command(passwd) yon_char_append("mkpasswd2 ",passwd)
#define user_info_command(target) yon_char_append("echo ",target)
#define user_info_pdf_command(target,path) yon_char_unite("echo ",target,path,NULL)
#define user_info_txt_command(target,path) yon_char_unite("echo ",target,path,NULL)
#define config_get_command(source) yon_char_unite("ubconfig --source ",source," get users DEFAULTPASSWD DEFAULTROOTPASSWD DEFAULTUSER HASHPASSWD USERGROUPS ADDADM USERADD[*] USERADD_SYNC USERADD_SYNC[*] USERSHADOW[*] USERSHADOW_SYNC[*] GROUPADD[*] GROUPADD_SYNC[*] GROUPADD_SYNC",NULL),yon_char_unite("ubconfig --source ",source," get [system] SYSTEMBOOT_STATEMODE",NULL),yon_char_unite("ubconfig --source ",source," get [save] SAVE_ROOTCOPY_CHANGES",NULL)
#define config_get_default_command "ubconfig --source default get users DEFAULTPASSWD DEFAULTROOTPASSWD USERGROUPS DEFAULTUSER HASHPASSWD ADDADM"
@ -360,6 +365,16 @@ typedef struct{
GtkWidget *NoEncriptionCheck;
} ubl_settings_usergroups_password_window;
typedef struct {
GtkWidget *Window;
GtkWidget *Terminal;
GtkWidget *HeaderImage;
GtkWidget *PrintButton;
GtkWidget *SaveButton;
char *target_user;
} yon_user_info_window;
typedef struct{
GtkListStore *liststore1;
GtkListStore *liststore2;
@ -599,4 +614,7 @@ void *yon_passwords_encrypt(dictionary *dict);
gboolean on_filter(GtkTreeModel* model, GtkTreeIter *iter, main_window *widgets);
void on_filter_changed(GtkWidget *self, main_window *widgets);
void on_user_info(GtkWidget *,main_window *widgets);
yon_user_info_window *yon_user_info_window_new();
void on_user_info_save(GtkWidget *,yon_user_info_window *window);
void on_user_info_print(GtkWidget *,yon_user_info_window *window);
#endif

@ -28,6 +28,9 @@
#define EXTRA_OPTIONS_USER_LABEL _("Extra options:")
#define CANCEL_LABEL _("Cancel")
#define OK_LABEL _("Ok")
#define PRINT_TOOLTIP_LABEL _("Print")
#define USER_INFO_LABEL _("User information")
#define SAVE_USER_INFO_LABEL _("Save user information")
#define BLOCK_LABEL _("Block")
#define MAIN_GROUP_LABEL _("Main\ngroup")

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2
<!-- Generated with glade 3.40.0
ubl-settings-usergroups -
Copyright (C) UBGroup
@ -345,7 +345,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Additional settings</property>
<property name="tooltip-text" translatable="yes">User information</property>
<property name="image">image6</property>
<style>
<class name="thin"/>

Loading…
Cancel
Save