|
|
@ -695,11 +695,11 @@ void on_logrotate_configuration_path_add(GtkWidget *self, logrotate_configure_wi
|
|
|
|
gtk_list_store_append(window->list, &iter);
|
|
|
|
gtk_list_store_append(window->list, &iter);
|
|
|
|
GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(window->LogPathsTree),0);
|
|
|
|
GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(window->LogPathsTree),0);
|
|
|
|
GList *list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(column));
|
|
|
|
GList *list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(column));
|
|
|
|
GValue *val = g_malloc0(sizeof(GValue));
|
|
|
|
// GValue *val = g_malloc0(sizeof(GValue));
|
|
|
|
g_object_get_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
// g_object_get_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
g_value_set_boolean(val,1);
|
|
|
|
// g_value_set_boolean(val,1);
|
|
|
|
g_object_set_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
// g_object_set_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
free(val);
|
|
|
|
// free(val);
|
|
|
|
gtk_tree_view_set_cursor(GTK_TREE_VIEW(window->LogPathsTree),gtk_tree_model_get_path(model,&iter),column,1);
|
|
|
|
gtk_tree_view_set_cursor(GTK_TREE_VIEW(window->LogPathsTree),gtk_tree_model_get_path(model,&iter),column,1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -728,11 +728,11 @@ void on_path_editing_done(GtkCellRendererText* self,gchar* gtkpath,gchar* new_te
|
|
|
|
gtk_list_store_set(window->list,&iter,0,new_text,-1);
|
|
|
|
gtk_list_store_set(window->list,&iter,0,new_text,-1);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
GValue *val = g_malloc0(sizeof(GValue));
|
|
|
|
// GValue *val = g_malloc0(sizeof(GValue));
|
|
|
|
g_object_get_property(G_OBJECT(self),"editable",val);
|
|
|
|
// g_object_get_property(G_OBJECT(self),"editable",val);
|
|
|
|
g_value_set_boolean(val,0);
|
|
|
|
// g_value_set_boolean(val,0);
|
|
|
|
g_object_set_property(G_OBJECT(self),"editable",val);
|
|
|
|
// g_object_set_property(G_OBJECT(self),"editable",val);
|
|
|
|
free(val);
|
|
|
|
// free(val);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_path_editing_cancel(GtkCellRendererText* self,logrotate_configure_window *window){
|
|
|
|
void on_path_editing_cancel(GtkCellRendererText* self,logrotate_configure_window *window){
|
|
|
@ -752,11 +752,11 @@ void on_logrotate_configuration_path_edit(GtkWidget *self, logrotate_configure_w
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->LogPathsTree)),&model,&iter)){
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(window->LogPathsTree)),&model,&iter)){
|
|
|
|
GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(window->LogPathsTree),0);
|
|
|
|
GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(window->LogPathsTree),0);
|
|
|
|
GList *list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(column));
|
|
|
|
GList *list = gtk_cell_layout_get_cells(GTK_CELL_LAYOUT(column));
|
|
|
|
GValue *val = g_malloc0(sizeof(GValue));
|
|
|
|
// GValue *val = g_malloc0(sizeof(GValue));
|
|
|
|
g_object_get_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
// g_object_get_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
g_value_set_boolean(val,1);
|
|
|
|
// g_value_set_boolean(val,1);
|
|
|
|
g_object_set_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
// g_object_set_property(G_OBJECT(list->data),"editable",val);
|
|
|
|
free(val);
|
|
|
|
// free(val);
|
|
|
|
gtk_tree_view_set_cursor(GTK_TREE_VIEW(window->LogPathsTree),gtk_tree_model_get_path(model,&iter),column,1);
|
|
|
|
gtk_tree_view_set_cursor(GTK_TREE_VIEW(window->LogPathsTree),gtk_tree_model_get_path(model,&iter),column,1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -976,6 +976,40 @@ void on_logrotate_paths_cursor_changed(GtkWidget *self, logrotate_configure_wind
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int on_logrotate_check_repeats(GtkWidget *self, logrotate_configure_window *window){
|
|
|
|
|
|
|
|
GtkTreeIter iter,*itar;
|
|
|
|
|
|
|
|
GtkTreeModel *model = GTK_TREE_MODEL(window->list);
|
|
|
|
|
|
|
|
char *chpath=NULL;
|
|
|
|
|
|
|
|
char *path=NULL;
|
|
|
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(model,&iter);
|
|
|
|
|
|
|
|
itar=gtk_tree_iter_copy(&iter);
|
|
|
|
|
|
|
|
for (;valid;valid = gtk_tree_model_iter_next(model,&iter)){
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,&iter,0,&chpath,-1);
|
|
|
|
|
|
|
|
int valid1 = gtk_tree_model_get_iter_first(model,itar);
|
|
|
|
|
|
|
|
for (;valid1;valid1=gtk_tree_model_iter_next(model,itar)){
|
|
|
|
|
|
|
|
GtkTreePath *path_iter = gtk_tree_model_get_path(model,&iter);
|
|
|
|
|
|
|
|
GtkTreePath *path_itar = gtk_tree_model_get_path(model,itar);
|
|
|
|
|
|
|
|
if (gtk_tree_path_compare(path_iter,path_itar)){
|
|
|
|
|
|
|
|
gtk_tree_model_get(model,&iter,0,&path,-1);
|
|
|
|
|
|
|
|
if (!strcmp(path,chpath)){
|
|
|
|
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),REPEAT_PATHS_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
|
|
|
|
yon_ubl_status_list_store_highlight_incorrect(window->list,itar);
|
|
|
|
|
|
|
|
GtkTreeIter *ittr = gtk_tree_iter_copy(&iter);
|
|
|
|
|
|
|
|
yon_ubl_status_list_store_highlight_incorrect(window->list,ittr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
free(path);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
gtk_tree_path_free(path_iter);
|
|
|
|
|
|
|
|
gtk_tree_path_free(path_itar);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_logrotate_save(GtkWidget *self, dictionary *dict){
|
|
|
|
void on_logrotate_save(GtkWidget *self, dictionary *dict){
|
|
|
|
logrotate_window *dialog = yon_dictionary_get_data(dict->first,logrotate_window*);
|
|
|
|
logrotate_window *dialog = yon_dictionary_get_data(dict->first,logrotate_window*);
|
|
|
|
logrotate_configure_window *window = yon_dictionary_get_data(dict->first->next,logrotate_configure_window*);
|
|
|
|
logrotate_configure_window *window = yon_dictionary_get_data(dict->first->next,logrotate_configure_window*);
|
|
|
@ -1035,6 +1069,7 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (on_logrotate_check_repeats(NULL,window)==1) return;
|
|
|
|
GtkTreeIter *lastiter;
|
|
|
|
GtkTreeIter *lastiter;
|
|
|
|
GtkTreeIter *lastitar;
|
|
|
|
GtkTreeIter *lastitar;
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){
|
|
|
|
for (;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(window->list),&iter)){
|
|
|
@ -1352,6 +1387,7 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
|
|
|
|
g_signal_connect(G_OBJECT(window->PathCell),"editing-canceled",G_CALLBACK(on_path_editing_cancel),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->PathCell),"editing-canceled",G_CALLBACK(on_path_editing_cancel),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->LogPathAddButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_filechooser_open),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->LogPathAddButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_filechooser_open),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->LogPathEditButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_filechooser_open),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->LogPathEditButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_filechooser_open),window);
|
|
|
|
|
|
|
|
// g_signal_connect(G_OBJECT(window->LogPathsTree),"changed",G_CALLBACK(on_logrotate_paths_done),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->LogPathRemoveButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_remove),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->LogPathRemoveButton),"clicked",G_CALLBACK(on_logrotate_configuration_path_remove),window);
|
|
|
|
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->RotationPeriodCheck),"toggled",G_CALLBACK(on_logrotate_period_check_toggled),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->RotationPeriodCheck),"toggled",G_CALLBACK(on_logrotate_period_check_toggled),window);
|
|
|
|