pull/97/head
parent 58d141416d
commit 086fdd7697

@ -97,7 +97,29 @@ void on_toggle_button_toggled(GtkWidget *self, main_window *widgets){
} else if (self == widgets->RepositoriesRepoListConfigurationCheck||self == widgets->RepositoriesDisableSystemReposCheck){ } else if (self == widgets->RepositoriesRepoListConfigurationCheck||self == widgets->RepositoriesDisableSystemReposCheck){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck))){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck))){ int disable_repo_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck));
GtkTreeModel *model = GTK_TREE_MODEL(widgets->ReposList);
GtkTreeIter iter;
int size;
config_str parsed = yon_config_load(get_all_standard_repos,&size);
for(int i=0;i<size;i++){
free(yon_char_divide_search(parsed[i],"[",-1));
char *temp = yon_char_divide_search(parsed[i],"]",-1);
free(parsed[i]);
parsed[i]=temp;
}
for_iter(model,&iter){
char *name;
gtk_tree_model_get(model,&iter,1,&name,-1);
if (yon_char_parsed_check_exist(parsed,size,name)!=-1){
if (disable_repo_active){
gtk_list_store_set(widgets->ReposList,&iter,5,!disable_repo_active,-1);
} else {
}
}
}
if (disable_repo_active){
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"only"); yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"only");
} else { } else {
yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"enable"); yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"enable");
@ -233,6 +255,25 @@ void yon_interface_update(main_window *widgets){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),0);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck),0);
if (!yon_char_is_empty(repo_config)){ if (!yon_char_is_empty(repo_config)){
config_str repos = yon_config_get_all_by_key(REPOSITORY_search,&size);
for (int i=0;i<size;i++){
char *current = yon_char_new(repos[i]);
char *key = yon_char_divide_search(current,"=",-1);
free(yon_char_divide_search(key,"[",-1));
key[strlen(key)-1]='\0';
int cur_size;
config_str parsed = yon_char_parse(current,&cur_size,";");
if (cur_size){
gtk_list_store_append(widgets->ReposList,&iter);
char *temp = strstr(parsed[0],",")?yon_char_replace(parsed[0],",","\n"):parsed[0];
parsed[0] = temp;
gtk_list_store_set(widgets->ReposList,&iter,0,(cur_size>3&&!strcmp(parsed[3],""))||cur_size<3?1:0,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",5,1,-1);
}
free(key);
free(current);
}
yon_char_parsed_free(repos,size);
if (!strcmp(repo_config,"disable")){ if (!strcmp(repo_config,"disable")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),0);
} else if (!strcmp(repo_config,"enable")){ } else if (!strcmp(repo_config,"enable")){
@ -240,28 +281,27 @@ void yon_interface_update(main_window *widgets){
}else if (!strcmp(repo_config,"only")){ }else if (!strcmp(repo_config,"only")){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck),1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),1);
int disable_repo_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck));
GtkTreeModel *model = GTK_TREE_MODEL(widgets->ReposList);
GtkTreeIter iter;
int size;
config_str parsed = yon_config_load(get_all_standard_repos,&size);
for(int i=0;i<size;i++){
free(yon_char_divide_search(parsed[i],"[",-1));
char *temp = yon_char_divide_search(parsed[i],"]",-1);
free(parsed[i]);
parsed[i]=temp;
}
for_iter(model,&iter){
char *name;
gtk_tree_model_get(model,&iter,1,&name,-1);
if (yon_char_parsed_check_exist(parsed,size,name)!=-1){
gtk_list_store_set(widgets->ReposList,&iter,5,!disable_repo_active,-1);
}
}
} }
} }
config_str repos = yon_config_get_all_by_key(REPOSITORY_search,&size);
for (int i=0;i<size;i++){
char *current = yon_char_new(repos[i]);
char *key = yon_char_divide_search(current,"=",-1);
free(yon_char_divide_search(key,"[",-1));
key[strlen(key)-1]='\0';
int cur_size;
config_str parsed = yon_char_parse(current,&cur_size,";");
if (cur_size){
gtk_list_store_append(widgets->ReposList,&iter);
char *temp = strstr(parsed[0],",")?yon_char_replace(parsed[0],",","\n"):parsed[0];
parsed[0] = temp;
gtk_list_store_set(widgets->ReposList,&iter,0,(cur_size>3&&!strcmp(parsed[3],""))||cur_size<3?1:0,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",-1);
}
free(key);
free(current);
}
yon_char_parsed_free(repos,size);
} }
{ {
int repos_size; int repos_size;

@ -53,6 +53,7 @@
#define config_get_global_only_parameters "" #define config_get_global_only_parameters ""
#define config_get_local_only_parameters "" #define config_get_local_only_parameters ""
#define get_all_standard_repos "ubconfig --source default get [update] REPOSITORY[*]"
#define get_publication_list_command "sed -rn \"/^[[:blank:]]*\\[options\\][[:blank:]]*$/d;s/^\\[(.*)\\]$/\\1/p\" /etc/pacman.conf" #define get_publication_list_command "sed -rn \"/^[[:blank:]]*\\[options\\][[:blank:]]*$/d;s/^\\[(.*)\\]$/\\1/p\" /etc/pacman.conf"
#define REPOSITORY(target) yon_char_unite("REPOSITORY[",target,"]",NULL) #define REPOSITORY(target) yon_char_unite("REPOSITORY[",target,"]",NULL)

@ -55,6 +55,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name UsageLevel --> <!-- column-name UsageLevel -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name active -->
<column type="gboolean"/>
</columns> </columns>
</object> </object>
<object class="GtkListStore" id="UpdateRepoList"> <object class="GtkListStore" id="UpdateRepoList">
@ -791,6 +793,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<child> <child>
<object class="GtkCellRendererToggle"/> <object class="GtkCellRendererToggle"/>
<attributes> <attributes>
<attribute name="sensitive">5</attribute>
<attribute name="active">0</attribute> <attribute name="active">0</attribute>
</attributes> </attributes>
</child> </child>
@ -806,6 +809,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="ellipsize">end</property> <property name="ellipsize">end</property>
</object> </object>
<attributes> <attributes>
<attribute name="sensitive">5</attribute>
<attribute name="text">1</attribute> <attribute name="text">1</attribute>
</attributes> </attributes>
</child> </child>
@ -821,6 +825,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="ellipsize">end</property> <property name="ellipsize">end</property>
</object> </object>
<attributes> <attributes>
<attribute name="sensitive">5</attribute>
<attribute name="text">2</attribute> <attribute name="text">2</attribute>
</attributes> </attributes>
</child> </child>
@ -837,6 +842,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="wrap-width">125</property> <property name="wrap-width">125</property>
</object> </object>
<attributes> <attributes>
<attribute name="sensitive">5</attribute>
<attribute name="text">3</attribute> <attribute name="text">3</attribute>
</attributes> </attributes>
</child> </child>
@ -850,6 +856,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="ellipsize">end</property> <property name="ellipsize">end</property>
</object> </object>
<attributes> <attributes>
<attribute name="sensitive">5</attribute>
<attribute name="text">4</attribute> <attribute name="text">4</attribute>
</attributes> </attributes>
</child> </child>

Loading…
Cancel
Save