You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
9.2 KiB
166 lines
9.2 KiB
#include "ubl-settings-repomanager.h"
|
|
|
|
config main_config;
|
|
|
|
//storage-configure window section
|
|
storage_config_window *yon_storage_config_window_new(){
|
|
storage_config_window *window = malloc(sizeof(storage_config_window));
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_storage_config);
|
|
window->MainWindow = yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
|
|
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
|
|
window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton");
|
|
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
|
window->StoragePathEntry = yon_gtk_builder_get_widget(builder,"StoragePathEntry");
|
|
window->OpenExistingButton = yon_gtk_builder_get_widget(builder,"OpenExistingButton");
|
|
window->CreateNewButton = yon_gtk_builder_get_widget(builder,"CreateNewButton");
|
|
window->DisableButton = yon_gtk_builder_get_widget(builder,"DisableButton");
|
|
window->DeleteButton = yon_gtk_builder_get_widget(builder,"DeleteButton");
|
|
window->ReposBox = yon_gtk_builder_get_widget(builder,"ReposBox");
|
|
window->AddEntry = yon_gtk_builder_get_widget(builder,"AddEntry");
|
|
window->AddRepoButton = yon_gtk_builder_get_widget(builder,"AddRepoButton");
|
|
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
return window;
|
|
}
|
|
|
|
void on_storage_configure_clicked(GtkWidget *self, main_window *widgets){
|
|
storage_config_window *window = yon_storage_config_window_new();
|
|
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window),TITLE_LABEL,"com.ublinux.ubl-settings-repomanager","storage-configuration-window");
|
|
gtk_window_set_transient_for(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window));
|
|
gtk_widget_show(window->MainWindow);
|
|
}
|
|
|
|
//repo-add window section
|
|
repo_add_window *yon_repo_add_window_new(){
|
|
repo_add_window *window = malloc(sizeof(repo_add_window));
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_repo_add);
|
|
window->MainWindow = yon_gtk_builder_get_widget(builder,"MainWindow");
|
|
window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox");
|
|
window->StorageCombo = yon_gtk_builder_get_widget(builder,"StorageCombo");
|
|
window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel");
|
|
window->RepositoryCombo = yon_gtk_builder_get_widget(builder,"RepositoryCombo");
|
|
window->ArchitectureCombo = yon_gtk_builder_get_widget(builder,"ArchitectureCombo");
|
|
window->MoveSourceFrame = yon_gtk_builder_get_widget(builder,"MoveSourceFrame");
|
|
window->MoveSourceStorageEntry = yon_gtk_builder_get_widget(builder,"MoveSourceStorageEntry");
|
|
window->MoveSourceRepoEntry = yon_gtk_builder_get_widget(builder,"MoveSourceRepoEntry");
|
|
window->MoveSourceArchEntry = yon_gtk_builder_get_widget(builder,"MoveSourceArchEntry");
|
|
window->MoveTargetFrame = yon_gtk_builder_get_widget(builder,"MoveTargetFrame");
|
|
window->MoveTargetStorageEntry = yon_gtk_builder_get_widget(builder,"MoveTargetStorageEntry");
|
|
window->MoveTargetRepoEntry = yon_gtk_builder_get_widget(builder,"MoveTargetRepoEntry");
|
|
window->MoveTargetArchEntry = yon_gtk_builder_get_widget(builder,"MoveTargetArchEntry");
|
|
window->PackageSignCombo = yon_gtk_builder_get_widget(builder,"PackageSignCombo");
|
|
window->RepoSignCombo = yon_gtk_builder_get_widget(builder,"RepoSignCombo");
|
|
window->AddPackageButton = yon_gtk_builder_get_widget(builder,"AddPackageButton");
|
|
window->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
|
|
window->PackagesTree = yon_gtk_builder_get_widget(builder,"PackagesTree");
|
|
window->InfoLabel = yon_gtk_builder_get_widget(builder,"InfoLabel");
|
|
window->AddButton = yon_gtk_builder_get_widget(builder,"AddButton");
|
|
window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton");
|
|
window->PackagesList = GTK_LIST_STORE(gtk_builder_get_object(builder,"PackagesList"));
|
|
|
|
g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
g_signal_connect(G_OBJECT(window->AddButton),"clicked",G_CALLBACK(on_subwindow_close),NULL);
|
|
|
|
return window;
|
|
}
|
|
|
|
void on_add_clicked(GtkWidget *self, main_window *widgets){
|
|
repo_add_window *window = yon_repo_add_window_new();
|
|
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window),TITLE_LABEL,"com.ublinux.ubl-settings-repomanager","add-repo-window");
|
|
gtk_widget_show(window->MainWindow);
|
|
}
|
|
|
|
void on_move_clicked(GtkWidget *self, main_window *widgets){
|
|
repo_add_window *window = yon_repo_add_window_new();
|
|
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window),TITLE_LABEL,"com.ublinux.ubl-settings-repomanager","add-repo-window");
|
|
gtk_widget_show(window->MoveSourceFrame);
|
|
gtk_widget_show(window->MoveTargetFrame);
|
|
gtk_widget_hide(gtk_widget_get_parent(window->PackageSignCombo));
|
|
gtk_widget_show(window->MainWindow);
|
|
}
|
|
|
|
void on_remove_clicked(GtkWidget *self, main_window *widgets){
|
|
repo_add_window *window = yon_repo_add_window_new();
|
|
yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->Window),TITLE_LABEL,"com.ublinux.ubl-settings-repomanager","add-repo-window");
|
|
gtk_widget_hide(gtk_widget_get_parent(window->PackageSignCombo));
|
|
gtk_widget_show(window->MainWindow);
|
|
}
|
|
|
|
/* setup functions */
|
|
void config_init(){
|
|
main_config.tree_store=NULL;
|
|
main_config.always_open_documentation=0;
|
|
main_config.socket_id=-1;
|
|
main_config.save_socket_id=-1;
|
|
main_config.load_socket_id=-1;
|
|
main_config.lock_help=0;
|
|
main_config.lock_help=0;
|
|
main_config.lock_load_global=0;
|
|
main_config.lock_save_global=0;
|
|
main_config.lock_save_local=0;
|
|
}
|
|
|
|
main_window *yon_main_window_complete(main_window *widgets){
|
|
widgets = yon_remalloc(widgets,sizeof(main_window));
|
|
GtkBuilder *builder = gtk_builder_new_from_resource(glade_path);
|
|
gtk_box_pack_start(GTK_BOX(widgets->InterfaceBox),yon_gtk_builder_get_widget(builder,"BoxMain"),1,1,0);
|
|
// Custom widgets configuration
|
|
{
|
|
widgets->UpdateButton = yon_gtk_builder_get_widget(builder,"UpdateButton");
|
|
widgets->DBConfigurationButton = yon_gtk_builder_get_widget(builder,"DBConfigurationButton");
|
|
widgets->AddButton = yon_gtk_builder_get_widget(builder,"AddButton");
|
|
widgets->MoveButton = yon_gtk_builder_get_widget(builder,"MoveButton");
|
|
widgets->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton");
|
|
widgets->CloudButton = yon_gtk_builder_get_widget(builder,"CloudButton");
|
|
|
|
widgets->ReposTree = yon_gtk_builder_get_widget(builder,"ReposTree");
|
|
widgets->SearchEntry = yon_gtk_builder_get_widget(builder,"SearchEntry");
|
|
widgets->RepoFileTree = yon_gtk_builder_get_widget(builder,"RepoFileTree");
|
|
widgets->RepoPackagesTree = yon_gtk_builder_get_widget(builder,"RepoPackagesTree");
|
|
widgets->InformationLabel = yon_gtk_builder_get_widget(builder,"InformationLabel");
|
|
|
|
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"));
|
|
|
|
g_signal_connect(G_OBJECT(widgets->DBConfigurationButton),"clicked",G_CALLBACK(on_storage_configure_clicked),widgets);
|
|
g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_add_clicked),widgets);
|
|
g_signal_connect(G_OBJECT(widgets->MoveButton),"clicked",G_CALLBACK(on_move_clicked),widgets);
|
|
g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_remove_clicked),widgets);
|
|
|
|
gtk_window_set_title(GTK_WINDOW(widgets->Window),TITLE_LABEL);
|
|
|
|
|
|
|
|
/* Widget registration for config monitoring | Регистрация виджетов для мониторинга конфига */
|
|
/* Localisation | Локализация */
|
|
gtk_widget_show(widgets->Window);
|
|
return widgets;
|
|
}
|
|
}
|
|
|
|
int main(int argc, char *argv[]){
|
|
local=setlocale(LC_ALL, "");
|
|
textdomain (LocaleName);
|
|
config_init();
|
|
|
|
yon_ubl_connect_config((_template_config*)&main_config);
|
|
yon_ubl_window_init(TITLE_LABEL,TITLE_INFO_LABEL,LocaleName,CssPath,LocaleName,version_application,WIKI_LINK);
|
|
config_str unfound = NULL;
|
|
int size=0;
|
|
yon_ubl_setup_arguments(argc,argv,&unfound,&size,NULL);
|
|
gtk_init(&argc,&argv);
|
|
template_main_window *widgets = yon_ubl_window_setup();
|
|
gtk_widget_hide(gtk_menu_get_attach_widget(GTK_MENU(gtk_widget_get_parent(widgets->SaveMenuItem))));
|
|
gtk_widget_hide(gtk_menu_get_attach_widget(GTK_MENU(gtk_widget_get_parent(widgets->LoadGlobalMenuItem))));
|
|
widgets = (template_main_window*)yon_main_window_complete((main_window*)widgets);
|
|
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
|
|
yon_window_config_load(path);
|
|
if (getuid()!=0){
|
|
yon_ubl_status_box_render("",BACKGROUND_IMAGE_SUCCESS_TYPE);
|
|
}
|
|
gtk_main();
|
|
return 0;
|
|
} |