]> git.armaanb.net Git - chorizo.git/blobdiff - src/browser.c
Rename project to chorizo
[chorizo.git] / src / browser.c
index 05a05eab64b42891eb470ffa528b4a70f5aa7761..1d38e10fa408027e55413e7e9935b79e7dfeca90 100644 (file)
@@ -133,7 +133,8 @@ client_new(const gchar *uri, WebKitWebView *related_wv, gboolean show,
                c->web_view = webkit_web_view_new_with_related_view(related_wv);
 
        webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), cfg.global_zoom);
-       WebKitSettings *settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view));
+       WebKitSettings *settings =
+               webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view));
        webkit_settings_set_enable_javascript(settings, !cfg.javascript_disabled);
        g_signal_connect(G_OBJECT(c->web_view), "notify::favicon",
                                                                         G_CALLBACK(changed_favicon), c);
@@ -160,14 +161,14 @@ client_new(const gchar *uri, WebKitWebView *related_wv, gboolean show,
        g_signal_connect(G_OBJECT(c->web_view), "web-process-crashed",
                                                                         G_CALLBACK(crashed_web_view), c);
 
-       if (cfg.user_agent != NULL)
-               g_object_set(G_OBJECT(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view))),
-                                                                "user-agent", cfg.user_agent, NULL);
+       if (cfg.user_agent != NULL) {
+               g_object_set(settings, "user-agent", cfg.user_agent, NULL);
+       }
 
        if (cfg.enable_console_to_stdout)
-               webkit_settings_set_enable_write_console_messages_to_stdout(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view)), TRUE);
+               webkit_settings_set_enable_write_console_messages_to_stdout(settings, TRUE);
 
-       webkit_settings_set_enable_developer_extras(webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view)), TRUE);
+       webkit_settings_set_enable_developer_extras(settings, TRUE);
 
        c->location = gtk_entry_new();
        g_signal_connect(G_OBJECT(c->location), "key-press-event",
@@ -188,7 +189,8 @@ client_new(const gchar *uri, WebKitWebView *related_wv, gboolean show,
        gtk_box_pack_start(GTK_BOX(c->vbox), c->web_view, TRUE, TRUE, 0);
        gtk_container_set_focus_child(GTK_CONTAINER(c->vbox), c->web_view);
 
-       c->tabicon = gtk_image_new_from_icon_name("text-html", GTK_ICON_SIZE_SMALL_TOOLBAR);
+       c->tabicon = gtk_image_new_from_icon_name("text-html",
+                                                                                                                                                                               GTK_ICON_SIZE_SMALL_TOOLBAR);
 
        c->tablabel = gtk_label_new(__NAME__);
        gtk_label_set_ellipsize(GTK_LABEL(c->tablabel), PANGO_ELLIPSIZE_END);
@@ -212,15 +214,15 @@ client_new(const gchar *uri, WebKitWebView *related_wv, gboolean show,
                                                                         G_CALLBACK(key_tablabel), c);
 
        /* For easy access, store a reference to our label. */
-       g_object_set_data(G_OBJECT(evbox), "lariza-tab-label", c->tablabel);
+       g_object_set_data(G_OBJECT(evbox), "chorizo-tab-label", c->tablabel);
 
        /* This only shows the event box and the label inside, nothing else.
         * Needed because the evbox/label is "internal" to the notebook and
         * not part of the normal "widget tree" (IIUC). */
        gtk_widget_show_all(evbox);
 
-       gtk_notebook_insert_page(GTK_NOTEBOOK(mw.notebook), c->vbox, evbox,
-                                                                                                        gtk_notebook_get_current_page(GTK_NOTEBOOK(mw.notebook)) + 1);
+       int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(mw.notebook)) + 1;
+       gtk_notebook_insert_page(GTK_NOTEBOOK(mw.notebook), c->vbox, evbox, page);
        gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(mw.notebook), c->vbox, TRUE);
 
        if (show)
@@ -290,11 +292,9 @@ changed_load_progress(GObject *obj, GParamSpec *pspec, gpointer data)
                "');"
                "if (a.length == 0)"
                "    null;"
-               "else"
-               "{"
+               "else {"
                "    out = '';"
-               "    for (i = 0; i < a.length; i++)"
-               "    {"
+               "    for (i = 0; i < a.length; i++) {"
                "        url = encodeURIComponent(a[i].href);"
                "        if ('title' in a[i] && a[i].title != '')"
                "            title = encodeURIComponent(a[i].title);"
@@ -539,7 +539,7 @@ grab_feeds_finished(GObject *object, GAsyncResult *result, gpointer data)
        /* This was taken almost verbatim from the example in WebKit's
         * documentation:
         *
-        * https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html#webkit-web-view-run-javascript-finish */
+        * https://webkitgtk.org/reference/webkit2gtk/stable/WebKitWebView.html */
 
        js_result = webkit_web_view_run_javascript_finish(WEBKIT_WEB_VIEW(object),
                                                                                                                                                                                                                result, &err);
@@ -576,8 +576,8 @@ grab_feeds_finished(GObject *object, GAsyncResult *result, gpointer data)
 }
 
 void
-hover_web_view(WebKitWebView *web_view, WebKitHitTestResult *ht, guint modifiers,
-                                                        gpointer data)
+hover_web_view(WebKitWebView *web_view, WebKitHitTestResult *ht,
+                                                        guint modifiers, gpointer data)
 {
        struct Client *c = (struct Client *)data;
        const char *to_show;
@@ -653,8 +653,8 @@ init_default_web_context(void)
        webkit_web_context_add_path_to_sandbox(wc, p, TRUE);
        g_free(p);
 
-       webkit_web_context_set_process_model(wc,
-                                                                                                                                                        WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES);
+       WebKitProcessModel model = WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES;
+       webkit_web_context_set_process_model(wc, model);
 
        p = g_build_filename(g_get_user_data_dir(), __NAME__, "web_extensions",
                                                                                         NULL);
@@ -673,13 +673,11 @@ init_default_web_context(void)
        webkit_cookie_manager_set_accept_policy(cm, cfg.cookie_policy);
 
        webkit_web_context_set_favicon_database_directory(wc, NULL);
-       webkit_cookie_manager_set_persistent_storage(cm,
-                                                                                                                                                                                        g_build_filename("/",
-                                                                                                                                                                                                                                                               g_get_user_cache_dir(),
-                                                                                                                                                                                                                                                               __NAME__,
-                                                                                                                                                                                                                                                               "cookies.db",
-                                                                                                                                                                                                                                                               NULL),
-                                                                                                                                                                                        WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE);
+       gchar *fname = g_build_filename("/", g_get_user_cache_dir(), __NAME__,
+                                                                                                                                       "cookies.db", NULL);
+
+       WebKitCookiePersistentStorage type = WEBKIT_COOKIE_PERSISTENT_STORAGE_SQLITE;
+       webkit_cookie_manager_set_persistent_storage(cm, fname, type);
 
        const gchar * const languages[2] = {(const gchar *)cfg.spellcheck_language,
                NULL};
@@ -746,7 +744,8 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
 
        if (event->type == GDK_KEY_PRESS) {
                if (((GdkEventKey *)event)->state & GDK_CONTROL_MASK) {
-                       WebKitSettings *settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view));
+                       WebKitSettings *settings =
+                               webkit_web_view_get_settings(WEBKIT_WEB_VIEW(c->web_view));
                        gboolean js = webkit_settings_get_enable_javascript(settings);
                        int key = ((GdkEventKey *)event)->keyval;
                        if (def_key("download_manager", GDK_KEY_y) == key) {
@@ -766,14 +765,17 @@ key_common(GtkWidget *widget, GdkEvent *event, gpointer data)
                                gtk_editable_set_position(GTK_EDITABLE(c->location), -1);
                                return TRUE;
                        } else if (def_key("print", GDK_KEY_Print) == key) {
-                               webkit_print_operation_run_dialog(webkit_print_operation_new(WEBKIT_WEB_VIEW(c->web_view)),
-                                                                                                                                                                       GTK_WINDOW(gtk_widget_get_toplevel(mw.win)));
+                               WebKitPrintOperation *operation =
+                                       webkit_print_operation_new(WEBKIT_WEB_VIEW(c->web_view));
+                               GtkWidget *toplevel = gtk_widget_get_toplevel(mw.win);
+                               webkit_print_operation_run_dialog(operation, GTK_WINDOW(toplevel));
                                return TRUE;
                        } else if (def_key("quit", GDK_KEY_g) == key) {
                                search(c, 2);
                                gtk_widget_grab_focus(c->web_view);
-                               gtk_entry_set_text(GTK_ENTRY(c->location),
-                                                                                                        webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view)));
+                               const gchar *uri =
+                                       webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view));
+                               gtk_entry_set_text(GTK_ENTRY(c->location), uri);
                                webkit_web_view_run_javascript(WEBKIT_WEB_VIEW(c->web_view),
                                                                                                                                                         "window.getSelection().removeAllRanges();"
                                                                                                                                                         "document.activeElement.blur();",
@@ -1023,7 +1025,7 @@ mainwindow_title(gint idx)
                return;
 
        widg = gtk_notebook_get_tab_label(GTK_NOTEBOOK(mw.notebook), child);
-       tablabel = (GtkWidget *)g_object_get_data(G_OBJECT(widg), "lariza-tab-label");
+       tablabel = (GtkWidget *)g_object_get_data(G_OBJECT(widg), "chorizo-tab-label");
        text = gtk_label_get_text(GTK_LABEL(tablabel));
        gtk_window_set_title(GTK_WINDOW(mw.win), text);
 }
@@ -1143,18 +1145,17 @@ GKeyFile *
 get_ini(void)
 {
        GKeyFileFlags flags = G_KEY_FILE_NONE;
-       g_autoptr(GError) error = NULL;
        config = g_key_file_new();
 
        // Load user config
        if (!g_key_file_load_from_file(config,
                                                                                                                                 g_build_filename(g_get_user_config_dir(),
-                                                                                                                                                                                                       __NAME__, "lariza.ini",
-                                                                                                                                                                                                       NULL), flags, &error)) {
+                                                                                                                                                                                                       __NAME__, "chorizo.ini",
+                                                                                                                                                                                                       NULL), flags, NULL)) {
                // Load global config
-               if (!g_key_file_load_from_file(config, "/etc/lariza.ini", flags,
-                                                                                                                                        &error)) {
-                       fprintf(stderr, "Could not load lariza.ini: %s", error->message);
+               if (!g_key_file_load_from_file(config, "/etc/chorizo.ini", flags,
+                                                                                                                                        NULL)) {
+                       fprintf(stderr, "Could not load chorizo.ini");
                }
        }
        return config;
@@ -1165,20 +1166,23 @@ main(int argc, char **argv)
 {
        int opt, i;
 
-       gtk_init(&argc, &argv);
-       get_config();
-
-       while ((opt = getopt(argc, argv, "C")) != -1) {
+       while ((opt = getopt(argc, argv, "Cv")) != -1) {
                switch (opt) {
                case 'C':
                        cfg.cooperative_instances = FALSE;
                        break;
+               case 'v':
+                       printf("%s %s\n", __NAME__, VERSION);
+                       exit(0);
                default:
                        fprintf(stderr, "Usage: "__NAME__" [OPTION]... [URI]...\n");
                        exit(EXIT_FAILURE);
                }
        }
 
+       gtk_init(&argc, &argv);
+       get_config();
+
        if (cfg.cooperative_instances)
                cooperation_setup();