Added app/service startup add window highlight for required field #387

Merged
asmeron merged 8 commits from YanTheKaller/ubinstall-gtk:master into master 2 weeks ago

@ -5361,3 +5361,9 @@ msgstr ""
msgid "Database update" msgid "Database update"
msgstr "" msgstr ""
msgid "The required field is highlighted in green"
msgstr ""
msgid "Authentication in the bootloader menu"
msgstr ""

@ -5556,3 +5556,9 @@ msgstr "Выберите источники для "
msgid "Database update" msgid "Database update"
msgstr "Обновление баз данных" msgstr "Обновление баз данных"
msgid "The required field is highlighted in green"
msgstr "Обязательное поле подсвечено зелёным"
msgid "Authentication in the bootloader menu"
msgstr "Аутентификация в меню загрузчика"

@ -242,6 +242,7 @@ void *yon_modules_list_load(main_window *widgets){
row->size = yon_char_unite(temp," ", size_str,NULL); row->size = yon_char_unite(temp," ", size_str,NULL);
free(temp); free(temp);
g_idle_add((GSourceFunc)yon_os_component_insert,row); g_idle_add((GSourceFunc)yon_os_component_insert,row);
// yon_os_component_insert(row);
} }
if (main_config.modules_size) yon_char_parsed_free(main_config.modules,main_config.modules_size); if (main_config.modules_size) yon_char_parsed_free(main_config.modules,main_config.modules_size);
main_config.modules = modules; main_config.modules = modules;
@ -249,6 +250,8 @@ void *yon_modules_list_load(main_window *widgets){
} }
g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner); g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
g_idle_add((GSourceFunc)yon_os_components_load,widgets); g_idle_add((GSourceFunc)yon_os_components_load,widgets);
// yon_spinner_switch_off(GTK_SPINNER(widgets->OSSpinner));
// yon_os_components_load(widgets);
g_thread_exit(NULL); g_thread_exit(NULL);
} }
@ -549,10 +552,12 @@ void yon_software_init(main_window *widgets){
row->size_raw = size; row->size_raw = size;
row->size = size_str; row->size = size_str;
row->widgets=widgets; row->widgets=widgets;
g_idle_add((GSourceFunc)yon_software_insert,row); yon_software_insert(row);
// g_idle_add((GSourceFunc)yon_software_insert,row);
while(gtk_events_pending()) gtk_main_iteration(); while(gtk_events_pending()) gtk_main_iteration();
} }
g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner); yon_spinner_switch_off(GTK_SPINNER(widgets->OSSpinner));
// g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner);
yon_char_parsed_free(base,base_size); yon_char_parsed_free(base,base_size);
yon_software_check_packages_size(NULL,widgets); yon_software_check_packages_size(NULL,widgets);
return ; return ;
@ -750,7 +755,6 @@ gboolean yon_pacman_fill(struct pacman_struct *pacman){
yon_char_parsed_free(loaded,size); yon_char_parsed_free(loaded,size);
gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,1); gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,1);
gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,1); gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,1);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,1);
g_object_ref(G_OBJECT(widgets->MainSpinner)); g_object_ref(G_OBJECT(widgets->MainSpinner));
gtk_container_remove(GTK_CONTAINER(widgets->PacmanLoadingOverlay),widgets->MainSpinner); gtk_container_remove(GTK_CONTAINER(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
return G_SOURCE_REMOVE; return G_SOURCE_REMOVE;
@ -760,7 +764,8 @@ void *yon_pacman_load(struct pacman_struct *pacman){
const char *find_package = pacman->find_package; const char *find_package = pacman->find_package;
// char *command = get_local_module_info_command(find_package); // char *command = get_local_module_info_command(find_package);
pacman->packages = yon_packages_find(YON_PACKAGES_SYNC,find_package,&pacman->packages_size); pacman->packages = yon_packages_find(YON_PACKAGES_SYNC,find_package,&pacman->packages_size);
g_idle_add((GSourceFunc)yon_pacman_fill,pacman); // g_idle_add((GSourceFunc)yon_pacman_fill,pacman);
yon_pacman_fill(pacman);
return NULL; return NULL;
} }
@ -782,7 +787,6 @@ void on_pacman_icon_press(GtkEntry *self,GtkEntryIconPosition icon_pos,GdkEvent*
pacman->find_package=find_package; pacman->find_package=find_package;
gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,0); gtk_widget_set_sensitive(widgets->PacmanSoftwareSearchEntry,0);
gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,0); gtk_widget_set_sensitive(widgets->PacmanSoftwareChosenPackagesTree,0);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,0);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->PacmanLoadingOverlay),widgets->MainSpinner); gtk_overlay_add_overlay(GTK_OVERLAY(widgets->PacmanLoadingOverlay),widgets->MainSpinner);
g_thread_new("pacman_modules_get_thread",(GThreadFunc)yon_pacman_load,pacman); g_thread_new("pacman_modules_get_thread",(GThreadFunc)yon_pacman_load,pacman);
} }

@ -236,6 +236,8 @@ void on_configuration_hub_open(GtkFlowBox *,GtkFlowBoxChild *child, main_window
config_hub_icon *cur_icon = g_object_get_data(G_OBJECT(child),"config_hub_icon"); config_hub_icon *cur_icon = g_object_get_data(G_OBJECT(child),"config_hub_icon");
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),cur_icon->page); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),cur_icon->page);
yon_page_init(widgets,cur_icon->page);
yon_page_update(widgets);
switch(cur_icon->page){ switch(cur_icon->page){
case YON_PAGE_OS_COMPONENTS: case YON_PAGE_OS_COMPONENTS:
case YON_PAGE_KERNEL: case YON_PAGE_KERNEL:
@ -247,8 +249,6 @@ void on_configuration_hub_open(GtkFlowBox *,GtkFlowBoxChild *child, main_window
break; break;
default: break; default: break;
}; };
yon_page_init(widgets,cur_icon->page);
yon_page_update(widgets);
} }
void yon_configuration_hub_add(GtkFlowBox *target, char *name, char *icon, enum YON_PAGES page){ void yon_configuration_hub_add(GtkFlowBox *target, char *name, char *icon, enum YON_PAGES page){

@ -8,15 +8,20 @@ int yon_installation_start(main_window *widgets){
void yon_quick_install(GtkWidget *self, main_window *widgets){ void yon_quick_install(GtkWidget *self, main_window *widgets){
if (!yon_installation_check_packages_size(widgets)) return; if (!yon_installation_check_packages_size(widgets)) return;
main_config.save_configured=1; if (!main_config.dry_run){
gtk_widget_hide(self); main_config.save_configured=1;
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress)); gtk_widget_hide(self);
pthread_create(&main_config.install_thread,NULL,on_config_save,widgets); gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); pthread_create(&main_config.install_thread,NULL,on_config_save,widgets);
if (!yon_char_is_empty(main_config.config_load_path)){ gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
char *command = quick_install_command(main_config.config_load_path); if (!yon_char_is_empty(main_config.config_load_path)){
yon_launch_app_with_arguments(command,NULL); char *command = quick_install_command(main_config.config_load_path);
yon_launch_app_with_arguments(command,NULL);
}
yon_page_init(widgets,YON_PAGE_INSTALLATION);
yon_page_update(widgets);
} else {
yon_launch("ubconfig --source system get /");
} }
yon_page_init(widgets,YON_PAGE_INSTALLATION);
yon_page_update(widgets);
} }

@ -602,6 +602,7 @@ void on_page_next_clicked(GtkWidget *, main_window *widgets){
page = yon_page_get_next(widgets,page); page = yon_page_get_next(widgets,page);
if ((int)page!=-1){ if ((int)page!=-1){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page);
yon_page_init(widgets,page);
switch(page){ switch(page){
case YON_PAGE_KERNEL: case YON_PAGE_KERNEL:
case YON_PAGE_KERNEL_ADDON: case YON_PAGE_KERNEL_ADDON:
@ -612,7 +613,6 @@ void on_page_next_clicked(GtkWidget *, main_window *widgets){
break; break;
default: break; default: break;
}; };
yon_page_init(widgets,page);
} }
yon_page_update(widgets); yon_page_update(widgets);
} }

@ -8,22 +8,25 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
if (type!=YON_CONFIG_CUSTOM){ if (type!=YON_CONFIG_CUSTOM){
yon_config_clean(); yon_config_clean();
} }
if (!yon_char_is_empty(config_get_default_command)) if (!yon_char_is_empty(config_get_default_command)){
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
}
if (main_config.config_load_path){
if (main_config.startup_config){
yon_config_restore(NULL);
yon_config_custom_clean(main_config.startup_config);
}
main_config.startup_config = NULL;
yon_config_custom_load_config(&main_config.startup_config,config_get_command(main_config.config_load_path),NULL);
}
switch (type){ switch (type){
case YON_CONFIG_LOCAL: case YON_CONFIG_LOCAL:
if (main_config.startup_config){
yon_config_restore(NULL);
}
yon_config_custom_clean(main_config.startup_config);
main_config.startup_config = NULL;
yon_config_custom_load_config(&main_config.startup_config,config_get_command("system"),NULL);
main_config.config_load_path = yon_char_new("system"); main_config.config_load_path = yon_char_new("system");
main_config.config_save_path = main_config.config_load_path; main_config.config_save_path = main_config.config_load_path;
yon_config_load_config(type,config_get_command("system"),NULL); yon_config_load_config(type,config_get_command("system"),NULL);
break; break;
case YON_CONFIG_CUSTOM: case YON_CONFIG_CUSTOM:
if (yon_char_is_empty(main_config.config_load_path)){ if (yon_char_is_empty(main_config.force_ini)){
char *path = NULL; char *path = NULL;
path=yon_custom_config_init(GTK_FILE_CHOOSER_ACTION_OPEN); path=yon_custom_config_init(GTK_FILE_CHOOSER_ACTION_OPEN);
if (!yon_char_is_empty(path)){ if (!yon_char_is_empty(path)){
@ -34,7 +37,7 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
} }
} else { } else {
yon_config_clean(); yon_config_clean();
yon_config_load_config(type,config_get_command(main_config.config_load_path),NULL); yon_config_load_config(type,config_get_command(main_config.force_ini),NULL);
} }
break; break;
default: default:
@ -47,11 +50,6 @@ void on_config_local_load(GtkWidget *,main_window *widgets){
on_config_custom_load_last(NULL,widgets); on_config_custom_load_last(NULL,widgets);
return; return;
} }
if (!yon_char_is_empty(main_config.config_load_path)) free(main_config.config_load_path);
main_config.config_load_path = yon_char_new("system");
// yon_config_custom_clean(main_config.startup_config);
// main_config.startup_config = NULL;
// yon_config_custom_load_config(&main_config.startup_config,config_get_command("system"),NULL);
yon_load_proceed(YON_CONFIG_LOCAL); yon_load_proceed(YON_CONFIG_LOCAL);
main_config.load_mode=YON_CONFIG_LOCAL; main_config.load_mode=YON_CONFIG_LOCAL;
yon_main_window_update_locale(widgets); yon_main_window_update_locale(widgets);
@ -60,18 +58,10 @@ void on_config_local_load(GtkWidget *,main_window *widgets){
void on_config_custom_load(GtkWidget *,main_window *){ void on_config_custom_load(GtkWidget *,main_window *){
char *temp_custom_path = NULL; char *temp_custom_path = NULL;
if (!yon_char_is_empty(main_config.config_load_path)){
temp_custom_path = main_config.config_load_path;
main_config.config_load_path = NULL;
main_config.config_save_path = NULL;
}
yon_load_proceed(YON_CONFIG_CUSTOM); yon_load_proceed(YON_CONFIG_CUSTOM);
if (!yon_char_is_empty(main_config.config_load_path)){ if (!yon_char_is_empty(main_config.config_load_path)){
main_config.load_mode=YON_CONFIG_CUSTOM; main_config.load_mode=YON_CONFIG_CUSTOM;
free(temp_custom_path); free(temp_custom_path);
} else {
main_config.config_load_path = temp_custom_path;
main_config.config_save_path = main_config.config_load_path;
} }
} }
@ -351,14 +341,16 @@ int yon_config_save(main_window *widgets){
} }
void yon_config_restore(main_window *){ void yon_config_restore(main_window *){
yon_launch(yon_debug_output("%s\n","ubconfig --source system remove [autoinstall]")); if (yon_char_is_empty(main_config.config_load_path)) return;
char *remove_command = yon_char_unite("ubconfig --source ",main_config.config_load_path," remove [autoinstall]",NULL);
yon_launch(yon_debug_output("%s\n",remove_command));
yon_config_custom_apply(&main_config.startup_config); yon_config_custom_apply(&main_config.startup_config);
yon_config_set_status_full(1); yon_config_set_status_full(1);
int size = 0; int size = 0;
config_str parameters = yon_config_get_save_parameters(&size); config_str parameters = yon_config_get_save_parameters(&size);
if (size){ if (size){
char *command_params = yon_char_parsed_to_string(parameters,size, " "); char *command_params = yon_char_parsed_to_string(parameters,size, " ");
char *command = yon_char_unite(ubconfig_set_command("system"),command_params,NULL); char *command = yon_char_unite(ubconfig_set_command(main_config.config_load_path),command_params,NULL);
yon_debug_output("%s\n",command); yon_debug_output("%s\n",command);
yon_launch(command); yon_launch(command);
yon_char_parsed_free(parameters,size); yon_char_parsed_free(parameters,size);

@ -165,6 +165,7 @@ startup_service_window *yon_startup_app_window_new(){
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_object_set_data(G_OBJECT(window->AcceptButton),"startup_service_window",window); g_object_set_data(G_OBJECT(window->AcceptButton),"startup_service_window",window);
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),IMPORTANT_OUTLINE_LABEL,0,BACKGROUND_IMAGE_INFO_TYPE);
return window; return window;
} }

@ -168,6 +168,7 @@ startup_service_window *yon_startup_service_window_new(){
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
g_object_set_data(G_OBJECT(window->AcceptButton),"startup_service_window",window); g_object_set_data(G_OBJECT(window->AcceptButton),"startup_service_window",window);
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),IMPORTANT_OUTLINE_LABEL,0,BACKGROUND_IMAGE_INFO_TYPE);
return window; return window;
} }

@ -393,6 +393,7 @@ void yon_db_lock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_w
gtk_widget_set_sensitive(widgets->KernelPacmanStatusButton,0); gtk_widget_set_sensitive(widgets->KernelPacmanStatusButton,0);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,0); gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,0);
gtk_widget_set_sensitive(widgets->KernelAddonPacmanStatusButton,0); gtk_widget_set_sensitive(widgets->KernelAddonPacmanStatusButton,0);
gtk_widget_set_sensitive(widgets->PackagesStatusButton,0);
gtk_widget_set_sensitive(widgets->AdditionalComponentsStatusButton,0); gtk_widget_set_sensitive(widgets->AdditionalComponentsStatusButton,0);
} }
} }
@ -402,6 +403,7 @@ void yon_db_unlock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main
gtk_widget_set_sensitive(widgets->KernelPacmanStatusButton,1); gtk_widget_set_sensitive(widgets->KernelPacmanStatusButton,1);
gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,1); gtk_widget_set_sensitive(widgets->PacmanSoftwareStatusButton,1);
gtk_widget_set_sensitive(widgets->KernelAddonPacmanStatusButton,1); gtk_widget_set_sensitive(widgets->KernelAddonPacmanStatusButton,1);
gtk_widget_set_sensitive(widgets->PackagesStatusButton,1);
gtk_widget_set_sensitive(widgets->AdditionalComponentsStatusButton,1); gtk_widget_set_sensitive(widgets->AdditionalComponentsStatusButton,1);
} }
} }
@ -1049,6 +1051,9 @@ void yon_main_window_create(main_window *widgets){
exit (1); exit (1);
} }
yon_config_mode_start(widgets); yon_config_mode_start(widgets);
} else {
yon_config_custom_load_config(&main_config.startup_config,config_get_command("system"),NULL);
} }
{ {
char *command = yon_config_parameter_prepare_command(part_size_parameter_command,"default",NULL,NULL); char *command = yon_config_parameter_prepare_command(part_size_parameter_command,"default",NULL,NULL);

@ -306,7 +306,9 @@ NULL)
#define INFO_LABEL _("Package information") #define INFO_LABEL _("Package information")
#define ALREADY_RUNNING_LABEL _("Application is already running") #define ALREADY_RUNNING_LABEL _("Application is already running")
#define DB_UPDATE_LABEL _("Database update") #define DB_UPDATE_LABEL _("Database update")
#define IMPORTANT_OUTLINE_LABEL _("The required field is highlighted in green")
// #define _LABEL _("Authentication in the bootloader menu")
// #define _LABEL _("Chosen size:") // #define _LABEL _("Chosen size:")
// #define _LABEL _("Overall size:") // #define _LABEL _("Overall size:")
// #define _LABEL _("Select your language:") // #define _LABEL _("Select your language:")

@ -72,6 +72,9 @@
<object class="GtkEntry" id="ServiceEntry"> <object class="GtkEntry" id="ServiceEntry">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<style>
<class name="important_border"/>
</style>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>

@ -20,6 +20,11 @@ background:transparent;
background:transparent; background:transparent;
} }
.important_border {
border-color: #009e0f;
border-style: solid;
}
.bgcommon { .bgcommon {
background:@theme_bg_color; background:@theme_bg_color;
} }

@ -6548,10 +6548,12 @@ Select a different installation sources.</property>
</child> </child>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkSwitch" id="BootloadNoPasswordSwitch"> <object class="GtkSwitch" id="BootloadNoPasswordSwitch">
<property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
</object> </object>
<packing> <packing>
@ -6564,7 +6566,7 @@ Select a different installation sources.</property>
<object class="GtkLabel"> <object class="GtkLabel">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Login without password request</property> <property name="label" translatable="yes">Authentication in the bootloader menu</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>

Loading…
Cancel
Save