Merge pull request 'master' (#396) from YanTheKaller/ubinstall-gtk:master into master

Reviewed-on: #396
master v2.11
Dmitry Razumov 2 weeks ago
commit c4dbd7134d

@ -133,10 +133,11 @@ install: check uninstall
@if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \ @if [[ "${PREFIX}" == @("/usr"|"/usr/") ]]; then \
install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"; \ install -Dm644 -t "${DESTDIR}${PREFIX}/share/polkit-1/actions/" "com.ublinux.${PKGNAME}.policy"; \
else \ else \
# install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}-local.policy"; \
install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ install -Dm644 "com.ublinux.${PKGNAME}.policy" "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
# sed -e "s+/usr/bin+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ # sed -e "s+/usr/bin+${PREFIX}/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}${PREFIX}/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
sed -e "s+/usr/bin+/usr/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \ sed -e "s+/usr/bin+/usr/bin+" -e "s+\.run+$${PREFIX//\//-}\.run+g" -i "${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}$${PREFIX//\//-}.policy"; \
sed -e '\|annotate key=|s|/usr/bin|${PREFIX}/bin|' -e '/action id=/s/\.run/${PKGIDENT}\.run/' -i ${DESTDIR}/usr/share/polkit-1/actions/com.ublinux.${PKGNAME}-local.policy;\
fi fi
@if [[ -z "${DESTDIR}" ]]; then \ @if [[ -z "${DESTDIR}" ]]; then \
ldconfig -n ${DESTDIR}/usr/lib; \ ldconfig -n ${DESTDIR}/usr/lib; \

@ -5366,4 +5366,7 @@ msgid "The required field is highlighted in green"
msgstr "" msgstr ""
msgid "Authentication in the bootloader menu" msgid "Authentication in the bootloader menu"
msgstr ""
msgid "Exit"
msgstr "" msgstr ""

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

@ -700,8 +700,8 @@ void yon_advanced_init(main_window *widgets){
} }
yon_char_parsed_free(vmf_file,size); yon_char_parsed_free(vmf_file,size);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets); g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets);
char *install_mode = config(AUTOINSTALL_TYPE_INSTALL);
if (!strcmp(config(AUTOINSTALL_TYPE_INSTALL),"custom")){ if (!yon_char_is_empty(install_mode)&&!strcmp(install_mode,"custom")){
advanced_part_data *data1 = yon_advanced_get_config_data(0); advanced_part_data *data1 = yon_advanced_get_config_data(0);
advanced_part_data *data2 = yon_advanced_get_config_data(1); advanced_part_data *data2 = yon_advanced_get_config_data(1);
yon_advanced_part_select_for_data(data1,widgets); yon_advanced_part_select_for_data(data1,widgets);

@ -18,6 +18,11 @@ int yon_bootloader_save(main_window *widgets){
yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,NULL); yon_config_register(GRUB_SUPERUSERS_parameter,GRUB_SUPERUSERS_parameter_command,NULL);
yon_config_set_status(GRUB_SUPERUSERS_parameter,-1); yon_config_set_status(GRUB_SUPERUSERS_parameter,-1);
} }
if (!gtk_switch_get_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch))){
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
} else {
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList); GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList);
for_iter(model,&iter){ for_iter(model,&iter){
@ -31,6 +36,7 @@ int yon_bootloader_save(main_window *widgets){
yon_config_remove_by_key(GRUB_SUPERUSERS_parameter); yon_config_remove_by_key(GRUB_SUPERUSERS_parameter);
} }
} }
}
if (!main_config.configure_mode){ if (!main_config.configure_mode){
@ -475,7 +481,10 @@ void yon_bootloader_init(main_window *widgets){
} else { } else {
gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL); gtk_entry_set_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry),DEFAULT_BOOTLOAD_MENU_ITEM_LABEL);
} }
{ if (!admins&&!size){
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),0);
} else {
gtk_switch_set_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch),1);
int admins_size; int admins_size;
config_str admins_parsed = yon_char_parse(admins,&admins_size,","); config_str admins_parsed = yon_char_parse(admins,&admins_size,",");
GtkTreeIter iter; GtkTreeIter iter;

@ -21,6 +21,13 @@ int yon_configuration_path_check(const char *path){
} else { } else {
full_path = yon_char_new(path); full_path = yon_char_new(path);
} }
{
if (!strstr(full_path,".")){
char *temp = yon_char_append(full_path,".ini");
free(full_path);
full_path = temp;
}
}
if (access(full_path,F_OK)){ if (access(full_path,F_OK)){
dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text = homedir_create?CREATE_CONFIG_DIALOG_LABEL_HOMEDIR:CREATE_CONFIG_DIALOG_LABEL; data->action_text = homedir_create?CREATE_CONFIG_DIALOG_LABEL_HOMEDIR:CREATE_CONFIG_DIALOG_LABEL;
@ -68,7 +75,11 @@ void on_path_choose(GtkWidget *,configuration_window *window){
filechooser_window *dialog = yon_config_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SAVE); filechooser_window *dialog = yon_config_file_chooser_window_new(GTK_FILE_CHOOSER_ACTION_SAVE);
yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),CONFIGURATION_MODE_TITLE_LABEL,icon_path,"filechooser_window"); yon_gtk_window_setup(GTK_WINDOW(dialog->Window),GTK_WINDOW(window->Window),CONFIGURATION_MODE_TITLE_LABEL,icon_path,"filechooser_window");
if (yon_file_chooser_start(dialog)==GTK_RESPONSE_APPLY){ if (yon_file_chooser_start(dialog)==GTK_RESPONSE_APPLY){
gtk_entry_set_text(GTK_ENTRY(window->PathEntry),dialog->last_success_selection); char *path = dialog->last_success_selection;
if (!strstr(dialog->last_success_selection,".")){
path = yon_char_append(dialog->last_any_selection,".ini");
}
gtk_entry_set_text(GTK_ENTRY(window->PathEntry),path);
free(dialog); free(dialog);
} }
} }
@ -124,11 +135,11 @@ void on_configuration_mode_switch(GtkWidget *,main_window *widgets){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),ROOT_FORCE_CONFIGURATION_MODE_LABEL,0,BACKGROUND_IMAGE_INFO_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),ROOT_FORCE_CONFIGURATION_MODE_LABEL,0,BACKGROUND_IMAGE_INFO_TYPE);
} }
if (!yon_char_is_empty(main_config.config_save_path)) { if (!yon_char_is_empty(main_config.config_save_path)&&strcmp(main_config.config_save_path,"system")) {
gtk_entry_set_text(GTK_ENTRY(window->PathEntry),main_config.config_save_path); gtk_entry_set_text(GTK_ENTRY(window->PathEntry),main_config.config_save_path);
}
free(main_config.config_save_path); free(main_config.config_save_path);
main_config.config_save_path = NULL; main_config.config_save_path = NULL;
}
gtk_widget_show(window->Window); gtk_widget_show(window->Window);
gtk_main(); gtk_main();
yon_config_mode_start(widgets); yon_config_mode_start(widgets);

@ -8,20 +8,38 @@ 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;
if (!main_config.dry_run){ main_config.save_configured=1;
main_config.save_configured=1; gtk_widget_hide(self);
gtk_widget_hide(self); gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress));
gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress)); pthread_create(&main_config.install_thread,NULL,on_quick_install_start,widgets);
pthread_create(&main_config.install_thread,NULL,on_config_save,widgets); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION);
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); yon_page_init(widgets,YON_PAGE_INSTALLATION);
if (!yon_char_is_empty(main_config.config_load_path)){ yon_page_update(widgets);
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 /");
}
} }
void *on_quick_install_start(void *data){
main_window *widgets = (main_window*)data;
g_idle_add((GSourceFunc)yon_progress_bar_start,widgets);
if (!main_config.dry_run){
char *command = yon_debug_output("%s\n",quick_install_command(main_config.config_load_path));
yon_debug_output("%s\n","Entered installation");
if (system(yon_debug_output("%s\n",command))){
gdk_threads_add_idle((GSourceFunc)on_install_error,widgets);
free(command);
g_mutex_lock(&main_config.install_mutex);
main_config.install_complete=1;
g_mutex_unlock(&main_config.install_mutex);
return 0;
};
free(command);
g_mutex_lock(&main_config.install_mutex);
main_config.install_complete=1;
g_mutex_unlock(&main_config.install_mutex);
g_idle_add((GSourceFunc)on_install_success,widgets);
} else {
yon_launch("ubconfig --source system get /");
}
return 0;
}

@ -149,7 +149,7 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
gtk_widget_hide(widgets->StartScenarioButton); gtk_widget_hide(widgets->StartScenarioButton);
switch(page){ switch(page){
case YON_PAGE_WELCOME: case YON_PAGE_WELCOME:
yon_load_proceed(YON_CONFIG_LOCAL); // yon_load_proceed(YON_CONFIG_LOCAL);
gtk_widget_hide(widgets->BackButton); gtk_widget_hide(widgets->BackButton);
gtk_widget_set_sensitive(widgets->NextButton,1); gtk_widget_set_sensitive(widgets->NextButton,1);
gtk_widget_set_sensitive(widgets->CancelInstallButton,0); gtk_widget_set_sensitive(widgets->CancelInstallButton,0);
@ -158,18 +158,20 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
gtk_widget_hide(widgets->BackButton); gtk_widget_hide(widgets->BackButton);
gtk_widget_hide(widgets->SourceButton); gtk_widget_hide(widgets->SourceButton);
gtk_widget_show(widgets->NextButton); gtk_widget_show(widgets->NextButton);
gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL);
break; break;
case YON_PAGE_LICENCE: case YON_PAGE_LICENCE:
gtk_widget_show(widgets->BackButton); gtk_widget_show(widgets->BackButton);
gtk_widget_set_sensitive(widgets->BackButton,1); gtk_widget_set_sensitive(widgets->BackButton,1);
gtk_widget_set_sensitive(widgets->LoadLocalConfigurationMenuItem,1); gtk_widget_set_sensitive(widgets->LoadLocalConfigurationMenuItem,1);
gtk_widget_set_sensitive(widgets->LoadExternalConfigurationMenuItem,1); gtk_widget_set_sensitive(widgets->LoadExternalConfigurationMenuItem,1);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LicenseAgreeRadio))) if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LicenseAgreeRadio))){
gtk_widget_set_sensitive(widgets->NextButton,1); gtk_widget_set_sensitive(widgets->NextButton,1);
else } else {
gtk_widget_set_sensitive(widgets->NextButton,0); gtk_widget_set_sensitive(widgets->NextButton,0);
}
gtk_widget_set_sensitive(widgets->CancelInstallButton,1); gtk_widget_set_sensitive(widgets->CancelInstallButton,1);
gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL);
break; break;
case YON_PAGE_INSTALLATION: case YON_PAGE_INSTALLATION:
gtk_widget_set_sensitive(widgets->NextButton,0); gtk_widget_set_sensitive(widgets->NextButton,0);
@ -228,6 +230,7 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
{ {
gtk_widget_set_sensitive(widgets->LoadLocalConfigurationMenuItem,0); gtk_widget_set_sensitive(widgets->LoadLocalConfigurationMenuItem,0);
gtk_widget_set_sensitive(widgets->LoadExternalConfigurationMenuItem,0); gtk_widget_set_sensitive(widgets->LoadExternalConfigurationMenuItem,0);
gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL);
} break; } break;
default: default:
gtk_widget_set_sensitive(widgets->BackButton,1); gtk_widget_set_sensitive(widgets->BackButton,1);
@ -268,6 +271,7 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){
gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL); gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL);
GtkWidget *image = gtk_button_get_image(GTK_BUTTON(widgets->NextButton)); GtkWidget *image = gtk_button_get_image(GTK_BUTTON(widgets->NextButton));
gtk_image_set_from_icon_name(GTK_IMAGE(image),arrow_right_icon_path,GTK_ICON_SIZE_BUTTON); gtk_image_set_from_icon_name(GTK_IMAGE(image),arrow_right_icon_path,GTK_ICON_SIZE_BUTTON);
gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL);
} break; } break;
default: break; default: break;
} }
@ -454,7 +458,7 @@ void yon_container_stop_loading(GtkWidget *target){
void yon_configuration_mode_check(main_window *widgets){ void yon_configuration_mode_check(main_window *widgets){
enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
if (page==YON_PAGE_WELCOME&&!main_config.force_ini){ if (page==YON_PAGE_WELCOME&&!main_config.force_ini&&!getuid()){
gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1); gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1);
} else { } else {
gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,0); gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,0);

@ -7,22 +7,22 @@ void yon_config_save_proceed(char *path, YON_CONFIG_TYPE type){
void yon_load_proceed(YON_CONFIG_TYPE type){ 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 (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;
}
} }
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:
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_custom_load_config(&main_config.startup_config,config_get_command("system"),NULL);
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:
@ -30,14 +30,23 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
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)){
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;
}
main_config.config_load_path = yon_char_new(path); main_config.config_load_path = yon_char_new(path);
main_config.config_save_path = main_config.config_load_path; main_config.config_save_path = main_config.config_load_path;
yon_config_clean(); yon_config_clean();
yon_config_load_config(type,config_get_command(path),NULL); yon_config_load_config(type,config_get_command(path),NULL);
yon_config_custom_load_config(&main_config.startup_config,config_get_command(path),NULL);
} }
} else { } else {
yon_config_clean(); yon_config_clean();
yon_config_load_config(type,config_get_command(main_config.force_ini),NULL); yon_config_load_config(type,config_get_command(main_config.force_ini),NULL);
yon_config_custom_load_config(&main_config.startup_config,config_get_command(main_config.force_ini),NULL);
} }
break; break;
default: default:
@ -53,25 +62,28 @@ void on_config_local_load(GtkWidget *,main_window *widgets){
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);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook))); yon_navigation_buttons_set_sensetiveness(widgets);
} }
void on_config_custom_load(GtkWidget *,main_window *){ void on_config_custom_load(GtkWidget *,main_window *widgets){
char *temp_custom_path = NULL; char *temp_custom_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);
} }
yon_navigation_buttons_set_sensetiveness(widgets);
} }
void on_config_custom_load_last(GtkWidget *,main_window *){ void on_config_custom_load_last(GtkWidget *,main_window *widgets){
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);
char *command = config_get_command(main_config.config_load_path); char *command = config_get_command(main_config.config_load_path);
yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL);
main_config.load_mode=YON_CONFIG_CUSTOM; main_config.load_mode=YON_CONFIG_CUSTOM;
int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
yon_page_init(widgets,page);
} }
void on_config_global_local_save(GtkWidget *,main_window *widgets){ void on_config_global_local_save(GtkWidget *,main_window *widgets){

@ -174,6 +174,11 @@ void on_source_accept(GtkWidget *,source_window *window){
yon_ubl_status_highlight_incorrect(element->DeviceCombo); yon_ubl_status_highlight_incorrect(element->DeviceCombo);
return; return;
} }
if (strstr(cur,",")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PATH_INVALID_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(element->DeviceCombo);
return;
}
char *temp = yon_char_append_element(sources_list,cur,","); char *temp = yon_char_append_element(sources_list,cur,",");
if (!yon_char_is_empty(sources_list)) free(sources_list); if (!yon_char_is_empty(sources_list)) free(sources_list);
sources_list = temp; sources_list = temp;
@ -187,7 +192,12 @@ void on_source_accept(GtkWidget *,source_window *window){
} }
if (yon_char_check_element(sources_list,cur,",")){ if (yon_char_check_element(sources_list,cur,",")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(element->DeviceCombo); yon_ubl_status_highlight_incorrect(element->PathEntry);
return;
}
if (strstr(cur,",")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PATH_INVALID_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(element->PathEntry);
return; return;
} }
char *temp = yon_char_append_element(sources_list,cur,","); char *temp = yon_char_append_element(sources_list,cur,",");
@ -198,7 +208,12 @@ void on_source_accept(GtkWidget *,source_window *window){
char *cur = (char*)gtk_entry_get_text(GTK_ENTRY(element->PathEntry)); char *cur = (char*)gtk_entry_get_text(GTK_ENTRY(element->PathEntry));
if (yon_char_check_element(sources_list,cur,",")){ if (yon_char_check_element(sources_list,cur,",")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),VALUE_REPEAT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(element->DeviceCombo); yon_ubl_status_highlight_incorrect(element->PathEntry);
return;
}
if (strstr(cur,",")){
yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),PATH_INVALID_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
yon_ubl_status_highlight_incorrect(element->PathEntry);
return; return;
} }
char *temp = yon_char_append_element(sources_list,cur,","); char *temp = yon_char_append_element(sources_list,cur,",");

@ -237,6 +237,7 @@ void config_init(){
for (int i=0;i<main_config.layouts_size;i++){ for (int i=0;i<main_config.layouts_size;i++){
yon_char_remove_last_symbol(main_config.layouts_list[i],'\n'); yon_char_remove_last_symbol(main_config.layouts_list[i],'\n');
} }
main_config.startup_config=NULL;
} }
void on_gparted_open(){ void on_gparted_open(){
@ -700,6 +701,7 @@ void yon_main_window_create(main_window *widgets){
widgets->BootloadUserEditButton = yon_gtk_builder_get_widget(builder,"BootloadUserEditButton"); widgets->BootloadUserEditButton = yon_gtk_builder_get_widget(builder,"BootloadUserEditButton");
widgets->BootloadAdminCheckCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"BootloadAdminCheckCell")); widgets->BootloadAdminCheckCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"BootloadAdminCheckCell"));
widgets->BootloadUserRemoveButton = yon_gtk_builder_get_widget(builder,"BootloadUserRemoveButton"); widgets->BootloadUserRemoveButton = yon_gtk_builder_get_widget(builder,"BootloadUserRemoveButton");
widgets->BootloadNoPasswordSwitch = yon_gtk_builder_get_widget(builder,"BootloadNoPasswordSwitch");
widgets->BootloadUsersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootloadUsersList")); widgets->BootloadUsersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootloadUsersList"));
widgets->NetworkDomainSwitch = yon_gtk_builder_get_widget(builder,"NetworkDomainSwitch"); widgets->NetworkDomainSwitch = yon_gtk_builder_get_widget(builder,"NetworkDomainSwitch");
@ -883,6 +885,7 @@ void yon_main_window_create(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->BootloadAdminCheckCell),"toggled",G_CALLBACK(on_bootloader_admin_toggled),widgets); g_signal_connect(G_OBJECT(widgets->BootloadAdminCheckCell),"toggled",G_CALLBACK(on_bootloader_admin_toggled),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadUserRemoveButton),"clicked",G_CALLBACK(on_bootloader_user_remove),widgets); g_signal_connect(G_OBJECT(widgets->BootloadUserRemoveButton),"clicked",G_CALLBACK(on_bootloader_user_remove),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadUserTree),"cursor-changed",G_CALLBACK(on_bootloader_selected),widgets); g_signal_connect(G_OBJECT(widgets->BootloadUserTree),"cursor-changed",G_CALLBACK(on_bootloader_selected),widgets);
g_signal_connect(G_OBJECT(widgets->BootloadNoPasswordSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),gtk_widget_get_parent(gtk_widget_get_parent(widgets->BootloadUserAddButton)));
g_signal_connect(G_OBJECT(widgets->BootloadTimerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->BootloadTimerSpin); g_signal_connect(G_OBJECT(widgets->BootloadTimerSwitch),"state-set",G_CALLBACK(yon_gtk_widget_set_sensitive_from_switch),widgets->BootloadTimerSpin);
@ -1101,14 +1104,14 @@ main_window *yon_main_window_complete(){
} }
int main(int argc, char *argv[]){ int main(int argc, char *argv[]){
main_config.argv=argv;
main_config.argc = argc;
config_str unfound = NULL; config_str unfound = NULL;
int size=0; int size=0;
opterr=0; opterr=0;
yon_ubl_connect_config((_template_config*)&main_config); yon_ubl_connect_config((_template_config*)&main_config);
textdomain(LocaleName); textdomain(LocaleName);
config_init(); config_init();
main_config.argv=yon_char_parsed_copy(argv,argc);
main_config.argc = argc;
gtk_init(&argc,&argv); gtk_init(&argc,&argv);
yon_ubl_window_init(TITLE_LABEL,"",LocaleName,CssPath,LocaleName,version_application,WIKI_LINK); yon_ubl_window_init(TITLE_LABEL,"",LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);
yon_ubl_setup_arguments(argc,argv,&unfound,&size,ADDITIONAL_ARGS); yon_ubl_setup_arguments(argc,argv,&unfound,&size,ADDITIONAL_ARGS);

@ -157,7 +157,7 @@ layout && /description:/ {\
#define yon_check_database_command "pacman -Syy >/dev/null" #define yon_check_database_command "pacman -Syy >/dev/null"
#define internet_tomezone_check_command "curl -s ipinfo.io/timezone" #define internet_tomezone_check_command "curl -s ipinfo.io/timezone"
#define ubinstall_dry_run_command "/usr/bin/bash -c \"ubinstall --dry-run" #define ubinstall_dry_run_command "/usr/bin/bash -c \"ubinstall --dry-run\""
#define os_name_get_command "sed -En 's/^PRETTY_NAME=[\"]*([^\"]+)[\"]*/\\1/p' /etc/os-release" #define os_name_get_command "sed -En 's/^PRETTY_NAME=[\"]*([^\"]+)[\"]*/\\1/p' /etc/os-release"
#define get_keyboard_layout_change_command "grep \"grp:\" /usr/share/X11/xkb/rules/base.lst | awk '{$1=$1; sub(/^!.*$/, \"\"); if ($1 ~ /^grp:/) {opt=$1; $1=\"\"; print opt \"|\" substr($0,2)}}'" #define get_keyboard_layout_change_command "grep \"grp:\" /usr/share/X11/xkb/rules/base.lst | awk '{$1=$1; sub(/^!.*$/, \"\"); if ($1 ~ /^grp:/) {opt=$1; $1=\"\"; print opt \"|\" substr($0,2)}}'"
@ -296,7 +296,7 @@ layout && /description:/ {\
#define get_localisation_command "ubconfig -ea --source global get [autoinstall] AUTOINSTALL[installer_locale] -- get [autoinstall] AUTOINSTALL['ubconfig set [locale] LANG'] -- get [locale] LANG" #define get_localisation_command "ubconfig -ea --source global get [autoinstall] AUTOINSTALL[installer_locale] -- get [autoinstall] AUTOINSTALL['ubconfig set [locale] LANG'] -- get [locale] LANG"
#define save_config_command yon_char_unite("/usr/bin/bash -c \"nice ubinstall autoinstall",main_config.debug_mode?" --debug":""," --noautoconfig --noinstall_extra\"", NULL) #define save_config_command yon_char_unite("/usr/bin/bash -c \"nice ubinstall autoinstall",main_config.debug_mode?" --debug":"","\"", NULL)
#define quick_install_command(path) yon_char_unite("nice ubinstall autoinstall",main_config.debug_mode?" --debug":""," --config='",path,"' --noautoconfig --noinstall_extra", NULL) #define quick_install_command(path) yon_char_unite("nice ubinstall autoinstall",main_config.debug_mode?" --debug":""," --config='",path,"' --noautoconfig --noinstall_extra", NULL)
#define set_user_config_command yon_char_unite("nice ubinstall autoconfig",main_config.debug_mode?" --debug":""," install_extra", NULL) #define set_user_config_command yon_char_unite("nice ubinstall autoconfig",main_config.debug_mode?" --debug":""," install_extra", NULL)
@ -777,7 +777,7 @@ typedef struct
GtkWidget *BootloadTimerSpin; GtkWidget *BootloadTimerSpin;
GtkWidget *BootloadDefaultOSEntry; GtkWidget *BootloadDefaultOSEntry;
GtkWidget *BootloadDefaulOSButton; GtkWidget *BootloadDefaulOSButton;
// GtkWidget *BootloadNoPasswordSwitch; GtkWidget *BootloadNoPasswordSwitch;
GtkWidget *BootloadUserAddButton; GtkWidget *BootloadUserAddButton;
GtkWidget *BootloadUserEditButton; GtkWidget *BootloadUserEditButton;
GtkCellRenderer *BootloadAdminCheckCell; GtkCellRenderer *BootloadAdminCheckCell;
@ -1642,4 +1642,5 @@ void yon_status_thread_update_active(main_window *widgets);
void *yon_status_thread_update(main_window *widgets); void *yon_status_thread_update(main_window *widgets);
void yon_db_lock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets); void yon_db_lock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets);
void yon_db_unlock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets); void yon_db_unlock_update(GFileMonitor *,GFile *,GFile *,GFileMonitorEvent ,main_window *widgets);
void on_config_install_success(GtkWidget *self, int state, main_window *widgets); void on_config_install_success(GtkWidget *self, int state, main_window *widgets);
void *on_quick_install_start(void *data);

@ -207,6 +207,7 @@ NULL)
#define CONFIGURATION_MODE_TITLE_LABEL _("Choose installation configuration file") #define CONFIGURATION_MODE_TITLE_LABEL _("Choose installation configuration file")
#define SAVE_AND_EXIT_LABEL _("Save and exit") #define SAVE_AND_EXIT_LABEL _("Save and exit")
#define EXIT_LABEL yon_char_get_localised_from_lib("Exit")
#define NO_LABEL _("No") #define NO_LABEL _("No")
#define PARITY_INVALID_LABEL(target) yon_char_unite(_("Invalid devices parity. Needed:")," ",target,NULL) #define PARITY_INVALID_LABEL(target) yon_char_unite(_("Invalid devices parity. Needed:")," ",target,NULL)

@ -6598,6 +6598,7 @@ Select a different installation sources.</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</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>
@ -14513,7 +14514,7 @@ separately into the selected partition.</property>
<property name="spacing">5</property> <property name="spacing">5</property>
<child> <child>
<object class="GtkButton" id="CancelInstallButton"> <object class="GtkButton" id="CancelInstallButton">
<property name="label" translatable="yes">Cancel</property> <property name="label" translatable="yes">Exit</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>

Loading…
Cancel
Save