diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index 86d41e0..d9df80b 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -1745,6 +1745,10 @@ void on_logrotate_add(GtkWidget *, logrotate_window *dialog){ gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),""); } +void on_logrotate_edit_activate(GtkWidget*,GtkTreePath*,GtkTreeViewColumn*, logrotate_window *window){ + on_logrotate_edit(NULL,window); +} + void on_logrotate_edit(GtkWidget *, logrotate_window *window){ GtkTreeModel *model = GTK_TREE_MODEL(main_config.logrotate_list); GtkTreeIter iter; @@ -1784,6 +1788,11 @@ void on_logrotate_remove(GtkWidget *, logrotate_window *window){ } } +void on_logrotate_apps_configure_activate(GtkWidget *, GtkTreePath*, GtkTreeViewColumn*,logrotate_window *window){ + on_logrotate_apps_configure(NULL,window); +} + + void on_logrotate_apps_configure(GtkWidget *, logrotate_window *window){ GtkTreeModel *model = GTK_TREE_MODEL(main_config.logrotate_apps_list); GtkTreeIter iter,itar,itor; @@ -1880,6 +1889,14 @@ void on_logrotate_applications_tab_selection_changed(GtkWidget *, logrotate_wind } } +void on_logrotate_closed(GtkWidget *self,logrotate_window *window){ + gtk_widget_destroy(window->Menu->menu); + gtk_widget_destroy(window->AppsMenu->menu); + free(window->Menu); + free(window->AppsMenu); + on_subwindow_close(self); +} + void on_logrotate_tab_open(GtkWidget *, main_window *widgets){ logrotate_window *window = malloc(sizeof(logrotate_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_logrotate_table_path); @@ -1901,8 +1918,8 @@ void on_logrotate_tab_open(GtkWidget *, main_window *widgets){ gtk_tree_view_set_model(GTK_TREE_VIEW(window->MainTree),GTK_TREE_MODEL(main_config.logrotate_list)); gtk_tree_view_set_model(GTK_TREE_VIEW(window->AppsMainTree),GTK_TREE_MODEL(main_config.logrotate_apps_list)); - g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); - g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_logrotate_closed),NULL); + g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_logrotate_closed),NULL); g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_logrotate_add),window); g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_logrotate_remove),window); g_signal_connect(G_OBJECT(window->ConfigureButton),"clicked",G_CALLBACK(on_logrotate_edit),window); @@ -1910,6 +1927,17 @@ void on_logrotate_tab_open(GtkWidget *, main_window *widgets){ g_signal_connect(G_OBJECT(window->MainTree),"cursor-changed",G_CALLBACK(on_logrotate_tab_selection_changed),window); g_signal_connect(G_OBJECT(window->AppsMainTree),"cursor-changed",G_CALLBACK(on_logrotate_applications_tab_selection_changed),window); + g_signal_connect(G_OBJECT(window->MainTree),"row-activated",G_CALLBACK(on_logrotate_edit_activate),window); + g_signal_connect(G_OBJECT(window->AppsMainTree),"row-activated",G_CALLBACK(on_logrotate_apps_configure_activate),window); + + window->Menu = yon_rmb_menu_setup(window->MainTree,NULL,NULL, + ADD_CONFIGURATION_LABEL,add_icon_name,G_CALLBACK(on_logrotate_add),window, + REMOVE_CONFIGURATION_LABEL,remove_icon_name,G_CALLBACK(on_logrotate_remove),window, + CONFIGURE_CONFIGURATION_LABEL,settings_icon_name,G_CALLBACK(on_logrotate_edit),window, + NULL); + window->AppsMenu = yon_rmb_menu_setup(window->AppsMainTree,NULL,NULL, + IMPORT_CONFIGURATION_LABEL,import_icon_name,G_CALLBACK(on_logrotate_apps_configure),window, + NULL); gtk_widget_show(window->Window); } diff --git a/source/ubl-settings-logging.h b/source/ubl-settings-logging.h index f826847..263f89f 100644 --- a/source/ubl-settings-logging.h +++ b/source/ubl-settings-logging.h @@ -80,6 +80,7 @@ #define add_icon_name "com.ublinux.ubl-settings-logging.increase-symbolic" #define remove_icon_name "com.ublinux.libublsettingsui-gtk3.trash-symbolic" +#define import_icon_name "com.ublinux.ubl-settings-logging.back-symbolic" #define settings_icon_name "com.ublinux.ubl-settings-logging.settings-symbolic" #define start_icon_name "com.ublinux.ubl-settings-logging.play-symbolic" #define stop_icon_name "com.ublinux.ubl-settings-logging.stop-symbolic" @@ -249,6 +250,8 @@ typedef struct { GtkWidget *CancelButton; GtkWidget *SaveButton; GtkWidget *StatusBox; + rmb_menu_window *Menu; + rmb_menu_window *AppsMenu; } logrotate_window; typedef struct { @@ -450,4 +453,7 @@ void on_enable_disable_clicked(GtkButton *self, main_window *widgets); void on_permissions_changed(); void config_init(); void yon_main_window_complete(template_main_window **window); +void on_logrotate_apps_configure_activate(GtkWidget *, GtkTreePath*, GtkTreeViewColumn*,logrotate_window *window); +void on_logrotate_edit_activate(GtkWidget*,GtkTreePath*,GtkTreeViewColumn*, logrotate_window *window); +void on_logrotate_closed(GtkWidget *,logrotate_window *window); int main(int argc, char *argv[]); \ No newline at end of file