Added file chooser and application chooser

pull/51/head
parent 0c1b2e3d35
commit e85aa7545a

@ -2,6 +2,7 @@
<gresources> <gresources>
<gresource prefix="/com/ublinux/ui"> <gresource prefix="/com/ublinux/ui">
<file>ublexec.glade</file> <file>ublexec.glade</file>
<file>ublexec-application.glade</file>
</gresource> </gresource>
<gresource prefix="/com/ublinux/css"> <gresource prefix="/com/ublinux/css">
<file>ublexec.css</file> <file>ublexec.css</file>

@ -36,6 +36,7 @@ add_custom_target(GLADE ublexec.glade)
set(DEPENDFILES set(DEPENDFILES
../ublexec.glade ../ublexec.glade
../ublexec-application.glade
../gresource.xml ../gresource.xml
../ublexec-banner.png ../ublexec-banner.png
../ublexec.css ../ublexec.css

@ -10,9 +10,21 @@
#define DOCUMENTATION_LABEL _("Documentation") #define DOCUMENTATION_LABEL _("Documentation")
#define CANCEL_LABEL _("Cancel") #define CANCEL_LABEL _("Cancel")
#define OPEN_LABEL _("Open")
#define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?") #define HELP_TITLE_LABEL _("Would you like to read documentation in the Web?")
#define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.") #define HELP_INFO_LABEL _("You will be redirected to documentation website where documentation is\ntranslated and supported by community.")
#define HELP_ALWAYS_OPEN_LABEL _("Always redirect to online documentation") #define HELP_ALWAYS_OPEN_LABEL _("Always redirect to online documentation")
#define OPEN_HELP_LABEL _("Open documentation") #define OPEN_HELP_LABEL _("Open documentation")
#define PROJECT_HOME_LABEL _("Project homepage") #define PROJECT_HOME_LABEL _("Project homepage")
#define GRAPHICS_LABEL _("Graphics")
#define TOOLS_LABEL _("Tools")
#define INTERNET_LABEL _("Internet")
#define MULTIMEDIA_LABEL _("Multimedia")
#define SETTINGS_LABEL _("Settings")
#define EDUCATION_LABEL _("Education")
#define OFFICE_LABEL _("Office")
#define OTHER_LABEL _("Other")
#define DEVELOPMENT_LABEL _("Development")
#define SYSTEM_LABEL _("System")

@ -932,6 +932,7 @@ apps *yon_apps_scan_and_parse_desktops(int *sizef)
if (size == 0) if (size == 0)
{ {
applist = (apps *)malloc(size + 1 * sizeof(apps)); applist = (apps *)malloc(size + 1 * sizeof(apps));
applist[0].filename = yon_char_new(path);
applist[0].Name = yon_char_new(tempapp.Name); applist[0].Name = yon_char_new(tempapp.Name);
applist[0].Categories = yon_char_new(tempapp.Categories); applist[0].Categories = yon_char_new(tempapp.Categories);
applist[0].Exec = yon_char_new(tempapp.Exec); applist[0].Exec = yon_char_new(tempapp.Exec);
@ -944,6 +945,7 @@ apps *yon_apps_scan_and_parse_desktops(int *sizef)
else else
{ {
applist = (apps *)realloc(applist, (size + 1) * sizeof(apps)); applist = (apps *)realloc(applist, (size + 1) * sizeof(apps));
applist[size].filename = yon_char_new(path);
applist[size].Name = yon_char_new(tempapp.Name); applist[size].Name = yon_char_new(tempapp.Name);
applist[size].Categories = yon_char_new(tempapp.Categories); applist[size].Categories = yon_char_new(tempapp.Categories);
applist[size].Exec = yon_char_new(tempapp.Exec); applist[size].Exec = yon_char_new(tempapp.Exec);
@ -992,27 +994,72 @@ apps *yon_apps_get_by_name(apps *applist, char *name, int size)
return NULL; return NULL;
}; };
char *yon_app_chooser_open_with_sections(char *section_name,...){ /**yon_app_chooser_open_with_sections(char *section_name, char *section_filter, char *section_icon, ...)
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); * [EN]
GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL,5); *
GtkWidget *main_tree = gtk_tree_view_new(); * [RU]
GtkTreeStore *store = gtk_tree_store_new(1,G_TYPE_STRING,-1); * Вызывает диалоговое окно выбора приложений с разделом [section_name], разделом [section_filter] и иконкой, полученной по названию [section_icon].
gtk_tree_view_set_model(GTK_TREE_VIEW(main_tree),GTK_TREE_MODEL(store)); * после них можно вводить любое количество пар названий раздела и названий иконок для получения дополнительных разделов,
GtkWidget *cancel_button = gtk_button_new(); * оканчивающиеся NULL.
GtkWidget *accept_button = gtk_button_new(); */
GtkWidget *button_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); char *yon_app_chooser_open_with_sections(char *section_name, char *section_filter, char *section_icon, ...){
gtk_container_add(GTK_CONTAINER(window),box); GtkBuilder *builder = gtk_builder_new_from_resource("/com/ublinux/ui/ublexec-application.glade");
gtk_box_pack_start(GTK_BOX(box),main_tree,1,1,5); GtkWidget *dialog = gtk_dialog_new();
gtk_box_pack_end(GTK_BOX(box),button_box,0,0,5); gtk_widget_set_size_request(dialog,500,600);
gtk_box_pack_end(GTK_BOX(button_box),accept_button,0,0,5); gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ublexec");
gtk_box_pack_end(GTK_BOX(button_box),cancel_button,0,0,5); gtk_window_set_title(GTK_WINDOW(dialog),_("Applications"));
gtk_dialog_add_buttons(GTK_DIALOG(dialog),_("Cancel"),0,_("Accept"),1,NULL);
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"ApplicationsWindow"));
GtkWidget *box = GTK_WIDGET(gtk_builder_get_object(builder,"box"));
g_object_ref(box);
gtk_container_remove(GTK_CONTAINER(window),box);
gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),box,1,1,5);
GtkWidget *main_tree = GTK_WIDGET(gtk_builder_get_object(builder,"MainTree"));
GtkTreeStore *store = GTK_TREE_STORE(gtk_builder_get_object(builder,"treestore1"));
va_list args; va_list args;
va_start(args,section_name); GtkTreeIter iter, childiter;
GtkWidget *widget = va_arg(args,GtkWidget*); gtk_tree_store_append(GTK_TREE_STORE(store),&iter,NULL);
while (widget){ gtk_tree_store_set(GTK_TREE_STORE(store),&iter,0,section_icon,1,section_name,2,section_filter,-1);
va_start(args,section_icon);
char *section;
while ((section = va_arg(args,char*))){
char *filter = va_arg(args,char*);
char *icon = va_arg(args,char*);
if (icon&&filter){
gtk_tree_store_append(GTK_TREE_STORE(store),&iter,NULL);
gtk_tree_store_set(GTK_TREE_STORE(store),&iter,0,icon,1,section,2,filter,-1);
}
} }
va_end(args); va_end(args);
int size;
apps *app_list = yon_apps_scan_and_parse_desktops(&size);
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(store),&iter);
for (; valid; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(store),&iter)){
char *cur_categories;
gtk_tree_model_get(GTK_TREE_MODEL(store),&iter,2,&cur_categories,-1);
for (int i=0; i<size;i++){
if (strstr(app_list[i].Categories,cur_categories)){
gtk_tree_store_append(store,&childiter,&iter);
gtk_tree_store_set(store,&childiter,0,app_list[i].Icon, 1,app_list[i].Name, 2, app_list[i].filename, -1);
}
}
}
gtk_tree_view_set_model(GTK_TREE_VIEW(main_tree),GTK_TREE_MODEL(store));
int res = gtk_dialog_run(GTK_DIALOG(dialog));
GtkTreeModel *model = GTK_TREE_MODEL(store);
if (res){
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(main_tree)),&model,&childiter)){
if (gtk_tree_model_iter_parent(model,&iter,&childiter)){
char *path;
gtk_tree_model_get(model,&childiter,2,&path,-1);
gtk_widget_destroy(dialog);
return path;
}
}
} else {
yon_subwindow_close(box);
}
} }
//config functions //config functions
@ -1837,6 +1884,10 @@ void yon_gtk_column_minimal_fixed_size_set(GtkTreeViewColumn *column){
gtk_tree_view_column_set_min_width(column,width); gtk_tree_view_column_set_min_width(column,width);
} }
void yon_subwindow_close(GtkWidget *self){
gtk_widget_destroy(gtk_widget_get_toplevel(self));
}
/**yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...) /**yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...)
* [EN] * [EN]
* *

@ -12,6 +12,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <pwd.h> #include <pwd.h>
#include <locale.h> #include <locale.h>
#include <libintl.h>
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include <gtk/gtkx.h> #include <gtk/gtkx.h>
#include <pwd.h> #include <pwd.h>
@ -20,7 +21,10 @@
#include "ubl-cmake.h" #include "ubl-cmake.h"
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
#endif #endif
#define _(String) gettext(String)
#define DesktopPath "/usr/share/applications/" #define DesktopPath "/usr/share/applications/"
#define try bool __HadError=false; #define try bool __HadError=false;
#define catch(x) ExitJmp:if(__HadError) #define catch(x) ExitJmp:if(__HadError)
@ -61,6 +65,7 @@ typedef struct dictionary
typedef struct apps typedef struct apps
{ {
char *filename;
char *Name; char *Name;
int Type; int Type;
char *Categories; char *Categories;
@ -189,6 +194,8 @@ void yon_apps_sort(apps *applist, int size);
apps *yon_apps_get_by_name(apps *applist, char *name, int size); apps *yon_apps_get_by_name(apps *applist, char *name, int size);
char *yon_app_chooser_open_with_sections(char *section_name, char *section_filter, char *section_icon, ...);
config_str yon_config_load(char *command, int *str_len); config_str yon_config_load(char *command, int *str_len);
int yon_config_save_registered(char *path, char *section); int yon_config_save_registered(char *path, char *section);
@ -281,6 +288,9 @@ void yon_gtk_column_minimal_fixed_size_set(GtkTreeViewColumn *column);
int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment); int yon_gtk_icon_view_hide_empty(dictionary *icon_view_segment);
void yon_subwindow_close(GtkWidget *self);
int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...); int yon_dictionary_gtk_pack_start_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);
int yon_dictionary_gtk_pack_end_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...); int yon_dictionary_gtk_pack_end_multiple_widgets(GtkBox *destination, gboolean expand, gboolean fill, int padding, ...);

@ -102,12 +102,34 @@ void on_about(){
//functions //functions
void yon_load_proceed(char *command){ void on_file_chooser_open(GtkWidget *self, main_window *widgets){
if (yon_config_load_register(command)) GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_OPEN,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL);
yon_ubl_status_box_render(LOCAL_SAVE_SUCCESS_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),"/usr/bin/");
else gtk_window_set_icon_name(GTK_WINDOW(dialog),icon_path);
yon_ubl_status_box_render(LOAD_FAILED_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
int res = gtk_dialog_run(GTK_DIALOG(dialog));
if (res==GTK_RESPONSE_ACCEPT){
char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog));
gtk_entry_set_text(GTK_ENTRY(widgets->TargetNameEntry),filename);
}
on_close_subwindow(dialog);
}
void on_application_chooser_open(GtkWidget *self, main_window *widgets){
char *app = yon_app_chooser_open_with_sections(GRAPHICS_LABEL,"Graphics","",
TOOLS_LABEL,"Graphics","",
INTERNET_LABEL,"Network","",
MULTIMEDIA_LABEL,"AudioVideo","",
SETTINGS_LABEL,"Settings","",
EDUCATION_LABEL,"Education","",
OFFICE_LABEL,"Office","",
OTHER_LABEL,"Utility","",
DEVELOPMENT_LABEL,"Development","",
SYSTEM_LABEL,"System","",NULL);
if (app){
gtk_entry_set_text(GTK_ENTRY(widgets->TargetNameEntry),app);
}
} }
// standard functions // standard functions
@ -157,6 +179,10 @@ main_window *setup_window(){
widgets->runButton = yon_gtk_builder_get_widget(builder,"runButton"); widgets->runButton = yon_gtk_builder_get_widget(builder,"runButton");
widgets->HeadOverlay = yon_gtk_builder_get_widget(builder,"overHead");
widgets->HeadImage = yon_gtk_builder_get_widget(builder,"imgHeadBackground");
widgets->HeadBox = yon_gtk_builder_get_widget(builder,"boxColor");
widgets->DocumentationMenuItem = yon_ubl_menu_item_documentation_new(DOCUMENTATION_LABEL); widgets->DocumentationMenuItem = yon_ubl_menu_item_documentation_new(DOCUMENTATION_LABEL);
widgets->AboutMenuItem = yon_ubl_menu_item_about_new(ABOUT_LABEL); widgets->AboutMenuItem = yon_ubl_menu_item_about_new(ABOUT_LABEL);
@ -166,18 +192,6 @@ main_window *setup_window(){
gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->DocumentationMenuItem); gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->DocumentationMenuItem);
gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->AboutMenuItem); gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->AboutMenuItem);
if (main_config.lock_load_global == 1){
gtk_widget_set_sensitive(widgets->LoadGlobalMenuItem,0);
}
if (main_config.lock_save_global == 1){
gtk_widget_set_sensitive(widgets->SaveGlobalMenuItem,0);
gtk_widget_set_sensitive(widgets->SaveMenuItem,0);
}
if (main_config.lock_save_local == 1){
gtk_widget_set_sensitive(widgets->SaveLocalMenuItem,0);
gtk_widget_set_sensitive(widgets->SaveMenuItem,0);
}
/* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */ /* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */
// yon_window_config_add_custom_parameter(widgets->HeadInfoLabel,"head-text","label",YON_TYPE_STRING); // yon_window_config_add_custom_parameter(widgets->HeadInfoLabel,"head-text","label",YON_TYPE_STRING);
@ -185,7 +199,24 @@ main_window *setup_window(){
g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK); g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK);
g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),NULL); g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),NULL);
g_signal_connect(G_OBJECT(widgets->chooseFileButton),"clicked",G_CALLBACK(on_file_chooser_open),widgets);
g_signal_connect(G_OBJECT(widgets->chooseDesktopButton),"clicked",G_CALLBACK(on_application_chooser_open),widgets);
g_signal_connect(G_OBJECT(widgets->priorityCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->priorityScale);
g_signal_connect(G_OBJECT(widgets->priorityCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->prioritySpin);
g_signal_connect(G_OBJECT(widgets->runWithUserCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->runWithUserPkexecCheck);
g_signal_connect(G_OBJECT(widgets->runWithUserCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->runWithUserSuCheck);
g_signal_connect(G_OBJECT(widgets->runWithUserCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->runWithUserSudoCheck);
g_signal_connect(G_OBJECT(widgets->runWithUserCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->runWithUserCombo);
g_signal_connect(G_OBJECT(widgets->runWithTerminalCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->runWithTerminalCombo);
g_signal_connect(G_OBJECT(widgets->commandCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->commandEntry);
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->runWithUserCombo),);
gtk_widget_show(widgets->Window); gtk_widget_show(widgets->Window);
return widgets; return widgets;
@ -270,13 +301,6 @@ int main(int argc, char *argv[]){
main_window *widgets = setup_window(); main_window *widgets = setup_window();
yon_ubl_header_setup_resource(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path); yon_ubl_header_setup_resource(widgets->HeadOverlay,widgets->HeadBox,widgets->HeadImage,banner_path);
yon_ubl_status_box_setup(widgets->StatusIcon,widgets->StatusBox,widgets->StatusLabel);
if (getuid()!=0)
yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE);
else
yon_ubl_status_box_render(TITLE_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_window_config_setup(GTK_WINDOW(widgets->Window));
yon_window_config_load(config_path); yon_window_config_load(config_path);
GtkCssProvider *css=gtk_css_provider_new(); GtkCssProvider *css=gtk_css_provider_new();

@ -7,7 +7,6 @@
#include <stdlib.h> #include <stdlib.h>
#include <libintl.h> #include <libintl.h>
#include <getopt.h> #include <getopt.h>
#include <libintl.h>
#include "../compile/ubl-cmake.h" #include "../compile/ubl-cmake.h"
#ifdef WEBKIT_FOUND #ifdef WEBKIT_FOUND
#include <webkit2/webkit2.h> #include <webkit2/webkit2.h>
@ -21,6 +20,7 @@
#define glade_path "/com/ublinux/ui/ublexec.glade" #define glade_path "/com/ublinux/ui/ublexec.glade"
#define banner_path "/com/ublinux/images/ublexec-banner.png" #define banner_path "/com/ublinux/images/ublexec-banner.png"
#define CssPath "/com/ublinux/css/ublexec.css" #define CssPath "/com/ublinux/css/ublexec.css"
#define icon_path "com.ublinux.ublexec"
#define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL)
#define LocalePath "/usr/share/locale" #define LocalePath "/usr/share/locale"
@ -59,23 +59,31 @@ typedef struct {
GtkWidget *HeadTitleLabel; GtkWidget *HeadTitleLabel;
GtkWidget *HeadInfoLabel; GtkWidget *HeadInfoLabel;
GtkWidget *StatusBox; GtkWidget *TargetNameEntry;
GtkWidget *StatusIcon; GtkWidget *AboutMenuItem;
GtkWidget *StatusLabel; GtkWidget *DocumentationMenuItem;
GtkWidget *SaveLabel; GtkWidget *targetNameEntry;
GtkWidget *SaveMenuItem; GtkWidget *chooseFileButton;
GtkWidget *SaveGlobalMenuItem; GtkWidget *chooseDesktopButton;
GtkWidget *SaveLocalMenuItem; GtkWidget *runWithTerminalCheck;
GtkWidget *RightBox; GtkWidget *runWithTerminalCombo;
GtkWidget *LoadLabel; GtkWidget *runWithUserCheck;
GtkWidget *LoadGlobalMenuItem; GtkWidget *runWithUserPkexecCheck;
GtkWidget *LoadLocalMenuItem; GtkWidget *runWithUserSuCheck;
GtkWidget *LeftBox; GtkWidget *runWithUserSudoCheck;
GtkWidget *DocumentationMenuItem; GtkWidget *runWithUserCombo;
GtkWidget *AboutMenuItem; GtkWidget *priorityCheck;
GtkWidget *priorityScale;
GtkWidget *prioritySpin;
GtkWidget *highestPriorityLabel;
GtkWidget *commandCheck;
GtkWidget *commandEntry;
GtkWidget *runButton;
// Custom // Custom
} main_window; } main_window;

@ -2,31 +2,23 @@
<!-- Generated with glade 3.38.2 --> <!-- Generated with glade 3.38.2 -->
<interface> <interface>
<requires lib="gtk+" version="3.24"/> <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="GtkTreeStore" id="treestore1"> <object class="GtkTreeStore" id="treestore1">
<columns> <columns>
<!-- column-name icon --> <!-- column-name IconName -->
<column type="gchararray"/>
<!-- column-name Name -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name appName --> <!-- column-name Sections -->
<column type="gchararray"/> <column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkWindow" id="window"> <object class="GtkWindow" id="ApplicationsWindow">
<property name="width-request">800</property> <property name="width-request">500</property>
<property name="height-request">600</property> <property name="height-request">600</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="icon-name">com.ublinux.ublexec</property> <property name="icon-name">com.ublinux.ublexec</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox" id="box">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="margin-start">5</property> <property name="margin-start">5</property>
@ -36,27 +28,35 @@
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkTreeView"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="model">treestore1</property> <property name="shadow-type">in</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child> <child>
<object class="GtkTreeViewColumn"> <object class="GtkTreeView" id="MainTree">
<property name="title" translatable="yes">Name</property> <property name="visible">True</property>
<child> <property name="can-focus">True</property>
<object class="GtkCellRendererPixbuf"/> <property name="model">treestore1</property>
<attributes> <property name="headers-visible">False</property>
<attribute name="icon-name">0</attribute> <property name="expander-column">treeviewcolumn1</property>
</attributes>
</child>
<child> <child>
<object class="GtkCellRendererText"/> <object class="GtkTreeViewColumn" id="treeviewcolumn1">
<attributes> <property name="title" translatable="yes">column</property>
<attribute name="text">1</attribute> <child>
</attributes> <object class="GtkCellRendererPixbuf">
<property name="stock_size">4</property>
</object>
<attributes>
<attribute name="icon-name">0</attribute>
</attributes>
</child>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child> </child>
</object> </object>
</child> </child>
@ -67,60 +67,19 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="spacing">5</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Ok</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">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton">
<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">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
</child> </child>
<child type="titlebar"> <child type="titlebar">
<object class="GtkHeaderBar" id="headerBar"> <object class="GtkHeaderBar" id="headerBar1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="show-close-button">True</property>
<child type="title"> <child type="title">
<object class="GtkLabel" id="lblHeaderName"> <object class="GtkLabel" id="lblHeaderName1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="halign">center</property> <property name="halign">center</property>
<property name="label" translatable="yes">Run as...</property> <property name="label" translatable="yes">Applications</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>
@ -134,35 +93,6 @@
<property name="icon-name">com.ublinux.ublexec</property> <property name="icon-name">com.ublinux.ublexec</property>
</object> </object>
</child> </child>
<child>
<object class="GtkBox" id="boxAbout">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuButton" id="btnSettings">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="draw-indicator">True</property>
<property name="popup">menu1</property>
<property name="direction">none</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="pack-type">end</property>
<property name="position">1</property>
</packing>
</child>
</object> </object>
</child> </child>
</object> </object>

@ -1370,6 +1370,7 @@
<object class="GtkRadioButton" id="runWithUserPkexecCheck"> <object class="GtkRadioButton" id="runWithUserPkexecCheck">
<property name="label" translatable="yes">pkexec</property> <property name="label" translatable="yes">pkexec</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="margin-left">6</property> <property name="margin-left">6</property>
@ -1386,6 +1387,7 @@
<object class="GtkRadioButton" id="runWithUserSuCheck"> <object class="GtkRadioButton" id="runWithUserSuCheck">
<property name="label" translatable="yes">su</property> <property name="label" translatable="yes">su</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
@ -1401,6 +1403,7 @@
<object class="GtkRadioButton" id="runWithUserSudoCheck"> <object class="GtkRadioButton" id="runWithUserSudoCheck">
<property name="label" translatable="yes">sudo</property> <property name="label" translatable="yes">sudo</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">False</property> <property name="receives-default">False</property>
<property name="draw-indicator">True</property> <property name="draw-indicator">True</property>
@ -1551,9 +1554,11 @@
<child> <child>
<object class="GtkScale" id="priorityScale"> <object class="GtkScale" id="priorityScale">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="margin-bottom">15</property> <property name="margin-bottom">15</property>
<property name="adjustment">adjustment1</property> <property name="adjustment">adjustment1</property>
<property name="inverted">True</property>
<property name="fill-level">20</property> <property name="fill-level">20</property>
<property name="round-digits">0</property> <property name="round-digits">0</property>
<property name="digits">0</property> <property name="digits">0</property>
@ -1567,8 +1572,10 @@
<child> <child>
<object class="GtkSpinButton" id="prioritySpin"> <object class="GtkSpinButton" id="prioritySpin">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="adjustment">adjustment1</property>
<property name="numeric">True</property> <property name="numeric">True</property>
</object> </object>
<packing> <packing>

Loading…
Cancel
Save