Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitabb47b4c0faf2eadcdce62c285fea8af7edd8894 (patch)
Author
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2019-11-02 22:01:00 +0100
Committer
 Haelwenn (lanodan) Monnier <contact@hacktivis.me>
2020-08-22 08:42:57 +0200
Files169106ed05c388f6b29f40b0b872ef362ebcc6ba
goodwolf-abb47b4c0faf2eadcdce62c285fea8af7edd8894.tar
goodwolf-abb47b4c0faf2eadcdce62c285fea8af7edd8894.tar.gz
goodwolf-abb47b4c0faf2eadcdce62c285fea8af7edd8894.zip
Parentb6e995810f9cba4dac83d57643a5f9698699cbad (diff)
Add completion
5 files changed, 56 insertions, 2 deletions
-rw-r--r--Makefile4
-rw-r--r--badwolf.12
-rw-r--r--badwolf.c4
-rw-r--r--bookmarks.c45
-rw-r--r--bookmarks.h3
diff --git a/Makefile b/Makefile
index a136a28..8ba3003 100644
--- a/Makefile
+++ b/Makefile
@@ -25,8 +25,8 @@ INKSCAPE ?= inkscape
ICON_SIZES = icons/hicolor/24x24/apps/badwolf.png icons/hicolor/32x32/apps/badwolf.png icons/hicolor/48x48/apps/badwolf.png icons/hicolor/64x64/apps/badwolf.png icons/hicolor/128x128/apps/badwolf.png icons/hicolor/256x256/apps/badwolf.png
DEPS = gtk+-3.0 webkit2gtk-4.0 libsoup-2.4
-SRCS = uri.c uri_test.c keybindings.c downloads.c badwolf.c
-OBJS = uri.o keybindings.o downloads.o badwolf.o
+SRCS = bookmarks.c uri.c uri_test.c keybindings.c downloads.c badwolf.c
+OBJS = bookmarks.o uri.o keybindings.o downloads.o badwolf.o
OBJS_test = uri_test.o
EXE = badwolf
EXE_test = uri_test
diff --git a/badwolf.1 b/badwolf.1
index d1bda3e..96a20d3 100644
--- a/badwolf.1
+++ b/badwolf.1
@@ -75,6 +75,8 @@ A more generic variable name is also intended to be used in the future.
.El
.Sh FILES
.Bl -tag -width Ds -compact
+.It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/URLs.txt
+File containing a URL on each line. [UNSTABLE]
.It Pa ${XDG_DATA_HOME:-$HOME/.local/share}/badwolf/webkit-web-extensions/
Directory containing the
.Lk https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebExtension.html WebKitWebExtensions
diff --git a/badwolf.c b/badwolf.c
index d0b337a..bf4916b 100644
--- a/badwolf.c
+++ b/badwolf.c
@@ -6,6 +6,7 @@
#include "config.h"
#include "downloads.h"
+#include "bookmarks.h"
#include "keybindings.h"
#include "uri.h"
@@ -738,6 +739,7 @@ new_browser(struct Window *window, const gchar *target_url, struct Client *old_b
gtk_entry_set_text(GTK_ENTRY(browser->location), target_url);
gtk_entry_set_input_purpose(GTK_ENTRY(browser->location), GTK_INPUT_PURPOSE_URL);
+ gtk_entry_set_completion(GTK_ENTRY(browser->location), location_completion);
gtk_entry_set_placeholder_text(GTK_ENTRY(browser->search), _("search in current page"));
@@ -930,6 +932,8 @@ main(int argc, char *argv[])
g_build_filename(g_get_user_data_dir(), "badwolf", "webkit-web-extension", NULL);
fprintf(stderr, _("webkit-web-extension directory set to: %s\n"), web_extensions_directory);
+ location_completion_init();
+
window->main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
window->notebook = gtk_notebook_new();
window->new_tab = gtk_button_new_from_icon_name("tab-new-symbolic", GTK_ICON_SIZE_SMALL_TOOLBAR);
diff --git a/bookmarks.c b/bookmarks.c
new file mode 100644
index 0000000..f43ed46
--- /dev/null
+++ b/bookmarks.c
@@ -0,0 +1,45 @@
+#include "badwolf.h"
+#include "bookmarks.h"
+
+#include <gtk/gtk.h>
+#include <glib/gprintf.h> /* g_fprintf() */
+
+void
+location_completion_init()
+{
+ GtkTreeIter iter;
+ GtkListStore *list_store;
+ GIOChannel *file_channel;
+ GError *file_err = NULL;
+ gchar *file_line;
+
+ location_completion = gtk_entry_completion_new();
+
+ list_store = gtk_list_store_new(1, G_TYPE_STRING);
+
+ gchar *filename = g_build_filename(g_get_user_data_dir(), "badwolf", "URLs.txt", NULL);
+ g_fprintf(stderr, "URL Completion: loading at %s\n", filename);
+ file_channel = g_io_channel_new_file(filename, "r", &file_err);
+
+ if(file_channel != NULL)
+ {
+ while(G_IO_STATUS_NORMAL ==
+ g_io_channel_read_line(file_channel, &file_line, NULL, NULL, &file_err))
+ {
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set(list_store, &iter, 0, g_strchomp(file_line), -1);
+ }
+ g_free(file_line);
+ g_io_channel_unref(file_channel);
+ //g_io_channel_shutdown(file_channel, FALSE, &file_err);
+ g_fprintf(stderr, "URL Completion: Done.\n");
+ }
+ else
+ g_fprintf(stderr, "URL Completion: Failed to load file.\n");
+
+ gtk_list_store_append(list_store, &iter);
+ gtk_list_store_set(list_store, &iter, 0, homepage, -1);
+
+ gtk_entry_completion_set_model(location_completion, GTK_TREE_MODEL(list_store));
+ gtk_entry_completion_set_text_column(location_completion, 0);
+}
diff --git a/bookmarks.h b/bookmarks.h
new file mode 100644
index 0000000..2e44eb3
--- /dev/null
+++ b/bookmarks.h
@@ -0,0 +1,3 @@
+#include <gtk/gtk.h>
+GtkEntryCompletion *location_completion;
+void location_completion_init();