diff --git a/.gitignore b/.gitignore index a4f5d99..012641d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ compile/ .BUILD.md .install.sh terminal-commands/ -.updatebuild.sh \ No newline at end of file +.updatebuild.sh +*vgcore* \ No newline at end of file diff --git a/source/ubl-utils.c b/source/ubl-utils.c index 0225c16..ab582b2 100644 --- a/source/ubl-utils.c +++ b/source/ubl-utils.c @@ -876,7 +876,51 @@ config_str yon_ubl_get_all_slices(int *slices_size){ // parsing functions +dictionary *yon_scan_desktops(){ + dictionary *apps_dict = NULL; + DIR *directory = opendir(DesktopPath); + struct dirent *de; + while ((de = readdir(directory))) + { + FILE *file; + char *path = yon_char_append(DesktopPath, de->d_name); + file = fopen(path, "r"); + if (strstr(path,".desktop")){ + apps *application = malloc(sizeof(apps)); + GKeyFile *gfile = g_key_file_new(); + GError *err = NULL; + if (!access(path,F_OK)){ + g_key_file_load_from_file(gfile, path, G_KEY_FILE_KEEP_TRANSLATIONS, NULL); + application->Type = !strcmp(g_key_file_get_string(gfile, "Desktop Entry", "Type", &err),"Application") ? 1 : 0; + if (application->Type){ + application->Name = g_key_file_get_locale_string(gfile,"Desktop Entry", "Name",setlocale(LC_ALL, NULL),&err); + application->Categories = g_key_file_get_string(gfile,"Desktop Entry", "Categories",&err); + application->Exec = g_key_file_get_string(gfile,"Desktop Entry", "Exec",&err); + application->Icon = g_key_file_get_string(gfile,"Desktop Entry", "Icon",&err); + application->Pluggable = (g_key_file_get_boolean(gfile,"Desktop Entry", "Pluggable",NULL)|| + g_key_file_get_boolean(gfile,"Desktop Entry", "X-XfcePluggable",&err)); + application->DualPluggable = g_key_file_get_boolean(gfile,"Desktop Entry", "X-UBLPluggable",NULL); + application->Hidden = g_key_file_get_boolean(gfile,"Desktop Entry", "X-X-UBL-SettingsManager-Hidden",NULL); + if (application->Name&&application->Exec){ + if (!apps_dict){ + yon_dictionary_add_or_create_if_exists_with_data(apps_dict,application->Name,application); + } else if (!yon_dictionary_get(&apps_dict,application->Name)){ + yon_dictionary_add_or_create_if_exists_with_data(apps_dict,application->Name,application); + } else { + yon_dictionary_set_data(apps_dict,application); + } + } + } + g_key_file_free(gfile); + gfile = g_key_file_new(); + } + } + } + if (apps_dict) return apps_dict; +} +static int scanned_size=0; +static apps *scanned_application = NULL; apps *yon_apps_scan_and_parse_desktops(int *sizef) { int size = 0; @@ -899,68 +943,75 @@ apps *yon_apps_scan_and_parse_desktops(int *sizef) apps tempapp; GKeyFile *gfile = g_key_file_new(); GError *err = NULL; - g_key_file_load_from_file(gfile, path, G_KEY_FILE_KEEP_TRANSLATIONS, NULL); - char *Type = g_key_file_get_string(gfile, "Desktop Entry", "Type", &err); - if (err) - { - printf("%s\n", err->message); - } - if (strcmp(Type, "Application") == 0) - tempapp.Type = 1; - else if (strcmp(Type, "pyApplication") == 0) - tempapp.Type = 2; - else - continue; - tempapp.Name = g_key_file_get_locale_string(gfile, "Desktop Entry", "Name", setlocale(LC_ALL, NULL), NULL); - if (tempapp.Name == NULL) - continue; - tempapp.Categories = g_key_file_get_string(gfile, "Desktop Entry", "Categories", NULL); - if (tempapp.Categories == NULL) - continue; - tempapp.Exec = g_key_file_get_string(gfile, "Desktop Entry", "Exec", NULL); - if (tempapp.Exec == NULL) - continue; - tempapp.Icon = g_key_file_get_string(gfile, "Desktop Entry", "Icon", NULL); - if (tempapp.Icon == NULL) - continue; - tempapp.Pluggable = g_key_file_get_boolean(gfile, "Desktop Entry", "Pluggable", NULL); - if (!tempapp.Pluggable) - tempapp.Pluggable = g_key_file_get_boolean(gfile, "Desktop Entry", "X-XfcePluggable", NULL); - if (tempapp.Pluggable) - tempapp.DualPluggable = g_key_file_get_boolean(gfile, "Desktop Entry", "X-UBLPluggable", NULL); - if (g_key_file_get_boolean(gfile, "Desktop Entry", "X-UBL-SettingsManager-Hidden", NULL) == 0) - if (size == 0) + g_key_file_load_from_file(gfile, path, G_KEY_FILE_KEEP_TRANSLATIONS, &err); + if (!err){ + char *Type = g_key_file_get_string(gfile, "Desktop Entry", "Type", &err); + if (err) { - applist = (apps *)malloc(size + 1 * sizeof(apps)); - applist[0].filename = yon_char_new(path); - applist[0].Name = yon_char_new(tempapp.Name); - applist[0].Categories = yon_char_new(tempapp.Categories); - applist[0].Exec = yon_char_new(tempapp.Exec); - applist[0].Icon = yon_char_new(tempapp.Icon); - applist[0].Type = tempapp.Type; - applist[0].Pluggable = tempapp.Pluggable; - applist[0].DualPluggable = tempapp.DualPluggable; - size++; - } - else - { - 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].Categories = yon_char_new(tempapp.Categories); - applist[size].Exec = yon_char_new(tempapp.Exec); - applist[size].Icon = yon_char_new(tempapp.Icon); - applist[size].Pluggable = tempapp.Pluggable; - applist[size].DualPluggable = tempapp.DualPluggable; - applist[size].Type = tempapp.Type; - size++; + printf("%s\n", err->message); + } else { + if (strcmp(Type, "Application") == 0) + tempapp.Type = 1; + else if (strcmp(Type, "pyApplication") == 0) + tempapp.Type = 2; + else + continue; + tempapp.Name = g_key_file_get_locale_string(gfile, "Desktop Entry", "Name", setlocale(LC_ALL, NULL), NULL); + if (tempapp.Name == NULL) + continue; + tempapp.Categories = g_key_file_get_string(gfile, "Desktop Entry", "Categories", NULL); + if (tempapp.Categories == NULL) + continue; + tempapp.Exec = g_key_file_get_string(gfile, "Desktop Entry", "Exec", NULL); + if (tempapp.Exec == NULL) + continue; + tempapp.Icon = g_key_file_get_string(gfile, "Desktop Entry", "Icon", NULL); + if (tempapp.Icon == NULL) + continue; + tempapp.Pluggable = g_key_file_get_boolean(gfile, "Desktop Entry", "Pluggable", NULL); + if (!tempapp.Pluggable) + tempapp.Pluggable = g_key_file_get_boolean(gfile, "Desktop Entry", "X-XfcePluggable", NULL); + if (tempapp.Pluggable) + tempapp.DualPluggable = g_key_file_get_boolean(gfile, "Desktop Entry", "X-UBLPluggable", NULL); + if (g_key_file_get_boolean(gfile, "Desktop Entry", "X-UBL-SettingsManager-Hidden", NULL) == 0) + if (size == 0) + { + applist = (apps *)malloc(size + 1 * sizeof(apps)); + applist[0].filename = yon_char_new(path); + applist[0].Name = yon_char_new(tempapp.Name); + applist[0].Categories = yon_char_new(tempapp.Categories); + applist[0].Exec = yon_char_new(tempapp.Exec); + applist[0].Icon = yon_char_new(tempapp.Icon); + applist[0].Type = tempapp.Type; + applist[0].Pluggable = tempapp.Pluggable; + applist[0].DualPluggable = tempapp.DualPluggable; + size++; + } + else + { + 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].Categories = yon_char_new(tempapp.Categories); + applist[size].Exec = yon_char_new(tempapp.Exec); + applist[size].Icon = yon_char_new(tempapp.Icon); + applist[size].Pluggable = tempapp.Pluggable; + applist[size].DualPluggable = tempapp.DualPluggable; + applist[size].Type = tempapp.Type; + size++; + } } + } + + g_key_file_free(gfile); } } } } } *sizef = size; + scanned_application = applist; + scanned_size=size; return applist; }; @@ -1003,6 +1054,9 @@ void __yon_on_app_chooser_selection(GtkTreeView *self, GtkTreeStore *store){ if (gtk_tree_model_iter_nth_child(model,&parentiter,&iter,0)) gtk_tree_selection_select_iter(gtk_tree_view_get_selection(self),&parentiter); } + } else { + gtk_tree_model_get_iter_first(model,&iter); + gtk_tree_selection_select_iter(gtk_tree_view_get_selection(self),&iter); } } @@ -1023,9 +1077,13 @@ char *yon_app_chooser_open_with_sections(char *section_name, char *section_filte 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")); + GtkWidget *header = GTK_WIDGET(gtk_builder_get_object(builder,"ApplicationsHeaderBar")); + gtk_window_set_title(GTK_WINDOW(dialog),_("Application")); + gtk_window_set_titlebar(GTK_WINDOW(dialog),header); 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); + gtk_style_context_add_class(gtk_widget_get_style_context(gtk_dialog_get_content_area(GTK_DIALOG(dialog))),"workingbg"); 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; @@ -1046,16 +1104,22 @@ char *yon_app_chooser_open_with_sections(char *section_name, char *section_filte } } va_end(args); - int size; - apps *app_list = yon_apps_scan_and_parse_desktops(&size); + int size=scanned_size; + apps *app_list = scanned_application ? scanned_application : 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; i0&&strcmp(app_list[i].Name,app_list[i-1].Name)){ + if (strstr(app_list[i].Icon,"/")){ + yon_char_divide(app_list[i].Icon,yon_char_find_last(app_list[i].Icon,'/')); + app_list[i].Icon = yon_char_divide(app_list[i].Icon,yon_char_find_last(app_list[i].Icon,'.')); + } + 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); + } } } } @@ -1070,9 +1134,12 @@ char *yon_app_chooser_open_with_sections(char *section_name, char *section_filte gtk_widget_destroy(dialog); return path; } + } else { + gtk_widget_destroy(dialog); + return ""; } } else { - yon_subwindow_close(box); + gtk_widget_destroy(dialog); } } diff --git a/source/ubl-utils.h b/source/ubl-utils.h index 7d05925..01c1f9d 100644 --- a/source/ubl-utils.h +++ b/source/ubl-utils.h @@ -73,6 +73,7 @@ typedef struct apps char *Icon; int Pluggable; int DualPluggable; + int Hidden; } apps; typedef char** config_str; @@ -188,6 +189,8 @@ config_str yon_ubl_get_all_slices(int *slices_size); config_str philos_list_user(int* size); +dictionary *yon_scan_desktops(); + apps *yon_apps_scan_and_parse_desktops(int *sizef); void yon_apps_sort(apps *applist, int size); diff --git a/source/ublexec.c b/source/ublexec.c index e98879f..087a102 100644 --- a/source/ublexec.c +++ b/source/ublexec.c @@ -123,7 +123,7 @@ void on_application_chooser_open(GtkWidget *self, main_window *widgets){ } void on_user_changed(GtkWidget *self, main_window *widgets){ - GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->prioritySpin)); + GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)); if (gtk_combo_box_get_active(GTK_COMBO_BOX(self))==0){ gtk_adjustment_set_lower(adj,-20); gtk_label_set_text(GTK_LABEL(widgets->highestPriorityLabel),PRIORITY_ROOT_LABEL); @@ -151,7 +151,7 @@ void on_user_activate(GtkToggleButton *self, main_window *widgets){ } void on_user_switching(GtkToggleButton *self, main_window *widgets){ - GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->prioritySpin)); + GtkAdjustment *adj = gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)); if (gtk_toggle_button_get_active(self)){ if (!gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->runWithUserCombo))){ gtk_adjustment_set_lower(adj,-20); @@ -180,7 +180,7 @@ void on_setup_command(GtkWidget *self, main_window *widgets){ int su_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSuCheck)); int sudo_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSudoCheck)); int priority_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->priorityCheck)); - char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->prioritySpin)))) : ""; + char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))))) : ""; int size; char *command = yon_char_unite(get_run_command_command, " -o", terminal_check ? yon_char_append(" --terminal=", terminal->name_simple) : "", @@ -196,6 +196,9 @@ void on_setup_command(GtkWidget *self, main_window *widgets){ gtk_entry_set_text(GTK_ENTRY(widgets->commandEntry),final_command); free(final_command); } + else { + gtk_entry_set_text(GTK_ENTRY(widgets->commandEntry),""); + } } void on_command_run(GtkWidget *self, main_window *widgets){ @@ -216,7 +219,7 @@ void on_command_run(GtkWidget *self, main_window *widgets){ int su_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSuCheck)); int sudo_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->runWithUserSudoCheck)); int priority_check = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->priorityCheck)); - char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->prioritySpin)))) : ""; + char *priority = priority_check ? yon_char_append(" --priority=",yon_char_from_long(gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))))) : ""; int size; char *command = yon_char_unite(get_run_command_command, terminal_check ? yon_char_append(" --terminal=", terminal->name_simple) : "", @@ -251,6 +254,22 @@ void config_init(){ main_config.lock_save_local=0; } +void on_adjustment_changed(GtkAdjustment *self, main_window *widgets){ + gtk_entry_set_text(GTK_ENTRY(widgets->prioritySpinEntry),yon_char_from_long(gtk_adjustment_get_value(self))); +} + +void on_adjustment_increase(GtkWidget *self, main_window *widgets) { + long current = gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))); + current ++; + gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)),current); +} + +void on_adjustment_decrease(GtkWidget *self, main_window *widgets) { + long current = gtk_adjustment_get_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))); + current --; + gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale)),current); +} + main_window *setup_window(){ /* Widgets getting | Получение виджетов */ main_window *widgets = malloc(sizeof(main_window)); @@ -276,7 +295,9 @@ main_window *setup_window(){ widgets->priorityCheck = yon_gtk_builder_get_widget(builder,"priorityCheck"); widgets->priorityScale = yon_gtk_builder_get_widget(builder,"priorityScale"); - widgets->prioritySpin = yon_gtk_builder_get_widget(builder,"prioritySpin"); + widgets->prioritySpinEntry = yon_gtk_builder_get_widget(builder,"prioritySpinEntry"); + widgets->prioritySpinIncreaseButton = yon_gtk_builder_get_widget(builder,"prioritySpinIncreaseButton"); + widgets->prioritySpinDecreaseButton = yon_gtk_builder_get_widget(builder,"prioritySpinDecreaseButton"); widgets->highestPriorityLabel = yon_gtk_builder_get_widget(builder,"highestPriorityLabel"); widgets->commandCheck = yon_gtk_builder_get_widget(builder,"commandCheck"); @@ -308,7 +329,7 @@ main_window *setup_window(){ 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->priorityCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),gtk_widget_get_parent(widgets->prioritySpinEntry)); 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); @@ -336,8 +357,12 @@ main_window *setup_window(){ g_signal_connect(G_OBJECT(widgets->priorityCheck),"toggled",G_CALLBACK(on_setup_command),widgets); g_signal_connect(G_OBJECT(widgets->priorityScale),"value-changed",G_CALLBACK(on_setup_command),widgets); + g_signal_connect(G_OBJECT(widgets->prioritySpinIncreaseButton),"clicked",G_CALLBACK(on_adjustment_increase),widgets); + g_signal_connect(G_OBJECT(widgets->prioritySpinDecreaseButton),"clicked",G_CALLBACK(on_adjustment_decrease),widgets); + + g_signal_connect(G_OBJECT(gtk_range_get_adjustment(GTK_RANGE(widgets->priorityScale))),"value-changed",G_CALLBACK(on_adjustment_changed),widgets); + g_signal_connect(G_OBJECT(widgets->runButton),"clicked",G_CALLBACK(on_command_run),widgets); - int size; gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->runWithUserCombo),"root"); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->runWithUserCombo),0); diff --git a/source/ublexec.h b/source/ublexec.h old mode 100644 new mode 100755 index 88d1603..f8e8072 --- a/source/ublexec.h +++ b/source/ublexec.h @@ -1,5 +1,6 @@ #include #include +#include #include "ubl-utils.h" #include #include @@ -97,7 +98,9 @@ typedef struct { GtkWidget *runWithUserCombo; GtkWidget *priorityCheck; GtkWidget *priorityScale; - GtkWidget *prioritySpin; + GtkWidget *prioritySpinEntry; + GtkWidget *prioritySpinIncreaseButton; + GtkWidget *prioritySpinDecreaseButton; GtkWidget *highestPriorityLabel; GtkWidget *commandCheck; diff --git a/ublexec-application.glade b/ublexec-application.glade index cae39b8..143fe08 100644 --- a/ublexec-application.glade +++ b/ublexec-application.glade @@ -2,6 +2,30 @@ + + True + False + True + + + True + False + center + Applications + + + + + + + + True + False + 32 + com.ublinux.ublexec + + + @@ -27,7 +51,6 @@ True True - in True @@ -35,6 +58,9 @@ treestore1 False treeviewcolumn1 + + + column @@ -63,31 +89,17 @@ 0 - - - - - True - False - True - - - True - False - center - Applications - - - - - - + True False - 32 - com.ublinux.ublexec + vertical + + False + True + 1 + diff --git a/ublexec.css b/ublexec.css index f8f987c..87942db 100644 --- a/ublexec.css +++ b/ublexec.css @@ -2,22 +2,27 @@ text-shadow: 2px 2px @theme_bg_color; color: @theme_text_color; } + .thin { margin:0px; padding:0px; } + .bannerbackground { background-color: #404040; } + .view_app { background-color: @theme_bg_color; } + .view_app.view.cell:selected { background-color:@theme_selected_bg_color; color:@theme_selected_text_color; transition: 10ms ease-out; border-radius: 3px; } + .boxInfoMessError{ background-color: #ea9999; } @@ -25,6 +30,7 @@ .boxInfoMessOK{ background-color: #f3f0ac; } + #GnomeIcon{ border-style:solid; border-bottom-width: 1px; @@ -39,28 +45,34 @@ #iconlabel { font-size:14px; font-weight: bold; - } + .roundborder * { border-width:0px; border-radius:5px; } + .noborder { border: none; } + .menu:hover { border-color:alpha(@theme_text_color, 0.01); } + .menu { border-color:alpha(@theme_text_color, 0.01); } + .menu:hover >* { border-color:alpha(@theme_text_color, 0.01); } + .menuitembottom{ margin-top:0px; margin-bottom:3px; } + .menuitemmiddle{ margin-top:0px; margin-bottom:0px; @@ -69,30 +81,36 @@ .menuitemtop{ margin-bottom:0px; } + .menuitemtop *{ margin:2px 2px 0 2px; padding: 5px 10px 3px 5px; } + .menuitemmiddle *{ margin:0 2px 0 2px; padding: 3px 10px 3px 5px; } + .menuitembottom *{ margin:0 2px 2px 2px; padding: 3px 10px 5px 5px; } + .menuitemtop:hover { background:@theme_bg_color; border-color:inherit; border-left-width:inherit; border-right-width:inherit; } + .menuitemmiddle:hover { background:@theme_bg_color; border-color:inherit; border-left-width:inherit; border-right-width:inherit; } + .menuitembottom:hover { background:@theme_bg_color; border-color:inherit; @@ -100,18 +118,21 @@ border-right-width:inherit; } + .menuitemtop:hover* { margin:2px 2px 0 2px; padding: 5px 10px 3px 5px; background:@theme_selected_bg_color; border-radius:2px; } + .menuitemmiddle:hover* { margin:0 2px 0 2px; padding: 3px 10px 3px 5px; background:@theme_selected_bg_color; border-radius:2px; } + .menuitembottom:hover* { margin:0 2px 2px 2px; padding: 3px 10px 5px 5px; @@ -122,18 +143,22 @@ .workingbg, #workingbg { background-color:@theme_base_color; } + .workingbg.view.cell:selected { background-color:@theme_selected_bg_color; } + .workingbg.view.cell:hover { background-color:darker(@theme_selected_bg_color); color:@theme_selected_text_color; border-radius:3px; } + .bkim { transition: 200ms ease-out; background-image: none; } + .noborder{ border:none; } @@ -156,22 +181,43 @@ opacity:0.99; border-left-width:inherit; border-right-width:inherit; } + .aaa *{ margin:0 2px 0 2px; padding-top: 3px; padding-bottom:3px; border:transparent; } + .aaa:hover { background:@theme_bg_color; border-color:inherit; border-left-width:inherit; border-right-width:inherit; } + .aaa:hover * { margin:0 2px 0 2px; padding-top: 3px; padding-bottom:3px; background:@theme_selected_bg_color; border-radius:2px; +} + +.flatborders { + border-radius: 0px; +} + +.flatbordersleft { + border-top-left-radius: 0px; + border-bottom-left-radius: 0px; +} + +.flatbordersright { + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; +} + +.noleftborder { + border-left: 0px; } \ No newline at end of file diff --git a/ublexec.glade b/ublexec.glade index 8f2f5a9..c455f4f 100644 --- a/ublexec.glade +++ b/ublexec.glade @@ -67,6 +67,7 @@ + 19 1 @@ -380,6 +381,16 @@ translated and supported by community. False media-playback-start-symbolic + + True + False + value-decrease-symbolic + + + True + False + value-increase-symbolic + @@ -406,7 +417,7 @@ translated and supported by community. 800 - 600 + 545 False com.ublinux.ublexec @@ -549,7 +560,6 @@ translated and supported by community. True File view end - 5 True @@ -942,18 +952,69 @@ translated and supported by community. - + True False - True + False center - adjustment1 - True + + + True + True + center + 4 + 2 + 0 + digits + + + + False + True + 0 + + + + + True + True + True + image3 + + + + False + True + 1 + + + + + True + True + True + image2 + + + + False + True + 2 + + False True - 2 + 3 @@ -1157,6 +1218,8 @@ translated and supported by community. True False + 5 + 5 32 com.ublinux.ublexec @@ -1193,12 +1256,6 @@ translated and supported by community. - - - - - - 800 600