Merge pull request 'Fixed modularity of status window' (#21) from YanTheKaller/ubl-settings-services:master into master

Reviewed-on: #21
pull/128/head^2 v2.1
Dmitry Razumov 2 years ago
commit 8aec6550ba

@ -3,6 +3,7 @@
<gresource prefix="/com/ublinux/ui">
<file>ubl-settings-services.glade</file>
<file>ubl-settings-services-terminal.glade</file>
<file>ubl-settings-services-log.glade</file>
</gresource>
<gresource prefix="/com/ublinux/css">
<file>ubl-settings-services.css</file>

@ -32,6 +32,7 @@ add_custom_target(GLADE ubl-settings-services.glade)
set(DEPENDFILES
../ubl-settings-services.glade
../ubl-settings-services-terminal.glade
../ubl-settings-services-log.glade
../gresource.xml
../ubl-settings-services-banner.png
../ubl-settings-services.css

@ -39,7 +39,7 @@ void on_config_global_local_save(){
}
void on_config_local_save(){
yon_save_proceed("local",YON_CONFIG_LOCAL,"system","SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK",NULL);
yon_save_proceed("system",YON_CONFIG_LOCAL,"system","SERVICES_ENABLE SERVICES_DISABLE SERVICES_MASK",NULL);
}
@ -422,7 +422,39 @@ void on_info_clicked(GtkWidget *self, main_window *widgets){
}
}
void on_log_show(){
log_window *yon_log_window_new(){
log_window *window = malloc(sizeof(log_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_log);
window->Window = yon_gtk_builder_get_widget(builder,"MonitorWindow");
window->SystemTerminal = yon_gtk_builder_get_widget(builder,"SystemTerminal");
window->webHeaderNameLabel = yon_gtk_builder_get_widget(builder,"webHeaderNameLabel");
window->target=NULL;
yon_window_config_custom_window_setup(GTK_WINDOW(window->Window),"terminal_window");
return window;
}
void on_log_show(GtkWidget *self, main_window *widgets){
if (self){};
GtkTreeModel *model = GTK_TREE_MODEL(widgets->liststore2);
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
log_window *window = yon_log_window_new();
char *name;
gtk_tree_model_get(model,&iter,5,&name,-1);
yon_terminal_integrated_start(window->SystemTerminal,start_log_command(name),NULL,NULL);
GdkRGBA rgba;
rgba.alpha=1;
rgba.red=0.95;
rgba.green=0.95;
rgba.blue=0.95;
vte_terminal_set_color_cursor(VTE_TERMINAL(window->SystemTerminal),&rgba);
vte_terminal_set_color_background(VTE_TERMINAL(window->SystemTerminal),&rgba);
rgba.red=0;
rgba.green=0;
rgba.blue=0;
vte_terminal_set_color_foreground(VTE_TERMINAL(window->SystemTerminal),&rgba);
gtk_widget_show(window->Window);
}
}
@ -515,38 +547,49 @@ gboolean yon_interface_update(main_window *widgets){
for (;valid;valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->liststore2),&iter)){
char *name;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->liststore2),&iter,5,&name,-1);
char *name_parsed = yon_char_divide(name,yon_char_find_last(name,'.'));
free(name);
char *name_copy = yon_char_new(name);
char *name_parsed = yon_char_divide(name_copy,yon_char_find_last(name_copy,'.'));
if (!yon_char_is_empty(start)){
if (strstr(start,name_parsed))
if (!strcmp(start,name))
gtk_list_store_set(widgets->liststore2,&iter,0,1,-1);
else if (strstr(start,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,0,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,0,0,-1);
}
if (!yon_char_is_empty(stop)){
if (strstr(stop,name_parsed))
if (strstr(stop,name))
gtk_list_store_set(widgets->liststore2,&iter,1,1,-1);
else if (strstr(stop,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,1,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,1,0,-1);
}
if (!yon_char_is_empty(block)){
if (strstr(block,name_parsed))
if (strstr(block,name))
gtk_list_store_set(widgets->liststore2,&iter,2,1,-1);
else if (strstr(block,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,2,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,2,0,-1);
}
if (!yon_char_is_empty(launched)){
if (strstr(launched,name_parsed))
if (strstr(launched,name))
gtk_list_store_set(widgets->liststore2,&iter,4,1,-1);
else if (strstr(launched,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,4,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,4,0,-1);
}
if (!yon_char_is_empty(enabled)){
if (strstr(enabled,name_parsed))
if (strstr(enabled,name))
gtk_list_store_set(widgets->liststore2,&iter,3,1,-1);
else if (strstr(enabled,name_parsed)&&strcmp(name_copy,"socket"))
gtk_list_store_set(widgets->liststore2,&iter,3,1,-1);
else
gtk_list_store_set(widgets->liststore2,&iter,3,0,-1);
}
free(name);
free(name_parsed);
while(gtk_events_pending()) gtk_main_iteration();
}

@ -24,6 +24,7 @@
#define glade_path "/com/ublinux/ui/ubl-settings-services.glade"
#define glade_path_terminal "/com/ublinux/ui/ubl-settings-services-terminal.glade"
#define glade_path_log "/com/ublinux/ui/ubl-settings-services-log.glade"
#define banner_path "/com/ublinux/images/ubl-settings-services-banner.png"
#define CssPath "/com/ublinux/css/ubl-settings-services.css"
@ -45,6 +46,8 @@
#define service_kill_command(target) yon_char_append("systemctl kill ",target)
#define service_check_active_command(target) yon_char_append("systemctl is-active ",target)
#define start_log_command(target) yon_char_append("journalctl --all --no-pager --unit ",target)
typedef char* string;
string version_application;
@ -180,6 +183,13 @@ typedef struct {
char *target;
} terminal_window;
typedef struct {
GtkWidget *Window;
GtkWidget *SystemTerminal;
GtkWidget *webHeaderNameLabel;
char *target;
} log_window;
void on_config_local_load(GtkWidget *self,main_window *widgets);
void on_config_global_load(GtkWidget *self,main_window *widgets);
@ -190,6 +200,8 @@ void on_config_local_save();
void on_config_global_save();
log_window *yon_log_window_new();
gboolean yon_interface_update(main_window *widgets);
GtkWidget *yon_menu_button_create(char *icon_name, char *text);

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface domain="ubl-settings-services">
<requires lib="gtk+" version="3.24"/>
<requires lib="vte-2.91" version="0.68"/>
<!-- interface-css-provider-path ubl-settings-services.css -->
<object class="GtkAdjustment" id="adjustment1">
<property name="upper">100</property>
<property name="step-increment">1</property>
<property name="page-increment">10</property>
</object>
<object class="GtkWindow" id="MonitorWindow">
<property name="width-request">800</property>
<property name="height-request">600</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="hscrollbar-policy">always</property>
<property name="vscrollbar-policy">always</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="VteTerminal" id="SystemTerminal">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="hscroll-policy">natural</property>
<property name="vadjustment">adjustment1</property>
<property name="vscroll-policy">natural</property>
<property name="encoding">UTF-8</property>
<property name="pointer-autohide">True</property>
<property name="scrollback-lines">0</property>
<property name="scroll-on-keystroke">True</property>
<property name="scroll-on-output">False</property>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child type="titlebar">
<object class="GtkHeaderBar">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title">
<object class="GtkLabel" id="webHeaderNameLabel">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">Services and processes - service information</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
</object>
</child>
</object>
</interface>

@ -18,7 +18,6 @@
<property name="width-request">800</property>
<property name="height-request">600</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-usergroups</property>
<child>
<object class="GtkBox">

@ -389,7 +389,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">liststore2</property>
<property name="search-column">5</property>
<property name="search-column">3</property>
<property name="enable-grid-lines">horizontal</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>

Loading…
Cancel
Save