Package loading rework; Moved but not linked packages now outputs at lower tree view

pull/41/head
parent 0b73b84836
commit fc1994ffc2

@ -1360,21 +1360,28 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){
gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info);
char *packages;
int size;
config_str parsed = yon_file_ls(target,&size);
char *repo = yon_char_divide(target,yon_char_find_last(target,'/'));
char *storage = yon_char_divide(repo,yon_char_find_last(repo,'/'));
char *command = yon_get_packages_command(storage,repo,target);
yon_debug_output("%s\n",command);
config_str parsed = yon_config_load(command,&size);
for (int i=0;i<size;i++){
if (strstr(parsed[i],".tar.")&&!strstr(parsed[i],".files.")&&!strstr(parsed[i],".db.")&&!strstr(parsed[i],".sig")){
int load_size;
char *name = yon_char_unite(target,"/",parsed[i],NULL);
config_str load = yon_config_load(yon_get_package_name_from_filename(name),&load_size);
if (load_size>0){
gtk_list_store_append(widgets->RepoFileList,&itar);
yon_char_remove_last_symbol(load[0],'\n');
char *temp = load[0];
free(name);
name=temp;
gtk_list_store_set(widgets->RepoFileList,&itar,1,name,3,parsed[i],-1);
yon_char_parsed_free(load,load_size);
int line_size;
yon_char_remove_last_symbol(parsed[i],'\n');
config_str line = yon_char_parse(parsed[i],&line_size,":");
if (line[0][0]!='-'&&line[0][1]!='\0'){
int load_size;
char *name = yon_char_unite(target,"/",parsed[i],NULL);
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');
gtk_list_store_append(widgets->RepoFileList,&itar);
gtk_list_store_set(widgets->RepoFileList,&itar,0,line[1][0]!='-'&&line[1][1]!='\0'? document_added : "",1,line[0],2,line[1],-1);
yon_char_parsed_free(load,load_size);
}
} else {
gtk_list_store_append(widgets->RepoPackagesList,&itar);
gtk_list_store_set(widgets->RepoPackagesList,&itar,0,document_deleted,1,line[1],-1);
}
}
free(info);
@ -1403,10 +1410,12 @@ void on_package_selection_changed(GtkWidget *self, main_window *widgets){
break;
case 2:
char *path, *filename;
gtk_tree_model_get(model,&iter,3,&filename,-1);
gtk_tree_model_get(model,&iter,2,&filename,-1);
gtk_tree_model_get(model2,&itar,3,&path,-1);
int size;
config_str parsed = yon_config_load(get_package_info_command(yon_char_unite(path,"/",filename,NULL)),&size);
char *command = get_package_info_command(yon_char_unite(path,"/",filename,NULL));
yon_debug_output("%s\n",command);
config_str parsed = yon_config_load(command,&size);
char *full = yon_char_parsed_to_string(parsed,size,"");
gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),full);
yon_char_parsed_free(parsed,size);
@ -1580,7 +1589,7 @@ main_window *yon_main_window_complete(main_window *widgets){
widgets->RepoList = GTK_TREE_STORE(gtk_builder_get_object(builder,"RepoStore"));
widgets->RepoFileList = GTK_LIST_STORE(gtk_builder_get_object(builder,"RepoFileList"));
widgets->RepoPackagesTre = GTK_LIST_STORE(gtk_builder_get_object(builder,"RepoPackagesTre"));
widgets->RepoPackagesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"RepoPackageList"));
{
widgets->KeyMenuItem = gtk_menu_item_new();
gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->AboutMenuItem)),widgets->KeyMenuItem);

@ -42,6 +42,9 @@
#define key_icon_name "com.ublinux.libublsettingsui-gtk3.key-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"
#define key_encription_path "/usr/share/ubl-settings-repomanager/csv/crypt-key.csv"
typedef char* string;
@ -60,7 +63,9 @@ typedef char* string;
#define ubl_settings_update_command "ubl-settings-update"
#define yon_repo_get_signature(path, repo) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," .",NULL)
#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_get_package_name_from_filename(path) yon_char_unite("[[ '",path,"' =~ (.*/)*(.*)-[^-]+-[^-]+-[^-]+\\.pkg\\.tar\\.[^.-]+ ]] && echo ${BASH_REMATCH[2]}",NULL)
@ -138,7 +143,7 @@ typedef struct {
GtkWidget *KeyMenuItem;
GtkTreeStore *RepoList;
GtkListStore *RepoFileList;
GtkListStore *RepoPackagesTre;
GtkListStore *RepoPackagesList;
} main_window;
typedef struct {

@ -14,12 +14,18 @@
<column type="gchararray"/>
<!-- column-name Name -->
<column type="gchararray"/>
<!-- column-name IconBottom -->
<column type="gchararray"/>
<!-- column-name Filename -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="RepoPackageList">
<columns>
<!-- column-name Icon -->
<column type="gchararray"/>
<!-- column-name Name -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkTreeStore" id="RepoStore">
<columns>
<!-- column-name Icon -->
@ -110,7 +116,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<property name="tooltip-text" translatable="yes">Configure storages</property>
<property name="tooltip-text" translatable="yes">Manage storages</property>
<property name="image">image2</property>
<style>
<class name="thin"/>
@ -339,11 +345,13 @@
<object class="GtkTreeView" id="RepoPackagesTree">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="model">RepoFileList</property>
<property name="model">RepoPackageList</property>
<property name="headers-visible">False</property>
<property name="search-column">1</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
<object class="GtkTreeSelection">
<property name="mode">multiple</property>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">

Loading…
Cancel
Save