From acbd545bfd2f7907d00c04e43c1c9a519565aa50 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 29 May 2023 15:45:36 +0600 Subject: [PATCH] Added functionality to some buttons --- Makefile | 2 + com.ublinux.ubl-settings-repomanager.svg | 1232 +++++++++++++++++++++- source/ubl-cmake.h | 1 + source/ubl-settings-repomanager.c | 321 +++++- source/ubl-settings-repomanager.h | 26 +- source/ubl-strings.h | 15 +- source/ubl-utils.h | 3 + ubl-settings-repomanager | Bin 0 -> 116392 bytes ubl-settings-repomanager-windows.glade | 512 +++++++++ ubl-settings-repomanager.glade | 39 +- ubl-settings-repomanager.pot | 36 + ubl-settings-repomanager_ru.po | 40 +- 12 files changed, 2116 insertions(+), 111 deletions(-) create mode 120000 source/ubl-cmake.h create mode 100755 ubl-settings-repomanager create mode 100644 ubl-settings-repomanager-windows.glade diff --git a/Makefile b/Makefile index d715cd8..1537dd6 100644 --- a/Makefile +++ b/Makefile @@ -99,6 +99,7 @@ uninstall: @echo "Uninstall: OK" install: check uninstall + @gcc source/ubl-settings-repomanager.c source/ubl-utils.c source/ubl-strings.h -o ubl-settings-repomanager `pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -g @echo "Install ..." @for FILE_PO in $(wildcard *.po); do \ LANG=$${FILE_PO##*_};LANG=$${LANG%.*}; \ @@ -122,6 +123,7 @@ install: check uninstall @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop" @install -dm755 "${DESTDIR}${PREFIX}/share/${PKGNAME}"/{ui,css,images} @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}.glade" + @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/ui/" "${PKGNAME}-windows.glade" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/css/" "${PKGNAME}.css" @install -dm755 -d "${DESTDIR}${PREFIX}/share/${PKGNAME}/images" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/${PKGNAME}/images/" "${PKGNAME}-banner.png" diff --git a/com.ublinux.ubl-settings-repomanager.svg b/com.ublinux.ubl-settings-repomanager.svg index f636c26..add01b7 100644 --- a/com.ublinux.ubl-settings-repomanager.svg +++ b/com.ublinux.ubl-settings-repomanager.svg @@ -4,8 +4,8 @@ height="180" version="1.0" id="svg8" - sodipodi:docname="ublinux-ubconfig.svg" - inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" + sodipodi:docname="ubl-settings-repomanager.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)" inkscape:export-filename="/media/Data/ShareMX/temp/archtoub_icons/ublinux-logo.png" inkscape:export-xdpi="136.53334" inkscape:export-ydpi="136.53334" @@ -2225,11 +2225,11 @@ + gradientTransform="matrix(3.779602,0,0,3.779602,-193.72728,-7.0470659)"> + + + + + + + + + + + + + + + + + + + + id="filter104568" + x="-0.16132975" + y="-0.15932729" + width="1.2893327" + height="1.2869388"> + id="feFlood104558" /> + id="feComposite104560" /> + id="feGaussianBlur104562" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="feOffset32783-4" /> + id="feComposite32785-3" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + inkscape:current-layer="layer3"> + + + inkscape:label="ubinstall_gui" + style="display:none"> - + id="g2035" + transform="matrix(1.7064512,0,0,1.7064512,182.08962,45.305852)" + style="filter:url(#filter104568)"> + + + + + + + + + + + + + cx="4.7361059" + cy="12.475146" + r="3.9282389" + fill="url(#linearGradient3529)" + stroke-width="0.927939" + id="circle34" + style="fill:url(#linearGradient3529)" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cx="4.7361059" + cy="12.475146" + r="3.9282389" + fill="url(#linearGradient3529)" + stroke-width="0.927939" + id="circle34-6" + style="fill:url(#linearGradient3529-4)" /> + diff --git a/source/ubl-cmake.h b/source/ubl-cmake.h new file mode 120000 index 0000000..967149f --- /dev/null +++ b/source/ubl-cmake.h @@ -0,0 +1 @@ +/home/superadmin/Документы/ubl-settings-repomanager/compile/ubl-cmake.h \ No newline at end of file diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 647733f..ff794a9 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -98,7 +98,281 @@ void on_about(){ gtk_widget_show(window); } +void on_tree_selection_changed(GtkWidget *self,main_window *widgets){ + GtkTreeModel *model = GTK_TREE_MODEL(main_config.tree_store); + GtkTreeIter *iter=NULL; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,iter)){ + char *codeName,*branch,*version,*architecture,*components,*signature,*ipAdress,*port; + int serverType=0,trusted=0,published=0; + 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); + // gtk_label_set_text(GTK_LABEL(widgets->srgbe),) + } +} + +int yon_add_branches(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void *dct){ + printf("%d\n",1); + 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; + gtk_tree_model_get(model,iter,0,&name,-1); + if(name){ + printf("%s\n",name); + GtkTreeIter ITER,iters; + if(gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&model,&ITER)){ + gtk_tree_store_append(main_config.tree_store,&iters,&ITER); + gtk_tree_store_set(main_config.tree_store,&iters,1,name,-1); + } + } + return 0; +} + +void on_repo_add_new(GtkWidget *self, dictionary *dict){ + 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 = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry))); + if (!name||strcmp(name,"")!=0){ + on_close_subwindow(self); + 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_model_foreach(GTK_TREE_MODEL(window->BranchesListStore),yon_add_branches,dict); + yon_ubl_status_box_render(OPERATION_DONE_LABEL,BACKGROUND_IMAGE_SUCCESS_TYPE); + } else { + yon_ubl_status_box_render(EMPTY_NAME_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + } +} + +void on_branch_add(GtkCellRendererText *self, char*path,char *new_text, repo_create_window *window){ + if (new_text&&strcmp(new_text,"")!=0){ + GtkTreeIter iter; + gboolean used, use=1; + gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->BranchesListStore),&iter,path); + gtk_tree_model_get(GTK_TREE_MODEL(window->BranchesListStore),&iter,1,&used,-1); + used; + gtk_list_store_set(window->BranchesListStore,&iter,0,new_text,1,&use,-1); + if (used==0) + gtk_list_store_append(window->BranchesListStore,&iter); + + } +} + +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); + window->Window=yon_gtk_builder_get_widget(builder,"repoCreateWindow"); + window->NameEntry=yon_gtk_builder_get_widget(builder,"repoNameEntry"); + window->CancelButton=yon_gtk_builder_get_widget(builder,"repoCancelButton"); + window->SaveButton=yon_gtk_builder_get_widget(builder,"repoSaveButton"); + window->BranchesTree=yon_gtk_builder_get_widget(builder,"curRepoEditTree"); + 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){ + yon_add_file(widgets); +} + +void on_repo_remove_package(GtkWidget *self, main_window *widgets){ + yon_repo_remove_package(widgets); +} + +void on_repo_remove(GtkWidget *self, main_window *widgets){ + yon_repo_remove(widgets); +} + +void on_repo_configure(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)){ + GtkBuilder *builder = gtk_builder_new_from_file(glade_repo_path); + repo_create_window *window = new(repo_create_window); + window->Window=yon_gtk_builder_get_widget(builder,"repoEditWindow"); + window->NameEntry=yon_gtk_builder_get_widget(builder,"repoEditNameEntry"); + window->CancelButton=yon_gtk_builder_get_widget(builder,"repoEditCancelButton"); + window->SaveButton=yon_gtk_builder_get_widget(builder,"repoEditSaveButton"); + window->BranchesTree=yon_gtk_builder_get_widget(builder,"repoEditBranchTree"); + window->BranchesListStore=GTK_LIST_STORE(gtk_builder_get_object(builder,"curRepoEditList")); + gtk_widget_show(window->Window); + dictionary *dict = yon_dictionary_create_with_data("",widgets); + dict = yon_dictionary_create_with_data_connected(dict,"",window); + 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); + 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); +} + +void on_repo_configure_done(GtkWidget *self, dictionary *dict){ + 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*); + 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)){ + char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->NameEntry)); + gtk_tree_store_set(main_config.tree_store,&iter,1,name,-1); + } + on_close_subwindow(self); +} + +void on_repo_load_local(GtkWidget *self, main_window *widgets){ + 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); + int res = gtk_dialog_run(GTK_DIALOG(chooser)); + if (res==GTK_RESPONSE_ACCEPT){ + + char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); + while (1){ + char *ret = yon_char_divide_search(filename,"/",-1); + if (strcmp(ret,filename)==0) break; + } + yon_repo_append(widgets,filename,YON_REPO_LINE_REPO_TYPE); + } + on_close_subwindow(chooser); +} + +GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYPE type){ + GtkTreeIter *retIter=g_malloc0(sizeof(GtkTreeIter)); + GtkTreeIter iter,parentIter; + GdkPixbuf *icon = NULL; + GtkIconTheme *theme = gtk_icon_theme_get_default(); + 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 (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); + gtk_tree_store_append(main_config.tree_store,&iter,NULL); + gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1); + retIter = gtk_tree_iter_copy(&iter); + } + else if (type==YON_REPO_LINE_BRANCH_TYPE){ + icon = NULL; + if (gtk_tree_model_iter_parent(model,&iter,&parentIter)){ + GtkTreeIter branch; + if (!gtk_tree_model_iter_parent(model,&branch,&iter)){ + 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); + } else { + gtk_tree_store_append(main_config.tree_store,&iter,&branch); + gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-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); + } + 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 { + 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); + } + 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); + } + 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); + gtk_tree_store_append(main_config.tree_store,&iter,NULL); + gtk_tree_store_set(main_config.tree_store,&iter,0, icon, 1, name,-1); + retIter = gtk_tree_iter_copy(&iter); + gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoTree)),&iter); + } else { + yon_ubl_status_box_render(NOTHING_CHOSEN_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + } + return retIter; +} + +void yon_repo_remove_package(main_window *widgets){ + 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_repo_remove(main_window *widgets){ + 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)){ + if(gtk_tree_store_iter_depth(main_config.tree_store,&iter)==0){ + 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_REPO_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){ + 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); + int res = gtk_dialog_run(GTK_DIALOG(chooser)); + if (res==GTK_RESPONSE_ACCEPT){ + + char *filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); + while (1){ + char *ret = yon_char_divide_search(filename,"/",-1); + if (strcmp(ret,filename)==0) break; + } + yon_repo_append(widgets,filename,YON_REPO_LINE_FILE_TYPE); + } + on_close_subwindow(chooser); + + +} + + + /* setup functions */ void config_init(){ + main_config.tree_store=NULL; main_config.always_open_documentation=0; main_config.win_height=0; main_config.win_width=0; @@ -182,6 +456,7 @@ main_window *setup_window(){ widgets->SignatureLabel = yon_gtk_builder_get_widget(builder,"SignatureLabel"); widgets->SignatureInfoLabel = yon_gtk_builder_get_widget(builder,"SignatureInfoLabel"); widgets->Finder = yon_gtk_builder_get_widget(builder,"SignatureInfoLabel"); + main_config.tree_store = GTK_TREE_STORE(gtk_builder_get_object(builder,"RepoStore")); if (main_config.lock_load_global == 1){ gtk_widget_set_sensitive(widgets->LoadGlobalMenuItem,0); @@ -203,49 +478,17 @@ main_window *setup_window(){ g_signal_connect(G_OBJECT(widgets->Window), "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),WIKI_LINK); g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),NULL); + g_signal_connect(G_OBJECT(widgets->CreateButton),"clicked",G_CALLBACK(on_repo_new),widgets); + g_signal_connect(G_OBJECT(widgets->AddPackageButton),"clicked",G_CALLBACK(on_repo_add_file),widgets); + g_signal_connect(G_OBJECT(widgets->RemovePackageButton),"clicked",G_CALLBACK(on_repo_remove_package),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->ConfigureButton),"clicked",G_CALLBACK(on_repo_configure),widgets); /* Localisation | Локализация */ - gtk_label_set_text(GTK_LABEL(widgets->HatLabel),TITLE_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->SaveLabel),SAVE_LABEL); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->SaveMenuItem),SAVE_CONFIGURATION_LABEL); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->SaveGlobalMenuItem),SAVE_GLOBAL_LABEL); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->SaveLocalMenuItem),SAVE_LOCAL_LABEL); - - gtk_label_set_text(GTK_LABEL(widgets->LoadLabel),LOAD_LABEL); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->LoadGlobalMenuItem),LOAD_GLOBAL_LABEL); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->LoadLocalMenuItem),LOAD_LOCAL_LABEL); - - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->DocumentationMenuItem),DOCUMENTATION_LABEL); - gtk_menu_item_set_label(GTK_MENU_ITEM(widgets->AboutMenuItem),ABOUT_LABEL); - - - gtk_label_set_text(GTK_LABEL(widgets->GeneralTabLabel),GENERAL_TAB_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->PublicationTabLabel),PUBLICATION_TAB_LABEL); + gtk_widget_show_all(widgets->Window); - gtk_label_set_text(GTK_LABEL(widgets->CodeNameLabel),CODE_NAME_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->BranchLabel),BRANCH_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->VersionLabel),VERSION_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->ArchitectureLabel),ARCHITECRURE_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->ComponentsLabel),COMPONENTS_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->SignatureLabel),SIGNATURE_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->ServerTypeLabel),SERVER_TYPE_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->IpAdressLabel),IP_ADRESS_LABEL); - gtk_label_set_text(GTK_LABEL(widgets->PortLabel),PORT_LABEL); - - gtk_button_set_label(GTK_BUTTON(widgets->TrustedRepoCheck),TRUSTED_LABEL); - - gtk_widget_set_tooltip_markup(widgets->CreateButton,CREATE_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->LoadFromNetButton,OPEN_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->ConfigureButton,CONFIGURE_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->DeleteButton,DELETE_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->LoadFromLocalButton,ADD_REMOVE_LOCAL_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->SwitchPublishButton,ENABLE_DISABLE_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->CheckDependencesButton,CHECK_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->SignButton,SIGN_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->AddPackageButton,ADD_PACKAGE_REPO_LABEL); - gtk_widget_set_tooltip_markup(widgets->RemovePackageButton,REMOVE_PACKAGE_REPO_LABEL); - gtk_widget_show_all(widgets->Window); return widgets; } diff --git a/source/ubl-settings-repomanager.h b/source/ubl-settings-repomanager.h index ddf5c4a..3e6fa30 100644 --- a/source/ubl-settings-repomanager.h +++ b/source/ubl-settings-repomanager.h @@ -19,6 +19,7 @@ #define _(String) gettext(String) #define glade_path "/usr/share/ubl-settings-repomanager/ui/ubl-settings-repomanager.glade" +#define glade_repo_path "/usr/share/ubl-settings-repomanager/ui/ubl-settings-repomanager-windows.glade" #define banner_path "/usr/share/ubl-settings-repomanager/images/ubl-settings-repomanager-banner.png" #define CssPath "/usr/share/ubl-settings-repomanager/css/ubl-settings-repomanager.css" @@ -30,6 +31,7 @@ string version_application; char *local; typedef struct { + GtkTreeStore *tree_store; int always_open_documentation; int win_pos_x; int win_pos_y; @@ -113,6 +115,16 @@ typedef struct { GtkWidget *Finder; } main_window; +typedef struct { + GtkWidget *Window; + GtkWidget *NameEntry; + GtkWidget *BranchesTree; + GtkWidget *CancelButton; + GtkWidget *SaveButton; + GtkCellRenderer *BranchCell; + + GtkListStore *BranchesListStore; +} repo_create_window; typedef struct { GtkWidget *Window; @@ -126,5 +138,15 @@ typedef struct { GtkWidget *AcceptButton; } documentation_confirmation_window; - -main_window *setup_window(); \ No newline at end of file +typedef enum { + YON_REPO_LINE_REPO_TYPE, + YON_REPO_LINE_FILE_TYPE, + YON_REPO_LINE_BRANCH_TYPE +} YON_REPO_LINE_TYPE; + +main_window *setup_window(); +void yon_add_file(main_window *widgets); +GtkTreeIter *yon_repo_append(main_window *widgets, char *name, YON_REPO_LINE_TYPE type); +void yon_repo_remove_package(main_window *widgets); +void yon_repo_remove(main_window *widgets); +void on_repo_configure_done(GtkWidget *self, dictionary *dict); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index cdea169..f32e589 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -53,4 +53,17 @@ #define CHECK_REPO_LABEL _("Check dependences") #define SIGN_REPO_LABEL _("Sign ripository") #define ADD_PACKAGE_REPO_LABEL _("Add package") -#define REMOVE_PACKAGE_REPO_LABEL _("Remove package") \ No newline at end of file +#define REMOVE_PACKAGE_REPO_LABEL _("Remove package") +#define OPEN_LABEL _("Open") + +#define OPERATION_DONE_LABEL _("Operation done") + +#define CHOOSE_BRANCH_PACK_LABEL _("Choose branch or pack in branch to add file!") +#define CHOOSE_REPO_BRANCH_LABEL _("Choose repository or branch!") +#define CHOOSE_PACK_LABEL _("Choose pack to delete!") +#define CHOOSE_REPO_LABEL _("Choose repository to delete!") + +#define NAME_LABEL _("Name:") +#define BRANCHES_LABEL _("Branches:") +#define TYPE_BRANCH_NAME_LABEL _("< Type branch name >") +#define EMPTY_NAME_LABEL _("Name must be filled!") \ No newline at end of file diff --git a/source/ubl-utils.h b/source/ubl-utils.h index 8de7531..5b7eb82 100644 --- a/source/ubl-utils.h +++ b/source/ubl-utils.h @@ -29,6 +29,9 @@ #define yon_ubl_save_global_config(command) yon_config_save(command) #define yon_ubl_save_local_config(command) yon_config_save(command) +#define for_liststore_each(liststore) GtkTreeIter iter;\ +for (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(liststore),&iter);gtk_list_store_iter_is_valid(liststore,&iter);gtk_tree_model_iter_next(GTK_TREE_MODEL(liststore),&iter)) + typedef enum { #ifdef __GTK_H__ diff --git a/ubl-settings-repomanager b/ubl-settings-repomanager new file mode 100755 index 0000000000000000000000000000000000000000..94d87e07a5aeb58464b551724f0568da8b26b4d8 GIT binary patch literal 116392 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 SUhmZZ=L0HvQ=w4YR{sNf#cX;2 literal 0 HcmV?d00001 diff --git a/ubl-settings-repomanager-windows.glade b/ubl-settings-repomanager-windows.glade new file mode 100644 index 0000000..b94c777 --- /dev/null +++ b/ubl-settings-repomanager-windows.glade @@ -0,0 +1,512 @@ + + + + + + + + + + + + + + + master + True + + + + + True + False + process-stop-symbolic + + + True + False + emblem-ok-symbolic + + + 450 + 150 + False + True + com.ublinux.ubl-settings-repomanager + + + True + False + 5 + 5 + 5 + 5 + 5 + 5 + vertical + 10 + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + Name: + 0 + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + Branches: + 0 + + + False + True + 0 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + True + never + in + + + True + False + + + True + True + curRepoEditList + False + True + 0 + False + + + + + + column + + + True + < Type branch name > + + + 0 + + + + + + + + + + + + + + True + True + 0 + + + + + True + True + 3 + + + + + True + True + 0 + + + + + True + False + end + 5 + True + + + Cancel + True + True + True + image14 + + + + True + True + 0 + + + + + Save + True + True + True + image15 + + + + True + True + 1 + + + + + False + True + 1 + + + + + + + True + False + True + + + True + False + Repository manager + + + + + + + + True + False + 32 + com.ublinux.ubl-settings-repomanager + + + + + + + True + False + process-stop-symbolic + + + True + False + emblem-ok-symbolic + + + 450 + 150 + False + True + com.ublinux.ubl-settings-repomanager + + + True + False + 5 + 5 + 5 + 5 + 5 + 5 + vertical + 10 + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + Name: + 0 + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + Branches: + 0 + + + False + True + 0 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + True + never + in + + + True + False + + + True + True + curRepoEditList + False + 0 + False + + + + + + column + + + + 0 + + + + + + + + + + + + + + True + True + 0 + + + + + True + True + 3 + + + + + True + True + 0 + + + + + True + False + end + 5 + True + + + Cancel + True + True + True + image16 + + + + True + True + 0 + + + + + Save + True + True + True + image17 + + + + True + True + 1 + + + + + False + True + 1 + + + + + + + True + False + True + + + True + False + Repository manager + + + + + + + + True + False + 32 + com.ublinux.ubl-settings-repomanager + + + + + + diff --git a/ubl-settings-repomanager.glade b/ubl-settings-repomanager.glade index 4f02288..f680b6c 100644 --- a/ubl-settings-repomanager.glade +++ b/ubl-settings-repomanager.glade @@ -192,10 +192,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - + - + + + @@ -682,9 +684,11 @@ translated and supported by community. True True + 40 edit-find-symbolic False False + name False @@ -726,6 +730,7 @@ translated and supported by community. True True True + Create repository image1