]> uap-core.de Git - note.git/commitdiff
add more nbconfig repolist stuff
authorOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 2 Aug 2025 19:12:51 +0000 (21:12 +0200)
committerOlaf Wintermann <olaf.wintermann@gmail.com>
Sat, 2 Aug 2025 19:12:51 +0000 (21:12 +0200)
application/nbconfig.c
application/nbconfig.h

index b1b6b0e80be896a7f88324f805c86d1faa6f7786..4090f03de5a2d9bcf93f67e9806081fd55788ac8 100644 (file)
@@ -341,13 +341,45 @@ static void nbconfig_notebooklist_move_down(UiEvent *event, void *userdata) {
 
 
 static void nbconfig_repolist_add(UiEvent *event, void *userdata) {
+    NotebookConfigDialog *wdata = event->window;
+    NoteStore *store = note_store_get();
+    
+    Repository *repo = cxCalloc(store->mp->allocator, 1, sizeof(Repository));
+    wdata->new_repository = repo;
     
+    ui_set(wdata->tab3_repo_name, "");
+    ui_list_setselection(wdata->tab3_repositories, 0);
 }
 
 static void nbconfig_repolist_delete(UiEvent *event, void *userdata) {
     
 }
 
+static void nbconfig_repolist_name_changed(UiEvent *event, void *userdata) {
+    if(event->set) {
+        return;
+    }
+    
+    NotebookConfigDialog *wdata = event->window;
+    NoteStore *store = note_store_get();
+    
+    if(wdata->new_repository) {
+        UiBool add = FALSE;
+        if(!wdata->new_repository) {
+            add = TRUE;
+        } else {
+            cxFree(store->mp->allocator, wdata->new_repository->name);
+        }
+        
+        wdata->new_repository->name = cx_strdup_a(store->mp->allocator, cx_str(ui_get(wdata->tab3_repo_name))).ptr;
+        
+        if(add) {
+            cxListAdd(wdata->repositories, wdata->new_repository);
+        }
+        nbconfig_update_lists(wdata);
+    }
+}
+
 void notebook_config_dialog(void) {
     NoteStore *store = note_store_get();
     // TODO: check store->root and show different dialog, when root is missing
@@ -481,7 +513,7 @@ void notebook_config_dialog(void) {
                     
                     ui_grid(obj, .columnspacing = 10, .rowspacing = 10, .fill = TRUE, .def_vfill = TRUE) {
                         ui_rlabel(obj, .label = "Name");
-                        ui_textfield(obj, .value = wdata->tab3_repo_name);
+                        ui_textfield(obj, .value = wdata->tab3_repo_name, .onchange = nbconfig_repolist_name_changed);
                         ui_newline(obj);
                         
                         ui_rlabel(obj, .label = "Local Path");
index 94f2c4e6e83f48215ee8737e86cfe61a02266bf5..1c8356dfb5fa16e92dfd2e35c374c95bd263709b 100644 (file)
@@ -62,6 +62,7 @@ typedef struct NotebookConfigDialog {
     
     Resource *new_group;
     Resource *new_notebook;
+    Repository *new_repository;
 } NotebookConfigDialog;
     
 void nbconfig_update_lists(NotebookConfigDialog *wdata);