diff --git a/Makefile b/Makefile index 54fea27..b03a7d3 100644 --- a/Makefile +++ b/Makefile @@ -127,6 +127,11 @@ install: check uninstall @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-green-symbolic.svg" @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-red-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.folder-red-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.document-sign-error-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.warning-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.chain-error-symbolic.svg" + @install -Dm644 -t "${DESTDIR}/usr/share/icons/hicolor/scalable/status/" "com.ublinux.${PKGNAME}.chain-symbolic.svg" @install -Dm755 -t "${DESTDIR}/usr/share/${PKGNAME}/csv/" "crypt-key.csv" @install -Dm644 -t "${DESTDIR}${PREFIX}/share/applications/" "${PKGNAME}.desktop" @install -Dm755 -t "${DESTDIR}${PREFIX}/bin/" "${CMAKE_BUILD_DIR}/${PKGNAME}" diff --git a/com.ublinux.ubl-settings-repomanager.chain-error-symbolic.svg b/com.ublinux.ubl-settings-repomanager.chain-error-symbolic.svg new file mode 100644 index 0000000..464e9b8 --- /dev/null +++ b/com.ublinux.ubl-settings-repomanager.chain-error-symbolic.svg @@ -0,0 +1,36 @@ + + + + + + + + + diff --git a/com.ublinux.ubl-settings-repomanager.chain-symbolic.svg b/com.ublinux.ubl-settings-repomanager.chain-symbolic.svg new file mode 100644 index 0000000..be3a9e3 --- /dev/null +++ b/com.ublinux.ubl-settings-repomanager.chain-symbolic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/com.ublinux.ubl-settings-repomanager.document-sign-error-symbolic.svg b/com.ublinux.ubl-settings-repomanager.document-sign-error-symbolic.svg new file mode 100644 index 0000000..851beea --- /dev/null +++ b/com.ublinux.ubl-settings-repomanager.document-sign-error-symbolic.svg @@ -0,0 +1,62 @@ + + + + + + + + + + + diff --git a/com.ublinux.ubl-settings-repomanager.warning-symbolic.svg b/com.ublinux.ubl-settings-repomanager.warning-symbolic.svg new file mode 100644 index 0000000..56c060c --- /dev/null +++ b/com.ublinux.ubl-settings-repomanager.warning-symbolic.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 16d5f85..d785504 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -1244,7 +1244,7 @@ void yon_config_load_update(main_window *widgets){ char *name = yon_char_new(storages[i]); free(yon_char_divide(name,yon_char_find_last(name,'/'))); gtk_tree_store_append(widgets->RepoList,&iter,NULL); - gtk_tree_store_set(widgets->RepoList,&iter,1,folder_no_edits,2,name,3,storages[i],-1); + gtk_tree_store_set(widgets->RepoList,&iter,0,folder_no_edits,2,name,3,storages[i],-1); free(name); yon_window_config_get_parameter("storage_info",storages[i],&name,YON_TYPE_STRING); if (!yon_char_is_empty(name)){ @@ -1254,14 +1254,23 @@ void yon_config_load_update(main_window *widgets){ char *nm = yon_char_new(name_parsed[j]); free(yon_char_divide(nm,yon_char_find_last(nm,'/'))); gtk_tree_store_append(widgets->RepoList,&itar,&iter); - gtk_tree_store_set(widgets->RepoList,&itar,1,document_no_edits,3,name_parsed[j],2,nm,-1); + gtk_tree_store_set(widgets->RepoList,&itar,2,nm,3,name_parsed[j],-1); int size; config_str dirs = yon_file_list_dirs(name_parsed[j],&size); for (int k=0;kRepoList,&childiter,&itar); - gtk_tree_store_set(widgets->RepoList,&childiter,1,folder_no_edits,2,dirs[k],3,arch_path,-1); + gtk_tree_store_set(widgets->RepoList,&childiter,0,sign_status_image,2,dirs[k],3,arch_path,-1); } } free(nm); @@ -1412,8 +1421,14 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){ config_str load = yon_config_load(yon_get_package_name_from_filename(name),&load_size); if (load_size>0){ yon_char_remove_last_symbol(load[0],'\n'); + int package_status = system(yon_debug_output("%s\n",yon_repo_get_signature_status(storage,repo,arch,load[0]))); + char *sign_status_icon = ""; + if (!package_status) + sign_status_icon = package_signature_icon_name; + else + sign_status_icon = package_signature_error_icon_name; gtk_list_store_append(widgets->RepoFileList,&itar); - gtk_list_store_set(widgets->RepoFileList,&itar,1,line[0],2,line[1],-1); + gtk_list_store_set(widgets->RepoFileList,&itar,0,sign_status_icon,1,line[0],2,line[1],-1); yon_char_parsed_free(load,load_size); } } else { diff --git a/source/ubl-settings-repomanager.h b/source/ubl-settings-repomanager.h index 0642c48..7de4b00 100644 --- a/source/ubl-settings-repomanager.h +++ b/source/ubl-settings-repomanager.h @@ -41,6 +41,12 @@ #define LocaleName "ubl-settings-repomanager" #define key_icon_name "com.ublinux.libublsettingsui-gtk3.key-symbolic" +#define key_error_icon_name "com.ublinux.ubl-settings-repomanager.document-sign-error-symbolic" + +#define package_signature_icon_name "com.ublinux.ubl-settings-repomanager.chain-symbolic" +#define package_signature_error_icon_name "com.ublinux.ubl-settings-repomanager.chain-error-symbolic" + +#define warning_icon_name "com.ublinux.ubl-settings-repomanager.warning-symbolic" #define package_linked_icon "com.ublinux.ubl-settings-repomanager.package-linked-symbolic" #define package_unlinked_icon "com.ublinux.ubl-settings-repomanager.package-unlinked-symbolic" @@ -66,6 +72,9 @@ typedef char* string; #define yon_get_packages_command(path,repo,arch) yon_char_unite("repo-manager show --quiet -d ",path," -a ",arch," -r ",repo," | sed -E 's/(\\S+)(\\s+)(\\S+)/\\1 \\3/g'",NULL) #define yon_repo_get_signature(path, repo) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," . 2>&1 | cut -d: -f2 |sed -E 's/ *//g'",NULL) +#define yon_repo_get_signature_status(path,repo,arch, package) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," ",package,NULL) +#define yon_repo_get_signature_status_arch(path,repo,arch) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," .",NULL) +#define yon_repo_get_signature_status_packages(path,repo,arch) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo,NULL) #define yon_get_package_name_from_filename(path) yon_char_unite("[[ '",path,"' =~ (.*/)*(.*)-[^-]+-[^-]+-[^-]+\\.pkg\\.tar\\.[^.-]+ ]] && echo ${BASH_REMATCH[2]}",NULL) diff --git a/ubl-settings-repomanager.glade b/ubl-settings-repomanager.glade index 3bf77ed..3f0e0ba 100644 --- a/ubl-settings-repomanager.glade +++ b/ubl-settings-repomanager.glade @@ -241,13 +241,6 @@ 0 - - - - 4 - 1 - -