Merge pull request 'master' (#8) from YanTheKaller/ubl-settings-manager:master into develop

Reviewed-on: #8
pull/29/head
Dmitry Razumov 3 years ago
commit 54b7d3d46a

@ -19,12 +19,7 @@ set(LIBRARIES
${GTK_LIBRARIES} ${GTK_LIBRARIES}
pthread) pthread)
add_custom_target(glade ALL
COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/ui ${CMAKE_BINARY_DIR}/ui
)
add_custom_target(css ALL
COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/css ${CMAKE_BINARY_DIR}/css
)
add_executable(ubl-settings-manager ${SOURCE_FILES}) add_executable(ubl-settings-manager ${SOURCE_FILES})
target_link_libraries(ubl-settings-manager ${LIBRARIES}) target_link_libraries(ubl-settings-manager ${LIBRARIES})
install(TARGETS ubl-settings-manager DESTINATION bin) install(TARGETS ubl-settings-manager DESTINATION bin)

@ -38,45 +38,60 @@ int cmld=0;
void on_plug_added(GtkSocket* self, actionWidgets *builder){ void on_plug_added(GtkSocket* self, actionWidgets *builder){
//printf("Plug has been added!\n"); gtk_widget_show(builder->socketbutton);
gtk_widget_show(builder->ThirdSocket);
// printf("Plug has been added!\n");
gtk_widget_set_vexpand(builder->HideWhileLaunch,0); gtk_widget_set_vexpand(builder->HideWhileLaunch,0);
gtk_widget_hide(builder->HideWhileLaunch); gtk_widget_hide(builder->HideWhileLaunch);
gtk_widget_set_vexpand(GTK_WIDGET(builder->socketplace),1); gtk_widget_set_vexpand(GTK_WIDGET(builder->socketplace),1);
gtk_widget_set_vexpand(GTK_WIDGET(self),1); gtk_widget_set_vexpand(GTK_WIDGET(self),1);
gtk_widget_show(builder->socketplace); gtk_widget_show(builder->socketplace);
if (main_config.WindowTheme==0)
gtk_widget_hide(builder->appSettings);
if (builder->ButtonBackToMain!=NULL) gtk_widget_set_sensitive(builder->ButtonBackToMain,1); if (builder->ButtonBackToMain!=NULL) gtk_widget_set_sensitive(builder->ButtonBackToMain,1);
gtk_widget_show(GTK_WIDGET(self)); gtk_widget_show(GTK_WIDGET(self));
} }
void on_plug_removed(GtkSocket* self, actionWidgets *widgets){ void on_plug_removed(GtkSocket* self, actionWidgets *widgets){
gtk_widget_show(widgets->appSettings);
gtk_widget_show(widgets->HideWhileLaunch); gtk_widget_show(widgets->HideWhileLaunch);
gtk_widget_set_vexpand(widgets->socketplace,0); gtk_widget_set_vexpand(widgets->socketplace,0);
gtk_widget_set_vexpand(widgets->HideWhileLaunch,1); gtk_widget_set_vexpand(widgets->HideWhileLaunch,1);
//printf("Plug has been removed!\n\n\n"); // printf("Plug has been removed!\n\n\n");
if(widgets->socketbutton)
gtk_widget_destroy(widgets->socketbutton);
if(widgets->ThirdSocket)
gtk_widget_destroy(widgets->ThirdSocket);
gtk_widget_show(widgets->appSettings);
} }
void on_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *applist){ void on_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets *applist){
//printf("\n\n\nActivated\n\n\n"); // printf("\n\n\nActivated\n\n\n");
GtkTreeIter iter; GtkTreeIter iter;
char *name; char *name;
gtk_tree_model_get_iter(gtk_icon_view_get_model(self),&iter,path); gtk_tree_model_get_iter(gtk_icon_view_get_model(self),&iter,path);
gtk_tree_model_get(gtk_icon_view_get_model(self),&iter,1,&name,-1); gtk_tree_model_get(gtk_icon_view_get_model(self),&iter,1,&name,-1);
apps *tempapp=get_app_by_name(applist->applist,name,applist->appssize); apps *tempapp=get_app_by_name(applist->applist,name,applist->appssize);
// printf("%s\n",tempapp->Name);
if (!tempapp){}else{ if (!tempapp){}else{
char arg[100]; char arg[100];
// printf("%s\n",tempapp->Exec);
// printf("%d\n",tempapp->Type);
// printf("%d\n",tempapp->Pluggable);
memset(arg,0,100); memset(arg,0,100);
sprintf(arg,"--socket-id=%d",gtk_socket_get_id(GTK_SOCKET(applist->socket))); 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)));
if (tempapp[0].Type==2)
if (tempapp->Pluggable==1) if (tempapp[0].Type==1){
py_launch_app(tempapp[0].Exec,arg);
else py_launch_app(tempapp[0].Exec,"");
else if (tempapp[0].Type==1){
if (tempapp->Pluggable==1) if (tempapp->Pluggable==1)
launch_app_with_arguments(tempapp[0].Exec,arg); if (tempapp->DualPluggable==1){
char *dualarg=malloc(strlen("--socket-id= --socket-ext-id= --socket-trd-id=")+30);
sprintf(dualarg,"--socket-id=%d --socket-ext-id=%d --socket-trd-id=%d",gtk_socket_get_id(GTK_SOCKET(applist->socket)),gtk_socket_get_id(GTK_SOCKET(applist->socketbutton)),gtk_socket_get_id(GTK_SOCKET(applist->ThirdSocket)));
launch_app_with_arguments(tempapp[0].Exec,dualarg);
} else
launch_app_with_arguments(tempapp[0].Exec,arg);
else launch_app(tempapp[0].Exec); else launch_app(tempapp[0].Exec);
} }
} }
@ -89,11 +104,6 @@ void on_gnome_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets
gtk_widget_destroy(applist->socket); gtk_widget_destroy(applist->socket);
} }
applist->socket=create_socket(applist); applist->socket=create_socket(applist);
char *socket_id=malloc(sizeof(gtk_socket_get_id(GTK_SOCKET(applist->socket)))/sizeof(int));
sprintf(socket_id,"%d",gtk_socket_get_id(GTK_SOCKET(applist->socket)));
socket_id=yon_char_get_augumented("../ubl-info/ubl-info-bin --socket-id=",socket_id);
socket_id=yon_char_get_augumented(socket_id," &");
system(socket_id);
gtk_tree_model_get_iter(gtk_icon_view_get_model(self),&iter,path); gtk_tree_model_get_iter(gtk_icon_view_get_model(self),&iter,path);
gtk_tree_model_get(gtk_icon_view_get_model(self),&iter,1,&name,-1); gtk_tree_model_get(gtk_icon_view_get_model(self),&iter,1,&name,-1);
@ -103,14 +113,25 @@ void on_gnome_Item_activated(GtkIconView* self, GtkTreePath* path, actionWidgets
memset(arg,0,100); memset(arg,0,100);
sprintf(arg,"--socket-id=%d",gtk_socket_get_id(GTK_SOCKET(applist->socket))); sprintf(arg,"--socket-id=%d",gtk_socket_get_id(GTK_SOCKET(applist->socket)));
if (tempapp[0].Type==2) if (tempapp[0].Type==1){
if (tempapp->Pluggable==1) if (tempapp->Pluggable==1){
py_launch_app(tempapp[0].Exec,arg);
else py_launch_app(tempapp[0].Exec,""); if (tempapp->DualPluggable==1){
else if (tempapp[0].Type==1){ gtk_widget_hide(applist->appSettings);
if (tempapp->Pluggable==1) char *dualarg=malloc(strlen("--socket-id= --socket-ext-id= --socket-trd-id=")+30);
sprintf(dualarg,"--socket-id=%d --socket-ext-id=%d --socket-trd-id=%d",gtk_socket_get_id(GTK_SOCKET(applist->socket)),gtk_socket_get_id(GTK_SOCKET(applist->socketbutton)),gtk_socket_get_id(GTK_SOCKET(applist->ThirdSocket)));
launch_app_with_arguments(tempapp[0].Exec,dualarg);
}
else{
launch_app_with_arguments(tempapp[0].Exec,arg); launch_app_with_arguments(tempapp[0].Exec,arg);
else launch_app(tempapp[0].Exec); gtk_widget_destroy(applist->socketbutton);
}
}
else {
on_about_system(NULL,applist);
launch_app(tempapp[0].Exec);
gtk_widget_destroy(applist->socketbutton);
}
} }
} }
@ -119,7 +140,7 @@ void on_item_selection_changed(GtkIconView *IV, actionWidgets *widgets){
dictionary *next=widgets->ICSys->first; dictionary *next=widgets->ICSys->first;
for (dictionary *dct=next;dct!=NULL;dct=dct->next){ for (dictionary *dct=next;dct!=NULL;dct=dct->next){
IVGraphicals *IVG=(IVGraphicals*)dct->data; IVGraphicals *IVG=(IVGraphicals*)dct->data;
if (IVG->IV!=IV) if (GTK_ICON_VIEW(IVG->IV)!=GTK_ICON_VIEW(IV))
if (gtk_icon_view_get_selected_items(GTK_ICON_VIEW(IVG->IV))>0) if (gtk_icon_view_get_selected_items(GTK_ICON_VIEW(IVG->IV))>0)
gtk_icon_view_unselect_all(GTK_ICON_VIEW(IVG->IV)); gtk_icon_view_unselect_all(GTK_ICON_VIEW(IVG->IV));
} }
@ -163,7 +184,7 @@ int on_settings_accept(GtkWidget *button, dictionary **widgetsDs){
else if (main_config.WindowTheme==1) else if (main_config.WindowTheme==1)
main_config.curThemeName="Gnome"; main_config.curThemeName="Gnome";
dictionary *widgetsD=yon_dictionary_find(widgetsDs,main_config.curThemeName); dictionary *widgetsD=yon_dictionary_find(widgetsDs,main_config.curThemeName);
printf("Saving config...\n"); // printf("Saving config...\n");
actionWidgets *widgets=(actionWidgets*)widgetsD->data; actionWidgets *widgets=(actionWidgets*)widgetsD->data;
int theme=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->settingsThemeChooser)); int theme=gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->settingsThemeChooser));
gtk_window_get_position(GTK_WINDOW(widgets->window),&main_config.windowPosX,&main_config.windowPosY); gtk_window_get_position(GTK_WINDOW(widgets->window),&main_config.windowPosX,&main_config.windowPosY);
@ -192,6 +213,12 @@ int on_settings_accept(GtkWidget *button, dictionary **widgetsDs){
char *fromint=malloc(5); char *fromint=malloc(5);
memset(fromint,0,5); memset(fromint,0,5);
GError *err=NULL; GError *err=NULL;
char *login=getlogin();
if (geteuid()==0){
login=main_config.lastUser;
} else {
main_config.lastUser=login;
}
char *pth=malloc(7+strlen(UserConfigPath)+strlen(getlogin())); char *pth=malloc(7+strlen(UserConfigPath)+strlen(getlogin()));
sprintf(pth,"%s%s%s","/home/",getlogin(),UserConfigPath); sprintf(pth,"%s%s%s","/home/",getlogin(),UserConfigPath);
g_key_file_load_from_file(gfile,pth,G_KEY_FILE_NONE,&err); g_key_file_load_from_file(gfile,pth,G_KEY_FILE_NONE,&err);
@ -221,6 +248,11 @@ int on_settings_accept(GtkWidget *button, dictionary **widgetsDs){
g_key_file_set_string(gfile,"window","IconSize",fromint); g_key_file_set_string(gfile,"window","IconSize",fromint);
sprintf(fromint,"%d",main_config.iconSegmentSize); sprintf(fromint,"%d",main_config.iconSegmentSize);
g_key_file_set_string(gfile,"window","IconSegmentSize",fromint); g_key_file_set_string(gfile,"window","IconSegmentSize",fromint);
sprintf(fromint,"%d",(int)((float)main_config.labelSize/1000));
g_key_file_set_string(gfile,"window","LabelSize",fromint);
sprintf(fromint,"%d",(int)((float)main_config.labelDensity/1000));
g_key_file_set_string(gfile,"window","LabelDensity",fromint);
g_key_file_set_string(gfile,"window","User",login);
for (dictionary *dict=widgets->ICSys->first;dict!=NULL;dict=dict->next){ for (dictionary *dict=widgets->ICSys->first;dict!=NULL;dict=dict->next){
IVGraphicals *IV=(IVGraphicals*)dict->data; IVGraphicals *IV=(IVGraphicals*)dict->data;
g_key_file_set_string(gfile,"sections",IV->sectionName,IV->categories); g_key_file_set_string(gfile,"sections",IV->sectionName,IV->categories);
@ -309,7 +341,7 @@ void on_section_settings_open(GtkButton* self,dictionary *cWidgets){
SectionSettingSegment *Sgm=yon_create_section_setting(IV->sectionName,IV->categories); SectionSettingSegment *Sgm=yon_create_section_setting(IV->sectionName,IV->categories);
yon_segment_show(widgets,Sgm); yon_segment_show(widgets,Sgm);
dict->data=Sgm; dict->data=Sgm;
dict->key=gtk_label_get_text(GTK_LABEL(Sgm->NameLabel)); dict->key=(char*)gtk_label_get_text(GTK_LABEL(Sgm->NameLabel));
dict->next=malloc(sizeof(dictionary)); dict->next=malloc(sizeof(dictionary));
dict->next->prev=dict; dict->next->prev=dict;
dict->next->first=dict->first; dict->next->first=dict->first;
@ -366,6 +398,7 @@ void on_sections_accept(GtkWidget *button, actionWidgets *widgets){
} }
}; };
void on_sections_cancel(GtkWidget *button, actionWidgets *widgets){ void on_sections_cancel(GtkWidget *button, actionWidgets *widgets){
for (dictionary *dct=widgets->SettingsSections->first;dct!=NULL;dct=dct->next){ for (dictionary *dct=widgets->SettingsSections->first;dct!=NULL;dct=dct->next){
SectionSettingSegment *segment=(SectionSettingSegment*)dct->data; SectionSettingSegment *segment=(SectionSettingSegment*)dct->data;
@ -389,6 +422,7 @@ void on_sections_cancel(GtkWidget *button, actionWidgets *widgets){
} }
}; };
void on_sections_move_up(GtkWidget *button, actionWidgets *widgets){ void on_sections_move_up(GtkWidget *button, actionWidgets *widgets){
for (dictionary *dct=widgets->SettingsSections->first;dct!=NULL;dct=dct->next){ for (dictionary *dct=widgets->SettingsSections->first;dct!=NULL;dct=dct->next){
SectionSettingSegment *segment=(SectionSettingSegment*)dct->data; SectionSettingSegment *segment=(SectionSettingSegment*)dct->data;
@ -478,6 +512,7 @@ void on_sections_delete(GtkWidget *button, actionWidgets *widgets){
} }
} }
}; };
void on_sections_add(GtkWidget *button, actionWidgets *widgets){ void on_sections_add(GtkWidget *button, actionWidgets *widgets){
dictionary *dict=yon_dictionary_create_empty(); dictionary *dict=yon_dictionary_create_empty();
dictionary *dct=NULL; dictionary *dct=NULL;
@ -531,7 +566,9 @@ void on_sections_save(GtkWidget *button, actionWidgets *widgets){
load_apps((IVGraphicals*)cur->data,widgets->applist,widgets->appssize); load_apps((IVGraphicals*)cur->data,widgets->applist,widgets->appssize);
} }
yon_show_icon_views(widgets->ICSys,widgets); yon_show_icon_views(widgets->ICSys,widgets);
//hide_if_unfound(widgets); dictionary *yond=yon_dictionary_create_empty();
yond->data=widgets;
hide_if_unfound(yond);
} }
@ -572,6 +609,7 @@ void on_section_delete(GtkWidget *button, actionWidgets *widgets){
} }
} }
} }
void on_resized (GtkWidget *window, GdkEventConfigure *event, dictionary *widgetsD){ void on_resized (GtkWidget *window, GdkEventConfigure *event, dictionary *widgetsD){
actionWidgets *widgets=(actionWidgets*)widgetsD->data; actionWidgets *widgets=(actionWidgets*)widgetsD->data;
int x,y; int x,y;
@ -613,40 +651,43 @@ void on_resized_done (GtkWidget *window, GdkEvent *event, dictionary *widgetsD){
} }
void on_about_system(GtkWidget *button, actionWidgets *widgets){ void on_about_system(GtkWidget *button, actionWidgets *widgets){
char *socket_id=malloc(sizeof(gtk_socket_get_id(GTK_SOCKET(widgets->socket)))/sizeof(int)); char arg[100];
sprintf(socket_id,"%d",gtk_socket_get_id(GTK_SOCKET(widgets->socket))); memset(arg,0,100);
socket_id=yon_char_get_augumented(ubl_settings_infoPathLaunch,socket_id); // printf("%d\n%d\n\n\n\n",gtk_socket_get_id(GTK_SOCKET(widgets->socket)),gtk_socket_get_id(GTK_SOCKET(widgets->socketbutton)));
socket_id=yon_char_get_augumented(socket_id," &"); sprintf(arg,"--socket-id=%d --socket-ext-id=%d",gtk_socket_get_id(GTK_SOCKET(widgets->socket)),gtk_socket_get_id(GTK_SOCKET(widgets->socketbutton)));
system(socket_id); launch_app_with_arguments("ubl-settings-info",arg);
}
void launch(char *command){
system(command);
} }
void launch_app_with_arguments(char *name, char *args){ void launch_app_with_arguments(char *name, char *args){
char *path=malloc(strlen(name)+strlen(args)+4); char *path=yon_char_get_augumented("/bin/",name);
memset(path,0,strlen(name)+strlen(args)+4); path=yon_char_get_augumented(path," ");
memcpy(path,name,strlen(name)); path=yon_char_get_augumented(path,args);
memcpy(path+strlen(name)," ",1); // printf("%s\n",path);
strcat(args," &"); pthread_t thread_id;
strcat(path,args); pthread_create(&thread_id, NULL, (void*)launch, path);
system(("/usr/bin/%s",path));
}; };
void launch_app(char *name){ void launch_app(char *name){
char *path=yon_char_get_augumented(name," &"); char *path=name;
system(path); pthread_t thread_id;
pthread_create(&thread_id, NULL, (void*)launch, path);
}; };
void py_launch_app(char *name,char *args){ void py_launch_app(char *name,char *args){
char *path=malloc(strlen("python ./")+strlen(name)+6+strlen(args)); char *path=malloc(strlen("python ./")+strlen(name)+6+strlen(args));
sprintf(path,"python ./%s.py %s &",name,args); sprintf(path,"python ./%s.py %s &",name,args);
system(path); pthread_t thread_id;
pthread_create(&thread_id, NULL, (void*)launch, path);
}; };
apps *get_app_by_name(apps *applist,char *name, int size){ apps *get_app_by_name(apps *applist,char *name, int size){
for (int i=0;i<size;i++){ for (int i=0;i<size;i++){
if (strcmp(applist[i].Name,name)==0) return &applist[i]; if (strcmp(applist[i].Name,name)==0) return &applist[i];
} }
return NULL; return NULL;
}; };
@ -706,10 +747,25 @@ int hide_if_unfound(dictionary *widgetsD){
GtkWidget *create_socket(actionWidgets *builder){ GtkWidget *create_socket(actionWidgets *builder){
GtkWidget *socket; GtkWidget *socket;
socket = gtk_socket_new(); socket = gtk_socket_new();
GtkWidget *socketbutton=gtk_socket_new();
GtkWidget *ThirdSocket=gtk_socket_new();
g_signal_connect(G_OBJECT(socket),"plug-added",G_CALLBACK(on_plug_added),builder); g_signal_connect(G_OBJECT(socket),"plug-added",G_CALLBACK(on_plug_added),builder);
g_signal_connect(G_OBJECT(socket),"plug-removed",G_CALLBACK(on_plug_removed),builder); g_signal_connect(G_OBJECT(socket),"plug-removed",G_CALLBACK(on_plug_removed),builder);
g_signal_connect(G_OBJECT(socket),"destroy",G_CALLBACK(on_plug_removed),builder); g_signal_connect(G_OBJECT(socket),"destroy",G_CALLBACK(on_plug_removed),builder);
// g_signal_connect(G_OBJECT(socketbutton),"plug-added",G_CALLBACK(on_plug_added),builder);
// g_signal_connect(G_OBJECT(socketbutton),"plug-removed",G_CALLBACK(on_plug_removed),builder);
// g_signal_connect(G_OBJECT(socketbutton),"destroy",G_CALLBACK(on_plug_removed),builder);
// g_signal_connect(G_OBJECT(ThirdSocket),"plug-added",G_CALLBACK(on_plug_added),builder);
// g_signal_connect(G_OBJECT(ThirdSocket),"plug-removed",G_CALLBACK(on_plug_removed),builder);
// g_signal_connect(G_OBJECT(ThirdSocket),"destroy",G_CALLBACK(on_plug_removed),builder);
gtk_box_pack_start(GTK_BOX(builder->socketplace),socket,true,true,0); gtk_box_pack_start(GTK_BOX(builder->socketplace),socket,true,true,0);
gtk_box_pack_start(GTK_BOX(builder->socketbuttonplace),socketbutton,1,1,0);
builder->socketbutton=socketbutton;
gtk_box_pack_start(GTK_BOX(builder->ThirdSocketPlace),ThirdSocket,1,1,0);
builder->ThirdSocket=ThirdSocket;
return socket; return socket;
}; };
@ -764,40 +820,26 @@ apps *find_apps(int *sizef){
tempapp.Icon=g_key_file_get_string(gfile,"Desktop Entry", "Icon",NULL); tempapp.Icon=g_key_file_get_string(gfile,"Desktop Entry", "Icon",NULL);
if (tempapp.Icon==NULL) continue; if (tempapp.Icon==NULL) continue;
tempapp.Pluggable=g_key_file_get_boolean(gfile,"Desktop Entry", "Pluggable",NULL); tempapp.Pluggable=g_key_file_get_boolean(gfile,"Desktop Entry", "Pluggable",NULL);
if (tempapp.Pluggable==NULL) tempapp.Pluggable=g_key_file_get_boolean(gfile,"Desktop Entry", "X-XfcePluggable",NULL); if (!tempapp.Pluggable) tempapp.Pluggable=g_key_file_get_boolean(gfile,"Desktop Entry", "X-XfcePluggable",NULL);
if (tempapp.Pluggable) tempapp.DualPluggable=g_key_file_get_boolean(gfile,"Desktop Entry", "X-UBLPluggable",NULL);
if (size==0){ if (size==0){
applist=(apps*)malloc(size+1*sizeof(apps)); applist=(apps*)malloc(size+1*sizeof(apps));
applist[0].Name=malloc(strlen(tempapp.Name)+1); applist[0].Name=yon_char_new(tempapp.Name);
applist[0].Categories=malloc(strlen(tempapp.Categories)+1); applist[0].Categories=yon_char_new(tempapp.Categories);
applist[0].Exec=malloc(strlen(tempapp.Exec)+1); applist[0].Exec=yon_char_new(tempapp.Exec);
applist[0].Icon=malloc(strlen(tempapp.Icon)+1); applist[0].Icon=yon_char_new(tempapp.Icon);
strncpy(applist[0].Name,tempapp.Name,strlen(tempapp.Name));
applist[0].Name[strlen(tempapp.Name)]='\0';
strncpy(applist[0].Categories,tempapp.Categories,strlen(tempapp.Categories));
applist[0].Categories[strlen(tempapp.Categories)]='\0';
strncpy(applist[0].Exec,tempapp.Exec,strlen(tempapp.Exec));
applist[0].Exec[strlen(tempapp.Exec)]='\0';
strncpy(applist[0].Icon,tempapp.Icon,strlen(tempapp.Icon));
applist[0].Icon[strlen(tempapp.Icon)]='\0';
applist[0].Type=tempapp.Type; applist[0].Type=tempapp.Type;
applist[0].Pluggable=tempapp.Pluggable; applist[0].Pluggable=tempapp.Pluggable;
applist[0].DualPluggable=tempapp.DualPluggable;
size++; size++;
} else { } else {
applist=(apps*)realloc(applist,(size+1)*sizeof(apps)); applist=(apps*)realloc(applist,(size+1)*sizeof(apps));
applist[size].Name=malloc(strlen(tempapp.Name)+1); applist[size].Name=yon_char_new(tempapp.Name);
applist[size].Categories=malloc(strlen(tempapp.Categories)+1); applist[size].Categories=yon_char_new(tempapp.Categories);
applist[size].Exec=malloc(strlen(tempapp.Exec)+1); applist[size].Exec=yon_char_new(tempapp.Exec);
applist[size].Icon=malloc(strlen(tempapp.Icon)+1); applist[size].Icon=yon_char_new(tempapp.Icon);
strncpy(applist[size].Name,tempapp.Name,strlen(tempapp.Name));
applist[size].Name[strlen(tempapp.Name)]='\0';
//printf("%s\n",applist[size].Name);
strncpy(applist[size].Categories,tempapp.Categories,strlen(tempapp.Categories));
applist[size].Categories[strlen(tempapp.Categories)]='\0';
strncpy(applist[size].Exec,tempapp.Exec,strlen(tempapp.Exec));
applist[size].Exec[strlen(tempapp.Exec)]='\0';
strncpy(applist[size].Icon,tempapp.Icon,strlen(tempapp.Icon));
applist[size].Icon[strlen(tempapp.Icon)]='\0';
applist[size].Pluggable=tempapp.Pluggable; applist[size].Pluggable=tempapp.Pluggable;
applist[size].DualPluggable=tempapp.DualPluggable;
applist[size].Type=tempapp.Type; applist[size].Type=tempapp.Type;
size++; size++;
} }
@ -806,7 +848,6 @@ apps *find_apps(int *sizef){
} }
} }
} }
//printf("Closing apps configuration...\n");
*sizef=size; *sizef=size;
return applist; return applist;
}; };
@ -849,7 +890,6 @@ int check_categories(apps app, char *catstocheck){
int setup_config(){ int setup_config(){
FILE *file; FILE *file;
GError *err=NULL; GError *err=NULL;
printf("1\n");
main_config.sections=malloc(sizeof(dictionary)); main_config.sections=malloc(sizeof(dictionary));
main_config.sections->data=NULL; main_config.sections->data=NULL;
main_config.sections->next=NULL; main_config.sections->next=NULL;
@ -858,9 +898,6 @@ int setup_config(){
GKeyFile *configfile = g_key_file_new(); GKeyFile *configfile = g_key_file_new();
char *pth=malloc(7+strlen(UserConfigPath)+strlen(getlogin())); char *pth=malloc(7+strlen(UserConfigPath)+strlen(getlogin()));
sprintf(pth,"%s%s%s","/home/",getlogin(),UserConfigPath); sprintf(pth,"%s%s%s","/home/",getlogin(),UserConfigPath);
printf("%s\n",getlogin());
printf("%s\n",pth);
printf("%s\n",GlobalConfigPath);
g_key_file_load_from_file(configfile,pth,G_KEY_FILE_KEEP_TRANSLATIONS,&err); g_key_file_load_from_file(configfile,pth,G_KEY_FILE_KEEP_TRANSLATIONS,&err);
if (err){ if (err){
g_error_free(err); g_error_free(err);
@ -873,7 +910,6 @@ int setup_config(){
} }
char *foroutput=NULL; char *foroutput=NULL;
char *line=NULL; char *line=NULL;
printf("1\n");
main_config.windowPosX=g_key_file_get_integer(configfile,"window","WindowPosX",NULL); main_config.windowPosX=g_key_file_get_integer(configfile,"window","WindowPosX",NULL);
main_config.windowPosY=g_key_file_get_integer(configfile,"window","WindowPosY",NULL); main_config.windowPosY=g_key_file_get_integer(configfile,"window","WindowPosY",NULL);
main_config.windowWidth=g_key_file_get_integer(configfile,"window","WindowWidth",NULL); main_config.windowWidth=g_key_file_get_integer(configfile,"window","WindowWidth",NULL);
@ -881,9 +917,14 @@ int setup_config(){
main_config.WindowTheme=g_key_file_get_integer(configfile,"window","WindowTheme",NULL); main_config.WindowTheme=g_key_file_get_integer(configfile,"window","WindowTheme",NULL);
main_config.iconsize=g_key_file_get_integer(configfile,"window","IconSize",NULL); main_config.iconsize=g_key_file_get_integer(configfile,"window","IconSize",NULL);
main_config.iconSegmentSize=g_key_file_get_integer(configfile,"window","IconSegmentSize",NULL); main_config.iconSegmentSize=g_key_file_get_integer(configfile,"window","IconSegmentSize",NULL);
main_config.labelSize=g_key_file_get_integer(configfile,"window","LabelSize",NULL);
main_config.labelDensity=g_key_file_get_integer(configfile,"window","LabelDensity",NULL);
main_config.lastUser=g_key_file_get_string(configfile,"window","User",NULL);
if (main_config.labelSize==0) main_config.labelSize=12;
if (main_config.labelDensity==0) main_config.labelDensity=0;
main_config.labelSize=main_config.labelSize*1000;
yon_icon_size_convert(0); yon_icon_size_convert(0);
gsize length=0; gsize length=0;
printf("1\n");
char **a=g_key_file_get_keys(configfile,"sections",&length,NULL); char **a=g_key_file_get_keys(configfile,"sections",&length,NULL);
if (!a){yon_set_default_sections(&main_config.sections);} else { if (!a){yon_set_default_sections(&main_config.sections);} else {
@ -894,12 +935,12 @@ int setup_config(){
main_config.sections->next=NULL; main_config.sections->next=NULL;
} }
printf("1\n");
if (main_config.windowWidth<1024&&main_config.windowHeight<720){ if (main_config.windowWidth<1024&&main_config.windowHeight<720){
main_config.WindowTheme=0; main_config.WindowTheme=0;
} }
return 1; return 1;
}; };
char *yon_cut(char *source, int size, int startpos){ char *yon_cut(char *source, int size, int startpos){
char *cut=NULL; char *cut=NULL;
cut=malloc(size+1); cut=malloc(size+1);
@ -966,15 +1007,21 @@ IVGraphicals *yon_create_single_section_IV(char *name,char *cats){
GtkWidget *box=gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); GtkWidget *box=gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
GtkWidget *iv=gtk_icon_view_new(); GtkWidget *iv=gtk_icon_view_new();
GtkWidget *label=gtk_label_new(_(name)); GtkWidget *label=gtk_label_new(_(name));
PangoAttrList *attrs=pango_attr_list_new();
pango_attr_list_insert(attrs,pango_attr_size_new(main_config.labelSize));
gtk_label_set_attributes(GTK_LABEL(label),attrs);
gtk_widget_set_name(label,"iconlabel"); gtk_widget_set_name(label,"iconlabel");
if (main_config.WindowTheme==1) { if (main_config.WindowTheme==1) {
gtk_icon_view_set_columns(GTK_ICON_VIEW(iv),1); gtk_icon_view_set_columns(GTK_ICON_VIEW(iv),1);
gtk_widget_set_name(iv,"GnomeIcon"); gtk_widget_set_name(iv,"GnomeIcon");
gtk_icon_view_set_activate_on_single_click(GTK_ICON_VIEW(iv),1); gtk_icon_view_set_activate_on_single_click(GTK_ICON_VIEW(iv),1);
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);
} else {
gtk_widget_set_name(iv,"Icon");
} }
GtkWidget *sep=gtk_separator_new(GTK_ORIENTATION_HORIZONTAL); GtkWidget *sep=gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
gtk_widget_set_name(sep,"thinborder");
GtkListStore *lv=gtk_list_store_new(2, GDK_TYPE_PIXBUF,G_TYPE_STRING); GtkListStore *lv=gtk_list_store_new(2, GDK_TYPE_PIXBUF,G_TYPE_STRING);
gtk_widget_set_halign(box,0); gtk_widget_set_halign(box,0);
gtk_widget_set_valign(box,1); gtk_widget_set_valign(box,1);
@ -1072,6 +1119,13 @@ char *yon_char_get_augumented(char *source, char *append){
return final; return final;
} }
char *yon_char_new(char *chr){
char *newchar=malloc(strlen(chr)+1);
memset(newchar,0,strlen(chr)+1);
memcpy(newchar,chr,strlen(chr));
return newchar;
}
int yon_show_icon_views(dictionary *IVS,actionWidgets *widgets){ int yon_show_icon_views(dictionary *IVS,actionWidgets *widgets){
for (dictionary *dct=IVS->first;dct!=NULL;dct=dct->next){ for (dictionary *dct=IVS->first;dct!=NULL;dct=dct->next){
IVGraphicals *iv=dct->data; IVGraphicals *iv=dct->data;
@ -1096,6 +1150,7 @@ dictionary *yon_dictionary_find(dictionary **dict, char *key){
} }
return NULL; return NULL;
} }
void yon_switch_theme(dictionary **dict, dictionary *newone){ void yon_switch_theme(dictionary **dict, dictionary *newone){
dictionary *dct=*dict; dictionary *dct=*dict;
actionWidgets *widgets=(actionWidgets*)dct->data; actionWidgets *widgets=(actionWidgets*)dct->data;
@ -1147,7 +1202,6 @@ void yon_switch_theme(dictionary **dict, dictionary *newone){
} }
void yon_icon_size_convert(int mode){ void yon_icon_size_convert(int mode){
if (mode==0){ if (mode==0){
if (main_config.iconsize==1) main_config.iconsize=24; if (main_config.iconsize==1) main_config.iconsize=24;
@ -1183,7 +1237,6 @@ SectionSettingSegment *yon_create_section_setting(char *name, char *categories){
if (categories[strlen(categories)-1]!=';'){ if (categories[strlen(categories)-1]!=';'){
char *tmp=malloc(strlen(categories)+1); char *tmp=malloc(strlen(categories)+1);
sprintf(tmp,"%s;",categories); sprintf(tmp,"%s;",categories);
printf("\n\n");
categories=realloc(tmp,strlen(tmp)); categories=realloc(tmp,strlen(tmp));
} }
gtk_entry_set_text(GTK_ENTRY(segment->CategoriesEntry),categories); gtk_entry_set_text(GTK_ENTRY(segment->CategoriesEntry),categories);
@ -1296,6 +1349,7 @@ void yon_segments_hide(actionWidgets *widgets){
} else return; } else return;
} }
} }
void yon_dictionary_make_first(dictionary *dict){ void yon_dictionary_make_first(dictionary *dict){
for (dictionary *dct=dict->first;dct!=NULL;dct=dct->next){ for (dictionary *dct=dict->first;dct!=NULL;dct=dct->next){
dct->first=dict; dct->first=dict;
@ -1303,7 +1357,6 @@ void yon_dictionary_make_first(dictionary *dict){
} }
void yon_small_window_theme_change(actionWidgets *widgets){ void yon_small_window_theme_change(actionWidgets *widgets){
} }
dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *theme_id, apps *applist, int appsize){ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *theme_id, apps *applist, int appsize){
@ -1328,10 +1381,15 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them
curWidgets->GnomePaned=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"Paned"))); curWidgets->GnomePaned=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"Paned")));
curWidgets->GnomeInfoLabel=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"InfoLabel"))); curWidgets->GnomeInfoLabel=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"InfoLabel")));
curWidgets->GnomeInfoDetailsLabel=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"InfoDetailsLabel"))); curWidgets->GnomeInfoDetailsLabel=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"InfoDetailsLabel")));
curWidgets->socketbuttonplace=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"socketbuttonplace")));
curWidgets->Overlay=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"Overlay")));
curWidgets->ThirdSocketPlace=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,yon_char_get_augumented(theme_id,"ThirdSocketPlace")));
curWidgets->SettingsSections=NULL; curWidgets->SettingsSections=NULL;
gtk_style_context_add_class(gtk_widget_get_style_context(curWidgets->icvpack),"iconview"); gtk_style_context_add_class(gtk_widget_get_style_context(curWidgets->icvpack),"iconview");
curWidgets->socket=GTK_WIDGET(create_socket(curWidgets)); curWidgets->socket=GTK_WIDGET(create_socket(curWidgets));
curWidgets->MenuItemAboutSystem=GTK_WIDGET(gtk_builder_get_object(curWidgets->builder,"MenuItemAboutSystem"));
g_signal_connect(G_OBJECT(curWidgets->MenuItemAboutSystem), "activate", G_CALLBACK(on_about_system),curWidgets);
if (curWidgets->ButtonBackToMain!=NULL) if (curWidgets->ButtonBackToMain!=NULL)
gtk_button_set_label(GTK_BUTTON(curWidgets->ButtonBackToMain),_("Back to settings")); gtk_button_set_label(GTK_BUTTON(curWidgets->ButtonBackToMain),_("Back to settings"));
gtk_window_set_title(GTK_WINDOW(curWidgets->window),"UBLinux Settings Manager"); gtk_window_set_title(GTK_WINDOW(curWidgets->window),"UBLinux Settings Manager");
@ -1342,11 +1400,7 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them
} }
if (strcmp(theme_id,"Gnome")==0){ if (strcmp(theme_id,"Gnome")==0){
char *socket_id=malloc(sizeof(gtk_socket_get_id(GTK_SOCKET(curWidgets->socket)))/sizeof(int)); on_about_system(NULL,curWidgets);
sprintf(socket_id,"%d",gtk_socket_get_id(GTK_SOCKET(curWidgets->socket)));
socket_id=yon_char_get_augumented(ubl_settings_infoPathLaunch,socket_id);
socket_id=yon_char_get_augumented(socket_id," &");
system(socket_id);
g_signal_connect(G_OBJECT(curWidgets->window), "configure-event", G_CALLBACK(on_resized), widgets); g_signal_connect(G_OBJECT(curWidgets->window), "configure-event", G_CALLBACK(on_resized), widgets);
g_signal_connect(G_OBJECT(curWidgets->window), "event-after", G_CALLBACK(on_resized_done), widgets); g_signal_connect(G_OBJECT(curWidgets->window), "event-after", G_CALLBACK(on_resized_done), widgets);
@ -1411,7 +1465,6 @@ dictionary *yon_theme_new(dictionary **widgetss, GtkBuilder *builder, char *them
g_signal_connect(G_OBJECT(curWidgets->SectionSettingsCloseButton), "clicked", G_CALLBACK(on_sections_close), curWidgets); g_signal_connect(G_OBJECT(curWidgets->SectionSettingsCloseButton), "clicked", G_CALLBACK(on_sections_close), curWidgets);
g_signal_connect(G_OBJECT(curWidgets->SectionSettingsSaveButton), "clicked", G_CALLBACK(on_sections_save), curWidgets); g_signal_connect(G_OBJECT(curWidgets->SectionSettingsSaveButton), "clicked", G_CALLBACK(on_sections_save), curWidgets);
g_signal_connect(G_OBJECT(curWidgets->CautionUnderstandButton), "clicked", G_CALLBACK(on_caution_understand), curWidgets); g_signal_connect(G_OBJECT(curWidgets->CautionUnderstandButton), "clicked", G_CALLBACK(on_caution_understand), curWidgets);
g_signal_connect(G_OBJECT(curWidgets->MenuItemAboutSystem), "activate", G_CALLBACK(on_about_system),curWidgets);
} }
gtk_label_set_text(GTK_LABEL(curWidgets->LabelTitle),_("UBLinux Settings Manager")); gtk_label_set_text(GTK_LABEL(curWidgets->LabelTitle),_("UBLinux Settings Manager"));
gtk_label_set_text(GTK_LABEL(curWidgets->settingsSubmenuLabelSize),_("Icon size")); gtk_label_set_text(GTK_LABEL(curWidgets->settingsSubmenuLabelSize),_("Icon size"));
@ -1438,7 +1491,7 @@ int main(int argc, char *argv[]){
return -1; return -1;
} }
local=setlocale(LC_ALL, ""); local=setlocale(LC_ALL, "");
bindtextdomain (LocaleName, LocalePath); // printf("%s\n\n\n",bindtextdomain (LocaleName, LocalePath));
textdomain (LocaleName); textdomain (LocaleName);
actionWidgets *widget=malloc(sizeof(actionWidgets)); actionWidgets *widget=malloc(sizeof(actionWidgets));
dictionary *widgets=yon_dictionary_create_empty(); dictionary *widgets=yon_dictionary_create_empty();
@ -1458,6 +1511,7 @@ int main(int argc, char *argv[]){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
gtk_overlay_add_overlay(GTK_OVERLAY(widg->Overlay),GTK_WIDGET(gtk_builder_get_object(builder,"GnomeScroll")));
yon_icv_resize_item(widg->ICSys,widg->GnomePaned); yon_icv_resize_item(widg->ICSys,widg->GnomePaned);
theme="Main"; theme="Main";
main_config.WindowTheme=0; main_config.WindowTheme=0;
@ -1473,6 +1527,7 @@ int main(int argc, char *argv[]){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
gtk_overlay_add_overlay(GTK_OVERLAY(widg->Overlay),widg->workingwindow);
main_config.WindowTheme=1; main_config.WindowTheme=1;
} }
@ -1485,6 +1540,7 @@ int main(int argc, char *argv[]){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
gtk_overlay_add_overlay(GTK_OVERLAY(widg->Overlay),GTK_WIDGET(gtk_builder_get_object(builder,"GnomeScroll")));
theme="Gnome"; theme="Gnome";
main_config.WindowTheme=1; main_config.WindowTheme=1;
widgets->next=yon_dictionary_create_empty(); widgets->next=yon_dictionary_create_empty();
@ -1499,12 +1555,15 @@ int main(int argc, char *argv[]){
load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize); load_apps((IVGraphicals*)cur->data,widg->applist,widg->appssize);
} }
yon_show_icon_views(widg->ICSys,widg); yon_show_icon_views(widg->ICSys,widg);
gtk_overlay_add_overlay(GTK_OVERLAY(widg->Overlay),widg->icvpack);
main_config.WindowTheme=0; main_config.WindowTheme=0;
yon_icv_resize_item(widg->ICSys,widg->GnomePaned); yon_icv_resize_item(widg->ICSys,widg->GnomePaned);
} }
if (geteuid()==0){
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widg->settingsThemeChooser),NULL,_("Standard theme")); gtk_widget_set_sensitive(widg->settingsSectionsSettingsButton,1);
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widg->settingsThemeChooser),NULL,_("GNOME theme")); }
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widg->settingsThemeChooser),NULL,_("Standard theme"));
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widg->settingsThemeChooser),NULL,_("GNOME theme"));
widg=(actionWidgets*)widgets->data; widg=(actionWidgets*)widgets->data;
gtk_window_maximize(GTK_WINDOW(widg->window)); gtk_window_maximize(GTK_WINDOW(widg->window));
gtk_widget_show_all(widg->window); gtk_widget_show_all(widg->window);

@ -17,8 +17,8 @@
#define LocalePath "/usr/share/locale" #define LocalePath "/usr/share/locale"
#define LocaleName "ubl-settings-manager" #define LocaleName "ubl-settings-manager"
#define LogoPath "/usr/share/icons/hicolor/scalable/apps/ubl-settings-manager.svg" #define LogoPath "/usr/share/icons/hicolor/scalable/apps/ubl-settings-manager.svg"
#define ubl_settings_infoPath "/home/superadmin/Документы/ubl-settings-manager/ub-settings-manager/ubl-info/ubl-settings-info" #define ubl_settings_infoPath "ubl-settings-info"
#define ubl_settings_infoPathLaunch "/home/superadmin/Документы/ubl-settings-manager/ub-settings-manager/ubl-info/ubl-settings-info --socket-id=" #define ubl_settings_infoPathLaunch "ubl-settings-info --socket-id="
typedef struct apps{ typedef struct apps{
@ -28,7 +28,7 @@ typedef struct apps{
char *Exec; char *Exec;
char *Icon; char *Icon;
int Pluggable; int Pluggable;
int DualPluggable;
} apps; } apps;
typedef struct dictionary { typedef struct dictionary {
@ -64,7 +64,9 @@ typedef struct {
int iconsize; int iconsize;
int iconSegmentSize; int iconSegmentSize;
dictionary *sections; dictionary *sections;
int labelSize;
int labelDensity;
char *lastUser;
} config; } config;
typedef struct { typedef struct {
@ -135,6 +137,11 @@ typedef struct {
GtkWidget *GnomeInfoDetailsLabel; GtkWidget *GnomeInfoDetailsLabel;
GtkWidget *CautionWindow; GtkWidget *CautionWindow;
GtkWidget *CautionUnderstandButton; GtkWidget *CautionUnderstandButton;
GtkWidget *socketbuttonplace;
GtkWidget *socketbutton;
GtkWidget *Overlay;
GtkWidget *ThirdSocketPlace;
GtkWidget *ThirdSocket;
int appssize; int appssize;
apps *applist; apps *applist;
GtkWidget *icvpack; GtkWidget *icvpack;
@ -196,4 +203,7 @@ void yon_dictionary_make_first(dictionary *dict);
dictionary *yon_create_icon_section_list(dictionary *sections); dictionary *yon_create_icon_section_list(dictionary *sections);
int yon_show_icon_views(dictionary *IVS,actionWidgets *widgets); int yon_show_icon_views(dictionary *IVS,actionWidgets *widgets);
void yon_icon_size_convert(int mode); void yon_icon_size_convert(int mode);
void on_about_system(GtkWidget *button, actionWidgets *widgets);
char *yon_char_new(char *chr);
void launch(char *command);
#endif #endif

@ -1,14 +1,17 @@
[window] [window]
WindowPosX=0 WindowPosX=0
WindowPosY=0 WindowPosY=0
WindowWidth=1920 WindowWidth=800
WindowHeight=1004 WindowHeight=600
WindowTheme=0 WindowTheme=0
IconSize=2 IconSize=2
IconSegmentSize=321 IconSegmentSize=250
LabelSize=12
LabelDensity=0
User=
[sections] [sections]
Personal=XFCE; Personal=X-UBL-SettingsManager;X-UBL-PersonalSettings;
Hardware=X-UBL-SettingsManager;X-UBL-HardwareSettings; Hardware=X-UBL-SettingsManager;X-UBL-HardwareSettings;
System=X-UBL-SettingsManager;X-UBL-SystemSettings; System=X-UBL-SettingsManager;X-UBL-SystemSettings;
Misc= Misc=

@ -1,55 +1,21 @@
.label {
font-size: 13px;
}
.noborder{
border:none;
border-width:0px;
border-radius:0px;
box-shadow: none;
}
.darkborder{
border-width:1px;
border-radius:1px;
}
.bannerbackground { .bannerbackground {
background-color: #404040; background-color: #404040;
} }
.elseps {
border-style:solid;
border-bottom-width: 1px;
border-image: linear-gradient(90deg, #aaaaaa 0%, #dcddde 100%);
border-image-slice: 1;
}
#Icon {
background-color: transparent;
color: transparent;
}
iconview#GnomeIcon{
#GnomeIcon{
border-style:solid; border-style:solid;
border-bottom-width: 1px; border-bottom-width: 1px;
border-image: linear-gradient(90deg, #aaaaaa 0%, #dcddde 100%); border-image: linear-gradient(90deg, #aaaaaa 0%, #dcddde 100%);
border-image-slice: 1; border-image-slice: 1;
background-color: transparent;
} }
#noborders{
border-style:solid;
border: 0px;
}
#iconlabel { #iconlabel {
font-size:14px; font-size:14px;
font-weight: bold; font-weight: bold;
}
.roundborder * {
border-style:solid;
border-width:1px;
border-radius:5px;
} }
#desclabel {
font-size:100%;
}
.bold {
color:#1a5fb4;
}
iconview {
background-image:none;
}

@ -114,6 +114,34 @@
<column type="gchararray"/> <column type="gchararray"/>
</columns> </columns>
</object> </object>
<object class="GtkScrolledWindow" id="GnomeScroll">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<property name="min-content-width">150</property>
<property name="propagate-natural-width">True</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkBox" id="Gnomeicvpack">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">3</property>
<property name="margin-start">3</property>
<property name="margin-end">3</property>
<property name="margin-top">3</property>
<property name="margin-bottom">3</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
</child>
</object>
<object class="GtkApplicationWindow" id="HelpSureWindow"> <object class="GtkApplicationWindow" id="HelpSureWindow">
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="default-width">450</property> <property name="default-width">450</property>
@ -278,6 +306,77 @@
</object> </object>
</child> </child>
</object> </object>
<object class="GtkBox" id="Mainworkingwindow">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="MainHideWhileLaunch">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-start">5</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="vscroll-policy">natural</property>
<child>
<object class="GtkBox" id="Mainicvpack">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<placeholder/>
</child>
<style>
<class name="frontground"/>
</style>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="Mainsocketplace">
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="frontground"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<object class="GtkImage" id="MissingImage"> <object class="GtkImage" id="MissingImage">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
@ -327,6 +426,21 @@
</object> </object>
</child> </child>
</object> </object>
<object class="GtkOverlay">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkIconView">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="margin">6</property>
</object>
<packing>
<property name="pass-through">True</property>
<property name="index">-1</property>
</packing>
</child>
</object>
<object class="GtkAdjustment" id="adjustment1"> <object class="GtkAdjustment" id="adjustment1">
<property name="lower">1</property> <property name="lower">1</property>
<property name="upper">5</property> <property name="upper">5</property>
@ -515,6 +629,7 @@
<object class="GtkButton" id="settingsSectionsSettingsButton"> <object class="GtkButton" id="settingsSectionsSettingsButton">
<property name="label" translatable="yes">Sections management</property> <property name="label" translatable="yes">Sections management</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can-focus">True</property> <property name="can-focus">True</property>
<property name="receives-default">True</property> <property name="receives-default">True</property>
<property name="margin-start">10</property> <property name="margin-start">10</property>
@ -1018,32 +1133,18 @@
<property name="position-set">True</property> <property name="position-set">True</property>
<property name="wide-handle">True</property> <property name="wide-handle">True</property>
<child> <child>
<object class="GtkScrolledWindow"> <object class="GtkOverlay" id="GnomeOverlay">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="shadow-type">in</property>
<property name="min-content-width">150</property>
<property name="propagate-natural-width">True</property>
<child> <child>
<object class="GtkViewport"> <object class="GtkIconView">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<child> <property name="margin">6</property>
<object class="GtkBox" id="Gnomeicvpack">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="margin-left">3</property>
<property name="margin-start">3</property>
<property name="margin-end">3</property>
<property name="margin-top">3</property>
<property name="margin-bottom">3</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
</child>
</object> </object>
<packing>
<property name="index">-1</property>
</packing>
</child> </child>
</object> </object>
<packing> <packing>
@ -1202,10 +1303,21 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<child> <child>
<object class="GtkLabel" id="GnomeLabelTitle"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Manager</property> <child>
<object class="GtkLabel" id="GnomeLabelTitle">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Manager</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -1214,14 +1326,9 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkMenuButton" id="GnomeappSettings"> <object class="GtkBox" id="Gnomesocketbuttonplace">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="popup">menu1</property>
<property name="direction">none</property>
<property name="use-popover">False</property>
<child> <child>
<placeholder/> <placeholder/>
</child> </child>
@ -1232,6 +1339,37 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<child>
<object class="GtkMenuButton" id="GnomeappSettings">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="popup">menu1</property>
<property name="direction">none</property>
<property name="use-popover">False</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
</child> </child>
<child> <child>
@ -1242,6 +1380,19 @@
<property name="icon_size">5</property> <property name="icon_size">5</property>
</object> </object>
</child> </child>
<child>
<object class="GtkBox" id="GnomeThirdSocketPlace">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object> </object>
</child> </child>
</object> </object>
@ -1319,10 +1470,6 @@
<child> <child>
<placeholder/> <placeholder/>
</child> </child>
<style>
<class name="noborder"/>
<class name="bg"/>
</style>
</object> </object>
</child> </child>
<style> <style>
@ -1486,84 +1633,17 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkBox" id="Mainworkingwindow"> <object class="GtkOverlay" id="MainOverlay">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child> <child>
<object class="GtkBox" id="MainHideWhileLaunch"> <object class="GtkIconView">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">True</property>
<property name="margin-start">5</property> <property name="margin">6</property>
<property name="margin-end">5</property>
<property name="margin-top">5</property>
<property name="margin-bottom">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="vscroll-policy">natural</property>
<child>
<object class="GtkBox" id="Mainicvpack">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<placeholder/>
</child>
<style>
<class name="frontground"/>
</style>
</object>
</child>
<style>
<class name="noborder"/>
<class name="bg"/>
</style>
</object>
</child>
<style>
<class name="noborder"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<style>
<class name="darkborder"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="Mainsocketplace">
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="frontground"/>
</style>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="index">-1</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing> </packing>
</child> </child>
</object> </object>
@ -1573,9 +1653,6 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<style>
<class name="noborder"/>
</style>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -1596,10 +1673,21 @@
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<child> <child>
<object class="GtkLabel" id="LabelTitle"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Manager</property> <child>
<object class="GtkLabel" id="LabelTitle">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="label" translatable="yes">UBLinux Settings Manager</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object> </object>
<packing> <packing>
<property name="expand">True</property> <property name="expand">True</property>
@ -1608,17 +1696,17 @@
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkMenuButton" id="MainappSettings"> <object class="GtkBox" id="Mainsocketbuttonplace">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">True</property> <property name="can-focus">False</property>
<property name="focus-on-click">False</property> <property name="halign">center</property>
<property name="receives-default">True</property> <property name="valign">center</property>
<property name="popup">menu1</property>
<property name="direction">none</property>
<property name="use-popover">False</property>
<child> <child>
<placeholder/> <placeholder/>
</child> </child>
<style>
<class name="roundborder"/>
</style>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
@ -1626,6 +1714,38 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkMenuButton" id="MainappSettings">
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="focus-on-click">False</property>
<property name="receives-default">True</property>
<property name="popup">menu1</property>
<property name="direction">none</property>
<property name="use-popover">False</property>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack-type">end</property>
<property name="position">2</property>
</packing>
</child>
</object> </object>
</child> </child>
<child> <child>
@ -1658,12 +1778,26 @@
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
<child>
<object class="GtkBox" id="MainThirdSocketPlace">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<child>
<placeholder/>
</child>
<style>
<class name="roundborder"/>
</style>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
</object> </object>
</child> </child>
<style>
<class name="bg"/>
<class name="noborder"/>
</style>
</object> </object>
<object class="GtkListStore" id="settingsModelCombobox"> <object class="GtkListStore" id="settingsModelCombobox">
<columns> <columns>

@ -8,80 +8,98 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-01-31 11:50+0000\n" "POT-Creation-Date: 2023-02-09 16:45+0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: ubl-settings-manager.c:1373 #: ubl-settings-manager.c:1338
msgid "Back to settings" msgid "Back to settings"
msgstr "Назад" msgstr "Назад"
#: ubl-settings-manager.c:1451 #: ubl-settings-manager.c:1418
msgid "UBLinux Settings Manager" msgid "UBLinux Settings Manager"
msgstr "Настройки UBLinux" msgstr "Настройки UBLinux"
#: ubl-settings-manager.c:1452 #: ubl-settings-manager.c:1419
msgid "Icon size" msgid "Icon size"
msgstr "Размер иконок" msgstr "Размер иконок"
#: ubl-settings-manager.c:1453 #: ubl-settings-manager.c:1420
msgid "Window theme" msgid "Window theme"
msgstr "Выбор темы" msgstr "Выбор темы"
#: ubl-settings-manager.c:1454 #: ubl-settings-manager.c:1421
msgid "Would you like to read documentation in the Web?" msgid "Would you like to read documentation in the Web?"
msgstr "Вы хотите прочитать руководство в сети?" msgstr "Вы хотите прочитать руководство в сети?"
#: ubl-settings-manager.c:1455 #: ubl-settings-manager.c:1422
msgid "You will be redirected to documentation site, where user help pages are " msgid ""
"You will be redirected to documentation site, where user help pages are "
"translated and supported by community." "translated and supported by community."
msgstr "Вы будете перенаправлены на сайт с документацией, где страницы помощи переводятся и поддерживаются сообществом." msgstr "Вы будете перенаправлены на сайт с документацией, где страницы помощи переводятся и поддерживаются сообществом."
#: ubl-settings-manager.c:1456 #: ubl-settings-manager.c:1423
msgid "Read online" msgid "Read online"
msgstr "Прочитать онлайн" msgstr "Прочитать онлайн"
#: ubl-settings-manager.c:1457 #: ubl-settings-manager.c:1424
msgid "Cancel" msgid "Cancel"
msgstr "Отменить" msgstr "Отменить"
#: ubl-settings-manager.c:1458 #: ubl-settings-manager.c:1425
msgid "Close" msgid "Close"
msgstr "Закрыть" msgstr "Закрыть"
#: ubl-settings-manager.c:1459 #: ubl-settings-manager.c:1426
msgid "Save and apply" msgid "Save and apply"
msgstr "Сохранить и применить" msgstr "Сохранить и применить"
#: ubl-settings-manager.c:1460 #: ubl-settings-manager.c:1427
msgid "Always redirect" msgid "Always redirect"
msgstr "Всегда перенаправлять" msgstr "Всегда перенаправлять"
#: ubl-settings-manager.c:1461 #: ubl-settings-manager.c:1428
msgid "Settings" msgid "Settings"
msgstr "Настройки" msgstr "Настройки"
#: ubl-settings-manager.c:1462 #: ubl-settings-manager.c:1429
msgid "About..." msgid "About..."
msgstr "О программе"
#: ubl-settings-manager.c:1430
msgid "About system"
msgstr "О системе" msgstr "О системе"
#: ubl-settings-manager.c:1463 #: ubl-settings-manager.c:1431
msgid "Understood" msgid "Understood"
msgstr "Понятно" msgstr "Понятно"
#: ubl-settings-manager.c:1464 #: ubl-settings-manager.c:1432
msgid "Section management" msgid "Section management"
msgstr "Точная настройка" msgstr "Точная настройка"
#: ubl-settings-manager.c:1538 #: ubl-settings-manager.c:1508
msgid "Standard theme" msgid "Standard theme"
msgstr "Основная тема" msgstr "Основная тема"
#: ubl-settings-manager.c:1539 #: ubl-settings-manager.c:1509
msgid "GNOME theme" msgid "GNOME theme"
msgstr "GNOME тема" msgstr "GNOME тема"
msgid "Personal"
msgstr "Личные"
msgid "Hardware"
msgstr "Оборудование"
msgid "System"
msgstr "Система"
msgid "Misc"
msgstr "Прочее"

Loading…
Cancel
Save