From: Olaf Wintermann Date: Mon, 21 Apr 2025 15:28:41 +0000 (+0200) Subject: hide attachment bar when there are no attachments X-Git-Url: https://uap-core.de/gitweb/?a=commitdiff_plain;h=7543cf4d40e02af24856af3e4a8c6d422347978d;p=note.git hide attachment bar when there are no attachments --- diff --git a/application/gtk-image.c b/application/gtk-image.c index 983bea2..3b09599 100644 --- a/application/gtk-image.c +++ b/application/gtk-image.c @@ -38,7 +38,6 @@ static void embedded_image_adjust_size(EmbeddedWidget *em, int max_width) { double width = gdk_texture_get_width(texture); double height = gdk_texture_get_height(texture); - printf("max width: %d\n", max_width); if(width > max_width) { height = height * (max_width / width); width = max_width; diff --git a/application/gtk-text.c b/application/gtk-text.c index 41b7fb1..8a64848 100644 --- a/application/gtk-text.c +++ b/application/gtk-text.c @@ -389,6 +389,9 @@ static void editor_attach_image(NoteEditor *editor, GdkPixbuf *pixbuf, char *att note_add_attachment(note, attachment); ui_list_append(model->attachments, attachment); ui_list_update(model->attachments); + + // TODO: can we move this to note_add_attachment or somewhere else? + ui_set_group(wdata->obj->ctx, APP_STATE_NOTE_HAS_ATTACHMENTS); } static gboolean editor_dnd_add_file(NoteEditor *editor, GFile *file) { diff --git a/application/note.c b/application/note.c index 9190234..6bae7f0 100644 --- a/application/note.c +++ b/application/note.c @@ -123,6 +123,10 @@ static void note_loading_completed(UiObject *obj, LoadNoteContent *op) { } ui_list_update(note->model->attachments); + if(ui_list_count(note->model->attachments) > 0) { + ui_set_group(obj->ctx, APP_STATE_NOTE_HAS_ATTACHMENTS); + } + editor_load_markdown(note, wdata->textview, note->content); } note->content_loaded = TRUE; diff --git a/application/notebook.c b/application/notebook.c index e2487cd..a3f47e9 100644 --- a/application/notebook.c +++ b/application/notebook.c @@ -144,6 +144,13 @@ void notebookmodel_attach_note(NotebookModel *model, Resource *note) { ui_list_update(note->model->attachments); + // TODO: replace when getting groups from sub-ctx works + if(ui_list_count(note->model->attachments) == 0) { + ui_unset_group(model->window->obj->ctx, APP_STATE_NOTE_HAS_ATTACHMENTS); + } else { + ui_set_group(model->window->obj->ctx, APP_STATE_NOTE_HAS_ATTACHMENTS); + } + if(!note->content_loaded) { note_load_content(model->window->obj, model, note); } @@ -166,6 +173,7 @@ void notebookmodel_detach_current_note(NotebookModel *model) { } model->current_note = NULL; } + ui_unset_group(model->window->obj->ctx, APP_STATE_NOTE_HAS_ATTACHMENTS); } /* diff --git a/application/window.c b/application/window.c index 3fa1bd3..757e412 100644 --- a/application/window.c +++ b/application/window.c @@ -95,12 +95,13 @@ void window_create() { //} //ui_widget_set_size(sw, -1, 120); } + ui_widget_set_size(wdata->attachments, -1, 120); #if GTK_MAJOR_VERSION >= 4 ui_customwidget(obj, editor_gtk4_workaround, wdata, .hfill = TRUE); #endif - //ui_set_visible(wdata->attachments, FALSE); - //ui_widget_set_groups(obj->ctx, wdata->attachments, (ui_enablefunc)ui_set_visible, APP_STATE_NOTE_HAS_ATTACHMENTS, -1); + ui_set_visible(wdata->attachments, FALSE); + ui_widget_set_groups(obj->ctx, wdata->attachments, (ui_enablefunc)ui_set_visible, APP_STATE_NOTE_HAS_ATTACHMENTS, -1); wdata->textview = ui_textarea(obj, .varname = "note_text", .vfill = TRUE, .hfill = TRUE, .hexpand = TRUE, .vexpand = TRUE, .colspan = 2, .groups = UI_GROUPS(APP_STATE_NOTE_SELECTED), .fill = UI_ON); editor_init_textview(obj, ui_textarea_gettextwidget(wdata->textview)); }