# HG changeset patch # User Christophe Lincoln # Date 1489620044 -3600 # Node ID 9b7c0f2bdaff84406a575a1fc7e42775d029bc93 # Parent 33e0f592065528fa99fff07e2667146276ea10fd helper.sh: add bookmarks handler diff -r 33e0f5920655 -r 9b7c0f2bdaff lib/helper.sh --- a/lib/helper.sh Wed Mar 15 05:53:39 2017 +0200 +++ b/lib/helper.sh Thu Mar 16 00:20:44 2017 +0100 @@ -71,21 +71,46 @@ IFS="|" while read title url null; do echo "
  • $title
  • " - done < $bm_txt + done < ${bm_txt} unset IFS echo '' num=$(wc -l < $bm_txt) html_footer "$(printf "$(ngettext "%d bookmark" "%d bookmarks" "$num")" "$num") - $(date)" - } > $bm_html + } > ${bm_html} # Security fix from old cgi-bin bookmarks.cgi - chown $USER:$USER $bm_txt; chmod 0600 $bm_txt + chown $USER:$USER ${bm_txt}; chmod 0600 ${bm_txt} } -edit_bookmarks() { - yad --text-info \ - --center --width=640 --height=480 --filename=$bm_txt +# List all bookmarks +bookmarks_list() { + cat ${bm_txt} | while read title url; do + echo -e "$title\n$url" + done | yad --list \ + --title="$(gettext 'TazWeb Bookmarks')" \ + --text-align=center \ + --text="$(gettext 'Click on a value to edit - Right click to remove a bookmark')\n" \ + --mouse --width=640 --height=480 \ + --skip-taskbar \ + --window-icon=/usr/share/icons/hicolor/32x32/apps/tazweb.png \ + --editable --print-all \ + --tooltip-column=2 \ + --search-column=1 \ + --column="$(gettext 'Title')" \ + --column="$(gettext 'URL')" +} + +# Rebuilt bookmarks.txt since some entry may have been edited and remove +# selected (TRUE) entries. +bookmarks_handler() { + IFS="|" + bookmarks_list | while read title url null; do + echo "$title|$url" >> ${bm_txt}.tmp + done; unset IFS + if [ -f "${bm_txt}.tmp" ]; then + mv -f ${bm_txt}.tmp ${bm_txt} + fi } # Generate cookies.html (for direct view of cookies in TazWeb) @@ -97,27 +122,26 @@ IFS="|" while read line; do echo "${line#\#HttpOnly_}" - done < $cookies_txt + done < ${cookies_txt} unset IFS echo '' num=$(wc -l < $cookies_txt) html_footer "$(printf "$(ngettext "%d cookie" "%d cookies" "$num")" "$num") - $(date)" - } > $cookies_html + } > ${cookies_html} } clean_cookies() { - > $cookies_txt + rm ${cookies_txt}; touch ${cookies_txt} } - # # Execute any shell_function # case "$1" in *_*) - cmd=$1; shift; $cmd $@ ;; + cmd=${1}; shift; ${cmd} ${@} ;; *) grep "[a-z]_*()" $0 | awk '{print $1}' ;; diff -r 33e0f5920655 -r 9b7c0f2bdaff src/tazweb.c --- a/src/tazweb.c Wed Mar 15 05:53:39 2017 +0200 +++ b/src/tazweb.c Thu Mar 16 00:20:44 2017 +0100 @@ -169,7 +169,7 @@ static void bookmarks_edit_cb(GtkWidget* widget, WebKitWebView* webview) { - system("/usr/lib/tazweb/helper.sh edit_bookmarks"); + system("/usr/lib/tazweb/helper.sh bookmarks_handler &"); } static void @@ -489,12 +489,14 @@ /* Home button */ item = gtk_tool_button_new_from_stock(GTK_STOCK_HOME); + gtk_widget_set_tooltip_text(GTK_WIDGET(item), "Home page"); g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(go_home_cb), webview); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); /* Bookmark button */ item = gtk_tool_button_new_from_stock(GTK_STOCK_PROPERTIES); + gtk_widget_set_tooltip_text(GTK_WIDGET(item), "Bookmarks"); g_signal_connect(G_OBJECT(item), "clicked", G_CALLBACK(go_bookmarks_cb), webview); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1);