# List of source files containing translatable strings.
midori.desktop.in
-src/conf.c
src/helpers.c
src/main.c
src/midori-console.c
webSearch.c webSearch.h \
helpers.c helpers.h \
sokoke.c sokoke.h \
- conf.c conf.h \
search.c search.h \
global.h \
ui.h \
+++ /dev/null
-/*
- Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#include "conf.h"
-
-#include "sokoke.h"
-
-#include <glib.h>
-#include <stdio.h>
-#include <string.h>
-
-CConfig* config_new(void)
-{
- return g_new0(CConfig, 1);
-}
-
-void config_free(CConfig* config)
-{
- g_free(config->homepage);
- g_free(config->locationSearch);
- g_free(config->panelPageholder);
- g_free(config);
-}
-
-gboolean config_from_file(CConfig* config, const gchar* filename, GError** error)
-{
- GKeyFile* keyFile = g_key_file_new();
- g_key_file_load_from_file(keyFile, filename, G_KEY_FILE_KEEP_COMMENTS, error);
-
- #define GET_INT(var, key, default) \
- var = sokoke_key_file_get_integer_default( \
- keyFile, "session", key, default, NULL)
- #define GET_STR(var, key, default) \
- var = sokoke_key_file_get_string_default( \
- keyFile, "session", key, default, NULL)
- GET_INT(config->rememberWinSize, "RememberWinSize", TRUE);
- GET_INT(config->winWidth, "WinWidth", 0);
- GET_INT(config->winHeight, "WinHeight", 0);
- GET_INT(config->winPanelPos, "WinPanelPos", 0);
- GET_INT(config->searchEngine, "SearchEngine", 0);
- #undef GET_INT
- #undef GET_STR
-
- g_key_file_free(keyFile);
- return !(error && *error);
-}
-
-gboolean config_to_file(CConfig* config, const gchar* filename, GError** error)
-{
- GKeyFile* keyFile = g_key_file_new();
-
- g_key_file_set_integer(keyFile, "session", "RememberWinSize", config->rememberWinSize);
- g_key_file_set_integer(keyFile, "session", "WinWidth", config->winWidth);
- g_key_file_set_integer(keyFile, "session", "WinHeight", config->winHeight);
- g_key_file_set_integer(keyFile, "session", "WinPanelPos", config->winPanelPos);
- g_key_file_set_integer(keyFile, "session", "SearchEngine", config->searchEngine);
-
- gboolean saved = sokoke_key_file_save_to_file(keyFile, filename, error);
- g_key_file_free(keyFile);
-
- return saved;
-}
+++ /dev/null
-/*
- Copyright (C) 2007-2008 Christian Dywan <christian@twotoasts.de>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- See the file COPYING for the full license text.
-*/
-
-#ifndef __CONF_H__
-#define __CONF_H__ 1
-
-#include <glib.h>
-
-typedef struct _CConfig
-{
- guint startup;
- gchar* homepage;
- gchar* locationSearch;
- gboolean toolbarNavigation;
- gboolean toolbarBookmarks;
- //gboolean toolbarDownloads;
- gboolean toolbarStatus;
- guint toolbarStyle;
- gboolean toolbarSmall;
- gboolean panelShow;
- guint panelActive;
- gchar* panelPageholder;
- guint tabSize; // tab size in charcters
- gboolean tabClose;
- gboolean toolbarWebSearch;
- gboolean toolbarNewTab;
- gboolean toolbarClosedTabs;
- guint newPages; // where to open new pages
- gboolean openTabsInTheBackground;
- gboolean openPopupsInTabs;
- gboolean middleClickGoto;
-
- gchar* defaultFontFamily;
- guint defaultFontSize;
- guint minimumFontSize;
- gchar* defaultEncoding;
- gboolean autoLoadImages;
- gboolean autoShrinkImages;
- gboolean printBackgrounds;
- gboolean resizableTextAreas;
- gboolean userStylesheet;
- gchar* userStylesheetUri;
- gboolean enableScripts;
- gboolean enablePlugins;
-
- gboolean rememberWinSize; // Restore window size upon startup?
- gint winWidth;
- gint winHeight;
- guint winPanelPos;
- guint searchEngine; // last selected search engine
-} CConfig;
-
-enum
-{
- CONFIG_STARTUP_BLANK,
- CONFIG_STARTUP_HOMEPAGE,
- CONFIG_STARTUP_SESSION
-};
-
-enum
-{
- CONFIG_TOOLBAR_DEFAULT,
- CONFIG_TOOLBAR_ICONS,
- CONFIG_TOOLBAR_TEXT,
- CONFIG_TOOLBAR_BOTH,
- CONFIG_TOOLBAR_BOTH_HORIZ
-};
-
-enum
-{
- CONFIG_NEWPAGES_TAB_NEW,
- CONFIG_NEWPAGES_WINDOW_NEW,
- CONFIG_NEWPAGES_TAB_CURRENT
-};
-
-CConfig*
-config_new(void);
-
-void
-config_free(CConfig*);
-
-gboolean
-config_from_file(CConfig*, const gchar*, GError**);
-
-gboolean
-config_to_file(CConfig*, const gchar*, GError**);
-
-#endif /* !__CONF_H__ */
#ifndef __GLOBAL_H__
#define __GLOBAL_H__ 1
-#include "conf.h"
-
#include "midori-websettings.h"
#include <katze/katze.h>
GList* searchEngines; // Items of type 'SearchEngine'
KatzeXbelItem* bookmarks;
-CConfig* config;
-MidoriWebSettings* webSettings;
// Custom stock items
//g_strfreev(sParts);
// We only have a word or there is no matching keyowrd, so search for it
if(searchUrl == NULL)
- g_snprintf(search, 255, config->locationSearch, uri);
+ g_snprintf(search, 255, ""/*config->locationSearch*/, uri);
return g_strdup(search);
}
return g_strdup(uri);
g_object_get(gtksettings, "gtk-font-name", &defaultFont, NULL);
return defaultFont;
}
-
-GtkToolbarStyle config_to_toolbarstyle(guint toolbarStyle)
-{
- switch(toolbarStyle)
- {
- case CONFIG_TOOLBAR_ICONS:
- return GTK_TOOLBAR_ICONS;
- case CONFIG_TOOLBAR_TEXT:
- return GTK_TOOLBAR_TEXT;
- case CONFIG_TOOLBAR_BOTH:
- return GTK_TOOLBAR_BOTH;
- case CONFIG_TOOLBAR_BOTH_HORIZ:
- return GTK_TOOLBAR_BOTH_HORIZ;
- }
- GtkSettings* gtkSettings = gtk_settings_get_default();
- g_object_get(gtkSettings, "gtk-toolbar-style", &toolbarStyle, NULL);
- return toolbarStyle;
-}
-
-GtkToolbarStyle config_to_toolbariconsize(gboolean toolbarSmall)
-{
- return toolbarSmall ? GTK_ICON_SIZE_SMALL_TOOLBAR
- : GTK_ICON_SIZE_LARGE_TOOLBAR;
-}
gchar*
get_default_font(void);
-GtkToolbarStyle
-config_to_toolbarstyle();
-
-GtkToolbarStyle
-config_to_toolbariconsize(gboolean);
-
#endif /* !__HELPERS_H__ */
int main(int argc, char** argv)
{
+ MidoriStartup load_on_startup;
+ gchar* homepage;
+
locale_init();
g_set_application_name(_("midori"));
GOptionEntry entries[] =
{
{ "version", 'v', 0, G_OPTION_ARG_NONE, &version,
- N_("Display program version"), NULL }
+ N_("Display program version"), NULL },
+ { NULL }
};
GError* error = NULL;
gchar* config_file = g_build_filename (config_path, "config", NULL);
error = NULL;
MidoriWebSettings* settings = settings_new_from_file (config_file);
- webSettings = settings;
katze_assign (config_file, g_build_filename (config_path, "accels", NULL));
gtk_accel_map_load (config_file);
katze_assign (config_file, g_build_filename (config_path, "search", NULL));
g_error_free (error);
}
g_free (config_file);
- KatzeXbelItem* _session = katze_xbel_folder_new();
- config = config_new ();
- if(config->startup == CONFIG_STARTUP_SESSION)
+ KatzeXbelItem* _session = katze_xbel_folder_new ();
+ g_object_get (settings, "load-on-startup", &load_on_startup, NULL);
+ if (load_on_startup == MIDORI_STARTUP_LAST_OPEN_PAGES)
{
config_file = g_build_filename (config_path, "session.xbel", NULL);
error = NULL;
, NULL);
if(gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_ACCEPT)
{
- config_free(config);
search_engines_free(searchEngines);
katze_xbel_item_unref(bookmarks);
katze_xbel_item_unref(_session);
}
g_free(uri);
- if(katze_xbel_folder_is_empty(_session))
+ if (katze_xbel_folder_is_empty (_session))
{
- KatzeXbelItem* item = katze_xbel_bookmark_new();
- if(config->startup == CONFIG_STARTUP_BLANK)
- katze_xbel_bookmark_set_href(item, "");
+ KatzeXbelItem* item = katze_xbel_bookmark_new ();
+ if (load_on_startup == MIDORI_STARTUP_BLANK)
+ katze_xbel_bookmark_set_href (item, "");
else
- katze_xbel_bookmark_set_href(item, config->homepage);
- katze_xbel_folder_prepend_item(_session, item);
+ {
+ g_object_get (settings, "homepage", &homepage, NULL);
+ katze_xbel_bookmark_set_href (item, homepage);
+ g_free (homepage);
+ }
+ katze_xbel_folder_prepend_item (_session, item);
}
g_free (config_path);
g_error_free (error);
}
katze_xbel_item_unref (xbel_trash);
- if(config->startup == CONFIG_STARTUP_SESSION)
+ g_object_get (settings, "load-on-startup", &load_on_startup, NULL);
+ if(load_on_startup == MIDORI_STARTUP_LAST_OPEN_PAGES)
{
katze_assign (config_file, g_build_filename (config_path,
"session.xbel", NULL));
g_warning ("The configuration couldn't be saved. %s", error->message);
g_error_free (error);
}
- config_free (config);
katze_assign (config_file, g_build_filename (config_path, "accels", NULL));
gtk_accel_map_save (config_file);
g_free (config_file);
#include "midori-browser.h"
#include "global.h"
-#include "conf.h"
#include "helpers.h"
#include "webSearch.h"
#include "prefs.h"
#include "midori-console.h"
#include "midori-trash.h"
+#include <glib/gi18n.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <libsexy/sexy.h>
{
MidoriBrowserPrivate* priv = browser->priv;
- if (config->toolbarStyle == CONFIG_TOOLBAR_DEFAULT)
+ MidoriToolbarStyle toolbar_style;
+ GtkToolbarStyle gtk_toolbar_style;
+
+ g_object_get (priv->settings, "toolbar-style", &toolbar_style, NULL);
+ if (toolbar_style == MIDORI_TOOLBAR_DEFAULT)
{
- gtk_toolbar_set_style (GTK_TOOLBAR(priv->navigationbar),
- config_to_toolbarstyle (config->toolbarStyle));
+ g_object_get (priv->settings,
+ "gtk-toolbar-style", >k_toolbar_style, NULL);
+ gtk_toolbar_set_style (GTK_TOOLBAR (priv->navigationbar),
+ gtk_toolbar_style);
}
}
{
MidoriBrowserPrivate* priv = browser->priv;
- config->toolbarNavigation = gtk_toggle_action_get_active (action);
- sokoke_widget_set_visible (priv->navigationbar, config->toolbarNavigation);
+ gboolean active = gtk_toggle_action_get_active (action);
+ g_object_set (priv->settings, "show-navigationbar", active, NULL);
+ sokoke_widget_set_visible (priv->navigationbar, active);
}
static void
{
MidoriBrowserPrivate* priv = browser->priv;
- config->toolbarBookmarks = gtk_toggle_action_get_active (action);
- sokoke_widget_set_visible (priv->bookmarkbar, config->toolbarBookmarks);
+ gboolean active = gtk_toggle_action_get_active (action);
+ g_object_set (priv->settings, "show-bookmarkbar", active, NULL);
+ sokoke_widget_set_visible (priv->bookmarkbar, active);
}
static void
{
MidoriBrowserPrivate* priv = browser->priv;
- config->toolbarStatus = gtk_toggle_action_get_active (action);
- sokoke_widget_set_visible (priv->statusbar, config->toolbarStatus);
+ gboolean active = gtk_toggle_action_get_active (action);
+ g_object_set (priv->settings, "show-statusbar", active, NULL);
+ sokoke_widget_set_visible (priv->statusbar, active);
}
static void
_action_home_activate (GtkAction* action,
MidoriBrowser* browser)
{
+ MidoriBrowserPrivate* priv = browser->priv;
+
+ gchar* homepage;
+
GtkWidget* web_view = midori_browser_get_current_web_view (browser);
- g_object_set (web_view, "uri", config->homepage, NULL);
+ g_object_get (priv->settings, "homepage", &homepage, NULL);
+ g_object_set (web_view, "uri", homepage, NULL);
+ g_free (homepage);
}
static gboolean
{
MidoriBrowserPrivate* priv = browser->priv;
- config->panelShow = gtk_toggle_action_get_active (action);
- sokoke_widget_set_visible (priv->panel, config->panelShow);
+ gboolean active = gtk_toggle_action_get_active (action);
+ g_object_set (priv->settings, "show-panel", active, NULL);
+ sokoke_widget_set_visible (priv->panel, active);
}
static void
GtkWidget* web_view = midori_browser_get_current_web_view (browser);
const gchar* uri = midori_web_view_get_display_uri (MIDORI_WEB_VIEW (web_view));
- katze_assign (config->panelPageholder, g_strdup (uri));
+ // FIXME: Don't assign the uri here, update it properly while navigating
+ g_object_set (priv->settings, "last-pageholder-uri", uri, NULL);
gint n = midori_panel_page_num (MIDORI_PANEL (priv->panel),
priv->panel_pageholder);
midori_panel_set_current_page (MIDORI_PANEL (priv->panel), n);
gtk_widget_show (priv->panel);
- g_object_set (priv->panel_pageholder, "uri", config->panelPageholder, NULL);
+ g_object_set (priv->panel_pageholder, "uri", uri, NULL);
}
GParamSpec* arg1,
MidoriBrowser* browser)
{
- config->winPanelPos = gtk_paned_get_position (GTK_PANED (object));
+ MidoriBrowserPrivate* priv = browser->priv;
+
+ gboolean position = gtk_paned_get_position (GTK_PANED (object));
+ g_object_set (priv->settings, "last-panel-position", position, NULL);
}
static gboolean
midori_browser_size_allocate_cb (MidoriBrowser* browser,
GtkAllocation* allocation)
{
+ MidoriBrowserPrivate* priv = browser->priv;
GtkWidget* widget = GTK_WIDGET (browser);
if (GTK_WIDGET_REALIZED (widget))
GdkWindowState state = gdk_window_get_state (widget->window);
if (!(state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN)))
{
- config->winWidth = allocation->width;
- config->winHeight = allocation->height;
+ g_object_set (priv->settings,
+ "last-window-width", allocation->width,
+ "last-window-height", allocation->height, NULL);
}
}
}
// Setup the window metrics
g_signal_connect (browser, "window-state-event",
G_CALLBACK (midori_browser_window_state_event_cb), NULL);
- GdkScreen* screen = gtk_window_get_screen (GTK_WINDOW (browser));
- const gint default_width = (gint)gdk_screen_get_width (screen) / 1.7;
- const gint default_height = (gint)gdk_screen_get_height (screen) / 1.7;
- if (config->rememberWinSize)
- {
- if (!config->winWidth && !config->winHeight)
- {
- config->winWidth = default_width;
- config->winHeight = default_width;
- }
- gtk_window_set_default_size (GTK_WINDOW (browser),
- config->winWidth, config->winHeight);
- }
- else
- gtk_window_set_default_size (GTK_WINDOW(browser),
- default_width, default_height);
g_signal_connect (browser, "size-allocate",
G_CALLBACK (midori_browser_size_allocate_cb), NULL);
// FIXME: Use custom program icon
// Create the navigationbar
priv->navigationbar = gtk_ui_manager_get_widget (
ui_manager, "/toolbar_navigation");
- gtk_toolbar_set_style (GTK_TOOLBAR (priv->navigationbar),
- config_to_toolbarstyle (config->toolbarStyle));
- GtkSettings* gtk_settings = gtk_widget_get_settings (priv->navigationbar);
- g_signal_connect (gtk_settings, "notify::gtk-toolbar-style",
- G_CALLBACK (midori_browser_navigationbar_notify_style_cb),
- browser);
- gtk_toolbar_set_icon_size (GTK_TOOLBAR (priv->navigationbar),
- config_to_toolbariconsize (config->toolbarSmall));
+ // FIXME: settings should be connected with screen changes
+ GtkSettings* gtk_settings = gtk_widget_get_settings (GTK_WIDGET (browser));
+ if (gtk_settings)
+ g_signal_connect (gtk_settings, "notify::gtk-toolbar-style",
+ G_CALLBACK (midori_browser_navigationbar_notify_style_cb), browser);
gtk_toolbar_set_show_arrow (GTK_TOOLBAR (priv->navigationbar), TRUE);
gtk_box_pack_start (GTK_BOX (vbox), priv->navigationbar, FALSE, FALSE, 0);
priv->button_tab_new = gtk_ui_manager_get_widget (
// FIXME: The interface is somewhat awkward and ought to be rethought
// TODO: Display "show in context menu" search engines as "completion actions"
entry_setup_completion (GTK_ENTRY (priv->search));
- update_searchEngine (config->searchEngine, priv->search);
g_object_connect (priv->search,
"signal::icon-released",
on_webSearch_icon_released, browser,
G_CALLBACK (_action_fullscreen_activate), browser);
gtk_toolbar_insert (GTK_TOOLBAR (priv->navigationbar),
GTK_TOOL_ITEM (priv->button_fullscreen), -1);
- _action_set_active (browser, "Navigationbar", config->toolbarNavigation);
// Bookmarkbar
priv->bookmarkbar = gtk_toolbar_new ();
}
sokoke_container_show_children (GTK_CONTAINER (priv->bookmarkbar));
gtk_box_pack_start (GTK_BOX (vbox), priv->bookmarkbar, FALSE, FALSE, 0);
- _action_set_active (browser, "Bookmarkbar", config->toolbarBookmarks);
// Superuser warning
GtkWidget* hbox;
// Create the panel
GtkWidget* hpaned = gtk_hpaned_new ();
- gtk_paned_set_position (GTK_PANED (hpaned), config->winPanelPos);
g_signal_connect (hpaned, "notify::position",
G_CALLBACK (midori_panel_notify_position_cb),
browser);
g_signal_connect (priv->panel, "close",
G_CALLBACK (midori_panel_close_cb), browser);
gtk_paned_pack1 (GTK_PANED (hpaned), priv->panel, FALSE, FALSE);
- sokoke_widget_set_visible (priv->panel, config->panelShow);
- _action_set_active (browser, "Panel", config->panelShow);
// Bookmarks
GtkWidget* box = gtk_vbox_new (FALSE, 0);
// Pageholder
priv->panel_pageholder = g_object_new (MIDORI_TYPE_WEB_VIEW,
- "uri", config->panelPageholder,
+ "uri", "",
NULL);
gtk_widget_show (priv->panel_pageholder);
midori_panel_append_page (MIDORI_PANEL (priv->panel),
priv->panel_pageholder,
GTK_STOCK_CONVERT, _("Pageholder"));
- midori_panel_set_current_page (MIDORI_PANEL (priv->panel),
- config->panelActive);
- sokoke_widget_set_visible (priv->panel, config->panelShow);
-
// Notebook, containing all web_views
priv->notebook = gtk_notebook_new ();
gtk_notebook_set_scrollable (GTK_NOTEBOOK (priv->notebook), TRUE);
gtk_widget_set_size_request (priv->progressbar, -1, 1);
gtk_box_pack_start (GTK_BOX (priv->statusbar), priv->progressbar,
FALSE, FALSE, 3);
- _action_set_active (browser, "Statusbar", config->toolbarStatus);
g_object_unref (ui_manager);
-
- sokoke_widget_set_visible (priv->button_tab_new, config->toolbarNewTab);
- sokoke_widget_set_visible (priv->search, config->toolbarWebSearch);
- sokoke_widget_set_visible (priv->button_trash, config->toolbarClosedTabs);
}
static void
G_OBJECT_CLASS (midori_browser_parent_class)->finalize (object);
}
+static void
+_midori_browser_update_settings (MidoriBrowser* browser)
+{
+ MidoriBrowserPrivate* priv = browser->priv;
+
+ gboolean remember_last_window_size;
+ gint last_window_width, last_window_height;
+ gint last_panel_position, last_panel_page;
+ gboolean show_navigationbar, show_bookmarkbar, show_panel, show_statusbar;
+ gboolean small_toolbar, show_new_tab, show_web_search, show_trash;
+ MidoriToolbarStyle toolbar_style;
+ gint last_web_search;
+ gchar* last_pageholder_uri;
+ g_object_get (priv->settings,
+ "remember-last-window-size", &remember_last_window_size,
+ "last-window-width", &last_window_width,
+ "last-window-height", &last_window_height,
+ "last-panel-position", &last_panel_position,
+ "last-panel-page", &last_panel_page,
+ "show-navigationbar", &show_navigationbar,
+ "show-bookmarkbar", &show_bookmarkbar,
+ "show-panel", &show_panel,
+ "show-statusbar", &show_statusbar,
+ "small-toolbar", &small_toolbar,
+ "show-new-tab", &show_new_tab,
+ "show-web-search", &show_web_search,
+ "show-trash", &show_trash,
+ "toolbar-style", &toolbar_style,
+ "last-web-search", &last_web_search,
+ "last-pageholder-uri", &last_pageholder_uri,
+ NULL);
+
+ GdkScreen* screen = gtk_window_get_screen (GTK_WINDOW (browser));
+ const gint default_width = (gint)gdk_screen_get_width (screen) / 1.7;
+ const gint default_height = (gint)gdk_screen_get_height (screen) / 1.7;
+
+ if (remember_last_window_size)
+ {
+ if (last_window_width && last_window_height)
+ gtk_window_set_default_size (GTK_WINDOW (browser),
+ last_window_width, last_window_height);
+ else
+ gtk_window_set_default_size (GTK_WINDOW (browser),
+ default_width, default_height);
+ }
+
+ GtkToolbarStyle gtk_toolbar_style;
+ GtkSettings* gtk_settings = gtk_widget_get_settings (GTK_WIDGET (browser));
+ if (toolbar_style == MIDORI_TOOLBAR_DEFAULT && gtk_settings)
+ g_object_get (gtk_settings, "gtk-toolbar-style", >k_toolbar_style, NULL);
+ else
+ {
+ switch (toolbar_style)
+ {
+ case MIDORI_TOOLBAR_ICONS:
+ gtk_toolbar_style = GTK_TOOLBAR_ICONS;
+ break;
+ case MIDORI_TOOLBAR_TEXT:
+ gtk_toolbar_style = GTK_TOOLBAR_TEXT;
+ break;
+ case MIDORI_TOOLBAR_BOTH:
+ gtk_toolbar_style = GTK_TOOLBAR_BOTH;
+ break;
+ case MIDORI_TOOLBAR_BOTH_HORIZ:
+ case MIDORI_TOOLBAR_DEFAULT:
+ gtk_toolbar_style = GTK_TOOLBAR_BOTH_HORIZ;
+ }
+ }
+ gtk_toolbar_set_style (GTK_TOOLBAR (priv->navigationbar),
+ gtk_toolbar_style);
+ gtk_toolbar_set_icon_size (GTK_TOOLBAR (priv->navigationbar),
+ small_toolbar ? GTK_ICON_SIZE_SMALL_TOOLBAR
+ : GTK_ICON_SIZE_LARGE_TOOLBAR);
+
+ update_searchEngine (last_web_search, priv->search);
+
+ gtk_paned_set_position (GTK_PANED (gtk_widget_get_parent (priv->panel)),
+ last_panel_position);
+ midori_panel_set_current_page (MIDORI_PANEL (priv->panel), last_panel_page);
+ g_object_set (priv->panel_pageholder, "uri", last_pageholder_uri, NULL);
+
+ _action_set_active (browser, "Navigationbar", show_navigationbar);
+ _action_set_active (browser, "Bookmarkbar", show_bookmarkbar);
+ _action_set_active (browser, "Panel", show_panel);
+ _action_set_active (browser, "Statusbar", show_statusbar);
+
+ sokoke_widget_set_visible (priv->button_tab_new, show_new_tab);
+ sokoke_widget_set_visible (priv->search, show_web_search);
+ sokoke_widget_set_visible (priv->button_trash, show_trash);
+
+ g_free (last_pageholder_uri);
+}
+
static void
midori_browser_set_property (GObject* object,
guint prop_id,
case PROP_SETTINGS:
katze_object_assign (priv->settings, g_value_get_object (value));
g_object_ref (priv->settings);
+ _midori_browser_update_settings (browser);
gtk_container_foreach (GTK_CONTAINER (priv->notebook),
(GtkCallback) midori_web_view_set_settings,
priv->settings);
_midori_browser_update_actions (browser);
n = gtk_notebook_page_num (GTK_NOTEBOOK (priv->notebook), scrolled);
- if (!config->openTabsInTheBackground)
+ gboolean open_tabs_in_the_background;
+ g_object_get (priv->settings, "open-tabs-in-the-background",
+ &open_tabs_in_the_background, NULL);
+ if (open_tabs_in_the_background)
{
gtk_notebook_set_current_page (GTK_NOTEBOOK (priv->notebook), n);
gtk_window_set_focus (GTK_WINDOW (browser), priv->location);
struct _MidoriWebSettingsPrivate
{
- MidoriStartup load_on_startup;
- gchar* homepage;
- gchar* download_folder;
- gboolean show_download_notification;
- gchar* location_entry_search;
- MidoriPreferredEncoding preferred_encoding;
+ gboolean remember_last_window_size;
+ gint last_window_width;
+ gint last_window_height;
+ gint last_panel_position;
+ gint last_panel_page;
+ gint last_web_search;
+ gchar* last_pageholder_uri;
+
+ gboolean show_navigationbar;
+ gboolean show_bookmarkbar;
+ gboolean show_panel;
+ gboolean show_statusbar;
MidoriToolbarStyle toolbar_style;
gboolean small_toolbar;
gboolean show_new_tab;
gboolean show_trash;
+ MidoriStartup load_on_startup;
+ gchar* homepage;
+ gchar* download_folder;
+ gboolean show_download_notification;
+ gchar* location_entry_search;
+ MidoriPreferredEncoding preferred_encoding;
+
gint tab_label_size;
gboolean close_buttons_on_tabs;
MidoriNewPage open_new_pages_in;
{
PROP_0,
- PROP_LOAD_ON_STARTUP,
- PROP_HOMEPAGE,
- PROP_DOWNLOAD_FOLDER,
- PROP_SHOW_DOWNLOAD_NOTIFICATION,
- PROP_LOCATION_ENTRY_SEARCH,
- PROP_PREFERRED_ENCODING,
+ PROP_REMEMBER_LAST_WINDOW_SIZE,
+ PROP_LAST_WINDOW_WIDTH,
+ PROP_LAST_WINDOW_HEIGHT,
+ PROP_LAST_PANEL_POSITION,
+ PROP_LAST_PANEL_PAGE,
+ PROP_LAST_WEB_SEARCH,
+ PROP_LAST_PAGEHOLDER_URI,
+
+ PROP_SHOW_NAVIGATIONBAR,
+ PROP_SHOW_BOOKMARKBAR,
+ PROP_SHOW_PANEL,
+ PROP_SHOW_STATUSBAR,
PROP_TOOLBAR_STYLE,
PROP_SMALL_TOOLBAR,
PROP_SHOW_WEB_SEARCH,
PROP_SHOW_TRASH,
+ PROP_LOAD_ON_STARTUP,
+ PROP_HOMEPAGE,
+ PROP_DOWNLOAD_FOLDER,
+ PROP_SHOW_DOWNLOAD_NOTIFICATION,
+ PROP_LOCATION_ENTRY_SEARCH,
+ PROP_PREFERRED_ENCODING,
+
PROP_TAB_LABEL_SIZE,
PROP_CLOSE_BUTTONS_ON_TABS,
PROP_OPEN_NEW_PAGES_IN,
GParamFlags flags = G_PARAM_READWRITE | G_PARAM_CONSTRUCT;
g_object_class_install_property (gobject_class,
- PROP_LOAD_ON_STARTUP,
- g_param_spec_enum (
- "load-on-startup",
- _("Load on Startup"),
- _("What to load on startup"),
- MIDORI_TYPE_STARTUP,
- MIDORI_STARTUP_HOMEPAGE,
+ PROP_REMEMBER_LAST_WINDOW_SIZE,
+ g_param_spec_boolean (
+ "remember-last-window-size",
+ _("Remember last window size"),
+ _("Whether to save the last window size"),
+ TRUE,
flags));
g_object_class_install_property (gobject_class,
- PROP_HOMEPAGE,
- g_param_spec_string (
- "homepage",
- _("Homepage"),
- _("The homepage"),
- "http://www.google.com",
+ PROP_LAST_WINDOW_WIDTH,
+ g_param_spec_int (
+ "last-window-width",
+ _("Last window width"),
+ _("The last saved window width"),
+ 0, G_MAXINT, 0,
flags));
g_object_class_install_property (gobject_class,
- PROP_DOWNLOAD_FOLDER,
+ PROP_LAST_WINDOW_HEIGHT,
+ g_param_spec_int (
+ "last-window-height",
+ _("Last window height"),
+ _("The last saved window height"),
+ 0, G_MAXINT, 0,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_LAST_PANEL_POSITION,
+ g_param_spec_int (
+ "last-panel-position",
+ _("Last panel position"),
+ _("The last saved panel position"),
+ 0, G_MAXINT, 0,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_LAST_PANEL_PAGE,
+ g_param_spec_int (
+ "last-panel-page",
+ _("Last panel page"),
+ _("The last saved panel page"),
+ 0, G_MAXINT, 0,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_LAST_WEB_SEARCH,
+ g_param_spec_int (
+ "last-web-search",
+ _("Last Web search"),
+ _("The last saved Web search"),
+ 0, G_MAXINT, 0,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_LAST_PAGEHOLDER_URI,
g_param_spec_string (
- "download-folder",
- _("Download Folder"),
- _("The folder downloaded files are saved to"),
- g_get_home_dir (),
- G_PARAM_READABLE));
+ "last-pageholder-uri",
+ _("Last pageholder URI"),
+ _("The URI last opened in the pageholder"),
+ "",
+ flags));
+
+
g_object_class_install_property (gobject_class,
- PROP_SHOW_DOWNLOAD_NOTIFICATION,
+ PROP_SHOW_NAVIGATIONBAR,
g_param_spec_boolean (
- "show-download-notification",
- _("Show Download Notification"),
- _("Show a notification window for finished downloads"),
+ "show-navigationbar",
+ _("Show Navigationbar"),
+ _("Whether to show the navigationbar"),
TRUE,
- G_PARAM_READABLE));
+ flags));
g_object_class_install_property (gobject_class,
- PROP_LOCATION_ENTRY_SEARCH,
- g_param_spec_string (
- "location-entry-search",
- _("Location entry Search"),
- _("The search to perform inside the location entry"),
- "http://www.google.com/search/?q=%s",
+ PROP_SHOW_BOOKMARKBAR,
+ g_param_spec_boolean (
+ "show-bookmarkbar",
+ _("Show Bookmarkbar"),
+ _("Whether to show the bookmarkbar"),
+ FALSE,
flags));
g_object_class_install_property (gobject_class,
- PROP_PREFERRED_ENCODING,
- g_param_spec_enum (
- "preferred-encoding",
- _("Preferred Encoding"),
- _("The preferred character encoding"),
- MIDORI_TYPE_PREFERRED_ENCODING,
- MIDORI_ENCODING_WESTERN,
+ PROP_SHOW_PANEL,
+ g_param_spec_boolean (
+ "show-panel",
+ _("Show Panel"),
+ _("Whether to show the panel"),
+ FALSE,
flags));
+ g_object_class_install_property (gobject_class,
+ PROP_SHOW_STATUSBAR,
+ g_param_spec_boolean (
+ "show-statusbar",
+ _("Show Statusbar"),
+ _("Whether to show the statusbar"),
+ TRUE,
+ flags));
g_object_class_install_property (gobject_class,
+ g_object_class_install_property (gobject_class,
+ PROP_LOAD_ON_STARTUP,
+ g_param_spec_enum (
+ "load-on-startup",
+ _("Load on Startup"),
+ _("What to load on startup"),
+ MIDORI_TYPE_STARTUP,
+ MIDORI_STARTUP_HOMEPAGE,
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_HOMEPAGE,
+ g_param_spec_string (
+ "homepage",
+ _("Homepage"),
+ _("The homepage"),
+ "http://www.google.com",
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_DOWNLOAD_FOLDER,
+ g_param_spec_string (
+ "download-folder",
+ _("Download Folder"),
+ _("The folder downloaded files are saved to"),
+ g_get_home_dir (),
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_SHOW_DOWNLOAD_NOTIFICATION,
+ g_param_spec_boolean (
+ "show-download-notification",
+ _("Show Download Notification"),
+ _("Show a notification window for finished downloads"),
+ TRUE,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_LOCATION_ENTRY_SEARCH,
+ g_param_spec_string (
+ "location-entry-search",
+ _("Location entry Search"),
+ _("The search to perform inside the location entry"),
+ "http://www.google.com/search/?q=%s",
+ flags));
+
+ g_object_class_install_property (gobject_class,
+ PROP_PREFERRED_ENCODING,
+ g_param_spec_enum (
+ "preferred-encoding",
+ _("Preferred Encoding"),
+ _("The preferred character encoding"),
+ MIDORI_TYPE_PREFERRED_ENCODING,
+ MIDORI_ENCODING_WESTERN,
+ flags));
+
+
+
g_object_class_install_property (gobject_class,
PROP_TAB_LABEL_SIZE,
g_param_spec_int (
switch (prop_id)
{
+ case PROP_REMEMBER_LAST_WINDOW_SIZE:
+ priv->remember_last_window_size = g_value_get_boolean (value);
+ break;
+ case PROP_LAST_WINDOW_WIDTH:
+ priv->last_window_width = g_value_get_int (value);
+ break;
+ case PROP_LAST_WINDOW_HEIGHT:
+ priv->last_window_height = g_value_get_int (value);
+ break;
+ case PROP_LAST_PANEL_POSITION:
+ priv->last_panel_position = g_value_get_int (value);
+ break;
+ case PROP_LAST_PANEL_PAGE:
+ priv->last_panel_page = g_value_get_int (value);
+ break;
+ case PROP_LAST_WEB_SEARCH:
+ priv->last_web_search = g_value_get_int (value);
+ break;
+ case PROP_LAST_PAGEHOLDER_URI:
+ katze_assign (priv->last_pageholder_uri, g_value_dup_string (value));
+ break;
+
+ case PROP_SHOW_NAVIGATIONBAR:
+ priv->show_navigationbar = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_BOOKMARKBAR:
+ priv->show_bookmarkbar = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_PANEL:
+ priv->show_panel = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_STATUSBAR:
+ priv->show_statusbar = g_value_get_boolean (value);
+ break;
+
+ case PROP_TOOLBAR_STYLE:
+ priv->toolbar_style = g_value_get_enum (value);
+ break;
+ case PROP_SMALL_TOOLBAR:
+ priv->small_toolbar = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_NEW_TAB:
+ priv->show_new_tab = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_WEB_SEARCH:
+ priv->show_web_search = g_value_get_boolean (value);
+ break;
+ case PROP_SHOW_TRASH:
+ priv->show_trash = g_value_get_boolean (value);
+ break;
+
case PROP_LOAD_ON_STARTUP:
priv->load_on_startup = g_value_get_enum (value);
break;
}
break;
- case PROP_TOOLBAR_STYLE:
- priv->toolbar_style = g_value_get_enum (value);
- break;
- case PROP_SMALL_TOOLBAR:
- priv->small_toolbar = g_value_get_boolean (value);
- break;
- case PROP_SHOW_NEW_TAB:
- priv->show_new_tab = g_value_get_boolean (value);
- break;
- case PROP_SHOW_WEB_SEARCH:
- priv->show_web_search = g_value_get_boolean (value);
- break;
- case PROP_SHOW_TRASH:
- priv->show_trash = g_value_get_boolean (value);
- break;
-
case PROP_TAB_LABEL_SIZE:
priv->tab_label_size = g_value_get_int (value);
break;
switch (prop_id)
{
- case PROP_LOAD_ON_STARTUP:
- g_value_set_enum (value, priv->load_on_startup);
+ case PROP_REMEMBER_LAST_WINDOW_SIZE:
+ g_value_set_boolean (value, priv->remember_last_window_size);
break;
- case PROP_HOMEPAGE:
- g_value_set_string (value, priv->homepage);
+ case PROP_LAST_WINDOW_WIDTH:
+ g_value_set_int (value, priv->last_window_width);
break;
- case PROP_DOWNLOAD_FOLDER:
- g_value_set_string (value, priv->download_folder);
+ case PROP_LAST_WINDOW_HEIGHT:
+ g_value_set_int (value, priv->last_window_height);
break;
- case PROP_SHOW_DOWNLOAD_NOTIFICATION:
- g_value_set_boolean (value, priv->show_download_notification);
+ case PROP_LAST_PANEL_POSITION:
+ g_value_set_int (value, priv->last_panel_position);
break;
- case PROP_LOCATION_ENTRY_SEARCH:
- g_value_set_string (value, priv->location_entry_search);
+ case PROP_LAST_PANEL_PAGE:
+ g_value_set_int (value, priv->last_panel_page);
break;
- case PROP_PREFERRED_ENCODING:
- g_value_set_enum (value, priv->preferred_encoding);
+ case PROP_LAST_WEB_SEARCH:
+ g_value_set_int (value, priv->last_web_search);
+ break;
+ case PROP_LAST_PAGEHOLDER_URI:
+ g_value_set_string (value, priv->last_pageholder_uri);
+ break;
+
+ case PROP_SHOW_NAVIGATIONBAR:
+ g_value_set_boolean (value, priv->show_navigationbar);
+ break;
+ case PROP_SHOW_BOOKMARKBAR:
+ g_value_set_boolean (value, priv->show_bookmarkbar);
+ break;
+ case PROP_SHOW_PANEL:
+ g_value_set_boolean (value, priv->show_panel);
+ break;
+ case PROP_SHOW_STATUSBAR:
+ g_value_set_boolean (value, priv->show_statusbar);
break;
case PROP_TOOLBAR_STYLE:
g_value_set_boolean (value, priv->show_trash);
break;
+ case PROP_LOAD_ON_STARTUP:
+ g_value_set_enum (value, priv->load_on_startup);
+ break;
+ case PROP_HOMEPAGE:
+ g_value_set_string (value, priv->homepage);
+ break;
+ case PROP_DOWNLOAD_FOLDER:
+ g_value_set_string (value, priv->download_folder);
+ break;
+ case PROP_SHOW_DOWNLOAD_NOTIFICATION:
+ g_value_set_boolean (value, priv->show_download_notification);
+ break;
+ case PROP_LOCATION_ENTRY_SEARCH:
+ g_value_set_string (value, priv->location_entry_search);
+ break;
+ case PROP_PREFERRED_ENCODING:
+ g_value_set_enum (value, priv->preferred_encoding);
+ break;
+
case PROP_TAB_LABEL_SIZE:
g_value_set_int (value, priv->tab_label_size);
break;
g_object_unref(pixbuf);
sokoke_entry_set_default_text(GTK_ENTRY(search)
, search_engine_get_short_name(engine));
- config->searchEngine = index;
+ // config->searchEngine = index;
}
}
{
const gchar* keywords = gtk_entry_get_text(GTK_ENTRY(widget));
gchar* url;
- SearchEngine* searchEngine = (SearchEngine*)g_list_nth_data(searchEngines, config->searchEngine);
+ SearchEngine* searchEngine = (SearchEngine*)g_list_nth_data(searchEngines, 0/*config->searchEngine*/);
if(searchEngine)
url = searchEngine->url;
else // The location search is our fallback
- url = config->locationSearch;
+ url = "";//config->locationSearch;
gchar* search;
if(strstr(url, "%s"))
search = g_strdup_printf(url, keywords);