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
-
-