Fixes and improvements

pull/46/head
parent fb9e980101
commit 96b8728239

@ -133,6 +133,8 @@ install: check uninstall
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.decrease-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.profile-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.edit-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.check-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/actions/" "icons/com.ublinux.${PKGNAME}.uncheck-symbolic.svg"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "journals_list.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "logging_services.csv"
@install -Dm644 -t "${DESTDIR}/usr/share/polkit-1/actions/" "${CMAKE_BUILD_DIR}/com.ublinux.${PKGNAME}${PKGIDENT}.policy"

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16px"
viewBox="0 0 16 16"
width="16px"
version="1.1"
id="svg43"
sodipodi:docname="com.ublinux.ubl-settings-events.check-symbolic.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs47" />
<sodipodi:namedview
id="namedview45"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="22.627417"
inkscape:cx="-1.259534"
inkscape:cy="11.22532"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg43" />
<path
d="m 14.987602,3.2962516 -1,-1 -7.4687505,7.515625 -3.414062,-3.476562 -2,2 5.414062,5.4765614 9.4687505,-9.5156244 z m 0,0"
fill="#2e3436"
id="path41" />
<path
id="rect71"
style="fill:#333333;stroke-width:0.693784"
d="M 2.7739929,3.988259 C 1.6275835,3.9882198 0.70563356,4.7719497 0.70563356,5.7460715 v 6.6796875 c 0,0.974121 0.92194994,1.759765 2.06835934,1.759765 h 7.8613281 c 1.146411,0 2.070313,-0.785644 2.070313,-1.759765 l 1.56e-4,-4.4783625 -0.375156,0.4139094 v 3.8574211 c 0,0.913239 -0.864694,1.648438 -1.939453,1.648438 H 3.0200867 c -1.074759,0 -1.9394532,-0.735199 -1.9394531,-1.648438 V 5.9550559 c 0,-0.9132391 0.8646941,-1.6484375 1.9394531,-1.6484375 h 7.3710943 c 0.0079,0 1.159086,-1.261e-4 1.166966,-4.69e-5 l 0.365991,-0.318 z"
sodipodi:nodetypes="ssssssccsssssssccs" />
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16px"
viewBox="0 0 16 16"
width="16px"
version="1.1"
id="svg43"
sodipodi:docname="com.ublinux.ubl-settings-events.uncheck-symbolic.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs47" />
<sodipodi:namedview
id="namedview45"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="22.627417"
inkscape:cx="-1.259534"
inkscape:cy="11.22532"
inkscape:window-width="1920"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg43" />
<path
id="rect71"
style="fill:#333333;stroke-width:0.693784"
d="m 3.9056038,3.3834579 c -1.1464094,0 -2.0698241,0.7846395 -2.0698241,1.7587613 V 11.82128 c 0,0.974122 0.9234147,1.758761 2.0698241,1.758761 h 7.8603502 c 1.146411,0 2.069825,-0.784639 2.069825,-1.758761 V 5.1422192 c 0,-0.9741218 -0.923414,-1.7587613 -2.069825,-1.7587613 z m 0.244629,0.3186432 h 7.3710922 c 1.074759,0 1.939454,0.7347439 1.939454,1.647983 v 6.2633299 c 0,0.913239 -0.864695,1.647984 -1.939454,1.647984 H 4.1502328 c -1.074759,0 -1.9394531,-0.734745 -1.9394531,-1.647984 V 5.3500841 c 0,-0.9132391 0.8646941,-1.647983 1.9394531,-1.647983 z" />
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@ -660,6 +660,28 @@ logrotate_configure_window *yon_logrotate_window_new(char *paths, logrotate_wind
window->EndworkCommandEntry=yon_gtk_builder_get_widget(builder,"EndworkCommandEntry");
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
if (paths){
int sz;
float finalsize=0.0;
char *temp_paths = yon_char_new(paths);
config_str parsed_paths = yon_char_parse(temp_paths,&sz,",");
free(temp_paths);
temp_paths=NULL;
for (int i=0;i<sz;i++){
if (!access(parsed_paths[i],F_OK)) yon_char_unite(temp_paths ? yon_char_append(temp_paths," ") : "",parsed_paths[i],NULL);
}
config_str logsize = yon_config_load(logrotate_size_command(temp_paths),&sz);
for (int i=0;i<sz;i++){
finalsize+=atof(logsize[i]);
}
int sizenumber=0;
finalsize = yon_size_convert_automatic(finalsize,&sizenumber);
char *fin = yon_char_from_float(finalsize);
char *unw = strstr(fin,",")+3;
fin = yon_char_divide(fin,strlen(fin)-strlen(unw));
gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),yon_char_append(fin,yon_size_get_letter_from_int(sizenumber)));
}
dictionary *dict=NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"dialog",dialog);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
@ -1144,6 +1166,11 @@ journald_window *yon_journald_open(GtkWidget *self, main_window *widgets){
window->LowerTimeButton=yon_gtk_builder_get_widget(builder,"LowerTimeButton");
window->headerTopic=yon_gtk_builder_get_widget(builder,"headerTopic");
{
int sz;
config_str logsize = yon_config_load(journald_size_command,&sz);
gtk_label_set_text(GTK_LABEL(window->LogSizeLabel),logsize[0]);
}
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_close_subwindow),NULL);
@ -1251,7 +1278,23 @@ void on_journald_open(GtkWidget *self, main_window *widgets){
// Log adding menu
add_log_window *on_add_open(){
void on_log_save(GtkWidget *self, dictionary *dict){
main_window *widgets = yon_dictionary_get_data(dict->first,main_window*);
add_log_window *window = yon_dictionary_get_data(dict->first->next,add_log_window*);
GList *list = gtk_container_get_children(GTK_CONTAINER(window->LogPathsBox));
char *pathse=NULL;
for (int i=0;i<g_list_length(list);i++){
GList *paths = gtk_container_get_children((GtkContainer*)g_list_nth_data(list,i));
pathse=yon_char_unite(pathse ? yon_char_append(pathse,"\n"):"",gtk_entry_get_text((GtkEntry*)g_list_nth_data(paths,1)),NULL);
}
GtkTreeIter iter;
gtk_list_store_append(widgets->list,&iter);
gtk_list_store_set(widgets->list,&iter,1,pathse,-1);
on_close_subwindow(self);
}
add_log_window *on_add_open(main_window *widgets){
add_log_window *window = malloc(sizeof(add_log_window));
GtkBuilder *builder = gtk_builder_new_from_resource(glade_add_path);
window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow");
@ -1271,8 +1314,11 @@ add_log_window *on_add_open(){
window->ControlSectionBox=yon_gtk_builder_get_widget(builder,"ControlSectionBox");
window->LogPathsBox=yon_gtk_builder_get_widget(builder,"LogPathsBox");
gtk_window_set_title(GTK_WINDOW(window->MainWindow),TITLE_LABEL);
dictionary *dict = NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
g_signal_connect(G_OBJECT(window->CancelButton),"clicked", G_CALLBACK(on_close_subwindow),NULL);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_close_subwindow),NULL);
g_signal_connect(G_OBJECT(window->SaveButton),"clicked", G_CALLBACK(on_log_save),dict);
return window;
}
@ -1338,7 +1384,7 @@ void on_log_path_append(GtkWidget *self, add_log_window *window){
void on_log_add(GtkWidget *self, main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GtkTreeIter iter;
add_log_window *window = on_add_open();
add_log_window *window = on_add_open(widgets);
gtk_widget_show(window->MainWindow);
gtk_widget_hide(window->StatisticsFrame);
gtk_widget_hide(window->ControlSectionBox);
@ -1349,7 +1395,7 @@ void on_log_edit(GtkWidget *self,main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
add_log_window *window = on_add_open();
add_log_window *window = on_add_open(widgets);
gtk_widget_show(window->MainWindow);
gtk_widget_hide(window->StatisticsFrame);
char *name;
@ -1420,6 +1466,98 @@ void on_service_edit(GtkWidget *self,main_window *widgets){
}
}
void on_main_window_tree_selection_changed(GtkWidget *self,main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->list);
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->MainTree)),&model,&iter)){
gtk_widget_set_sensitive(widgets->AddButton,1);
gtk_widget_set_sensitive(widgets->RemoveButton,1);
gtk_widget_set_sensitive(widgets->InspectButton,1);
gtk_widget_set_sensitive(widgets->ConfigureButton,1);
} else {
gtk_widget_set_sensitive(widgets->AddButton,0);
gtk_widget_set_sensitive(widgets->RemoveButton,0);
gtk_widget_set_sensitive(widgets->InspectButton,0);
gtk_widget_set_sensitive(widgets->ConfigureButton,0);
}
}
void on_main_window_services_tree_selection_changed(GtkWidget *self,main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->ServicesList);
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){
gboolean is_active;
gboolean is_enabled;
char *name;
gtk_tree_model_get(model,&iter,0,&is_active,1,&is_enabled,2,&name,-1);
if (is_active){
gtk_widget_set_sensitive(widgets->ServicesEditButton,1);
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,1);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),stop_icon_name,GTK_ICON_SIZE_BUTTON);
} else {
gtk_widget_set_sensitive(widgets->ServicesEditButton,0);
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,1);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesStartStopButton))),start_icon_name,GTK_ICON_SIZE_BUTTON);
}
if (is_enabled){
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),disable_icon_name,GTK_ICON_SIZE_BUTTON);
} else {
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->ServicesEnableDisableButton))),enable_icon_name,GTK_ICON_SIZE_BUTTON);
}
if (!strcmp(name,"journald")){
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,0);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,0);
}
} else {
gtk_widget_set_sensitive(widgets->ServicesEditButton,0);
gtk_widget_set_sensitive(widgets->ServicesEnableDisableButton,0);
gtk_widget_set_sensitive(widgets->ServicesStartStopButton,0);
}
}
void on_start_stop_clicked(GtkButton *self, main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->ServicesList);
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){
char *start_command;
char *stop_command;
gboolean is_started;
gtk_tree_model_get(model,&iter,0,&is_started,5,&start_command,6,&stop_command,-1);
if (is_started){
yon_launch(stop_command);
gtk_list_store_set(widgets->ServicesList,&iter,0,0,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(self)),start_icon_name,GTK_ICON_SIZE_BUTTON);
} else {
yon_launch(start_command);
gtk_list_store_set(widgets->ServicesList,&iter,0,1,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(self)),stop_icon_name,GTK_ICON_SIZE_BUTTON);
}
}
}
void on_enable_disable_clicked(GtkButton *self, main_window *widgets){
GtkTreeModel *model = GTK_TREE_MODEL(widgets->ServicesList);
GtkTreeIter iter;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ServicesTree)),&model,&iter)){
char *start_command;
char *stop_command;
gboolean is_started;
gtk_tree_model_get(model,&iter,1,&is_started,7,&start_command,8,&stop_command,-1);
if (is_started){
yon_launch(stop_command);
gtk_list_store_set(widgets->ServicesList,&iter,1,0,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(self)),start_icon_name,GTK_ICON_SIZE_BUTTON);
} else {
yon_launch(start_command);
gtk_list_store_set(widgets->ServicesList,&iter,1,1,-1);
gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(self)),stop_icon_name,GTK_ICON_SIZE_BUTTON);
}
}
}
// standard functions
void config_init(){
@ -1478,6 +1616,8 @@ main_window *setup_window(){
widgets->RemoveButton = yon_gtk_builder_get_widget(builder,"MainRemoveButton");
widgets->Notebook = yon_gtk_builder_get_widget(builder,"MainNotebook");
widgets->ServicesEditButton = yon_gtk_builder_get_widget(builder,"ServicesEditButton");
widgets->ServicesStartStopButton = yon_gtk_builder_get_widget(builder,"ServicesStartStopButton");
widgets->ServicesEnableDisableButton = yon_gtk_builder_get_widget(builder,"ServicesEnableDisableButton");
widgets->ServicesTree = yon_gtk_builder_get_widget(builder,"ServicesTree");
widgets->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1"));
widgets->ServicesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"ServicesList"));
@ -1523,7 +1663,7 @@ main_window *setup_window(){
services[i]=yon_char_divide_search(services[i],"\n",-1);
config_str log = yon_char_parse(services[i],&log_size,";");
gtk_list_store_append(widgets->ServicesList,&iter);
gtk_list_store_set(widgets->ServicesList,&iter,0,1,1,1,2,log[0],3,log[1],-1);
gtk_list_store_set(widgets->ServicesList,&iter,0,1,1,1,2,log[0],3,log[1],4,log[2],5,log[3],6,log[4],7,log[5],8,log[6],-1);
}
}
config_str dirs = yon_config_load(logrotate_config_command,&dirs_size);
@ -1580,6 +1720,11 @@ main_window *setup_window(){
g_signal_connect(G_OBJECT(widgets->LoadGlobalMenuItem),"activate",G_CALLBACK(on_load_global),NULL);
g_signal_connect(G_OBJECT(widgets->LoadLocalMenuItem),"activate",G_CALLBACK(on_load_local),NULL);
g_signal_connect(G_OBJECT(widgets->MainTree),"cursor-changed",G_CALLBACK(on_main_window_tree_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesTree),"cursor-changed",G_CALLBACK(on_main_window_services_tree_selection_changed),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesStartStopButton),"clicked",G_CALLBACK(on_start_stop_clicked),widgets);
g_signal_connect(G_OBJECT(widgets->ServicesEnableDisableButton),"clicked",G_CALLBACK(on_enable_disable_clicked),widgets);
gtk_widget_show(widgets->Window);
return widgets;

@ -31,6 +31,8 @@
#define journals_list_path "/usr/share/ubl-settings-logging/csv/journals_list.csv"
#define services_list_path "/usr/share/ubl-settings-logging/csv/logging_services.csv"
#define logrotate_config_command "ls /etc/logrotate.d/ |sed -e 's/ */\\n/g'"
#define journald_size_command "journalctl --disk-usage | grep -oE \"[0-9]{1,}.[0-9]{1,}[A-Z]\""
#define logrotate_size_command(paths) yon_char_unite("du ",paths," |grep -oE '^[0-9]{1,}'",NULL)
#define logrotate_config_path "/etc/logrotate.d/"
#define LocalePath "/usr/share/locale"
@ -45,6 +47,11 @@
#define get_journal_output_kernel_command "journalctl --no-pager -k"
#define get_journal_output_prioritied_command "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"
#define enable_icon_name "com.ublinux.ubl-settings-logging.check-symbolic"
#define disable_icon_name "com.ublinux.ubl-settings-logging.uncheck-symbolic"
#define yon_add_space_if_exists(string) yon_char_is_empty(string) ? "" : yon_char_append(",",string)
typedef char* string;
string version_application;
@ -113,6 +120,8 @@ typedef struct {
GtkWidget *Notebook;
GtkWidget *ServicesTree;
GtkWidget *ServicesEditButton;
GtkWidget *ServicesStartStopButton;
GtkWidget *ServicesEnableDisableButton;
GtkListStore *list;
GtkListStore *ServicesList;
// Custom

@ -607,12 +607,32 @@ char *yon_char_from_int(int int_to_convert)
return ch;
}
/**yon_char_from_float(int int_to_convert)
* [EN]
* converts float to char*.
*
* [RU]
* Конвертирует float в char*
*/
char *yon_char_from_float(float int_to_convert)
{
int i = 1;
float convert_check = (float)int_to_convert;
for (i = 1; convert_check >= 10; i++)
{
convert_check = convert_check / 10;
}
char *ch = g_malloc0(i * sizeof(char) + 1);
sprintf(ch, "%f", int_to_convert);
return ch;
}
/**yon_char_from_long(int int_to_convert)
* [EN]
* converts int to char*.
* converts long to char*.
*
* [RU]
* Конвертирует int в char*
* Конвертирует long в char*
*/
char *yon_char_from_long(long int_to_convert)
{
@ -867,6 +887,23 @@ config_str yon_ubl_get_all_users(int *user_size){
// parsing functions
/** yon_size_convert_automatic(int bytes, int *size)
* [EN]
*
* [RU]
*
*/
float yon_size_convert_automatic(int bytes, int *size){
float byte_float=bytes;
for (*size=-1;byte_float>1024;*size=*size+1){
byte_float=byte_float/1024;
}
if (*size==-1) {
*size=0;
byte_float=byte_float/1024;
}
return byte_float;
}
apps *yon_apps_scan_and_parse_desktops(int *sizef)
{

@ -141,6 +141,8 @@ char *yon_char_divide_search(char *source, char *dividepos, int delete_divider);
char *yon_char_from_int(int int_to_convert);
char *yon_char_from_float(float int_to_convert);
char *yon_char_from_long(long int_to_convert);
char *yon_char_replace(char *source, char *find, char*replace);
@ -173,6 +175,8 @@ config_str yon_ubl_get_all_users(int *user_size);
// parsing functions
float yon_size_convert_automatic(int bytes, int *size);
config_str philos_list_user(int* size);
apps *yon_apps_scan_and_parse_desktops(int *sizef);

@ -50,6 +50,7 @@
</object>
<object class="GtkDialog" id="MainWindow">
<property name="width-request">450</property>
<property name="height-request">550</property>
<property name="can-focus">False</property>
<property name="modal">True</property>
<property name="icon-name">com.ublinux.ubl-settings-logging</property>

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.38.2 -->
<interface>
<requires lib="gtk+" version="3.24"/>
<object class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">process-stop-symbolic</property>
</object>
<object class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">emblem-ok-symbolic</property>
</object>
<object class="GtkFileChooserDialog" id="FileChooser">
<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-logging</property>
<property name="type-hint">dialog</property>
<property name="has-resize-grip">True</property>
<property name="show-hidden">True</property>
<child internal-child="vbox">
<object class="GtkBox">
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="can-focus">False</property>
<property name="layout-style">end</property>
<child>
<object class="GtkCheckButton" id="FileOrDirCheck">
<property name="label" translatable="yes">Choose directory instead of file</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
<property name="draw-indicator">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="CancelButton">
<property name="label" translatable="yes">Cancel</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image1</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="AcceptButton">
<property name="label" translatable="yes">Accept</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="image">image2</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</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="headerTopic">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-bottom">2</property>
<property name="label" translatable="yes">Logs and events</property>
<attributes>
<attribute name="weight" value="bold"/>
</attributes>
</object>
</child>
<child>
<object class="GtkImage">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">5</property>
<property name="margin-right">5</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<property name="pixel-size">32</property>
<property name="icon-name">com.ublinux.ubl-settings-logging</property>
</object>
</child>
<style>
<class name="toolbar"/>
</style>
</object>
</child>
</object>
</interface>

@ -207,6 +207,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<column type="gchararray"/>
<!-- column-name gchararray2 -->
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
<!-- column-name StartCommand -->
<column type="gchararray"/>
<!-- column-name StopCommand -->
<column type="gchararray"/>
<!-- column-name LaunchCommand -->
<column type="gchararray"/>
<!-- column-name PauseCommand -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkImage" id="image1">
@ -232,12 +242,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<object class="GtkImage" id="image5">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.stop-symbolic</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.play-symbolic</property>
</object>
<object class="GtkImage" id="image6">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.play-symbolic</property>
<property name="icon-name">com.ublinux.ubl-settings-logging.check-symbolic</property>
</object>
<object class="GtkImage" id="image7">
<property name="visible">True</property>
@ -682,6 +692,7 @@ translated and supported by community.</property>
<child>
<object class="GtkButton" id="MainInspectButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Inspect log</property>
@ -699,6 +710,7 @@ translated and supported by community.</property>
<child>
<object class="GtkButton" id="MainConfigureButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Configure log</property>
@ -716,6 +728,7 @@ translated and supported by community.</property>
<child>
<object class="GtkButton" id="MainAddButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Add log</property>
@ -733,6 +746,7 @@ translated and supported by community.</property>
<child>
<object class="GtkButton" id="MainRemoveButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Remove log</property>
@ -856,8 +870,9 @@ translated and supported by community.</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton" id="ServicesStopButton">
<object class="GtkButton" id="ServicesStartStopButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Stop service</property>
@ -873,8 +888,9 @@ translated and supported by community.</property>
</packing>
</child>
<child>
<object class="GtkButton" id="ServicesPlayButton">
<object class="GtkButton" id="ServicesEnableDisableButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Start service</property>
@ -892,6 +908,7 @@ translated and supported by community.</property>
<child>
<object class="GtkButton" id="ServicesEditButton">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Configure service</property>

Loading…
Cancel
Save