diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 3edbf50..87c4d28 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -8,10 +8,10 @@ include_directories(${GTK_INCLUDE_DIRS}) link_directories(${GTK_LIBRARY_DIRS}) add_definitions(${GTK_CFLAGS_OTHER}) -#pkg_check_modules(VTE291 REQUIRED vte-2.91) -#include_directories(${VTE291_INCLUDE_DIRS}) -#link_directories(${VTE291_LIBRARY_DIRS}) -#add_definitions(${VTE291_CFLAGS_OTHER}) +pkg_check_modules(VTE291 REQUIRED vte-2.91) +include_directories(${VTE291_INCLUDE_DIRS}) +link_directories(${VTE291_LIBRARY_DIRS}) +add_definitions(${VTE291_CFLAGS_OTHER}) find_library(WEBKIT_LIBRARIES_FOUND webkit2gtk-4.0 webkit2gtk-web-extension-4.0) @@ -89,7 +89,7 @@ set(SOURCE_FILES set(LIBRARIES ${GTK_LIBRARIES} ${WEBKIT_LIBRARIES} -# ${VTE291_LIBRARIES} + ${VTE291_LIBRARIES} pthread) diff --git a/source/ubl-settings-logging.c b/source/ubl-settings-logging.c index 88b0d51..76bafe6 100644 --- a/source/ubl-settings-logging.c +++ b/source/ubl-settings-logging.c @@ -125,19 +125,20 @@ int yon_size_get_int_from_letter(char size){ //functions - void update_loaded_logrotate(){ int size=0; gtk_list_store_clear(main_config.logrotate_list); GtkTreeIter iter; config_str loaded = yon_config_get_all_by_key("LOGROTATE[",&size); + char *desc; for (int i=0;itextbuffer1,&titer,&titerend); - gtk_text_buffer_delete(window->textbuffer1,&titer,&titerend); config_str output; if (!strcmp(window->journal_name,"journald")){ if (self==window->UpdateButton){ switch(window->last_mode){ - case 0: output = yon_config_load(get_journal_output_command, &size); + case 0: + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_command,NULL,NULL); break; - case 1: output = yon_config_load(get_journal_output_since_boot_command, &size); + case 1: + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_since_boot_command,NULL,NULL); break; - case 2: output = yon_config_load(get_journal_output_followed_command, &size); + case 2: + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_followed_command,NULL,NULL); break; - case 3: output = yon_config_load(get_journal_output_kernel_command, &size); + case 3: + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_kernel_command,NULL,NULL); break; - case 4: output = yon_config_load(get_journal_output_prioritied_command, &size); + case 4: + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_prioritied_command,NULL,NULL); break; } } if (self==window->ShowSinceBootButton){ window->last_mode=1; - output = yon_config_load(get_journal_output_since_boot_command, &size); + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_since_boot_command,NULL,NULL); } if (self==window->NewMessagesButton){ window->last_mode=2; - output = yon_config_load(get_journal_output_followed_command, &size); + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_followed_command,NULL,NULL); } if (self==window->ShowKernelButton){ window->last_mode=3; - output = yon_config_load(get_journal_output_kernel_command, &size); + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_kernel_command,NULL,NULL); } if (self==window->ShowPriorityButton){ window->last_mode=4; - output = yon_config_load(get_journal_output_prioritied_command, &size); - } - if (output){ - for (int i=0;itextbuffer1,&titer); - gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1); - } - gtk_text_buffer_get_end_iter(window->textbuffer1,&titer); - gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTextView),&titer,0.25,0,1,0); + yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_prioritied_command,NULL,NULL); } + // if (output){ + // for (int i=0;itextbuffer1,&titer); + // gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1); + // } + // gtk_text_buffer_get_end_iter(window->textbuffer1,&titer); + // gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTerminal),&titer,0.25,0,1,0); + // } } else { - window->journal_paths = yon_char_replace(window->journal_paths,"\n"," "); - output = yon_config_load(yon_char_unite("cat ",window->journal_paths,NULL),&size); - for (int i=0;itextbuffer1,&titer); - gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1); - } - gtk_text_buffer_get_end_iter(window->textbuffer1,&titer); - gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTextView),&titer,0.25,0,1,0); + // window->journal_paths = yon_char_replace(window->journal_paths,"\n"," "); + // output = yon_config_load(yon_char_unite("cat ",window->journal_paths,NULL),&size); + // for (int i=0;itextbuffer1,&titer); + // gtk_text_buffer_insert(window->textbuffer1,&titer,output[i],-1); + // } + // gtk_text_buffer_get_end_iter(window->textbuffer1,&titer); + // gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(window->LoggingTerminal),&titer,0.25,0,1,0); } } void on_inspector_open(GtkWidget *self, main_window *widgets){ inspector_window *window = malloc(sizeof(inspector_window)); GtkBuilder *builder = gtk_builder_new_from_resource(glade_inspector_path); - window->textbuffer1=GTK_TEXT_BUFFER(gtk_builder_get_object(builder,"textbuffer1")); window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); window->ShowSinceBootButton=yon_gtk_builder_get_widget(builder,"ShowSinceBootButton"); window->NewMessagesButton=yon_gtk_builder_get_widget(builder,"NewMessagesButton"); window->ShowKernelButton=yon_gtk_builder_get_widget(builder,"ShowKernelButton"); window->ShowPriorityButton=yon_gtk_builder_get_widget(builder,"ShowPriorityButton"); window->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton"); - window->LoggingTextView=yon_gtk_builder_get_widget(builder,"LoggingTextView"); + window->LoggingTerminal=yon_gtk_builder_get_widget(builder,"LoggingTerminal"); window->JournalActionsBox=yon_gtk_builder_get_widget(builder,"JournalActionsBox"); gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL); GtkTreeModel *model = GTK_TREE_MODEL(widgets->list); @@ -745,15 +748,27 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){ char *after = (char*)gtk_entry_get_text(GTK_ENTRY(window->CommandAfterEntry)); char *endwork = (char*)gtk_entry_get_text(GTK_ENTRY(window->EndworkCommandEntry)); sharedscripts = "sharedscripts"; - if (!yon_char_is_empty(before_once)) + if (!yon_char_is_empty(before_once)) { + before_once = yon_char_replace(before_once,"\"","=--"); + before_once = yon_char_replace(before_once,"=--","\\\""); firstaction = yon_char_append("firstaction ",before_once); - if (!yon_char_is_empty(after_once)) + } + if (!yon_char_is_empty(after_once)) { + after_once = yon_char_replace(after_once,"\"","=--"); + after_once = yon_char_replace(after_once,"=--","\\\""); lastaction = yon_char_append("lastaction ",after_once); - if (!yon_char_is_empty(before)) + } + if (!yon_char_is_empty(before)) { + before = yon_char_replace(before,"\"","=--"); + before = yon_char_replace(before,"=--","\\\""); prerotate = yon_char_append("prerotate ",before); - if (!yon_char_is_empty(after)) + } + if (!yon_char_is_empty(after)) { + after = yon_char_replace(after,"\"","=--"); + after = yon_char_replace(after,"=--","\\\""); postrotate = yon_char_append("postrotate ",after); - if (!yon_char_is_empty(endwork)) + } + if (!yon_char_is_empty(firstaction)||!yon_char_is_empty(after_once)||!yon_char_is_empty(before)||!yon_char_is_empty(after)) endscript = yon_char_append("endscript ",endwork); } @@ -762,8 +777,13 @@ void on_logrotate_save(GtkWidget *self, dictionary *dict){ free(yon_char_divide_search(commandline,",",-1)); } if(!yon_char_is_empty(paths)){ + if(window->paths){ + yon_config_remove_by_key(window->paths); + yon_window_config_erase_custom_parameter(window->paths,"description"); + } GtkTreeIter iter; yon_config_register(LOGROTATE(paths),"logging",commandline); + yon_window_config_add_custom_parameter(paths,"description",yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->LogDescriptionEntry))),YON_TYPE_STRING); GtkTreeModel *model = GTK_TREE_MODEL(main_config.logrotate_list); if (!dialog||!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->MainTree)),&model,&iter)){ gtk_list_store_append(main_config.logrotate_list,&iter); @@ -839,6 +859,7 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind window->CommandAfterEntry=yon_gtk_builder_get_widget(builder,"CommandAfterEntry"); window->EndworkCommandEntry=yon_gtk_builder_get_widget(builder,"EndworkCommandEntry"); gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL); + window->paths=paths; if (paths){ int sz; @@ -1035,7 +1056,7 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind gtk_entry_set_text(GTK_ENTRY(window->CommandBeforeEntry),value); i++; }else if (strstr(parsed[i],"postrotate")){ - char *value = parsed[i+1]; + char *value = strstr(parsed[i]," ")+1; gtk_entry_set_text(GTK_ENTRY(window->CommandAfterEntry),value); i++; // }else if (!strcmp(parsed[i],"preremove")){ @@ -1082,11 +1103,11 @@ void on_logrotate_edit(GtkWidget *self, logrotate_window *window){ gtk_widget_show(dialog->MainWindow); gtk_tree_model_get(model,&iter,0,&name,1,&paths,2,&description,-1); gtk_entry_set_text(GTK_ENTRY(dialog->LogNameEntry),name); - gtk_entry_set_text(GTK_ENTRY(dialog->LogDescriptionEntry),description); + gtk_entry_set_text(GTK_ENTRY(dialog->LogDescriptionEntry),description ? description : ""); gtk_widget_set_can_focus(dialog->LogNameEntry,0); - gtk_widget_set_can_focus(dialog->LogDescriptionEntry,0); + // gtk_widget_set_can_focus(dialog->LogDescriptionEntry,0); gtk_entry_set_has_frame(GTK_ENTRY(dialog->LogNameEntry),0); - gtk_entry_set_has_frame(GTK_ENTRY(dialog->LogDescriptionEntry),0); + // gtk_entry_set_has_frame(GTK_ENTRY(dialog->LogDescriptionEntry),0); gtk_style_context_add_class(gtk_widget_get_style_context(dialog->LogNameEntry),"nobackground"); gtk_style_context_add_class(gtk_widget_get_style_context(dialog->LogDescriptionEntry),"nobackground"); } @@ -1635,7 +1656,7 @@ void on_log_edit(GtkWidget *self,main_window *widgets){ // g_signal_connect(G_OBJECT(window->SyslogButton),"clicked", G_CALLBACK(yon_journald_open),widgets); } window->log_name=name; - gtk_entry_set_text(GTK_ENTRY(window->LogDescriptionEntry),description); + gtk_entry_set_text(GTK_ENTRY(window->LogDescriptionEntry),description ? description : ""); config_str paths_parsed = yon_char_parse(paths,&size,"\n"); GtkWidget *last=NULL; for (int i=0;iLogTypeCombo,0); - gtk_widget_set_sensitive(window->LogDescriptionEntry,0); + // gtk_widget_set_sensitive(window->LogDescriptionEntry,0); } } @@ -1920,12 +1941,15 @@ main_window *setup_window(){ GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->MainTree)); for (int i=0; iServicesTree)); for (int i=0; iHeadInfoLabel,"head-text","label",YON_TYPE_STRING); @@ -2045,7 +2069,6 @@ int main(int argc, char *argv[]){ yon_ubl_status_box_render(LOCAL_LOAD_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); yon_ubl_setup_sockets(widgets->PlugBox,widgets->LeftBox,widgets->RightBox,main_config.socket_id,main_config.load_socket_id,main_config.save_socket_id); yon_window_config_setup(GTK_WINDOW(widgets->Window)); - yon_load_proceed(YON_CONFIG_LOCAL); yon_window_config_load(config_path); yon_load_proceed(YON_CONFIG_LOCAL); update_loaded_logrotate(); diff --git a/source/ubl-settings-logging.h b/source/ubl-settings-logging.h index d34a001..7c5a7bb 100644 --- a/source/ubl-settings-logging.h +++ b/source/ubl-settings-logging.h @@ -8,6 +8,7 @@ #include #include #include +#include #include "../compile/ubl-cmake.h" #ifdef WEBKIT_FOUND #include @@ -43,11 +44,11 @@ #define JOURNALD(key) yon_char_unite("JOURNALD[",key,"]",NULL) #define LOGROTATE(key) yon_char_unite("LOGROTATE[",key,"]",NULL) -#define get_journal_output_command "journalctl --no-pager" -#define get_journal_output_since_boot_command "journalctl --no-pager -b" -#define get_journal_output_followed_command "journalctl --no-pager -f" -#define get_journal_output_kernel_command "journalctl --no-pager -k" -#define get_journal_output_prioritied_command "journalctl --no-pager -p err..alert" +#define get_journal_output_command "clear;journalctl --no-pager" +#define get_journal_output_since_boot_command "clear;journalctl --no-pager -b" +#define get_journal_output_followed_command "clear;journalctl --no-pager -f" +#define get_journal_output_kernel_command "clear;journalctl --no-pager -k" +#define get_journal_output_prioritied_command "clear;journalctl --no-pager -p err..alert" #define start_icon_name "com.ublinux.ubl-settings-logging.play-symbolic" #define stop_icon_name "com.ublinux.ubl-settings-logging.stop-symbolic" @@ -187,7 +188,6 @@ typedef struct { } add_log_window; typedef struct { -GtkTextBuffer *textbuffer1; GtkWidget *MainWindow; GtkWidget *plugBox; GtkWidget *ShowSinceBootButton; @@ -195,7 +195,7 @@ GtkWidget *NewMessagesButton; GtkWidget *ShowKernelButton; GtkWidget *ShowPriorityButton; GtkWidget *UpdateButton; -GtkWidget *LoggingTextView; +GtkWidget *LoggingTerminal; GtkWidget *JournalActionsBox; int last_mode; char *journal_name; @@ -338,6 +338,7 @@ typedef struct { GtkWidget *CommandBeforeEntry; GtkWidget *CommandAfterEntry; GtkWidget *EndworkCommandEntry; + char *paths; } logrotate_configure_window; main_window *setup_window(); \ No newline at end of file diff --git a/source/ubl-utils.c b/source/ubl-utils.c index a50de19..6d633ee 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -1632,7 +1632,7 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end NULL, NULL, NULL); - vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), 100); + vte_terminal_set_scrollback_lines(VTE_TERMINAL(terminal), -1); vte_terminal_set_scroll_on_output(VTE_TERMINAL(terminal), TRUE); vte_terminal_set_scroll_on_keystroke(VTE_TERMINAL(terminal), TRUE); gtk_widget_show_all(terminal); @@ -1860,6 +1860,11 @@ void yon_terminal_integrated_start(GtkWidget *terminal, char* command, void *end param->property = tracked_value; param->containing_type = val_type; yon_dictionary_add_or_create_if_exists_with_data(__yon_main_window_config.custom_parameters,param->parameter_name,param); + dictionary *dict=NULL; + for_dictionaries(dict,__yon_main_window_config.deleted_parameters){ + if (strcmp(dict->key,param->parameter_name)) + yon_dictionary_rip(dict); + } } void yon_window_config_erase_custom_parameter(char *param_name, char *section){ @@ -1962,6 +1967,11 @@ int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find){ } return -1; } +void yon_gtk_column_minimal_fixed_size_set(GtkTreeViewColumn *column){ + int width= gtk_tree_view_column_get_width(column); + gtk_tree_view_column_set_min_width(column,width); +} + /**yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...) * [EN] * diff --git a/source/ubl-utils.h b/source/ubl-utils.h index 79dcf00..a76516e 100644 --- a/source/ubl-utils.h +++ b/source/ubl-utils.h @@ -14,6 +14,7 @@ #include #include #include +#include #include "../compile/ubl-cmake.h" #ifdef WEBKIT_FOUND @@ -291,6 +292,8 @@ int yon_gtk_combo_box_fill(GtkWidget *combo, char **parameters,int size); int yon_gtk_combo_box_text_find(GtkWidget *combo_box, char *text_to_find); +void yon_gtk_column_minimal_fixed_size_set(GtkTreeViewColumn *column); + int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment); int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...); diff --git a/ubl-settings-logging-inspector.glade b/ubl-settings-logging-inspector.glade index 33f25fa..907f0f4 100644 --- a/ubl-settings-logging-inspector.glade +++ b/ubl-settings-logging-inspector.glade @@ -2,6 +2,7 @@ + 100 @@ -13,6 +14,11 @@ 1 10 + + 100 + 1 + 10 + True False @@ -53,7 +59,6 @@ False emblem-shared-symbolic - 800 600 @@ -238,27 +243,16 @@ - + True True - adjustment1 - adjustment2 - in - - - True - True - 5 - 5 - 5 - 5 - adjustment1 - adjustment2 - False - textbuffer1 - terminal - - + natural + adjustment3 + natural + UTF-8 + 0 + True + False True @@ -266,6 +260,19 @@ 1 + + + True + False + vertical + adjustment3 + + + False + True + 2 + + True @@ -315,4 +322,5 @@ + diff --git a/ubl-settings-logging-logrotate.glade b/ubl-settings-logging-logrotate.glade index b1f96a6..0522ee4 100644 --- a/ubl-settings-logging-logrotate.glade +++ b/ubl-settings-logging-logrotate.glade @@ -232,7 +232,6 @@ True - False True diff --git a/ubl-settings-logging.glade b/ubl-settings-logging.glade index ee39e3d..3447898 100644 --- a/ubl-settings-logging.glade +++ b/ubl-settings-logging.glade @@ -947,7 +947,7 @@ translated and supported by community. fixed - 30 + 30 Status @@ -960,7 +960,7 @@ translated and supported by community. fixed - 30 + 30 Autostart