From a50e235a03884ff2aef9d40bd67e2398b65eddf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Mon, 27 Sep 2021 13:51:58 +0300 Subject: [PATCH 1/1] SidebarWidget: Editing folder names Use the regular bookmark editor but hide the Special Tags section, and disable all but the Title for now. --- src/ui/sidebarwidget.c | 70 ++++++++++++++++++++++++++---------------- src/ui/util.c | 4 ++- 2 files changed, 46 insertions(+), 28 deletions(-) diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c index 72205912..aaa6e9e9 100644 --- a/src/ui/sidebarwidget.c +++ b/src/ui/sidebarwidget.c @@ -994,22 +994,24 @@ iBool handleBookmarkEditorCommands_SidebarWidget_(iWidget *editor, const char *c iAssert(item); /* hover item cannot have been changed */ iBookmark *bm = get_Bookmarks(bookmarks_App(), item->id); set_String(&bm->title, title); - set_String(&bm->url, url); - set_String(&bm->tags, tags); - if (isEmpty_String(icon)) { - removeTag_Bookmark(bm, userIcon_BookmarkTag); - bm->icon = 0; - } - else { - addTagIfMissing_Bookmark(bm, userIcon_BookmarkTag); - bm->icon = first_String(icon); - } - addOrRemoveTag_Bookmark(bm, homepage_BookmarkTag, - isSelected_Widget(findChild_Widget(editor, "bmed.tag.home"))); - addOrRemoveTag_Bookmark(bm, remoteSource_BookmarkTag, - isSelected_Widget(findChild_Widget(editor, "bmed.tag.remote"))); - addOrRemoveTag_Bookmark(bm, linkSplit_BookmarkTag, - isSelected_Widget(findChild_Widget(editor, "bmed.tag.linksplit"))); + if (!isFolder_Bookmark(bm)) { + set_String(&bm->url, url); + set_String(&bm->tags, tags); + if (isEmpty_String(icon)) { + removeTag_Bookmark(bm, userIcon_BookmarkTag); + bm->icon = 0; + } + else { + addTagIfMissing_Bookmark(bm, userIcon_BookmarkTag); + bm->icon = first_String(icon); + } + addOrRemoveTag_Bookmark(bm, homepage_BookmarkTag, + isSelected_Widget(findChild_Widget(editor, "bmed.tag.home"))); + addOrRemoveTag_Bookmark(bm, remoteSource_BookmarkTag, + isSelected_Widget(findChild_Widget(editor, "bmed.tag.remote"))); + addOrRemoveTag_Bookmark(bm, linkSplit_BookmarkTag, + isSelected_Widget(findChild_Widget(editor, "bmed.tag.linksplit"))); + } postCommand_App("bookmarks.changed"); } setupSheetTransition_Mobile(editor, iFalse); @@ -1280,18 +1282,32 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) setId_Widget(dlg, format_CStr("bmed.%s", cstr_String(id_Widget(w)))); iBookmark *bm = get_Bookmarks(bookmarks_App(), item->id); setText_InputWidget(findChild_Widget(dlg, "bmed.title"), &bm->title); - setText_InputWidget(findChild_Widget(dlg, "bmed.url"), &bm->url); - setText_InputWidget(findChild_Widget(dlg, "bmed.tags"), &bm->tags); - if (hasTag_Bookmark(bm, userIcon_BookmarkTag)) { - setText_InputWidget(findChild_Widget(dlg, "bmed.icon"), - collect_String(newUnicodeN_String(&bm->icon, 1))); + iInputWidget *urlInput = findChild_Widget(dlg, "bmed.url"); + iInputWidget *tagsInput = findChild_Widget(dlg, "bmed.tags"); + iInputWidget *iconInput = findChild_Widget(dlg, "bmed.icon"); + iWidget * homeTag = findChild_Widget(dlg, "bmed.tag.home"); + iWidget * remoteSourceTag = findChild_Widget(dlg, "bmed.tag.remote"); + iWidget * linkSplitTag = findChild_Widget(dlg, "bmed.tag.linksplit"); + if (!isFolder_Bookmark(bm)) { + setText_InputWidget(urlInput, &bm->url); + setText_InputWidget(tagsInput, &bm->tags); + if (hasTag_Bookmark(bm, userIcon_BookmarkTag)) { + setText_InputWidget(iconInput, + collect_String(newUnicodeN_String(&bm->icon, 1))); + } + setToggle_Widget(homeTag, hasTag_Bookmark(bm, homepage_BookmarkTag)); + setToggle_Widget(remoteSourceTag, hasTag_Bookmark(bm, remoteSource_BookmarkTag)); + setToggle_Widget(linkSplitTag, hasTag_Bookmark(bm, linkSplit_BookmarkTag)); + } + else { + setFlags_Widget(findChild_Widget(dlg, "bmed.special"), + hidden_WidgetFlag | disabled_WidgetFlag, + iTrue); + iAnyObject *notNeeded[] = { urlInput, tagsInput, iconInput, NULL }; + iForIndices(i, notNeeded) { + setFlags_Widget(notNeeded[i], disabled_WidgetFlag, iTrue); + } } - setToggle_Widget(findChild_Widget(dlg, "bmed.tag.home"), - hasTag_Bookmark(bm, homepage_BookmarkTag)); - setToggle_Widget(findChild_Widget(dlg, "bmed.tag.remote"), - hasTag_Bookmark(bm, remoteSource_BookmarkTag)); - setToggle_Widget(findChild_Widget(dlg, "bmed.tag.linksplit"), - hasTag_Bookmark(bm, linkSplit_BookmarkTag)); setCommandHandler_Widget(dlg, handleBookmarkEditorCommands_SidebarWidget_); setFocus_Widget(findChild_Widget(dlg, "bmed.title")); } diff --git a/src/ui/util.c b/src/ui/util.c index adee2ee5..80bd5d44 100644 --- a/src/ui/util.c +++ b/src/ui/util.c @@ -2655,7 +2655,9 @@ iWidget *makeBookmarkEditor_Widget(void) { addDialogInputWithHeading_(headings, values, "${dlg.bookmark.icon}", "bmed.icon", iClob(inputs[3] = new_InputWidget(1))); /* Buttons for special tags. */ addChild_Widget(dlg, iClob(makePadding_Widget(gap_UI))); - addChild_Widget(dlg, iClob(makeTwoColumns_Widget(&headings, &values))); + iWidget *special = addChild_Widget(dlg, iClob(makeTwoColumns_Widget(&headings, &values))); + setFlags_Widget(special, collapse_WidgetFlag, iTrue); + setId_Widget(special, "bmed.special"); makeTwoColumnHeading_("${heading.bookmark.tags}", headings, values); addDialogToggle_(headings, values, "${bookmark.tag.home}", "bmed.tag.home"); addDialogToggle_(headings, values, "${bookmark.tag.remote}", "bmed.tag.remote"); -- 2.34.1