|
|
|
@ -237,66 +237,93 @@ void on_inspector_update(GtkWidget *self, inspector_window *window){
|
|
|
|
GtkTextIter titer,titerend;
|
|
|
|
GtkTextIter titer,titerend;
|
|
|
|
config_str output;
|
|
|
|
config_str output;
|
|
|
|
if (!strcmp(window->journal_name,"journald")){
|
|
|
|
if (!strcmp(window->journal_name,"journald")){
|
|
|
|
|
|
|
|
GtkWidget *terminal = (GtkWidget*)window->terminals->first->data;
|
|
|
|
if (self==window->UpdateButton){
|
|
|
|
if (self==window->UpdateButton){
|
|
|
|
switch(window->last_mode){
|
|
|
|
switch(window->last_mode){
|
|
|
|
case 0:
|
|
|
|
case 0:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
case 1:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_since_boot_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_since_boot_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
case 2:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_followed_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_followed_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
case 3:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_kernel_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_kernel_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
case 4:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_prioritied_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_prioritied_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
case 5:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_all_boots_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_all_boots_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 6:
|
|
|
|
case 6:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_all_units_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_all_units_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 7:
|
|
|
|
case 7:
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_init_tree_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_init_tree_command,NULL,NULL);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (self==window->ShowSinceBootButton){
|
|
|
|
if (self==window->ShowSinceBootButton){
|
|
|
|
window->last_mode=1;
|
|
|
|
window->last_mode=1;
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_since_boot_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_since_boot_command,NULL,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (self==window->NewMessagesButton){
|
|
|
|
if (self==window->NewMessagesButton){
|
|
|
|
window->last_mode=2;
|
|
|
|
window->last_mode=2;
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_followed_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_followed_command,NULL,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (self==window->ShowKernelButton){
|
|
|
|
if (self==window->ShowKernelButton){
|
|
|
|
window->last_mode=3;
|
|
|
|
window->last_mode=3;
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_kernel_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_kernel_command,NULL,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (self==window->ShowPriorityButton){
|
|
|
|
if (self==window->ShowPriorityButton){
|
|
|
|
window->last_mode=4;
|
|
|
|
window->last_mode=4;
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_output_prioritied_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_output_prioritied_command,NULL,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (self==window->ShowAllBootsButton){
|
|
|
|
if (self==window->ShowAllBootsButton){
|
|
|
|
window->last_mode=5;
|
|
|
|
window->last_mode=5;
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_all_boots_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_all_boots_command,NULL,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (self==window->ShowAllUnitsButton){
|
|
|
|
if (self==window->ShowAllUnitsButton){
|
|
|
|
window->last_mode=6;
|
|
|
|
window->last_mode=6;
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_all_units_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_all_units_command,NULL,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (self==window->ShowInitTreeButton){
|
|
|
|
if (self==window->ShowInitTreeButton){
|
|
|
|
window->last_mode=7;
|
|
|
|
window->last_mode=7;
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal, get_journal_init_tree_command,NULL,NULL);
|
|
|
|
yon_terminal_integrated_start(terminal, get_journal_init_tree_command,NULL,NULL);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
window->journal_paths = yon_char_replace(window->journal_paths,"\n"," ");
|
|
|
|
if (window->terminals){
|
|
|
|
yon_terminal_integrated_start(window->LoggingTerminal,yon_char_unite("cat ",window->journal_paths,NULL),NULL,NULL);
|
|
|
|
dictionary *dict=NULL;
|
|
|
|
|
|
|
|
for_dictionaries (dict,window->terminals){
|
|
|
|
|
|
|
|
GtkWidget *terminal = (GtkWidget*)dict->data;
|
|
|
|
|
|
|
|
// window->journal_paths = yon_char_replace(window->journal_paths,"\n"," ");
|
|
|
|
|
|
|
|
yon_terminal_integrated_start(terminal,yon_char_unite("cat ",dict->key,NULL),NULL,NULL);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GtkWidget *yon_inspector_add_terminal(inspector_window *window,char *page_name){
|
|
|
|
|
|
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_terminal_path);
|
|
|
|
|
|
|
|
GtkWidget *box = yon_gtk_builder_get_widget(builder,"TerminalBox");
|
|
|
|
|
|
|
|
GtkWidget *terminal = yon_gtk_builder_get_widget(builder,"LoggingTerminal");
|
|
|
|
|
|
|
|
GtkWidget *label = gtk_label_new(page_name);
|
|
|
|
|
|
|
|
gtk_notebook_append_page(GTK_NOTEBOOK(window->LoggingNotebook),box,label);
|
|
|
|
|
|
|
|
GdkRGBA rgba;
|
|
|
|
|
|
|
|
rgba.alpha=1;
|
|
|
|
|
|
|
|
rgba.red=0.95;
|
|
|
|
|
|
|
|
rgba.green=0.95;
|
|
|
|
|
|
|
|
rgba.blue=0.95;
|
|
|
|
|
|
|
|
vte_terminal_set_color_background(VTE_TERMINAL(terminal),&rgba);
|
|
|
|
|
|
|
|
rgba.red=0;
|
|
|
|
|
|
|
|
rgba.green=0;
|
|
|
|
|
|
|
|
rgba.blue=0;
|
|
|
|
|
|
|
|
vte_terminal_set_color_foreground(VTE_TERMINAL(terminal),&rgba);
|
|
|
|
|
|
|
|
return terminal;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void on_inspector_open(GtkWidget *self, main_window *widgets){
|
|
|
|
void on_inspector_open(GtkWidget *self, main_window *widgets){
|
|
|
|
@ -310,8 +337,8 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){
|
|
|
|
window->ShowAllBootsButton=yon_gtk_builder_get_widget(builder,"ShowAllBootsButton");
|
|
|
|
window->ShowAllBootsButton=yon_gtk_builder_get_widget(builder,"ShowAllBootsButton");
|
|
|
|
window->ShowAllUnitsButton=yon_gtk_builder_get_widget(builder,"ShowAllUnitsButton");
|
|
|
|
window->ShowAllUnitsButton=yon_gtk_builder_get_widget(builder,"ShowAllUnitsButton");
|
|
|
|
window->ShowInitTreeButton=yon_gtk_builder_get_widget(builder,"ShowInitTreeButton");
|
|
|
|
window->ShowInitTreeButton=yon_gtk_builder_get_widget(builder,"ShowInitTreeButton");
|
|
|
|
|
|
|
|
window->LoggingNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook");
|
|
|
|
window->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
|
|
|
|
window->UpdateButton=yon_gtk_builder_get_widget(builder,"UpdateButton");
|
|
|
|
window->LoggingTerminal=yon_gtk_builder_get_widget(builder,"LoggingTerminal");
|
|
|
|
|
|
|
|
window->JournalActionsBox=yon_gtk_builder_get_widget(builder,"JournalActionsBox");
|
|
|
|
window->JournalActionsBox=yon_gtk_builder_get_widget(builder,"JournalActionsBox");
|
|
|
|
yon_window_config_custom_window_setup(GTK_WINDOW(window->MainWindow),"InspectorWindow");
|
|
|
|
yon_window_config_custom_window_setup(GTK_WINDOW(window->MainWindow),"InspectorWindow");
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
|
|
|
|
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
|
|
|
|
@ -320,16 +347,6 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){
|
|
|
|
GtkTreeIter iter;
|
|
|
|
GtkTreeIter iter;
|
|
|
|
char *name;
|
|
|
|
char *name;
|
|
|
|
char *paths;
|
|
|
|
char *paths;
|
|
|
|
GdkRGBA rgba;
|
|
|
|
|
|
|
|
rgba.alpha=1;
|
|
|
|
|
|
|
|
rgba.red=0.95;
|
|
|
|
|
|
|
|
rgba.green=0.95;
|
|
|
|
|
|
|
|
rgba.blue=0.95;
|
|
|
|
|
|
|
|
vte_terminal_set_color_background(VTE_TERMINAL(window->LoggingTerminal),&rgba);
|
|
|
|
|
|
|
|
rgba.red=0;
|
|
|
|
|
|
|
|
rgba.green=0;
|
|
|
|
|
|
|
|
rgba.blue=0;
|
|
|
|
|
|
|
|
vte_terminal_set_color_foreground(VTE_TERMINAL(window->LoggingTerminal),&rgba);
|
|
|
|
|
|
|
|
g_signal_connect(G_OBJECT(window->UpdateButton),"clicked", G_CALLBACK(on_inspector_update),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->UpdateButton),"clicked", G_CALLBACK(on_inspector_update),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->ShowKernelButton),"clicked", G_CALLBACK(on_inspector_update),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->ShowKernelButton),"clicked", G_CALLBACK(on_inspector_update),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->NewMessagesButton),"clicked", G_CALLBACK(on_inspector_update),window);
|
|
|
|
g_signal_connect(G_OBJECT(window->NewMessagesButton),"clicked", G_CALLBACK(on_inspector_update),window);
|
|
|
|
@ -341,14 +358,21 @@ void on_inspector_open(GtkWidget *self, main_window *widgets){
|
|
|
|
|
|
|
|
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
|
|
|
|
gtk_tree_model_get(model,&iter,0,&name,1,&paths,-1);
|
|
|
|
gtk_tree_model_get(model,&iter,0,&name,1,&paths,-1);
|
|
|
|
|
|
|
|
window->journal_name=name;
|
|
|
|
|
|
|
|
window->journal_paths=yon_char_parse(paths,&window->journal_size,"\n");
|
|
|
|
|
|
|
|
window->terminals = NULL;
|
|
|
|
if (strcmp(name,"journald")){
|
|
|
|
if (strcmp(name,"journald")){
|
|
|
|
window->last_mode=-1;
|
|
|
|
window->last_mode=-1;
|
|
|
|
|
|
|
|
for (int i=0;i<window->journal_size;i++){
|
|
|
|
|
|
|
|
if (!access(window->journal_paths[i],F_OK)||!window->terminals)
|
|
|
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(window->terminals,window->journal_paths[i],yon_inspector_add_terminal(window,window->journal_paths[i]));
|
|
|
|
|
|
|
|
}
|
|
|
|
gtk_widget_hide(window->JournalActionsBox);
|
|
|
|
gtk_widget_hide(window->JournalActionsBox);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
window->last_mode=0;
|
|
|
|
window->last_mode=0;
|
|
|
|
|
|
|
|
yon_dictionary_add_or_create_if_exists_with_data(window->terminals,"Journald",yon_inspector_add_terminal(window,"Journald"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
window->journal_name=name;
|
|
|
|
|
|
|
|
window->journal_paths=paths;
|
|
|
|
|
|
|
|
on_inspector_update(window->UpdateButton,window);
|
|
|
|
on_inspector_update(window->UpdateButton,window);
|
|
|
|
gtk_widget_show(window->MainWindow);
|
|
|
|
gtk_widget_show(window->MainWindow);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|