@ -7,6 +7,46 @@ void yon_license_init(main_window *widgets){
gtk_widget_set_sensitive ( widgets - > NextButton , 0 ) ;
}
yon_window * yon_package_info_window_create ( const char * package_str ) {
if ( yon_char_is_empty ( package_str ) ) return NULL ;
yon_window * window = yon_window_new ( ) ;
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , NULL , PACKAGE_INFO_LABEL , icon_path , " info-label " ) ;
int size = 0 ;
char * package = yon_char_new ( package_str ) ;
if ( strstr ( package , " , " ) ) {
char * temp = yon_char_replace ( package , " , " , " " ) ;
free ( package ) ;
package = temp ;
}
GtkWidget * label = NULL ;
yon_packages_info * info_struct = yon_packages_get_info_struct ( YON_PACKAGES_ALL , package ) ;
if ( ! info_struct ) return NULL ;
char * info_string = yon_packages_get_info_string ( info_struct ) ;
config_str info = yon_char_parse ( info_string , & size , " \n " ) ;
if ( size > 0 ) {
info_element * element = yon_package_info_element_new ( ) ;
gtk_box_pack_start ( GTK_BOX ( window - > MainBox ) , element - > MainBox , 1 , 1 , 0 ) ;
for ( int i = 0 ; i < size ; i + + ) {
yon_char_remove_last_symbol ( info [ i ] , ' \n ' ) ;
GtkTreeIter iter ;
int parsed_size ;
config_str parsed = yon_char_parse ( info [ i ] , & parsed_size , " : " ) ;
gtk_list_store_append ( element - > InfoList , & iter ) ;
gtk_list_store_set ( element - > InfoList , & iter , 0 , parsed [ 0 ] , 1 , ! yon_char_is_empty ( parsed [ 1 ] ) ? _ ( parsed [ 1 ] ) : " " , - 1 ) ;
}
} else {
label = gtk_label_new ( PACKAGE_NOT_FOUND_LABEL ) ;
yon_gtk_label_set_font ( GTK_LABEL ( label ) ) ;
gtk_widget_show ( label ) ;
gtk_box_pack_start ( GTK_BOX ( window - > MainBox ) , label , 0 , 0 , 0 ) ;
gtk_label_set_xalign ( GTK_LABEL ( label ) , 0 ) ;
}
gtk_widget_show ( window - > Window ) ;
return window ;
}
double yon_password_check_func ( yon_password_window * window , const char * password_string ) {
pwquality_settings_t * settings = pwquality_default_settings ( ) ;
int strength = pwquality_check ( settings , password_string , NULL , NULL , NULL ) ;
@ -46,8 +86,8 @@ void on_open_documentation_confirmation(GtkWidget *self, char *link){
window - > CloseButton = yon_gtk_builder_get_widget ( builder , " CancelHelpButton " ) ;
window - > HeaderLabel = yon_gtk_builder_get_widget ( builder , " webHeaderNameLabel " ) ;
window - > AlwaysOpenCheck = yon_gtk_builder_get_widget ( builder , " AlwaysOpenDocumentationCheckbox " ) ;
gtk_label_set_text ( GTK_LABEL ( window - > HeaderLabel ) , TITLE _LABEL) ;
gtk_window_set_title ( GTK_WINDOW ( window - > Window ) , TITLE _LABEL) ;
gtk_label_set_text ( GTK_LABEL ( window - > HeaderLabel ) , DOCUMENTATION _LABEL) ;
gtk_window_set_title ( GTK_WINDOW ( window - > Window ) , DOCUMENTATION _LABEL) ;
gtk_window_set_icon_name ( GTK_WINDOW ( window - > Window ) , yon_char_append ( " com.ublinux. " , LocaleName ) ) ;
gtk_widget_show_all ( window - > Window ) ;
g_signal_connect ( G_OBJECT ( window - > CloseButton ) , " clicked " , G_CALLBACK ( on_subwindow_close ) , NULL ) ;
@ -563,6 +603,7 @@ void yon_main_window_create(main_window *widgets){
widgets - > OSSoftwareNameLabel = yon_gtk_builder_get_widget ( builder , " OSSoftwareNameLabel " ) ;
widgets - > OSSoftwareTagsLabel = yon_gtk_builder_get_widget ( builder , " OSSoftwareTagsLabel " ) ;
widgets - > OSSoftwareDescriptionLabel = yon_gtk_builder_get_widget ( builder , " OSSoftwareDescriptionLabel " ) ;
widgets - > OSSoftwareEmptyLabel = yon_gtk_builder_get_widget ( builder , " OSSoftwareEmptyLabel " ) ;
widgets - > PacmanSoftwareSearchEntry = yon_gtk_builder_get_widget ( builder , " PacmanSoftwareSearchEntry " ) ;
widgets - > PacmanSoftwareStatusImage = yon_gtk_builder_get_widget ( builder , " PacmanSoftwareStatusImage " ) ;
@ -904,6 +945,12 @@ void yon_main_window_create(main_window *widgets){
yon_root_button_init ( widgets - > root_button , GTK_WINDOW ( widgets - > MainWindow ) ) ;
}
widgets - > PackagesMenu = yon_rmb_menu_setup ( widgets - > PackagesTree , NULL , NULL , INFO_LABEL , info_icon_path , G_CALLBACK ( on_software_info ) , widgets , NULL ) ;
dictionary * iter = NULL ;
for_dictionaries ( iter , widgets - > PackagesMenu - > buttons ) {
yon_gtk_widget_set_translation ( g_object_get_data ( G_OBJECT ( iter - > data ) , " Label " ) ) ;
}
yon_startup_language_init ( ) ;
yon_locale_init ( ) ;
yon_main_window_update_locale ( widgets ) ;
@ -982,6 +1029,10 @@ main_window *yon_main_window_complete(){
}
int main ( int argc , char * argv [ ] ) {
GApplication * app = ( GApplication * ) gtk_application_new ( " com.ublinux.ubinstall-gtk " , G_APPLICATION_DEFAULT_FLAGS ) ;
GError * err = NULL ;
int reg = g_application_register ( app , NULL , & err ) ;
int remote = g_application_get_is_remote ( app ) ;
main_config . argv = argv ;
main_config . argc = argc ;
config_str unfound = NULL ;
@ -991,6 +1042,25 @@ int main(int argc, char *argv[]){
textdomain ( LocaleName ) ;
config_init ( ) ;
gtk_init ( & argc , & argv ) ;
if ( ! reg | | remote ) {
yon_window * window = yon_window_new ( ) ;
gtk_widget_set_size_request ( window - > Window , 300 , 125 ) ;
yon_gtk_window_setup ( GTK_WINDOW ( window - > Window ) , NULL , WARNING_TITLE_LABEL , icon_path , NULL ) ;
GtkWidget * box = gtk_box_new ( GTK_ORIENTATION_HORIZONTAL , 5 ) ;
GtkWidget * image = gtk_image_new ( ) ;
GtkWidget * label = gtk_label_new ( ALREADY_RUNNING_LABEL ) ;
gtk_image_set_from_icon_name ( GTK_IMAGE ( image ) , warning_icon_path , 0 ) ;
gtk_image_set_pixel_size ( GTK_IMAGE ( image ) , 48 ) ;
gtk_box_pack_start ( GTK_BOX ( box ) , image , 1 , 1 , 0 ) ;
gtk_box_pack_start ( GTK_BOX ( box ) , label , 1 , 1 , 0 ) ;
gtk_box_pack_start ( GTK_BOX ( window - > MainBox ) , box , 1 , 1 , 0 ) ;
gtk_widget_show_all ( box ) ;
g_signal_connect ( G_OBJECT ( window - > Window ) , " destroy " , G_CALLBACK ( gtk_main_quit ) , NULL ) ;
gtk_widget_show ( window - > Window ) ;
gtk_main ( ) ;
exit ( 1 ) ;
}
yon_ubl_window_init ( TITLE_LABEL , " " , LocaleName , CssPath , LocaleName , version_application , WIKI_LINK ) ;
yon_ubl_setup_arguments ( argc , argv , & unfound , & size , ADDITIONAL_ARGS ) ;
if ( size ) {