divided config parameters for each theme, unfound icons fix

pull/9/head
parent 362d53c90d
commit 260ce91e03

@ -82,7 +82,7 @@ void on_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *appl
if (!tempapp){}else{ if (!tempapp){}else{
char arg[100]; char arg[100];
memset(arg,0,100); memset(arg,0,100);
printf("%d\n%d\n\n\n\n",gtk_socket_get_id(GTK_SOCKET(applist->socket)),gtk_socket_get_id(GTK_SOCKET(applist->socketbutton))); // printf("%d\n%d\n\n\n\n",gtk_socket_get_id(GTK_SOCKET(applist->socket)),gtk_socket_get_id(GTK_SOCKET(applist->socketbutton)));
sprintf(arg,"--socket-id=%d",gtk_socket_get_id(GTK_SOCKET(applist->socket)),gtk_socket_get_id(GTK_SOCKET(applist->socketbutton))); sprintf(arg,"--socket-id=%d",gtk_socket_get_id(GTK_SOCKET(applist->socket)),gtk_socket_get_id(GTK_SOCKET(applist->socketbutton)));
if (tempapp[0].Type==1){ if (tempapp[0].Type==1){
@ -210,13 +210,13 @@ int on_settings_accept(GtkWidget *button, dictionary **widgetsDs){
int sz=1,szm=1; int sz=1,szm=1;
if (main_config.Gnomeiconsize==64) sz=4; if (main_config.Gnomeiconsize==64) sz=4;
if (main_config.Gnomeiconsize==48) sz=3; else if (main_config.Gnomeiconsize==48) sz=3;
if (main_config.Gnomeiconsize==32) sz=2; else if (main_config.Gnomeiconsize==32) sz=2;
if (main_config.Gnomeiconsize==24) sz=1; else if (main_config.Gnomeiconsize==24) sz=1;
if (main_config.Mainiconsize==64) szm=4; if (main_config.Mainiconsize==64) szm=4;
if (main_config.Mainiconsize==48) szm=3; else if (main_config.Mainiconsize==48) szm=3;
if (main_config.Mainiconsize==32) szm=2; else if (main_config.Mainiconsize==32) szm=2;
if (main_config.Mainiconsize==24) szm=1; else if (main_config.Mainiconsize==24) szm=1;
char *fromint=malloc(5); char *fromint=malloc(5);
memset(fromint,0,5); memset(fromint,0,5);
GError *err=NULL; GError *err=NULL;
@ -693,28 +693,39 @@ void on_about_system(GtkWidget *button, actionWidgets *widgets){
void on_theme_selection_changed(GtkWidget *self, actionWidgets *widgets){ void on_theme_selection_changed(GtkWidget *self, actionWidgets *widgets){
int *icsize; int *icsize;
printf("changed\n"); // printf("changed\n");
int curthm=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->settingsThemeChooser)); int curthm=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->settingsThemeChooser));
if (curthm==0) // main_config.changed=1;
*icsize=main_config.Mainiconsize; if (curthm==0){
else if (curthm==1) main_config.currentThemeIconSize=&main_config.Mainiconsize;
*icsize=main_config.Gnomeiconsize; main_config.currentThemeLabelSize=&main_config.MainlabelSize;
if (*icsize<=24){ icsize=main_config.currentThemeIconSize;
}
else if (curthm==1){
main_config.currentThemeIconSize=&main_config.Gnomeiconsize;
main_config.currentThemeLabelSize=&main_config.GnomelabelSize;
icsize=main_config.currentThemeIconSize;
}
if (*icsize==24 || *icsize==1){
gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"24x24"); gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"24x24");
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,24,24,1,NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,24,24,1,NULL));
gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),1.0); gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),1.0);
} else if (*icsize<=32){ *icsize=24;
} else if (*icsize==32 || *icsize==2){
gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"32x32"); gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"32x32");
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,32,32,1,NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,32,32,1,NULL));
gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),2.0); gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),2.0);
} else if (*icsize<=48){ *icsize=32;
} else if (*icsize==48 || *icsize==3){
gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"48x48"); gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"48x48");
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,48,48,1,NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,48,48,1,NULL));
gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),3.0); gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),3.0);
*icsize=48;
} else{ } else{
gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"64x64"); gtk_label_set_text(GTK_LABEL(widgets->settingsSizeInfoLabel),"64x64");
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,64,64,1,NULL)); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->settingsIcon),gdk_pixbuf_new_from_file_at_scale(AppIconPath,64,64,1,NULL));
gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),4.0); gtk_scale_set_value_pos(GTK_SCALE(widgets->settingsSizeSlider),4.0);
*icsize=64;
} }
} }
@ -763,36 +774,38 @@ int load_apps(IVGraphicals *section, apps *applist, int size){
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
if (check_categories(applist[i],section->categories)==1){ if (check_categories(applist[i],section->categories)==1){
GError *err=NULL; GError *err=NULL;
char *path=malloc(strlen(IconPicturesPath)+strlen(applist[i].Icon)+7); // char *path=malloc(strlen(IconPicturesPath)+strlen(applist[i].Icon)+7);
memset(path,0,strlen(IconPicturesPath)+strlen(applist[i].Icon)+7); // memset(path,0,strlen(IconPicturesPath)+strlen(applist[i].Icon)+7);
memcpy(path,IconPicturesPath,strlen(IconPicturesPath)); // memcpy(path,IconPicturesPath,strlen(IconPicturesPath));
path=yon_char_get_augumented(path,applist[i].Icon); // path=yon_char_get_augumented(path,applist[i].Icon);
GdkPixbuf *pixbuf; // GdkPixbuf *pixbuf;
pixbuf=gdk_pixbuf_new_from_file_at_size(yon_char_get_augumented(path,PictureFormatMain),*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,NULL); // pixbuf=gdk_pixbuf_new_from_file_at_size(yon_char_get_augumented(path,PictureFormatMain),*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,NULL);
if (!pixbuf) { // if (!pixbuf) {
pixbuf=gdk_pixbuf_new_from_file_at_size(yon_char_get_augumented(path,PictureFormatExtra),*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,NULL); // pixbuf=gdk_pixbuf_new_from_file_at_size(yon_char_get_augumented(path,PictureFormatExtra),*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,NULL);
if (!pixbuf){ // if (!pixbuf){
GtkWidget *imag=gtk_image_new_from_icon_name(applist[i].Icon,GTK_ICON_SIZE_DIALOG); // GtkWidget *imag=gtk_image_new_from_icon_name(applist[i].Icon,yon_get_icon_size(*main_config.currentThemeIconSize));
void *a=GTK_ICON_SIZE_DIALOG; // void *a=GTK_ICON_SIZE_DIALOG;
pixbuf=gtk_image_get_pixbuf(GTK_IMAGE(imag)); // pixbuf=gtk_image_get_pixbuf(GTK_IMAGE(imag));
printf("%s\n",applist[i].Icon); // // printf("%s\n",applist[i].Icon);
if (!pixbuf) // if (!pixbuf)
pixbuf=gdk_pixbuf_new_from_file_at_size(ErrIconPicturePath,*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,NULL); // pixbuf=gdk_pixbuf_new_from_file_at_size(ErrIconPicturePath,*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,NULL);
else { // else {
gdk_pixbuf_scale(pixbuf,pixbuf,0,0,*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,0,0,*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,GDK_INTERP_NEAREST); // gdk_pixbuf_scale(pixbuf,pixbuf,0,0,*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,0,0,*main_config.currentThemeIconSize,*main_config.currentThemeIconSize,GDK_INTERP_NEAREST);
GValue a = G_VALUE_INIT; // GValue a = G_VALUE_INIT;
g_value_init (&a, G_TYPE_STRING); // g_value_init (&a, G_TYPE_STRING);
g_value_set_string (&a, applist[i].Icon); // g_value_set_string (&a, applist[i].Icon);
g_object_set_property(G_OBJECT(section->iconRender),"icon-name", &a); // g_object_set_property(G_OBJECT(section->iconRender),"icon-name", &a);
} // }
} // }
}; // };
GtkTreeIter iter; GtkTreeIter iter;
gtk_list_store_append(section->LV,&iter); gtk_list_store_append(section->LV,&iter);
int sz= *main_config.currentThemeIconSize; int sz= *main_config.currentThemeIconSize+10;
if (sz<50) sz=50; if (sz<50) sz=50;
GtkIconTheme *icthm=gtk_icon_theme_get_default();
GdkPixbuf *pixbuf=gtk_icon_info_load_icon(gtk_icon_theme_lookup_icon_for_scale(icthm, applist[i].Icon,yon_get_icon_size(*main_config.currentThemeIconSize),1,GTK_ICON_LOOKUP_FORCE_SVG),NULL);
GtkTreePath *pth = gtk_tree_model_get_path(GTK_TREE_MODEL(section->LV),&iter); GtkTreePath *pth = gtk_tree_model_get_path(GTK_TREE_MODEL(section->LV),&iter);
gtk_list_store_set(section->LV,&iter,0, pixbuf, 1,applist[i].Name,2,0.0,3,0.5, 4, sz+8, 5, applist[i].Icon, -1); gtk_list_store_set(section->LV,&iter,0,applist[i].Name,1,0.0,2,0.5, 3, sz+8, 4, pixbuf, 5,yon_get_icon_size(*main_config.currentThemeIconSize), -1);
int cols = gtk_icon_view_get_columns(GTK_ICON_VIEW(section->IV)); int cols = gtk_icon_view_get_columns(GTK_ICON_VIEW(section->IV));
gtk_icon_view_set_columns(GTK_ICON_VIEW(section->IV), -1); gtk_icon_view_set_columns(GTK_ICON_VIEW(section->IV), -1);
gtk_icon_view_set_columns(GTK_ICON_VIEW(section->IV), cols); gtk_icon_view_set_columns(GTK_ICON_VIEW(section->IV), cols);
@ -801,7 +814,7 @@ int load_apps(IVGraphicals *section, apps *applist, int size){
} }
} }
printf("среднее время на каждую проверку: %f\n",yon_time_average(times)/1000); // printf("среднее время на каждую проверку: %f\n",yon_time_average(times)/1000);
gtk_icon_view_set_model(GTK_ICON_VIEW(section->IV),GTK_TREE_MODEL(section->LV)); gtk_icon_view_set_model(GTK_ICON_VIEW(section->IV),GTK_TREE_MODEL(section->LV));
}; };
@ -1187,7 +1200,7 @@ IVGraphicals *yon_create_single_section_IV(char *name,char *cats){
//gtk_widget_set_name(iv,"workingbg"); //gtk_widget_set_name(iv,"workingbg");
gtk_icon_view_set_item_orientation(GTK_ICON_VIEW(iv),GTK_ORIENTATION_HORIZONTAL); gtk_icon_view_set_item_orientation(GTK_ICON_VIEW(iv),GTK_ORIENTATION_HORIZONTAL);
} }
gtk_icon_view_set_text_column(GTK_ICON_VIEW(iv),1); gtk_icon_view_set_text_column(GTK_ICON_VIEW(iv),0);
GtkWidget *sep=gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); GtkWidget *sep=gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
GtkListStore *lv=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststoreTemplate")); GtkListStore *lv=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststoreTemplate"));
gtk_widget_set_name(sep,"SepIcon"); gtk_widget_set_name(sep,"SepIcon");
@ -1375,6 +1388,13 @@ void yon_switch_theme(dictionary **dict, dictionary *newone){
} }
int yon_get_icon_size(int size){
if (size==1||size==24) return 24;
if (size==2||size==32) return 32;
if (size==3||size==48) return 51;
if (size==4||size==64) return 64;
}
void yon_icon_size_convert(int mode){ void yon_icon_size_convert(int mode){
if (mode==0){ if (mode==0){
if (*main_config.currentThemeIconSize==1) *main_config.currentThemeIconSize=24; if (*main_config.currentThemeIconSize==1) *main_config.currentThemeIconSize=24;
@ -1716,7 +1736,7 @@ int main(int argc, char *argv[]){
for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){ for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
printf("\n\n"); // printf("\n\n");
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
yon_icv_resize_item(widg->ICSys,widg->GnomePaned); yon_icv_resize_item(widg->ICSys,widg->GnomePaned);
theme="Main"; theme="Main";
@ -1729,13 +1749,16 @@ int main(int argc, char *argv[]){
widg->applist=applist; widg->applist=applist;
widg->appssize=*size; widg->appssize=*size;
widg->ICSys=yon_create_icon_section_list(main_config.sections); widg->ICSys=yon_create_icon_section_list(main_config.sections);
main_config.currentThemeIconSize=&main_config.Mainiconsize;
main_config.currentThemeLabelSize=&main_config.MainlabelSize;
for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){ for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
printf("\n\n"); // printf("\n\n");
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
main_config.WindowTheme=1; main_config.WindowTheme=1;
main_config.currentThemeIconSize=&main_config.Gnomeiconsize;
main_config.currentThemeLabelSize=&main_config.GnomelabelSize;
} }
else { else {
theme="Main"; theme="Main";
@ -1746,7 +1769,7 @@ int main(int argc, char *argv[]){
for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){ for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
printf("\n\n"); // printf("\n\n");
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
theme="Gnome"; theme="Gnome";
main_config.WindowTheme=1; main_config.WindowTheme=1;
@ -1757,14 +1780,18 @@ int main(int argc, char *argv[]){
widg=(actionWidgets*)widgets->next->data; widg=(actionWidgets*)widgets->next->data;
widg->applist=applist; widg->applist=applist;
widg->appssize=*size; widg->appssize=*size;
main_config.currentThemeIconSize=&main_config.Gnomeiconsize;
main_config.currentThemeLabelSize=&main_config.GnomelabelSize;
widg->ICSys=yon_create_icon_section_list(main_config.sections); widg->ICSys=yon_create_icon_section_list(main_config.sections);
for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){ for (dictionary *cur=widg->ICSys->first; cur!=NULL;cur=cur->next){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
printf("\n\n"); // printf("\n\n");
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
main_config.WindowTheme=0; main_config.WindowTheme=0;
yon_icv_resize_item(widg->ICSys,widg->GnomePaned); yon_icv_resize_item(widg->ICSys,widg->GnomePaned);
main_config.currentThemeIconSize=&main_config.Mainiconsize;
main_config.currentThemeLabelSize=&main_config.MainlabelSize;
} }
if (geteuid()==0){ if (geteuid()==0){
} }

@ -220,5 +220,6 @@ float yon_time_average(dictionary *times);
void yon_time_reg_for_average(dictionary *listofregs, int size, time_t tm); void yon_time_reg_for_average(dictionary *listofregs, int size, time_t tm);
void yon_dictionary_switch_to_last(dictionary **dict); void yon_dictionary_switch_to_last(dictionary **dict);
dictionary *yon_dictionary_create_conneced(dictionary *targetdict); dictionary *yon_dictionary_create_conneced(dictionary *targetdict);
int yon_get_icon_size(int size);
#endif #endif

@ -1539,8 +1539,6 @@
</object> </object>
<object class="GtkListStore" id="liststoreTemplate"> <object class="GtkListStore" id="liststoreTemplate">
<columns> <columns>
<!-- column-name GdkPixbuf1 -->
<column type="GdkPixbuf"/>
<!-- column-name gchararray1 --> <!-- column-name gchararray1 -->
<column type="gchararray"/> <column type="gchararray"/>
<!-- column-name gfloat1 --> <!-- column-name gfloat1 -->
@ -1549,8 +1547,10 @@
<column type="gfloat"/> <column type="gfloat"/>
<!-- column-name gint1 --> <!-- column-name gint1 -->
<column type="gint"/> <column type="gint"/>
<!-- column-name gchararray2 --> <!-- column-name GdkPixbuf1 -->
<column type="gchararray"/> <column type="GdkPixbuf"/>
<!-- column-name GtkIconSize1 -->
<column type="GtkIconSize"/>
</columns> </columns>
</object> </object>
<object class="GtkIconView" id="iconTemplate"> <object class="GtkIconView" id="iconTemplate">
@ -1568,11 +1568,11 @@
<child> <child>
<object class="GtkCellRendererPixbuf" id="iconPic"/> <object class="GtkCellRendererPixbuf" id="iconPic"/>
<attributes> <attributes>
<attribute name="height">4</attribute> <attribute name="height">3</attribute>
<attribute name="xalign">2</attribute> <attribute name="xalign">1</attribute>
<attribute name="yalign">3</attribute> <attribute name="yalign">2</attribute>
<attribute name="icon-name">5</attribute> <attribute name="pixbuf">4</attribute>
<attribute name="pixbuf">0</attribute> <attribute name="stock-size">5</attribute>
</attributes> </attributes>
</child> </child>
<style> <style>

Loading…
Cancel
Save