@ -30,7 +30,7 @@ void yon_open_browser(GtkWidget *self, char *link){
*/
*/
void on_open_documentation_confirmation ( GtkWidget * self , char * link ) {
void on_open_documentation_confirmation ( GtkWidget * self , char * link ) {
if ( main_config . always_open_documentation = = 0 ) {
if ( main_config . always_open_documentation = = 0 ) {
GtkBuilder * builder = gtk_builder_new_from_ fil e( glade_path ) ;
GtkBuilder * builder = gtk_builder_new_from_ resourc e( glade_path ) ;
documentation_confirmation_window * widgets = malloc ( sizeof ( documentation_confirmation_window ) ) ;
documentation_confirmation_window * widgets = malloc ( sizeof ( documentation_confirmation_window ) ) ;
widgets - > Window = yon_gtk_builder_get_widget ( builder , " helpConfirmationWindow " ) ;
widgets - > Window = yon_gtk_builder_get_widget ( builder , " helpConfirmationWindow " ) ;
widgets - > AcceptButton = yon_gtk_builder_get_widget ( builder , " ReadHelpButton " ) ;
widgets - > AcceptButton = yon_gtk_builder_get_widget ( builder , " ReadHelpButton " ) ;
@ -84,7 +84,7 @@ void on_link(GtkWidget *self, char* uri, gpointer user_data){
* П р и с о е д и н я т ь к с и г н а л у " activate " к н о п к и с п р а в к и т и п а MenuItem .
* П р и с о е д и н я т ь к с и г н а л у " activate " к н о п к и с п р а в к и т и п а MenuItem .
*/
*/
void on_about ( ) {
void on_about ( ) {
GtkBuilder * builder = gtk_builder_new_from_ fil e( glade_path ) ;
GtkBuilder * builder = gtk_builder_new_from_ resourc e( glade_path ) ;
GtkWidget * window = yon_gtk_builder_get_widget ( builder , " AboutWindow " ) ;
GtkWidget * window = yon_gtk_builder_get_widget ( builder , " AboutWindow " ) ;
GtkWidget * title = yon_gtk_builder_get_widget ( builder , " headerAboutTopic " ) ;
GtkWidget * title = yon_gtk_builder_get_widget ( builder , " headerAboutTopic " ) ;
GtkWidget * hideButtonBox = yon_gtk_builder_get_widget ( builder , " buttonBoxHide " ) ;
GtkWidget * hideButtonBox = yon_gtk_builder_get_widget ( builder , " buttonBoxHide " ) ;
@ -98,44 +98,101 @@ void on_about(){
gtk_widget_show ( window ) ;
gtk_widget_show ( window ) ;
}
}
void on_tree_selection_changed ( GtkWidget * self , main_window * widgets ) {
void on_save ( ) {
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
char * command = " repo-manager " ;
GtkTreeIter * iter = NULL ;
char * remove_command = NULL ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , iter ) ) {
char * add_command = NULL ;
char * codeName , * branch , * version , * architecture , * components , * signature , * ipAdress , * port ;
char * remove_flagged = NULL ;
int serverType = 0 , trusted = 0 , published = 0 ;
char * add_flagged = NULL ;
gtk_tree_model_get ( model , iter , 3 , & codeName , 4 , & branch , 5 , & version , 6 , & architecture , 7 , & components , 8 , & signature , 9 , & trusted , 10 , & serverType , 11 , & ipAdress , 12 , & port , 13 , published , - 1 ) ;
char * origin_flagged = NULL ;
// gtk_label_set_text(GTK_LABEL(widgets->srgbe),)
char * name_flagged = NULL ;
GtkTreeIter iter , childIter ;
int valid = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter ) ;
for ( ; valid ; valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter ) ) {
remove_flagged = NULL ;
add_flagged = NULL ;
int repostatus = 0 ;
gboolean renamed = 0 ;
char * old_name = NULL ;
gtk_tree_model_get ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter , 1 , & name_flagged , 3 , & origin_flagged , 4 , & repostatus , 6 , & old_name , 7 , & renamed , - 1 ) ;
// if (!strstr(name_flagged,".db.tar.gz")) name_flagged = yon_char_append(name_flagged,".db.tar.gz");
remove_command = yon_char_unite ( command , " remove -d " , origin_flagged , " -r " , name_flagged , NULL ) ;
add_command = yon_char_unite ( command , " add -d " , origin_flagged , " -r " , name_flagged , NULL ) ;
int valid_child = gtk_tree_model_iter_children ( GTK_TREE_MODEL ( main_config . tree_store ) , & childIter , & iter ) ;
for ( ; valid_child ; valid_child = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( main_config . tree_store ) , & childIter ) ) {
int status = 0 , deleted = 0 ;
char * path = NULL ;
gtk_tree_model_get ( GTK_TREE_MODEL ( main_config . tree_store ) , & childIter , 3 , & path , 4 , & status , 5 , & deleted , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , & childIter , 4 , 0 , 5 , 0 , - 1 ) ;
if ( status = = - 1 ) { remove_flagged = yon_char_unite ( remove_flagged ? yon_char_append ( remove_flagged , " , " ) : " -p " , path , NULL ) ; /*gtk_tree_store_remove(main_config.tree_store,&childIter);*/ }
else if ( status = = 1 & & deleted = = 0 ) { add_flagged = yon_char_unite ( add_flagged ? yon_char_append ( add_flagged , " , " ) : " -p " , path , NULL ) ; gtk_tree_store_set ( main_config . tree_store , & childIter , 0 , " com.ublinux.ubl-settings-repomanager.document-symbolic " , - 1 ) ; }
}
if ( origin_flagged )
remove_command = remove_flagged ? yon_char_unite ( remove_command , remove_flagged , NULL ) : NULL ;
add_command = add_flagged ? yon_char_unite ( add_command , add_flagged , NULL ) : add_command ;
printf ( " %s \n %s \n " , remove_command , add_command ) ;
if ( remove_command ) system ( remove_command ) ;
if ( add_command ) system ( add_command ) ;
}
}
}
}
int yon_add_branches ( GtkTreeModel * model , GtkTreePath * path , GtkTreeIter * iter , void * dct ) {
void on_search ( GtkCellEditable * self , main_window * widgets ) {
printf ( " %d \n " , 1 ) ;
GtkTreeIter iter , childIter ;
dictionary * dict = ( dictionary * ) dct ;
main_window * widgets = yon_dictionary_get_data ( dict - > first , main_window * ) ;
repo_create_window * window = yon_dictionary_get_data ( dict - > first - > next , repo_create_window * ) ;
char * name = NULL ;
char * name = NULL ;
gtk_tree_model_get ( model , iter , 0 , & name , - 1 ) ;
int valid = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter ) ;
if ( name ) {
for ( ; valid ; valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter ) ) {
printf ( " %s \n " , name ) ;
gtk_tree_model_get ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter , 1 , & name , - 1 ) ;
GtkTreeIter ITER , iters ;
if ( strstr ( name , gtk_entry_get_text ( GTK_ENTRY ( widgets - > Finder ) ) ) ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & ITER ) ) {
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & iter ) ;
gtk_tree_store_append ( main_config . tree_store , & iters , & ITER ) ;
return ;
gtk_tree_store_set ( main_config . tree_store , & iters , 1 , name , - 1 ) ;
}
gtk_tree_view_expand_row ( GTK_TREE_VIEW ( widgets - > RepoTree ) , gtk_tree_model_get_path ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter ) , 1 ) ;
int child_valid = gtk_tree_model_iter_children ( GTK_TREE_MODEL ( main_config . tree_store ) , & childIter , & iter ) ;
for ( ; child_valid ; child_valid = gtk_tree_model_iter_next ( GTK_TREE_MODEL ( main_config . tree_store ) , & childIter ) ) {
gtk_tree_model_get ( GTK_TREE_MODEL ( main_config . tree_store ) , & childIter , 1 , & name , - 1 ) ;
if ( strstr ( name , gtk_entry_get_text ( GTK_ENTRY ( widgets - > Finder ) ) ) ) {
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & childIter ) ;
return ;
}
}
gtk_tree_view_expand_row ( GTK_TREE_VIEW ( widgets - > RepoTree ) , gtk_tree_model_get_path ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter ) , 0 ) ;
}
}
}
void on_tree_selection_changed ( GtkWidget * self , main_window * widgets ) {
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
char * codeName = NULL , * version = NULL , * architecture = NULL ;
int serverType = 0 , trusted = 0 , published = 0 ;
gtk_tree_model_get ( model , & iter , 11 , & codeName , 12 , & version , 13 , & architecture , - 1 ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > CodeNameInfoLabel ) , codeName ? codeName : " " ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > VersionInfoLabel ) , version ? version : " " ) ;
gtk_label_set_text ( GTK_LABEL ( widgets - > ArchitectureInfoLabel ) , architecture ? architecture : " " ) ;
}
}
return 0 ;
}
int yon_char_find_last ( char * source , char find ) {
int size = strlen ( source ) ;
int i = size ;
for ( ; source [ i ] ! = find & & i > 0 ; i - - ) ;
return i ;
}
}
void on_repo_add_new ( GtkWidget * self , dictionary * dict ) {
void on_repo_add_new ( GtkWidget * self , dictionary * dict ) {
main_window * widgets = yon_dictionary_get_data ( dict - > first , main_window * ) ;
main_window * widgets = yon_dictionary_get_data ( dict - > first , main_window * ) ;
repo_create_window * window = yon_dictionary_get_data ( dict - > first - > next , repo_create_window * ) ;
repo_create_window * window = yon_dictionary_get_data ( dict - > first - > next , repo_create_window * ) ;
char * name = yon_char_new ( ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > NameEntry ) ) ) ;
if ( ! window - > path ) { yon_ubl_status_box_render ( CHOOSE_PATH_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ; return ; }
char * name = NULL ;
name = window - > path ;
window - > path = yon_char_divide ( name , yon_char_find_last ( window - > path , ' / ' ) ) ;
if ( ! name | | strcmp ( name , " " ) ! = 0 ) {
if ( ! name | | strcmp ( name , " " ) ! = 0 ) {
on_close_subwindow ( self ) ;
GtkTreeIter * iter = yon_repo_append ( widgets , name , YON_REPO_LINE_REPO_TYPE ) ;
GtkTreeIter * iter = yon_repo_append ( widgets , name , YON_REPO_LINE_REPO_TYPE ) ;
gtk_tree_store_set ( main_config . tree_store , iter , 2 , window - > BranchesListStore , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , iter , 0 , " com.ublinux.ubl-settings-repomanager.folder-green-symbolic " , 2 , window - > BranchesListStore , 3 , window - > path , - 1 ) ;
gtk_tree_model_foreach ( GTK_TREE_MODEL ( window - > BranchesListStore ) , yon_add_branches , dict ) ;
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
} else {
} else {
yon_ubl_status_box_render ( EMPTY_NAME_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
yon_ubl_status_box_render ( EMPTY_NAME_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
@ -156,28 +213,27 @@ void on_branch_add(GtkCellRendererText *self, char*path,char *new_text, repo_cre
}
}
}
}
char * on_choose_repo_folder ( GtkWidget * self , repo_create_window * window ) {
GtkFileFilter * file_filter = gtk_file_filter_new ( ) ;
gtk_file_filter_add_pattern ( file_filter , " *db.tar.gz " ) ;
GtkWidget * chooser = gtk_file_chooser_dialog_new ( ADD_PACKAGE_REPO_LABEL , NULL , GTK_FILE_CHOOSER_ACTION_SAVE , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( chooser ) , file_filter ) ;
int res = gtk_dialog_run ( GTK_DIALOG ( chooser ) ) ;
if ( res = = GTK_RESPONSE_ACCEPT ) {
char * filename = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER ( chooser ) ) ;
window - > path = yon_char_new ( filename ) ;
}
on_close_subwindow ( chooser ) ;
}
void on_repo_new ( GtkWidget * self , main_window * widgets ) {
void on_repo_new ( GtkWidget * self , main_window * widgets ) {
GtkBuilder * builder = gtk_builder_new_from_file ( glade_repo_path ) ;
repo_create_window * window = new ( repo_create_window ) ;
repo_create_window * window = new ( repo_create_window ) ;
window - > Window = yon_gtk_builder_get_widget ( builder , " repoCreateWindow " ) ;
window - > path = NULL ;
window - > NameEntry = yon_gtk_builder_get_widget ( builder , " repoNameEntry " ) ;
on_choose_repo_folder ( self , window ) ;
window - > CancelButton = yon_gtk_builder_get_widget ( builder , " repoCancelButton " ) ;
dictionary * dict = yon_dictionary_new_with_data ( " " , widgets ) ;
window - > SaveButton = yon_gtk_builder_get_widget ( builder , " repoSaveButton " ) ;
dict = yon_dictionary_append_with_data ( dict , " " , window ) ;
window - > BranchesTree = yon_gtk_builder_get_widget ( builder , " curRepoEditTree " ) ;
on_repo_add_new ( self , dict ) ;
window - > BranchCell = GTK_CELL_RENDERER ( gtk_builder_get_object ( builder , " branchTextCell " ) ) ;
window - > BranchesListStore = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " curRepoEditList " ) ) ;
gtk_widget_show ( window - > Window ) ;
GtkTreeIter iter ;
gtk_list_store_append ( window - > BranchesListStore , & iter ) ;
dictionary * dict = yon_dictionary_create_with_data ( " " , widgets ) ;
dict = yon_dictionary_create_with_data_connected ( dict , " " , window ) ;
GValue * val = g_malloc0 ( sizeof ( GValue ) ) ;
g_object_get_property ( G_OBJECT ( window - > BranchCell ) , " placeholder-text " , val ) ;
g_value_set_string ( val , TYPE_BRANCH_NAME_LABEL ) ;
g_object_set_property ( G_OBJECT ( window - > BranchCell ) , " placeholder-text " , val ) ;
g_signal_connect ( G_OBJECT ( window - > BranchCell ) , " edited " , G_CALLBACK ( on_branch_add ) , window ) ;
g_signal_connect ( G_OBJECT ( window - > SaveButton ) , " clicked " , G_CALLBACK ( on_repo_add_new ) , dict ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_close_subwindow ) , NULL ) ;
}
}
void on_repo_add_file ( GtkWidget * self , main_window * widgets ) {
void on_repo_add_file ( GtkWidget * self , main_window * widgets ) {
@ -196,7 +252,7 @@ void on_repo_configure(GtkWidget *self, main_window *widgets){
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
GtkTreeIter iter ;
GtkTreeIter iter ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
GtkBuilder * builder = gtk_builder_new_from_ fil e( glade_repo_path ) ;
GtkBuilder * builder = gtk_builder_new_from_ resourc e( glade_repo_path ) ;
repo_create_window * window = new ( repo_create_window ) ;
repo_create_window * window = new ( repo_create_window ) ;
window - > Window = yon_gtk_builder_get_widget ( builder , " repoEditWindow " ) ;
window - > Window = yon_gtk_builder_get_widget ( builder , " repoEditWindow " ) ;
window - > NameEntry = yon_gtk_builder_get_widget ( builder , " repoEditNameEntry " ) ;
window - > NameEntry = yon_gtk_builder_get_widget ( builder , " repoEditNameEntry " ) ;
@ -205,31 +261,39 @@ void on_repo_configure(GtkWidget *self, main_window *widgets){
window - > BranchesTree = yon_gtk_builder_get_widget ( builder , " repoEditBranchTree " ) ;
window - > BranchesTree = yon_gtk_builder_get_widget ( builder , " repoEditBranchTree " ) ;
window - > BranchesListStore = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " curRepoEditList " ) ) ;
window - > BranchesListStore = GTK_LIST_STORE ( gtk_builder_get_object ( builder , " curRepoEditList " ) ) ;
gtk_widget_show ( window - > Window ) ;
gtk_widget_show ( window - > Window ) ;
dictionary * dict = yon_dictionary_ create _with_data( " " , widgets ) ;
dictionary * dict = yon_dictionary_ new _with_data( " " , widgets ) ;
dict = yon_dictionary_ create_with_data_connected ( dict , " " , window ) ;
dict = yon_dictionary_ append_with_data ( dict , " " , window ) ;
g_signal_connect ( G_OBJECT ( window - > SaveButton ) , " clicked " , G_CALLBACK ( on_repo_configure_done ) , dict ) ;
g_signal_connect ( G_OBJECT ( window - > SaveButton ) , " clicked " , G_CALLBACK ( on_repo_configure_done ) , dict ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_close_subwindow ) , NULL ) ;
g_signal_connect ( G_OBJECT ( window - > CancelButton ) , " clicked " , G_CALLBACK ( on_close_subwindow ) , NULL ) ;
gtk_list_store_clear ( window - > BranchesListStore ) ;
gtk_list_store_clear ( window - > BranchesListStore ) ;
// GtkListStore *branches;
// gtk_tree_model_get(model,&iter,2,branches,-1);
// gtk_tree_view_set_model(GTK_TREE_VIEW(window->BranchesTree),GTK_TREE_MODEL(branches));
} else yon_ubl_status_box_render ( NOTHING_CHOSEN_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
} else yon_ubl_status_box_render ( NOTHING_CHOSEN_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
}
}
void on_repo_configure_done ( GtkWidget * self , dictionary * dict ) {
void on_repo_configure_done ( GtkWidget * self , dictionary * dict ) {
main_window * widgets = yon_dictionary_get_data ( dict - > first , main_window * ) ;
main_window * widgets = yon_dictionary_get_data ( dict - > first , main_window * ) ;
repo_create_window * window = yon_dictionary_get_data ( dict - > first - > next , repo_create_window * ) ;
repo_create_window * window = yon_dictionary_get_data ( dict - > first - > next , repo_create_window * ) ;
GtkTreeIter iter ;
GtkTreeIter iter , parentIter ;
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
if ( gtk_tree_model_iter_parent ( GTK_TREE_MODEL ( main_config . tree_store ) , & parentIter , & iter ) )
iter = parentIter ;
char * oldname = NULL ;
int status = 0 ;
char * name = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > NameEntry ) ) ;
char * name = ( char * ) gtk_entry_get_text ( GTK_ENTRY ( window - > NameEntry ) ) ;
gtk_tree_model_get ( model , & iter , 1 , & oldname , 4 , & status , - 1 ) ;
if ( status = = 0 )
gtk_tree_store_set ( main_config . tree_store , & iter , 1 , name , 6 , oldname , 7 , 1 , - 1 ) ;
else if ( status = = 1 )
gtk_tree_store_set ( main_config . tree_store , & iter , 1 , name , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 1 , name , - 1 ) ;
}
}
on_close_subwindow ( self ) ;
on_close_subwindow ( self ) ;
}
}
void on_repo_load_local ( GtkWidget * self , main_window * widgets ) {
void on_repo_load_local ( GtkWidget * self , main_window * widgets ) {
GtkFileFilter * file_filter = gtk_file_filter_new ( ) ;
gtk_file_filter_add_pattern ( file_filter , " *db.tar.gz " ) ;
GtkWidget * chooser = gtk_file_chooser_dialog_new ( ADD_PACKAGE_REPO_LABEL , NULL , GTK_FILE_CHOOSER_ACTION_OPEN , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
GtkWidget * chooser = gtk_file_chooser_dialog_new ( ADD_PACKAGE_REPO_LABEL , NULL , GTK_FILE_CHOOSER_ACTION_OPEN , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( chooser ) , file_filter ) ;
int res = gtk_dialog_run ( GTK_DIALOG ( chooser ) ) ;
int res = gtk_dialog_run ( GTK_DIALOG ( chooser ) ) ;
if ( res = = GTK_RESPONSE_ACCEPT ) {
if ( res = = GTK_RESPONSE_ACCEPT ) {
@ -248,60 +312,42 @@ GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYP
GtkTreeIter iter , parentIter ;
GtkTreeIter iter , parentIter ;
GdkPixbuf * icon = NULL ;
GdkPixbuf * icon = NULL ;
GtkIconTheme * theme = gtk_icon_theme_get_default ( ) ;
GtkIconTheme * theme = gtk_icon_theme_get_default ( ) ;
char * name_short = yon_char_new ( name ) ;
gboolean fls = 0 ;
while ( 1 ) {
yon_char_divide_search ( name_short , " / " , - 1 ) ;
if ( ! strstr ( name_short , " / " ) ) break ;
}
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & parentIter ) ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & parentIter ) ) {
if ( type = = YON_REPO_LINE_REPO_TYPE ) {
if ( type = = YON_REPO_LINE_REPO_TYPE ) {
icon = gtk_icon_theme_load_icon_for_scale ( theme , " folder-symbolic " , 16 , 1 , GTK_ICON_LOOKUP_FORCE_SIZE , NULL ) ;
icon = gtk_icon_theme_load_icon_for_scale ( theme , " com.ublinux.ubl-settings-repomanager. folder-symbolic" , 16 , 1 , GTK_ICON_LOOKUP_FORCE_SIZE , NULL ) ;
gtk_tree_store_append ( main_config . tree_store , & iter , NULL ) ;
gtk_tree_store_append ( main_config . tree_store , & iter , NULL ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , icon , 1 , name , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , " com.ublinux.ubl-settings-repomanager.folder-symbolic " , 1 , name_short , 3 , name , 4 , 1 , 5 , fls , - 1 ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
}
}
else if ( type = = YON_REPO_LINE_BRANCH_TYPE ) {
else if ( type = = YON_REPO_LINE_FILE_TYPE ) {
icon = NULL ;
if ( gtk_tree_model_iter_parent ( model , & iter , & parentIter ) ) {
GtkTreeIter branch ;
GtkTreeIter branch ;
if ( ! gtk_tree_model_iter_parent ( model , & branch , & iter ) ) {
icon = gtk_icon_theme_load_icon_for_scale ( theme , " com.ublinux.ubl-settings-repomanager.follder-symbolic " , 16 , 1 , GTK_ICON_LOOKUP_FORCE_SIZE , NULL ) ;
gtk_tree_store_append ( main_config . tree_store , & iter , & parentIter ) ;
if ( gtk_tree_model_iter_parent ( model , & branch , & parentIter ) ) {
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , icon , 1 , name , - 1 ) ;
GtkTreeIter repo ;
retIter = gtk_tree_iter_copy ( & iter ) ;
} else {
gtk_tree_store_append ( main_config . tree_store , & iter , & branch ) ;
gtk_tree_store_append ( main_config . tree_store , & iter , & branch ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , icon , 1 , name , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , " com.ublinux.ubl-settings-repomanager.document-symbolic " , 1 , name_short , 3 , name , 4 , 1 , 5 , fls , - 1 ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
}
} else {
gtk_tree_store_append ( main_config . tree_store , & iter , & parentIter ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , icon , 1 , name , - 1 ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
}
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
}
else if ( type = = YON_REPO_LINE_FILE_TYPE ) {
icon = gtk_icon_theme_load_icon_for_scale ( theme , " network-server-symbolic " , 16 , 1 , GTK_ICON_LOOKUP_FORCE_SIZE , NULL ) ;
if ( gtk_tree_model_iter_parent ( model , & iter , & parentIter ) ) {
GtkTreeIter branch ;
if ( gtk_tree_model_iter_parent ( model , & branch , & iter ) ) {
GtkTreeIter repo ;
if ( ! gtk_tree_model_iter_parent ( model , & repo , & branch ) ) {
gtk_tree_store_append ( main_config . tree_store , & branch , & iter ) ;
gtk_tree_store_set ( main_config . tree_store , & branch , 0 , icon , 1 , name , - 1 ) ;
retIter = gtk_tree_iter_copy ( & branch ) ;
}
} else {
} else {
gtk_tree_store_append ( main_config . tree_store , & iter , & parentIter ) ;
gtk_tree_store_append ( main_config . tree_store , & iter , & parentIter ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , icon , 1 , name , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , " com.ublinux.ubl-settings-repomanager.document-symbolic " , 1 , name_short , 3 , name , 4 , 1 , 5 , fls , - 1 ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
}
}
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
} else yon_ubl_status_box_render ( CHOOSE_BRANCH_PACK_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
}
}
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & iter ) ;
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & iter ) ;
}
}
else if ( type = = YON_REPO_LINE_REPO_TYPE ) {
else if ( type = = YON_REPO_LINE_REPO_TYPE ) {
icon = gtk_icon_theme_load_icon_for_scale ( theme , " folder-symbolic" , 16 , 1 , GTK_ICON_LOOKUP_FORCE_SIZE , NULL ) ;
icon = gtk_icon_theme_load_icon_for_scale ( theme , " com.ublinux.ubl-settings-repomanager.folder-symbolic " , 16 , 1 , GTK_ICON_LOOKUP_FORCE_SIZE , NULL ) ;
gtk_tree_store_append ( main_config . tree_store , & iter , NULL ) ;
gtk_tree_store_append ( main_config . tree_store , & iter , NULL ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , icon , 1 , name , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , " com.ublinux.ubl-settings-repomanager.folder-symbolic " , 1 , name_short , 3 , name , 4 , 1 , 5 , fls , - 1 ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
retIter = gtk_tree_iter_copy ( & iter ) ;
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & iter ) ;
gtk_tree_selection_select_iter ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & iter ) ;
} else {
} else {
@ -316,12 +362,15 @@ void yon_repo_remove_package(main_window *widgets){
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
GtkTreeIter iterparent ;
GtkTreeIter iterparent ;
if ( gtk_tree_model_iter_parent ( model , & iterparent , & iter ) ) {
if ( gtk_tree_model_iter_parent ( model , & iterparent , & iter ) ) {
GtkTreeIter parentparent ;
// gtk_tree_store_remove(main_config.tree_store,&iter);
if ( gtk_tree_model_iter_parent ( model , & parentparent , & iterparent ) ) {
int status = 0 ;
gtk_tree_store_remove ( main_config . tree_store , & iter ) ;
gtk_tree_model_get ( GTK_TREE_MODEL ( main_config . tree_store ) , & iter , 4 , & status , - 1 ) ;
if ( status ! = 1 ) {
gtk_tree_store_set ( main_config . tree_store , & iter , 4 , - 1 , - 1 ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 0 , " com.ublinux.ubl-settings-repomanager.document-red-symbolic " , - 1 ) ;
} else gtk_tree_store_remove ( main_config . tree_store , & iter ) ;
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
} else yon_ubl_status_box_render ( CHOOSE_PACK_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
} else yon_ubl_status_box_render ( CHOOSE_PACK_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
}
}
}
}
}
@ -330,39 +379,35 @@ void yon_repo_remove(main_window *widgets){
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
if ( gtk_tree_store_iter_depth ( main_config . tree_store , & iter ) = = 0 ) {
if ( gtk_tree_store_iter_depth ( main_config . tree_store , & iter ) = = 0 ) {
gtk_tree_store_remove ( main_config . tree_store , & iter ) ;
gtk_tree_store_set ( main_config . tree_store , & iter , 4 , - 1 , 0 , " com.ublinux.ubl-settings-repomanager.folder-red-symbolic " , - 1 ) ;
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
} else yon_ubl_status_box_render ( CHOOSE_REPO_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
} else yon_ubl_status_box_render ( CHOOSE_REPO_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
} else yon_ubl_status_box_render ( NOTHING_CHOSEN_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
} else yon_ubl_status_box_render ( NOTHING_CHOSEN_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
}
}
void yon_repo_configure ( main_window * widgets ) {
GtkBuilder * builder = gtk_builder_new_from_file ( glade_repo_path ) ;
GtkTreeIter iter ;
GtkTreeModel * model = GTK_TREE_MODEL ( main_config . tree_store ) ;
if ( gtk_tree_selection_get_selected ( gtk_tree_view_get_selection ( GTK_TREE_VIEW ( widgets - > RepoTree ) ) , & model , & iter ) ) {
GtkTreeIter iterparent ;
if ( gtk_tree_model_iter_parent ( model , & iterparent , & iter ) ) {
GtkTreeIter parentparent ;
if ( gtk_tree_model_iter_parent ( model , & parentparent , & iterparent ) ) {
gtk_tree_store_remove ( main_config . tree_store , & iter ) ;
yon_ubl_status_box_render ( OPERATION_DONE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
} else yon_ubl_status_box_render ( CHOOSE_PACK_LABEL , BACKGROUND_IMAGE_FAIL_TYPE ) ;
}
}
}
void yon_add_file ( main_window * widgets ) {
void yon_add_file ( main_window * widgets ) {
GtkFileFilter * file_filter = gtk_file_filter_new ( ) ;
gtk_file_filter_add_pattern ( file_filter , " *.pkg.tar.zst " ) ;
gtk_file_filter_set_name ( file_filter , " *.pkg.tar.zst " ) ;
GtkWidget * chooser = gtk_file_chooser_dialog_new ( ADD_PACKAGE_REPO_LABEL , NULL , GTK_FILE_CHOOSER_ACTION_OPEN , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
GtkWidget * chooser = gtk_file_chooser_dialog_new ( ADD_PACKAGE_REPO_LABEL , NULL , GTK_FILE_CHOOSER_ACTION_OPEN , CANCEL_LABEL , GTK_RESPONSE_CANCEL , OPEN_LABEL , GTK_RESPONSE_ACCEPT , NULL ) ;
gtk_file_chooser_add_filter ( GTK_FILE_CHOOSER ( chooser ) , file_filter ) ;
int res = gtk_dialog_run ( GTK_DIALOG ( chooser ) ) ;
int res = gtk_dialog_run ( GTK_DIALOG ( chooser ) ) ;
if ( res = = GTK_RESPONSE_ACCEPT ) {
if ( res = = GTK_RESPONSE_ACCEPT ) {
char * filename = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER ( chooser ) ) ;
char * filename = gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER ( chooser ) ) ;
while ( 1 ) {
FILE * file = popen ( yon_char_unite ( " LC_ALL=EN pacman -Q --info --file " , filename , " |grep -E \" Name|Version|Architecture \" |sed -e 's/ *//g' " , NULL ) , " r " ) ;
char * ret = yon_char_divide_search ( filename , " / " , - 1 ) ;
char * cur_string = g_malloc0 ( sizeof ( char ) * 4096 ) ;
if ( strcmp ( ret , filename ) = = 0 ) break ;
char * packname = NULL , * packver = NULL , * packarch = NULL ;
while ( fgets ( cur_string , 4096 , file ) ) {
cur_string = yon_char_divide_search ( cur_string , " \n " , - 1 ) ;
char * p = yon_char_divide_search ( cur_string , " : " , - 1 ) ;
if ( strstr ( p , " Name " ) ) packname = yon_char_new ( cur_string ) ;
else if ( strstr ( p , " Version " ) ) packver = yon_char_new ( cur_string ) ;
else if ( strstr ( p , " Architecture " ) ) packarch = yon_char_new ( cur_string ) ;
}
}
yon_repo_append ( widgets , filename , YON_REPO_LINE_FILE_TYPE ) ;
GtkTreeIter * iter = yon_repo_append ( widgets , filename , YON_REPO_LINE_FILE_TYPE ) ;
gtk_tree_store_set ( main_config . tree_store , iter , 0 , " com.ublinux.ubl-settings-repomanager.document-green-symbolic " , 11 , packname , 12 , packver , 13 , packarch , - 1 ) ;
}
}
on_close_subwindow ( chooser ) ;
on_close_subwindow ( chooser ) ;
@ -391,7 +436,7 @@ void config_init(){
main_window * setup_window ( ) {
main_window * setup_window ( ) {
/* Widgets getting | Получение виджетов */
/* Widgets getting | Получение виджетов */
main_window * widgets = malloc ( sizeof ( main_window ) ) ;
main_window * widgets = malloc ( sizeof ( main_window ) ) ;
GtkBuilder * builder = gtk_builder_new_from_ fil e( glade_path ) ;
GtkBuilder * builder = gtk_builder_new_from_ resourc e( glade_path ) ;
widgets - > Window = yon_gtk_builder_get_widget ( builder , " MainWindow " ) ;
widgets - > Window = yon_gtk_builder_get_widget ( builder , " MainWindow " ) ;
widgets - > HatLabel = yon_gtk_builder_get_widget ( builder , " headerTopic " ) ;
widgets - > HatLabel = yon_gtk_builder_get_widget ( builder , " headerTopic " ) ;
widgets - > PlugBox = yon_gtk_builder_get_widget ( builder , " plugBox " ) ;
widgets - > PlugBox = yon_gtk_builder_get_widget ( builder , " plugBox " ) ;
@ -417,8 +462,8 @@ main_window *setup_window(){
widgets - > LoadLocalMenuItem = yon_gtk_builder_get_widget ( builder , " LoadLocalConfigurationMenuItem " ) ;
widgets - > LoadLocalMenuItem = yon_gtk_builder_get_widget ( builder , " LoadLocalConfigurationMenuItem " ) ;
widgets - > LeftBox = yon_gtk_builder_get_widget ( builder , " HeaderLeftBox " ) ;
widgets - > LeftBox = yon_gtk_builder_get_widget ( builder , " HeaderLeftBox " ) ;
widgets - > DocumentationMenuItem = yon_gtk_builder_get_widget ( builder , " DocumentationMenuItem " ) ;
// widgets->DocumentationMenuItem = yon_gtk_builder_get_widget(builder,"DocumentationMenuItem");
widgets - > AboutMenuItem = yon_gtk_builder_get_widget ( builder , " AboutMenuItem " ) ;
// widgets->AboutMenuItem = yon_gtk_builder_get_widget(builder,"AboutMenuItem");
widgets - > GeneralTabLabel = yon_gtk_builder_get_widget ( builder , " GeneralTabLabel " ) ;
widgets - > GeneralTabLabel = yon_gtk_builder_get_widget ( builder , " GeneralTabLabel " ) ;
widgets - > PublicationTabLabel = yon_gtk_builder_get_widget ( builder , " PublicationTabLabel " ) ;
widgets - > PublicationTabLabel = yon_gtk_builder_get_widget ( builder , " PublicationTabLabel " ) ;
@ -455,9 +500,19 @@ main_window *setup_window(){
widgets - > ComponentsInfoLabel = yon_gtk_builder_get_widget ( builder , " ComponentsInfoLabel " ) ;
widgets - > ComponentsInfoLabel = yon_gtk_builder_get_widget ( builder , " ComponentsInfoLabel " ) ;
widgets - > SignatureLabel = yon_gtk_builder_get_widget ( builder , " SignatureLabel " ) ;
widgets - > SignatureLabel = yon_gtk_builder_get_widget ( builder , " SignatureLabel " ) ;
widgets - > SignatureInfoLabel = yon_gtk_builder_get_widget ( builder , " SignatureInfoLabel " ) ;
widgets - > SignatureInfoLabel = yon_gtk_builder_get_widget ( builder , " SignatureInfoLabel " ) ;
widgets - > Finder = yon_gtk_builder_get_widget ( builder , " SignatureInfoLabel " ) ;
widgets - > Finder = yon_gtk_builder_get_widget ( builder , " RepoFinder " ) ;
widgets - > SaveButton = yon_gtk_builder_get_widget ( builder , " mainSaveButton " ) ;
main_config . tree_store = GTK_TREE_STORE ( gtk_builder_get_object ( builder , " RepoStore " ) ) ;
main_config . tree_store = GTK_TREE_STORE ( gtk_builder_get_object ( builder , " RepoStore " ) ) ;
widgets - > DocumentationMenuItem = yon_ubl_menu_item_documentation_new ( DOCUMENTATION_LABEL ) ; // yon_gtk_builder_get_widget(builder,"DocumentationMenuItem");
widgets - > AboutMenuItem = yon_ubl_menu_item_about_new ( ABOUT_LABEL ) ; // yon_gtk_builder_get_widget(builder,"AboutMenuItem");
gtk_window_set_title ( GTK_WINDOW ( widgets - > Window ) , TITLE_LABEL ) ;
GtkWidget * menu = yon_gtk_builder_get_widget ( builder , " menu2 " ) ;
gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ) , widgets - > DocumentationMenuItem ) ;
gtk_menu_shell_append ( GTK_MENU_SHELL ( menu ) , widgets - > AboutMenuItem ) ;
if ( main_config . lock_load_global = = 1 ) {
if ( main_config . lock_load_global = = 1 ) {
gtk_widget_set_sensitive ( widgets - > LoadGlobalMenuItem , 0 ) ;
gtk_widget_set_sensitive ( widgets - > LoadGlobalMenuItem , 0 ) ;
}
}
@ -484,9 +539,12 @@ main_window *setup_window(){
g_signal_connect ( G_OBJECT ( widgets - > DeleteButton ) , " clicked " , G_CALLBACK ( on_repo_remove ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > DeleteButton ) , " clicked " , G_CALLBACK ( on_repo_remove ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadFromLocalButton ) , " clicked " , G_CALLBACK ( on_repo_load_local ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > LoadFromLocalButton ) , " clicked " , G_CALLBACK ( on_repo_load_local ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ConfigureButton ) , " clicked " , G_CALLBACK ( on_repo_configure ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > ConfigureButton ) , " clicked " , G_CALLBACK ( on_repo_configure ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > SaveButton ) , " clicked " , G_CALLBACK ( on_save ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > RepoTree ) , " cursor-changed " , G_CALLBACK ( on_tree_selection_changed ) , widgets ) ;
g_signal_connect ( G_OBJECT ( widgets - > Finder ) , " changed " , G_CALLBACK ( on_search ) , widgets ) ;
/* Localisation | Локализация */
/* Localisation | Локализация */
gtk_widget_show_all ( widgets - > Window ) ;
gtk_widget_show ( widgets - > Window ) ;
return widgets ;
return widgets ;
@ -498,6 +556,7 @@ int main(int argc, char *argv[]){
config_init ( ) ;
config_init ( ) ;
int option_index = 0 ;
int option_index = 0 ;
int show_help = 0 ;
int show_help = 0 ;
int debug_mode = 0 ;
{
{
struct option long_options [ ] = {
struct option long_options [ ] = {
{ " help " , 0 , 0 , ' h ' } ,
{ " help " , 0 , 0 , ' h ' } ,
@ -510,10 +569,11 @@ int main(int argc, char *argv[]){
{ " socket-id " , 1 , 0 , ' s ' } ,
{ " socket-id " , 1 , 0 , ' s ' } ,
{ " socket-ext-id " , 1 , 0 , ' e ' } ,
{ " socket-ext-id " , 1 , 0 , ' e ' } ,
{ " socket-trd-id " , 1 , 0 , ' t ' } ,
{ " socket-trd-id " , 1 , 0 , ' t ' } ,
{ " debug " , 0 , 0 , ' d ' } ,
{ NULL , 0 , NULL , 0 }
{ NULL , 0 , NULL , 0 }
} ;
} ;
for ( int i = 0 ; i < argc ; i + + ) {
for ( int i = 0 ; i < argc ; i + + ) {
int argument = getopt_long ( argc , argv , " hVvs:e:t: " , long_options , & option_index ) ;
int argument = getopt_long ( argc , argv , " hVvs:e:t: d " , long_options , & option_index ) ;
switch ( argument ) {
switch ( argument ) {
case ' h ' :
case ' h ' :
show_help = 1 ;
show_help = 1 ;
@ -559,19 +619,24 @@ int main(int argc, char *argv[]){
}
}
}
}
if ( getuid ( ) ! = 0 ) {
main_config . lock_load_global = 1 ;
main_config . lock_save_global = 1 ;
main_config . lock_save_local = 1 ;
}
gtk_init ( & argc , & argv ) ;
gtk_init ( & argc , & argv ) ;
main_window * widgets = setup_window ( ) ;
main_window * widgets = setup_window ( ) ;
yon_ubl_header_setup ( widgets - > HeadOverlay , widgets - > HeadBox , widgets - > HeadImage , banner_path ) ;
yon_ubl_header_setup _resource ( widgets - > HeadOverlay , widgets - > HeadBox , widgets - > HeadImage , banner_path ) ;
if ( yon_ubl_status_box_setup ( widgets - > StatusIcon , widgets - > StatusBox , widgets - > StatusLabel ) )
yon_ubl_status_box_setup ( widgets - > StatusIcon , widgets - > StatusBox , widgets - > StatusLabel ) ;
yon_ubl_status_box_render ( TITLE_LABEL , BACKGROUND_IMAGE_SUCCESS_TYPE ) ;
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_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_load ( config_path ) ;
GtkCssProvider * css = gtk_css_provider_new ( ) ;
GtkCssProvider * css = gtk_css_provider_new ( ) ;
gtk_css_provider_load_from_ path( css , CssPath , NULL ) ;
gtk_css_provider_load_from_ resource( css , CssPath ) ;
gtk_style_context_add_provider_for_screen ( gdk_screen_get_default ( ) ,
gtk_style_context_add_provider_for_screen ( gdk_screen_get_default ( ) ,
GTK_STYLE_PROVIDER ( css ) ,
GTK_STYLE_PROVIDER ( css ) ,
- 1 ) ;
- 1 ) ;