[Xfce4-commits] midori:master Fix identification string, don't accidentally include extra brackets

2009-09-18 Thread Christian Dywan
Updating branch refs/heads/master
 to bf80501888a0216943d0b1aa214678277e14d37f (commit)
   from 5399a68a4e526c2a1e2a513b8969b7197315486f (commit)

commit bf80501888a0216943d0b1aa214678277e14d37f
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Sep 18 19:35:15 2009 +0200

Fix identification string, don't accidentally include extra brackets

 midori/midori-websettings.c |   13 ++---
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index 5c0b441..c20438b 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -1110,19 +1110,18 @@ generate_ident_string (MidoriIdentity identify_as)
 #define WEBKIT_USER_AGENT_MAJOR_VERSION 532
 #define WEBKIT_USER_AGENT_MINOR_VERSION 1
 #endif
-
-const gchar* webcore = WebKit/ G_STRINGIFY 
(WEBKIT_USER_AGENT_MAJOR_VERSION)
-. G_STRINGIFY (WEBKIT_USER_AGENT_MINOR_VERSION) +;
+const int webcore_major = WEBKIT_USER_AGENT_MAJOR_VERSION;
+const int webcore_minor = WEBKIT_USER_AGENT_MINOR_VERSION;
 
 switch (identify_as)
 {
 case MIDORI_IDENT_MIDORI:
-return g_strdup_printf (%s (%s; %s; U; %s) %s,
-appname, platform, os, lang, webcore);
+return g_strdup_printf (%s (%s; %s; U; %s) WebKit/%d.%d+,
+appname, platform, os, lang, webcore_major, webcore_minor);
 case MIDORI_IDENT_SAFARI:
 return g_strdup_printf (Mozilla/5.0 (%s; U; %s; %s) 
-AppleWebKit/532+ (KHTML, like Gecko) Safari/%s %s,
-platform, os, lang, webcore, appname);
+AppleWebKit/%d+ (KHTML, like Gecko) Safari/%d.%d+ %s,
+platform, os, lang, webcore_major, webcore_major, webcore_minor, 
appname);
 case MIDORI_IDENT_IPHONE:
 return g_strdup_printf (Mozilla/5.0 (iPhone; U; %s; %s) 
 AppleWebKit/532+ (KHTML, like Gecko) Version/3.0 Mobile/1A538b 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Disable loop warnings and include warnings, clang dislikes them

2009-09-18 Thread Christian Dywan
Updating branch refs/heads/master
 to a158ac458590e01aa352ad64aac7ad401f987ba4 (commit)
   from bf80501888a0216943d0b1aa214678277e14d37f (commit)

commit a158ac458590e01aa352ad64aac7ad401f987ba4
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Sep 18 19:36:09 2009 +0200

Disable loop warnings and include warnings, clang dislikes them

 wscript |5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/wscript b/wscript
index c243cb8..4f55d88 100644
--- a/wscript
+++ b/wscript
@@ -267,16 +267,15 @@ def configure (conf):
 elif debug_level == 'full':
 # -Wdeclaration-after-statement
 # -Wmissing-declarations -Wmissing-prototypes
-# -Wwrite-strings
+# -Wwrite-strings -Wunsafe-loop-optimizations 
-Wmissing-include-dirs
 conf.env.append_value ('CCFLAGS',
 '-Wall -Wextra -O1 -g '
 '-Waggregate-return -Wno-unused-parameter '
 '-Wno-missing-field-initializers '
-'-Wunsafe-loop-optimizations '
 '-Wredundant-decls -Wmissing-noreturn '
 '-Wshadow -Wpointer-arith -Wcast-align '
 '-Winline -Wformat-security '
-'-Winit-self -Wmissing-include-dirs -Wundef '
+'-Winit-self -Wundef '
 '-Wmissing-format-attribute -Wnested-externs '
 '-DG_ENABLE_DEBUG'.split ())
 elif debug_level != 'none':
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Improve context menu and middle click pasting using hit test result

2009-09-19 Thread Christian Dywan
Updating branch refs/heads/master
 to eaba9f0acf578c9bb6b15ac04cd150e6e8960263 (commit)
   from a158ac458590e01aa352ad64aac7ad401f987ba4 (commit)

commit eaba9f0acf578c9bb6b15ac04cd150e6e8960263
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Sep 18 23:47:31 2009 +0200

Improve context menu and middle click pasting using hit test result

 midori/midori-preferences.c |2 +-
 midori/midori-view.c|  297 ---
 2 files changed, 225 insertions(+), 74 deletions(-)

diff --git a/midori/midori-preferences.c b/midori/midori-preferences.c
index 2519807..6acddeb 100644
--- a/midori/midori-preferences.c
+++ b/midori/midori-preferences.c
@@ -487,7 +487,7 @@ midori_preferences_set_settings (MidoriPreferences* 
preferences,
 gtk_button_set_label (GTK_BUTTON (button), _(Load images automatically));
 gtk_widget_set_tooltip_text (button, _(Load and display images 
automatically));
 INDENTED_ADD (button, 0, 1, 0, 1);
-#if 0
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
 button = katze_property_proxy (settings, auto-shrink-images, NULL);
 gtk_button_set_label (GTK_BUTTON (button), _(Shrink images 
automatically));
 gtk_widget_set_tooltip_text (button, _(Automatically shrink standalone 
images to fit));
diff --git a/midori/midori-view.c b/midori/midori-view.c
index 5e584a9..1ac970e 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1028,16 +1028,28 @@ gtk_widget_button_press_event_cb (WebKitWebView*  
web_view,
 }
 else if (view-middle_click_opens_selection)
 {
-guint i = 0;
-/* FIXME: This isn't quite correct, we need mouse context */
-if (webkit_web_view_can_paste_clipboard (WEBKIT_WEB_VIEW 
(view-web_view)))
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
+WebKitHitTestResult* result;
+WebKitHitTestResultContext context;
+gboolean is_editable;
+
+result = webkit_web_view_get_hit_test_result (web_view, event);
+context = katze_object_get_int (result, context);
+is_editable = context  WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE;
+g_object_unref (result);
+#else
+is_editable = webkit_web_view_can_paste_clipboard (WEBKIT_WEB_VIEW 
(view-web_view));
+#endif
+if (is_editable)
 return FALSE;
+
 clipboard = gtk_clipboard_get_for_display (
 gtk_widget_get_display (GTK_WIDGET (view)),
 GDK_SELECTION_PRIMARY);
 uri = gtk_clipboard_wait_for_text (clipboard);
 if (uri  strchr (uri, '.'))
 {
+guint i = 0;
 while (uri[i++] != '\0')
 if (uri[i] == '\n' || uri[i] == '\r')
 uri[i] = ' ';
@@ -1195,6 +1207,42 @@ midori_web_view_menu_add_bookmark_activate_cb 
(GtkWidget*  widget,
 g_signal_emit (view, signals[ADD_BOOKMARK], 0, view-link_uri);
 }
 
+static GtkWidget*
+midori_view_insert_menu_item (GtkMenuShell* menu,
+ gint  position,
+ const gchar*  label,
+ const gchar*  stock_id,
+ GCallback callback,
+ GtkWidget*widget)
+{
+GtkWidget* menuitem;
+
+if (label)
+{
+menuitem = gtk_image_menu_item_new_with_mnemonic (label);
+if (stock_id)
+{
+GdkScreen* screen = gtk_widget_get_screen (widget);
+GtkIconTheme* icon_theme = gtk_icon_theme_get_for_screen (screen);
+if (gtk_icon_theme_has_icon (icon_theme, stock_id))
+{
+GtkWidget* icon = gtk_image_new_from_stock (stock_id,
+GTK_ICON_SIZE_MENU);
+gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem),
+icon);
+}
+}
+}
+else
+menuitem = gtk_image_menu_item_new_from_stock (stock_id, NULL);
+gtk_menu_shell_insert (GTK_MENU_SHELL (menu), menuitem, position);
+if (callback)
+g_signal_connect (menuitem, activate, callback, widget);
+else
+gtk_widget_set_sensitive (menuitem, FALSE);
+return menuitem;
+}
+
 static void
 webkit_web_view_populate_popup_cb (WebKitWebView* web_view,
GtkWidget* menu,
@@ -1202,51 +1250,153 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 {
 MidoriBrowser* browser = midori_browser_get_for_widget (GTK_WIDGET (view));
 GtkActionGroup* actions = midori_browser_get_action_group (browser);
+GtkMenuShell* menu_shell = GTK_MENU_SHELL (menu);
+GtkWidget* widget = GTK_WIDGET (view);
 GtkWidget* menuitem;
 GtkWidget* icon;
 gchar* stock_id;
-GdkScreen* screen;
-GtkIconTheme* icon_theme;
 GList* items;
 gboolean has_selection;
+gboolean

[Xfce4-commits] midori:master Disable Save/ add button in bookmark dialog if address lacks protocol

2009-09-19 Thread Christian Dywan
Updating branch refs/heads/master
 to 16e00c379e03f6d3e9bc127894e710c1138e76a1 (commit)
   from eaba9f0acf578c9bb6b15ac04cd150e6e8960263 (commit)

commit 16e00c379e03f6d3e9bc127894e710c1138e76a1
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Sep 19 17:25:10 2009 +0200

Disable Save/ add button in bookmark dialog if address lacks protocol

 midori/midori-browser.c |   24 
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 649119e..e4d3faf 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -601,6 +601,26 @@ midori_view_notify_statusbar_text_cb (MidoriView*view,
 }
 }
 
+static gboolean
+midori_browser_edit_bookmark_uri_focus_in_cb (GtkEntry*  entry,
+  GdkEventFocus* event,
+  GtkDialog* dialog)
+{
+gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT, TRUE);
+return FALSE;
+}
+
+static gboolean
+midori_browser_edit_bookmark_uri_focus_out_cb (GtkEntry*  entry,
+   GdkEventFocus* event,
+   GtkDialog* dialog)
+{
+const gchar* uri = gtk_entry_get_text (entry);
+gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT,
+uri  g_strstr_len (uri, -1, ://));
+return FALSE;
+}
+
 /* Private function, used by MidoriBookmarks and MidoriHistory */
 /* static */ void
 midori_browser_edit_bookmark_dialog_new (MidoriBrowser* browser,
@@ -694,6 +714,10 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* 
browser,
 entry_uri = gtk_entry_new ();
 gtk_entry_set_activates_default (GTK_ENTRY (entry_uri), TRUE);
 gtk_entry_set_text (GTK_ENTRY (entry_uri), katze_item_get_uri 
(bookmark));
+g_signal_connect (entry_uri, focus-in-event,
+G_CALLBACK (midori_browser_edit_bookmark_uri_focus_in_cb), dialog);
+g_signal_connect (entry_uri, focus-out-event,
+G_CALLBACK (midori_browser_edit_bookmark_uri_focus_out_cb), 
dialog);
 gtk_box_pack_start (GTK_BOX (hbox), entry_uri, TRUE, TRUE, 0);
 gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)-vbox), hbox);
 gtk_widget_show_all (hbox);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Do not put statusbar text in the location entry if it's focussed

2009-09-20 Thread Christian Dywan
Updating branch refs/heads/master
 to 4f8deae24d6af31d5da9f16b24bcca6d3c0d6da5 (commit)
   from 16e00c379e03f6d3e9bc127894e710c1138e76a1 (commit)

commit 4f8deae24d6af31d5da9f16b24bcca6d3c0d6da5
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Sep 19 21:06:33 2009 +0200

Do not put statusbar text in the location entry if it's focussed

This prevents overwriting what the user may be typing while
accidentally moving the mouse.

 midori/midori-browser.c |6 +-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index e4d3faf..720b18b 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -352,9 +352,13 @@ static void
 _midori_browser_set_statusbar_text (MidoriBrowser* browser,
 const gchar*   text)
 {
+GtkWidget* widget = gtk_window_get_focus (GTK_WINDOW (browser));
+gboolean is_location = widget ?
+MIDORI_IS_LOCATION_ENTRY (gtk_widget_get_parent (widget)) : FALSE;
+
 katze_assign (browser-statusbar_text, g_strdup (text));
 
-if (!GTK_WIDGET_VISIBLE (browser-statusbar))
+if (!GTK_WIDGET_VISIBLE (browser-statusbar)  !is_location)
 {
 GtkAction* action = _action_by_name (browser, Location);
 MidoriLocationAction* location_action = MIDORI_LOCATION_ACTION 
(action);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Forward mailto: links to external default application

2009-09-20 Thread Christian Dywan
Updating branch refs/heads/master
 to d73ccf2c3f671870ec092a5cac05e3fda7d1e612 (commit)
   from 0250d762c1f882a70dc4cf549ab4d90463ad06ba (commit)

commit d73ccf2c3f671870ec092a5cac05e3fda7d1e612
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Sep 20 20:56:52 2009 +0200

Forward mailto: links to external default  application

 midori/midori-view.c |   22 ++
 1 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index d51e0f8..c949122 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -701,6 +701,26 @@ midori_view_update_load_status (MidoriView*  view,
 view-load_status != MIDORI_LOAD_FINISHED);
 }
 
+static gboolean
+midori_view_web_view_navigation_decision_cb (WebKitWebView* 
web_view,
+ WebKitWebFrame*
web_frame,
+ WebKitNetworkRequest*  
request,
+ WebKitWebNavigationAction* action,
+ WebKitWebPolicyDecision*   
decision,
+ MidoriView*view)
+{
+const gchar* uri = webkit_network_request_get_uri (request);
+if (g_str_has_prefix (uri, mailto:;))
+{
+webkit_web_policy_decision_ignore (decision);
+sokoke_show_uri (gtk_widget_get_screen (GTK_WIDGET (web_view)),
+ uri, GDK_CURRENT_TIME, NULL);
+return TRUE;
+}
+/* TODO: Handle more external protocols */
+return FALSE;
+}
+
 static void
 webkit_web_view_load_started_cb (WebKitWebView*  web_view,
  WebKitWebFrame* web_frame,
@@ -2388,6 +2408,8 @@ midori_view_construct_web_view (MidoriView* view)
 web_frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW 
(view-web_view));
 
 g_object_connect (view-web_view,
+  signal::navigation-policy-decision-requested,
+  midori_view_web_view_navigation_decision_cb, view,
   signal::load-started,
   webkit_web_view_load_started_cb, view,
   signal::load-committed,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Implement menu items after refactoring the context menu changes

2009-09-20 Thread Christian Dywan
Updating branch refs/heads/master
 to 0250d762c1f882a70dc4cf549ab4d90463ad06ba (commit)
   from 4f8deae24d6af31d5da9f16b24bcca6d3c0d6da5 (commit)

commit 0250d762c1f882a70dc4cf549ab4d90463ad06ba
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Sep 19 21:18:25 2009 +0200

Implement menu items after refactoring the context menu changes

 midori/midori-view.c |  194 +++--
 1 files changed, 154 insertions(+), 40 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 1ac970e..d51e0f8 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -69,6 +69,9 @@ struct _MidoriView
 MidoriLoadStatus load_status;
 gboolean minimized;
 gchar* statusbar_text;
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
+WebKitHitTestResult* hit_test;
+#endif
 gchar* link_uri;
 gboolean has_selection;
 gchar* selected_text;
@@ -1146,6 +1149,127 @@ gtk_widget_scroll_event_cb (WebKitWebView*  web_view,
 return FALSE;
 }
 
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
+static void
+midori_web_view_menu_open_activate_cb (GtkWidget*  widget,
+   MidoriView* view)
+{
+midori_view_set_uri (view, view-link_uri);
+}
+
+static void
+midori_web_view_menu_new_window_activate_cb (GtkWidget*  widget,
+ MidoriView* view)
+{
+g_signal_emit (view, signals[NEW_WINDOW], 0, view-link_uri);
+}
+
+static void
+midori_web_view_menu_link_copy_activate_cb (GtkWidget*  widget,
+MidoriView* view)
+{
+GdkDisplay* display = gtk_widget_get_display (widget);
+GtkClipboard* clipboard = gtk_clipboard_get_for_display (display,
+GDK_SELECTION_CLIPBOARD);
+gtk_clipboard_set_text (clipboard, view-link_uri, -1);
+}
+
+static void
+midori_web_view_menu_save_activate_cb (GtkWidget*  widget,
+   MidoriView* view)
+{
+WebKitNetworkRequest* request = webkit_network_request_new 
(view-link_uri);
+WebKitDownload* download = webkit_download_new (request);
+gboolean handled;
+g_object_unref (request);
+g_object_set_data (G_OBJECT (download), save-as-download, 0);
+g_signal_emit (view, signals[DOWNLOAD_REQUESTED], 0, download, handled);
+webkit_download_start (download);
+}
+
+static void
+midori_web_view_menu_image_new_tab_activate_cb (GtkWidget*  widget,
+MidoriView* view)
+{
+gchar* uri = katze_object_get_string (view-hit_test, image-uri);
+g_signal_emit (view, signals[NEW_TAB], 0, uri,
+   view-open_tabs_in_the_background);
+g_free (uri);
+}
+
+static void
+midori_web_view_menu_image_new_window_activate_cb (GtkWidget*  widget,
+MidoriView* view)
+{
+gchar* uri = katze_object_get_string (view-hit_test, image-uri);
+g_signal_emit (view, signals[NEW_WINDOW], 0, uri);
+g_free (uri);
+}
+
+static void
+midori_web_view_menu_image_copy_activate_cb (GtkWidget*  widget,
+ MidoriView* view)
+{
+GdkDisplay* display = gtk_widget_get_display (widget);
+GtkClipboard* clipboard = gtk_clipboard_get_for_display (display,
+GDK_SELECTION_CLIPBOARD);
+gchar* uri = katze_object_get_string (view-hit_test, image-uri);
+gtk_clipboard_set_text (clipboard, uri, -1);
+g_free (uri);
+}
+
+static void
+midori_web_view_menu_image_save_activate_cb (GtkWidget*  widget,
+ MidoriView* view)
+{
+gchar* uri = katze_object_get_string (view-hit_test, image-uri);
+WebKitNetworkRequest* request = webkit_network_request_new (uri);
+WebKitDownload* download = webkit_download_new (request);
+gboolean handled;
+g_object_unref (request);
+g_object_set_data (G_OBJECT (download), save-as-download, 0);
+g_signal_emit (view, signals[DOWNLOAD_REQUESTED], 0, download, handled);
+webkit_download_start (download);
+g_free (uri);
+}
+
+static void
+midori_web_view_menu_video_copy_activate_cb (GtkWidget*  widget,
+ MidoriView* view)
+{
+GdkDisplay* display = gtk_widget_get_display (widget);
+GtkClipboard* clipboard = gtk_clipboard_get_for_display (display,
+GDK_SELECTION_CLIPBOARD);
+gchar* uri = katze_object_get_string (view-hit_test, media-uri);
+gtk_clipboard_set_text (clipboard, uri, -1);
+g_free (uri);
+}
+
+static void
+midori_web_view_menu_video_save_activate_cb (GtkWidget*  widget,
+ MidoriView* view)
+{
+gchar* uri = katze_object_get_string (view-hit_test, media-uri);
+WebKitNetworkRequest* request = webkit_network_request_new (uri);
+WebKitDownload* download = webkit_download_new (request);
+gboolean handled;
+g_object_unref (request);
+g_object_set_data (G_OBJECT

[Xfce4-commits] midori:master Include TabNew in the toolbar by default

2009-09-20 Thread Christian Dywan
Updating branch refs/heads/master
 to 59c43d08e005c46d0e1aa80019fcd57757923d78 (commit)
   from d73ccf2c3f671870ec092a5cac05e3fda7d1e612 (commit)

commit 59c43d08e005c46d0e1aa80019fcd57757923d78
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Sep 20 20:57:30 2009 +0200

Include TabNew in the toolbar by default

 midori/midori-websettings.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/midori/midori-websettings.c b/midori/midori-websettings.c
index c20438b..1324e68 100644
--- a/midori/midori-websettings.c
+++ b/midori/midori-websettings.c
@@ -520,7 +520,7 @@ midori_web_settings_class_init (MidoriWebSettingsClass* 
class)
  toolbar-items,
  _(Toolbar Items),
  _(The items to show on the toolbar),
- 
Back,Forward,ReloadStop,Location,Panel,Search,Trash,
+ 
TabNew,Back,Forward,ReloadStop,Location,Panel,Search,Trash,
  flags));
 
 g_object_class_install_property (gobject_class,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Fix build with WebKit 1.1.14

2009-09-20 Thread Christian Dywan
Updating branch refs/heads/master
 to ebb3b5f3742ad68488f1b115dfaf0f21dfd1955e (commit)
   from 72ba3a700b9729850c9e95677f451a9a9dd3f529 (commit)

commit ebb3b5f3742ad68488f1b115dfaf0f21dfd1955e
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Sep 20 21:49:57 2009 +0200

Fix build with WebKit  1.1.14

 midori/midori-view.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 9b92712..791e2fc 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1052,10 +1052,10 @@ gtk_widget_button_press_event_cb (WebKitWebView*  
web_view,
 }
 else if (view-middle_click_opens_selection)
 {
+gboolean is_editable;
 #if WEBKIT_CHECK_VERSION (1, 1, 15)
 WebKitHitTestResult* result;
 WebKitHitTestResultContext context;
-gboolean is_editable;
 
 result = webkit_web_view_get_hit_test_result (web_view, event);
 context = katze_object_get_int (result, context);
@@ -1448,7 +1448,7 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 if (!strcmp (stock_id, GTK_STOCK_FIND))
 {
 gtk_widget_hide (menuitem);
-gtk_widget_set_no_show_all (menuitem);
+gtk_widget_set_no_show_all (menuitem, TRUE);
 menuitem = (GtkWidget*)g_list_nth_data (items, 1);
 gtk_widget_hide (menuitem);
 menuitem = (GtkWidget*)g_list_nth_data (items, 2);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Don't use libidn if we have libsoup 2.27.90

2009-09-21 Thread Christian Dywan
Updating branch refs/heads/master
 to bb0688b796383ff381fa85fae40055024a3d1e34 (commit)
   from ebb3b5f3742ad68488f1b115dfaf0f21dfd1955e (commit)

commit bb0688b796383ff381fa85fae40055024a3d1e34
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Sep 21 22:12:14 2009 +0200

Don't use libidn if we have libsoup 2.27.90

 wscript |   26 +++---
 1 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/wscript b/wscript
index 4f55d88..de8d813 100644
--- a/wscript
+++ b/wscript
@@ -181,15 +181,6 @@ def configure (conf):
 unique = 'no '
 conf.define ('HAVE_UNIQUE', [0,1][unique == 'yes'])
 
-if option_enabled ('libidn'):
-check_pkg ('libidn', '1.0', False)
-libidn = ['N/A','yes'][conf.env['HAVE_LIBIDN'] == 1]
-if libidn != 'yes':
-option_checkfatal ('libidn', 'international domain names')
-else:
-libidn = 'no '
-conf.define ('HAVE_LIBIDN', [0,1][libidn == 'yes'])
-
 if option_enabled ('sqlite'):
 check_pkg ('sqlite3', '3.0', False, var='SQLITE')
 sqlite = ['N/A','yes'][conf.env['HAVE_SQLITE'] == 1]
@@ -210,9 +201,22 @@ def configure (conf):
 check_pkg ('webkit-1.0', '1.1.1', args=args)
 check_pkg ('libsoup-2.4', '2.25.2')
 conf.define ('HAVE_LIBSOUP_2_25_2', 1)
-check_pkg ('libsoup-2.4', '2.27.91', False, var='LIBSOUP_2_27_91')
+check_pkg ('libsoup-2.4', '2.27.90', False, var='LIBSOUP_2_27_90')
 check_pkg ('libxml-2.0', '2.6')
 
+if conf.env['HAVE_LIBSOUP_2_27_90']:
+   idn = 'yes'
+   conf.define ('HAVE_LIBIDN', 0)
+else:
+if option_enabled ('libidn'):
+check_pkg ('libidn', '1.0', False)
+idn = ['N/A','yes'][conf.env['HAVE_LIBIDN'] == 1]
+if idn != 'yes':
+option_checkfatal ('libidn', 'international domain names')
+else:
+idn = 'no '
+conf.define ('HAVE_LIBIDN', [0,1][idn == 'yes'])
+
 if option_enabled ('hildon'):
 if check_pkg ('hildon-1', mandatory=False, var='HILDON'):
 check_pkg ('libosso', var='HILDON')
@@ -287,7 +291,7 @@ def configure (conf):
 Icon optimizations:  %(icons)s (rsvg-convert)
 Persistent history:  %(sqlite)s (sqlite3)
 
-IDN support: %(libidn)s (libidn)
+IDN support: %(idn)s (libidn or libsoup 2.27.90)
 User documentation:  %(user_docs)s (docutils)
 API documentation:   %(api_docs)s (gtk-doc)
 ''' % locals ()
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Bump new context menu handling to WebKitGTK+ 1.1.16

2009-09-21 Thread Christian Dywan
Updating branch refs/heads/master
 to d26113fa1ec0443427d0467455ce743917e47f10 (commit)
   from bb0688b796383ff381fa85fae40055024a3d1e34 (commit)

commit d26113fa1ec0443427d0467455ce743917e47f10
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Sep 21 23:49:42 2009 +0200

Bump new context menu handling to WebKitGTK+ 1.1.16

The API in 1.1.15 is not sufficient to implement the context menu
without regressions.

 midori/midori-view.c |   33 +
 1 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 791e2fc..714e1ab 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -69,7 +69,7 @@ struct _MidoriView
 MidoriLoadStatus load_status;
 gboolean minimized;
 gchar* statusbar_text;
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 WebKitHitTestResult* hit_test;
 #endif
 gchar* link_uri;
@@ -1053,7 +1053,7 @@ gtk_widget_button_press_event_cb (WebKitWebView*  
web_view,
 else if (view-middle_click_opens_selection)
 {
 gboolean is_editable;
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 WebKitHitTestResult* result;
 WebKitHitTestResultContext context;
 
@@ -1170,7 +1170,7 @@ gtk_widget_scroll_event_cb (WebKitWebView*  web_view,
 return FALSE;
 }
 
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 static void
 midori_web_view_menu_open_activate_cb (GtkWidget*  widget,
MidoriView* view)
@@ -1412,7 +1412,7 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 gboolean is_document;
 GtkWidget* label;
 
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 gint x, y;
 GdkEventButton event;
 WebKitHitTestResultContext context;
@@ -1482,7 +1482,7 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 return;
 }
 
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 items = gtk_container_get_children (GTK_CONTAINER (menu));
 i = 0;
 while ((menuitem = g_list_nth_data (items, i++)))
@@ -1627,7 +1627,7 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 }
 g_object_unref (search_engines);
 }
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 midori_view_insert_menu_item (menu_shell, 0,
 _(_Search the Web), GTK_STOCK_FIND,
 G_CALLBACK (midori_web_view_menu_search_web_activate_cb), widget);
@@ -1656,7 +1656,7 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 
 if (is_document)
 {
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 menuitem = sokoke_action_create_popup_menu_item (
 gtk_action_group_get_action (actions, Back));
 gtk_menu_shell_append (menu_shell, menuitem);
@@ -1690,6 +1690,23 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 gtk_menu_shell_append (menu_shell, menuitem);
 gtk_menu_shell_append (menu_shell, gtk_separator_menu_item_new ());
 
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
+/* if (webkit_web_view_get_main_frame (web_view) != frame_under_mouse)
+{
+midori_view_insert_menu_item (menu_shell, -1,
+_(Open _Frame in New Tab), NULL,
+G_CALLBACK (midori_web_view_menu_frame_new_tab_activate_cb), 
widget);
+midori_view_insert_menu_item (menu_shell, -1,
+_(Open _Frame in New Window), NULL,
+G_CALLBACK 
(midori_web_view_menu_frame_new_window_activate_cb), widget);
+} */
+
+/* FIXME: There is currently no API to inspect an URI
+midori_view_insert_menu_item (menu_shell, -1,
+_(Inspect page), NULL,
+G_CALLBACK (midori_web_view_menu_inspect_page_activate_cb), 
widget); */
+#endif
+
 menuitem = sokoke_action_create_popup_menu_item (
 gtk_action_group_get_action (actions, ZoomIn));
 gtk_menu_shell_append (menu_shell, menuitem);
@@ -2022,7 +2039,7 @@ midori_view_init (MidoriView* view)
 view-load_status = MIDORI_LOAD_FINISHED;
 view-minimized = FALSE;
 view-statusbar_text = NULL;
-#if WEBKIT_CHECK_VERSION (1, 1, 15)
+#if WEBKIT_CHECK_VERSION (1, 1, 16)
 view-hit_test = NULL;
 #endif
 view-link_uri = NULL;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Actually require http(s):// in bookmark address

2009-09-21 Thread Christian Dywan
Updating branch refs/heads/master
 to b3817bfc522869952397a853cfaf4853366c27de (commit)
   from d26113fa1ec0443427d0467455ce743917e47f10 (commit)

commit b3817bfc522869952397a853cfaf4853366c27de
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Sep 21 23:53:01 2009 +0200

Actually require http(s):// in bookmark address

 midori/midori-browser.c |   28 +---
 1 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 720b18b..568a4aa 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -605,24 +605,14 @@ midori_view_notify_statusbar_text_cb (MidoriView*view,
 }
 }
 
-static gboolean
-midori_browser_edit_bookmark_uri_focus_in_cb (GtkEntry*  entry,
-  GdkEventFocus* event,
-  GtkDialog* dialog)
-{
-gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT, TRUE);
-return FALSE;
-}
-
-static gboolean
-midori_browser_edit_bookmark_uri_focus_out_cb (GtkEntry*  entry,
-   GdkEventFocus* event,
-   GtkDialog* dialog)
+static void
+midori_browser_edit_bookmark_uri_changed_cb (GtkEntry*  entry,
+ GtkDialog* dialog)
 {
 const gchar* uri = gtk_entry_get_text (entry);
 gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT,
-uri  g_strstr_len (uri, -1, ://));
-return FALSE;
+uri  g_str_has_prefix (uri, http://;)
+|| g_str_has_prefix (uri, https://;));
 }
 
 /* Private function, used by MidoriBookmarks and MidoriHistory */
@@ -718,10 +708,10 @@ midori_browser_edit_bookmark_dialog_new (MidoriBrowser* 
browser,
 entry_uri = gtk_entry_new ();
 gtk_entry_set_activates_default (GTK_ENTRY (entry_uri), TRUE);
 gtk_entry_set_text (GTK_ENTRY (entry_uri), katze_item_get_uri 
(bookmark));
-g_signal_connect (entry_uri, focus-in-event,
-G_CALLBACK (midori_browser_edit_bookmark_uri_focus_in_cb), dialog);
-g_signal_connect (entry_uri, focus-out-event,
-G_CALLBACK (midori_browser_edit_bookmark_uri_focus_out_cb), 
dialog);
+midori_browser_edit_bookmark_uri_changed_cb (GTK_ENTRY (entry_uri),
+ GTK_DIALOG (dialog));
+g_signal_connect (entry_uri, changed,
+G_CALLBACK (midori_browser_edit_bookmark_uri_changed_cb), dialog);
 gtk_box_pack_start (GTK_BOX (hbox), entry_uri, TRUE, TRUE, 0);
 gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)-vbox), hbox);
 gtk_widget_show_all (hbox);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Reset the statusbar text (in the location) when leaving the view

2009-09-23 Thread Christian Dywan
Updating branch refs/heads/master
 to d5ed3e9b287714a90ac087e0e6872a94adf04999 (commit)
   from ba1084d2360ad9829a8cdbc65eb21db4dd61a448 (commit)

commit d5ed3e9b287714a90ac087e0e6872a94adf04999
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Sep 22 23:58:16 2009 +0200

Reset the statusbar text (in the location) when leaving the view

 midori/midori-view.c |   11 +++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 714e1ab..d884af9 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -973,6 +973,15 @@ webkit_web_view_statusbar_text_changed_cb (WebKitWebView* 
web_view,
 g_object_set (G_OBJECT (view), statusbar-text, text, NULL);
 }
 
+static gboolean
+midori_view_web_view_leave_notify_event_cb (WebKitWebView*web_view,
+GdkEventCrossing* event,
+MidoriView*   view)
+{
+g_object_set (G_OBJECT (view), statusbar-text, NULL, NULL);
+return FALSE;
+}
+
 static void
 webkit_web_view_hovering_over_link_cb (WebKitWebView* web_view,
const gchar*   tooltip,
@@ -2458,6 +2467,8 @@ midori_view_construct_web_view (MidoriView* view)
   #endif
   signal::status-bar-text-changed,
   webkit_web_view_statusbar_text_changed_cb, view,
+  signal::leave-notify-event,
+  midori_view_web_view_leave_notify_event_cb, view,
   signal::hovering-over-link,
   webkit_web_view_hovering_over_link_cb, view,
   signal::button-press-event,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Be sure to reload lists as they are added

2009-09-23 Thread Christian Dywan
Updating branch refs/heads/master
 to a8a0ff625e1abe325f8369980704a4eb1d88f393 (commit)
   from d5ed3e9b287714a90ac087e0e6872a94adf04999 (commit)

commit a8a0ff625e1abe325f8369980704a4eb1d88f393
Author: Alexander Butenko a.bute...@gmail.com
Date:   Wed Sep 23 19:22:01 2009 +0200

Be sure to reload lists as they are added

 extensions/adblock.c |  124 +-
 1 files changed, 72 insertions(+), 52 deletions(-)

diff --git a/extensions/adblock.c b/extensions/adblock.c
index 70624ad..03e2a0b 100644
--- a/extensions/adblock.c
+++ b/extensions/adblock.c
@@ -25,6 +25,9 @@
 static GHashTable* pattern = NULL;
 static gchar* blockcss = ;
 
+static GHashTable*
+adblock_parse_file (gchar* path);
+
 static gchar *
 adblock_fixup_regexp (gchar* src)
 {
@@ -66,6 +69,60 @@ adblock_fixup_regexp (gchar* src)
 }
 
 static void
+adblock_download_notify_status_cb (WebKitDownload* download,
+   GParamSpec* pspec,
+   gchar*  path)
+{
+pattern = adblock_parse_file (path);
+/* g_object_unref (download); */
+}
+
+static void
+adblock_reload_rules(MidoriExtension* extension)
+{
+gchar** filters;
+gchar* folder;
+guint i = 0;
+filters = midori_extension_get_string_list (extension, filters, NULL);
+folder = g_build_filename (g_get_user_cache_dir (), PACKAGE_NAME,
+   adblock, NULL);
+g_mkdir_with_parents (folder, 0700);
+
+if (!filters)
+return;
+
+pattern = NULL;
+blockcss = ;
+
+while (filters[i++] != NULL)
+{
+gchar* filename = g_compute_checksum_for_string (G_CHECKSUM_MD5,
+ filters[i - 1], -1);
+gchar* path = g_build_filename (folder, filename, NULL);
+if (!g_file_test (path, G_FILE_TEST_EXISTS))
+{
+WebKitNetworkRequest* request;
+WebKitDownload* download;
+gchar* destination = g_filename_to_uri (path, NULL, NULL);
+request = webkit_network_request_new (filters[i -1]);
+download = webkit_download_new (request);
+g_object_unref (request);
+webkit_download_set_destination_uri (download, destination);
+g_free (destination);
+g_signal_connect (download, notify::status,
+G_CALLBACK (adblock_download_notify_status_cb), path);
+webkit_download_start (download);
+}
+else
+pattern = adblock_parse_file (path);
+g_free (path);
+g_free (filename);
+}
+g_strfreev (filters);
+g_free (folder);
+}
+
+static void
 adblock_browser_populate_tool_menu_cb (MidoriBrowser*   browser,
GtkWidget*   menu,
MidoriExtension* extension);
@@ -91,17 +148,25 @@ adblock_preferences_model_row_changed_cb (GtkTreeModel*
model,
 gsize length = gtk_tree_model_iter_n_children (model, NULL);
 gchar** filters = g_new (gchar*, length + 1);
 guint i = 0;
+gboolean need_reload = FALSE;
 
 if (gtk_tree_model_iter_children (model, iter, NULL))
 do
 {
 gchar* filter;
 gtk_tree_model_get (model, iter, 0, filter, -1);
-filters[i++] = filter;
+if (filter  filter[0]  filter[1]  filter[2])
+{
+filters[i++] = filter;
+need_reload = TRUE;
+}
+g_free (filter);
 }
 while (gtk_tree_model_iter_next (model, iter));
 filters[length] = NULL;
 midori_extension_set_string_list (extension, filters, filters, length);
+if (need_reload)
+adblock_reload_rules (extension);
 }
 
 static void
@@ -318,7 +383,7 @@ adblock_resource_request_starting_cb (WebKitWebView*
 web_view,
   MidoriView*view)
 {
 const gchar* uri = webkit_network_request_get_uri (request);
-if (!strncmp(uri, data, 4))
+if (!strncmp (uri, data, 4))
 return;
 if (g_hash_table_find (pattern, (GHRFunc) adblock_is_matched, (char*)uri))
 {
@@ -384,7 +449,8 @@ adblock_app_add_browser_cb (MidoriApp*   app,
 {
 if (pattern)
 {
-   midori_browser_foreach (browser, 
(GtkCallback)adblock_add_tab_foreach_cb, browser);
+midori_browser_foreach (browser,
+(GtkCallback)adblock_add_tab_foreach_cb, browser);
 g_signal_connect (browser, add-tab, G_CALLBACK (adblock_add_tab_cb), 
0);
 }
 g_signal_connect (browser, populate-tool-menu,
@@ -506,15 +572,6 @@ adblock_parse_file (gchar* path)
 }
 
 static void
-adblock_download_notify_status_cb (WebKitDownload* download,
-   GParamSpec* pspec,
-   gchar*  path)
-{
-pattern = adblock_parse_file (path);
-/* g_object_unref 

[Xfce4-commits] midori:master Merge userstyles into the userscript panel

2009-09-23 Thread Christian Dywan
Updating branch refs/heads/master
 to ba1084d2360ad9829a8cdbc65eb21db4dd61a448 (commit)
   from b3817bfc522869952397a853cfaf4853366c27de (commit)

commit ba1084d2360ad9829a8cdbc65eb21db4dd61a448
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Sep 22 23:46:51 2009 +0200

Merge userstyles into the userscript panel

 midori/main.c  |5 --
 midori/midori-stock.h  |3 +-
 midori/sokoke.c|1 -
 panels/midori-addons.c |   97 ++-
 4 files changed, 30 insertions(+), 76 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 109b5a7..4f46ba6 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -960,11 +960,6 @@ midori_app_add_browser_cb (MidoriApp* app,
 gtk_widget_show (addon);
 midori_panel_append_page (MIDORI_PANEL (panel), MIDORI_VIEWABLE (addon));
 
-/* Userstyles */
-addon = midori_addons_new (MIDORI_ADDON_USER_STYLES, GTK_WIDGET (browser));
-gtk_widget_show (addon);
-midori_panel_append_page (MIDORI_PANEL (panel), MIDORI_VIEWABLE (addon));
-
 /* Plugins */
 addon = g_object_new (MIDORI_TYPE_PLUGINS, app, app, NULL);
 gtk_widget_show (addon);
diff --git a/midori/midori-stock.h b/midori/midori-stock.h
index 2ee090d..5e5f86a 100644
--- a/midori/midori-stock.h
+++ b/midori/midori-stock.h
@@ -28,7 +28,6 @@
 #define STOCK_WEB_BROWSERweb-browser
 #define STOCK_NEWS_FEED  news-feed
 #define STOCK_STYLE  gnome-settings-theme
-#define STOCK_STYLES gnome-settings-theme
 #define STOCK_TRANSFER   package
 #define STOCK_TRANSFERS  package
 #define STOCK_PLUGINSGTK_STOCK_CONVERT
@@ -38,7 +37,7 @@
 #define STOCK_IMAGE  gnome-mime-image
 #define STOCK_NETWORK_OFFLINEnetwork-offline
 #define STOCK_SCRIPT stock_script
-#define STOCK_SCRIPTSstock_script
+#define STOCK_SCRIPTSgnome-settings-theme
 #define STOCK_SEND   stock_mail-send
 #define STOCK_TAB_NEWstock_new-tab
 #define STOCK_USER_TRASH gnome-stock-trash
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 1bc9aa1..0032aaf 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -866,7 +866,6 @@ sokoke_register_stock_items (void)
 { STOCK_HISTORY,N_(_History), 0, 0, GTK_STOCK_SORT_ASCENDING 
},
 { STOCK_HOMEPAGE,   N_(_Homepage), 0, 0, GTK_STOCK_HOME },
 { STOCK_SCRIPTS,N_(_Userscripts), 0, 0, GTK_STOCK_EXECUTE },
-{ STOCK_STYLES, N_(User_styles), 0, 0, 
GTK_STOCK_SELECT_COLOR },
 { STOCK_TAB_NEW,N_(New _Tab), 0, 0, GTK_STOCK_ADD },
 { STOCK_TRANSFERS,  N_(_Transfers), 0, 0, GTK_STOCK_SAVE },
 { STOCK_PLUGINS,N_(Netscape p_lugins), 0, 0, 
GTK_STOCK_CONVERT },
diff --git a/panels/midori-addons.c b/panels/midori-addons.c
index db30288..cb81b01 100644
--- a/panels/midori-addons.c
+++ b/panels/midori-addons.c
@@ -29,7 +29,6 @@ struct _MidoriAddons
 {
 GtkVBox parent_instance;
 
-MidoriAddonKind kind;
 GtkWidget* web_widget;
 GtkWidget* toolbar;
 GtkWidget* treeview;
@@ -137,23 +136,13 @@ midori_addons_class_init (MidoriAddonsClass* class)
 static const gchar*
 midori_addons_get_label (MidoriViewable* viewable)
 {
-if (MIDORI_ADDONS (viewable)-kind == MIDORI_ADDON_USER_SCRIPTS)
-return _(Userscripts);
-else if (MIDORI_ADDONS (viewable)-kind == MIDORI_ADDON_USER_STYLES)
-return _(Userstyles);
-else
-return NULL;
+return _(Userscripts);
 }
 
 static const gchar*
 midori_addons_get_stock_id (MidoriViewable* viewable)
 {
-if (MIDORI_ADDONS (viewable)-kind == MIDORI_ADDON_USER_SCRIPTS)
-return STOCK_SCRIPTS;
-else if (MIDORI_ADDONS (viewable)-kind == MIDORI_ADDON_USER_STYLES)
-return STOCK_STYLES;
-else
-return NULL;
+return STOCK_SCRIPTS;
 }
 
 static void
@@ -175,7 +164,7 @@ midori_addons_set_property (GObject*  object,
 switch (prop_id)
 {
 case PROP_KIND:
-addons-kind = g_value_get_enum (value);
+/* Ignored */
 break;
 case PROP_WEB_WIDGET:
 katze_object_assign (addons-web_widget, g_value_dup_object (value));
@@ -197,7 +186,7 @@ midori_addons_get_property (GObject*object,
 switch (prop_id)
 {
 case PROP_KIND:
-g_value_set_enum (value, addons-kind);
+g_value_set_enum (value, MIDORI_ADDON_USER_SCRIPTS);
 break;
 case PROP_WEB_WIDGET:
 g_value_set_object (value, addons-web_widget);
@@ -208,57 +197,31 @@ midori_addons_get_property (GObject*object,
 }
 }
 
-static const gchar*
-_addons_get_folder (MidoriAddons* addons)
-{
-switch (addons-kind)
-{
-case MIDORI_ADDON_USER_SCRIPTS:
-return scripts;
-case MIDORI_ADDON_USER_STYLES:
-return styles;
-default:
-return NULL;
-}
-}
-
-static const gchar*
-_addons_get_extension (MidoriAddons* addons

[Xfce4-commits] midori:master Disconnect request-queued properly to avoid lots of dialog callbacks

2009-09-25 Thread Christian Dywan
Updating branch refs/heads/master
 to 19b7271ed1e54c95086186c8192ba0db44e0099c (commit)
   from a8a0ff625e1abe325f8369980704a4eb1d88f393 (commit)

commit 19b7271ed1e54c95086186c8192ba0db44e0099c
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Sep 25 22:51:18 2009 +0200

Disconnect request-queued properly to avoid lots of dialog callbacks

The wrong user data argument passed when disconnecting request-queued
would lead to the callback not being disconnected, which led to a
number of dialogs relative to the number of opened websites being spawned.

 katze/katze-http-auth.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/katze/katze-http-auth.c b/katze/katze-http-auth.c
index cb2beb4..38c6ce5 100644
--- a/katze/katze-http-auth.c
+++ b/katze/katze-http-auth.c
@@ -295,7 +295,7 @@ katze_http_auth_session_request_queued_cb (SoupSession*   
session,
 g_signal_connect (session, authenticate,
 G_CALLBACK (katze_http_auth_session_authenticate_cb), http_auth);
 g_signal_handlers_disconnect_by_func (session,
-katze_http_auth_session_request_queued_cb, NULL);
+katze_http_auth_session_request_queued_cb, http_auth);
 }
 
 static void
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Add Korean translation

2009-09-25 Thread Christian Dywan
Updating branch refs/heads/master
 to 59238c269eb5d3b46b285dcecb23bb3e47251a89 (commit)
   from 19b7271ed1e54c95086186c8192ba0db44e0099c (commit)

commit 59238c269eb5d3b46b285dcecb23bb3e47251a89
Author: Seo Sanghyeon sanx...@gmail.com
Date:   Fri Sep 25 23:09:34 2009 +0200

Add Korean translation

 po/LINGUAS   |2 +-
 po/{midori.pot = ko.po} |  112 --
 2 files changed, 60 insertions(+), 54 deletions(-)

diff --git a/po/LINGUAS b/po/LINGUAS
index 4d77fd2..eb72920 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,2 +1,2 @@
 # set of available languages (in alphabetic order)
-ast ca cs da de el en_GB es et fi fr gl he hu id it ja nl pl pt pt_BR ro ru sk 
sr s...@latin sv tr uk zh_CN zh_TW
+ast ca cs da de el en_GB es et fi fr gl he hu id it ja ko nl pl pt pt_BR ro ru 
sk sr s...@latin sv tr uk zh_CN zh_TW
diff --git a/po/midori.pot b/po/ko.po
similarity index 96%
copy from po/midori.pot
copy to po/ko.po
index 2b0b736..2a079db 100644
--- a/po/midori.pot
+++ b/po/ko.po
@@ -1,19 +1,19 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR em...@address, YEAR.
+# Korean translations for midori package.
+# Copyright (C) 2009 THE midori'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the midori package.
+# Seo Sanghyeon sanx...@gmail.com 2009
 #
 #, fuzzy
 msgid 
 msgstr 
-Project-Id-Version: PACKAGE VERSION\n
+Project-Id-Version: midori 0.1.10\n
 Report-Msgid-Bugs-To: \n
 POT-Creation-Date: 2009-09-06 00:44+0200\n
-PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n
-Last-Translator: FULL NAME em...@address\n
-Language-Team: LANGUAGE l...@li.org\n
+PO-Revision-Date: 2009-24-09 09:10+0200\n
+Last-Translator: Seo Sanghyeon sanx...@gmail.com\n
+Language-Team: Korean k...@li.org\n
 MIME-Version: 1.0\n
-Content-Type: text/plain; charset=CHARSET\n
+Content-Type: text/plain; charset=UTF-8\n
 Content-Transfer-Encoding: 8bit\n
 Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n
 
@@ -352,7 +352,7 @@ msgstr 
 #: ../midori/midori-browser.c:3870 ../midori/midori-preferences.c:665
 #: ../panels/midori-history.c:108
 msgid History
-msgstr 
+msgstr 방문 기록
 
 #: ../midori/midori-browser.c:3875
 msgid Cookies
@@ -368,7 +368,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:3890 ../midori/sokoke.c:873
 msgid _Closed Tabs
-msgstr 
+msgstr 최근에 닫은 탭(_C)
 
 #: ../midori/midori-browser.c:3898
 msgid Clear private data when _quitting Midori
@@ -380,15 +380,15 @@ msgstr 
 
 #: ../midori/midori-browser.c:3995
 msgid translator-credits
-msgstr 
+msgstr Seo Sanghyeon sanx...@gmail.com
 
 #: ../midori/midori-browser.c:4261
 msgid _File
-msgstr 
+msgstr 파일(_F)
 
 #: ../midori/midori-browser.c:4263 ../midori/sokoke.c:874
 msgid New _Window
-msgstr 
+msgstr 새 창(_W)
 
 #: ../midori/midori-browser.c:4264
 msgid Open a new window
@@ -416,7 +416,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4278
 msgid _Close Tab
-msgstr 
+msgstr 탭 닫기(_C)
 
 #: ../midori/midori-browser.c:4279
 msgid Close the current tab
@@ -424,7 +424,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4281
 msgid C_lose Window
-msgstr 
+msgstr 창 닫기(_L)
 
 #: ../midori/midori-browser.c:4282
 msgid Close this window
@@ -440,7 +440,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4290
 msgid _Edit
-msgstr 
+msgstr 편집(_E)
 
 #: ../midori/midori-browser.c:4293
 msgid Cut the selected text
@@ -468,7 +468,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4313
 msgid Find _Next
-msgstr 
+msgstr 다시 찾기(_N)
 
 #: ../midori/midori-browser.c:4314
 msgid Find the next occurrence of a word or phrase
@@ -488,7 +488,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4323
 msgid _View
-msgstr 
+msgstr 보기(_V)
 
 #: ../midori/midori-browser.c:4324
 msgid _Toolbars
@@ -508,11 +508,11 @@ msgstr 
 
 #: ../midori/midori-browser.c:4343
 msgid _Encoding
-msgstr 
+msgstr 문자 인코딩(_E)
 
 #: ../midori/midori-browser.c:4345
 msgid View So_urce
-msgstr 
+msgstr 소스 보기(_U)
 
 #: ../midori/midori-browser.c:4346
 msgid View the source code of the page
@@ -532,7 +532,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4355
 msgid _Go
-msgstr 
+msgstr 이동(_G)
 
 #: ../midori/midori-browser.c:4358
 msgid Go back to the previous page
@@ -608,11 +608,11 @@ msgstr 
 
 #: ../midori/midori-browser.c:4394
 msgid _Help
-msgstr 
+msgstr 도움말(_H)
 
 #: ../midori/midori-browser.c:4396
 msgid _Contents
-msgstr 
+msgstr 도움말 목차(_C)
 
 #: ../midori/midori-browser.c:4397
 msgid Show the documentation
@@ -696,7 +696,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4447
 msgid _Automatic
-msgstr 
+msgstr 자동 선택(_A)
 
 #: ../midori/midori-browser.c:4450 ../midori/midori-websettings.c:214
 msgid Chinese (BIG5)
@@ -758,7 +758,7 @@ msgstr 
 
 #: ../midori/midori-browser.c:4995 ../midori/sokoke.c:862
 msgid _Bookmarks
-msgstr 
+msgstr 북마크(_B)
 
 #: 

[Xfce4-commits] midori:master Save back and forward history in the session (disabled)

2009-09-26 Thread Christian Dywan
Updating branch refs/heads/master
 to 1ead8e88864567bccfdd39c34c4e1e52813db808 (commit)
   from bff042754c4c7ae35f875b783cc1eccdac34b9f2 (commit)

commit 1ead8e88864567bccfdd39c34c4e1e52813db808
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Sep 25 23:57:44 2009 +0200

Save back and forward history in the session (disabled)

 midori/midori-array.c |7 +++-
 midori/midori-view.c  |   89 +
 2 files changed, 95 insertions(+), 1 deletions(-)

diff --git a/midori/midori-array.c b/midori/midori-array.c
index 4ea123b..7004bea 100644
--- a/midori/midori-array.c
+++ b/midori/midori-array.c
@@ -364,8 +364,13 @@ katze_item_metadata_to_xbel (KatzeItem* item)
 i = 0;
 while ((key = g_list_nth_data (keys, i++)))
 if (katze_item_get_meta_string (item, key))
+{
+gchar* escaped =
+g_markup_escape_text (katze_item_get_meta_string (item, key), 
-1);
 g_string_append_printf (markup,  %s:%s=\%s\, namespace, key,
-katze_item_get_meta_string (item, key));
+escaped);
+g_free (escaped);
+}
 g_string_append_printf (markup, /\n/info\n);
 return g_string_free (markup, FALSE);
 }
diff --git a/midori/midori-view.c b/midori/midori-view.c
index d884af9..53b7720 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -97,6 +97,7 @@ struct _MidoriView
 GtkWidget* tab_close;
 KatzeItem* item;
 gint scrollh, scrollv;
+gboolean back_forward_set;
 
 KatzeNet* net;
 };
@@ -750,6 +751,49 @@ webkit_web_view_load_committed_cb (WebKitWebView*  
web_view,
 katze_assign (view-uri, g_strdup (uri));
 if (view-item)
 {
+#if 0
+/* Load back forward history from meta data. WebKit does not seem to
+  respect the order of items, so the feature is unusable. */
+if (!view-back_forward_set)
+{
+WebKitWebBackForwardList* list;
+gchar* key;
+guint i;
+const gchar* data;
+WebKitWebHistoryItem* item;
+
+list = webkit_web_view_get_back_forward_list (web_view);
+
+key = g_strdup (back4);
+for (i = 4; i  0; i--)
+{
+key[4] = 48 + i;
+if ((data = katze_item_get_meta_string (view-item, key)))
+{
+item = webkit_web_history_item_new_with_data (data, NULL);
+webkit_web_back_forward_list_add_item (list, item);
+g_object_unref (item);
+}
+}
+
+#if 0
+key[0] = 'f';
+key[1] = 'o';
+key[2] = 'r';
+key[3] = 'e';
+for (i = 4; i  0; i--)
+{
+key[4] = 48 + i;
+item = webkit_web_history_item_new_with_data (data, NULL);
+webkit_web_back_forward_list_add_item (list, item);
+g_object_unref (item);
+}
+#endif
+g_free (key);
+view-back_forward_set = TRUE;
+}
+#endif
+
 katze_item_set_uri (view-item, uri);
 katze_item_set_added (view-item, time (NULL));
 }
@@ -941,6 +985,50 @@ webkit_web_view_notify_uri_cb (WebKitWebView* web_view,
GParamSpec*pspec,
MidoriView*view)
 {
+#if 0
+if (view-item)
+{
+/* Save back forward history as meta data. This is disabled
+  because we can't reliably restore these atm. */
+WebKitWebView* web_view;
+WebKitWebBackForwardList* list;
+GList* back;
+GList* forward;
+
+web_view = WEBKIT_WEB_VIEW (view-web_view);
+list = webkit_web_view_get_back_forward_list (web_view);
+back = webkit_web_back_forward_list_get_back_list_with_limit (list, 5);
+forward = webkit_web_back_forward_list_get_forward_list_with_limit 
(list, 5);
+guint i;
+WebKitWebHistoryItem* item;
+gchar* key = g_strdup (back0);
+
+i = 0;
+while ((item = g_list_nth_data (back, i++)))
+{
+katze_item_set_meta_string (view-item, key,
+webkit_web_history_item_get_uri (item));
+key[4] = 48 + i;
+}
+
+#if 0
+key[0] = 'f';
+key[1] = 'o';
+key[2] = 'r';
+key[3] = 'e';
+key[4] = 48;
+i = 0;
+while ((item = g_list_nth_data (forward, i++)))
+{
+katze_item_set_meta_string (view-item, key,
+webkit_web_history_item_get_uri (item));
+key[4] = 48 + i;
+}
+#endif
+g_free (key);
+}
+#endif
+
 g_object_get (web_view, uri, view-uri, NULL);
 g_object_notify (G_OBJECT (view), uri);
 }
@@ -2057,6 +2145,7 @@ midori_view_init (MidoriView* view)
 
 view-item = NULL

[Xfce4-commits] midori:master Use brackets when checking bookmark address to avoid compiler warning

2009-09-26 Thread Christian Dywan
Updating branch refs/heads/master
 to 249b8e466920624afb69651298ce49332596eea0 (commit)
   from 1ead8e88864567bccfdd39c34c4e1e52813db808 (commit)

commit 249b8e466920624afb69651298ce49332596eea0
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Sep 26 21:31:42 2009 +0200

Use brackets when checking bookmark address to avoid compiler warning

 midori/midori-browser.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 568a4aa..007e91d 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -611,8 +611,8 @@ midori_browser_edit_bookmark_uri_changed_cb (GtkEntry*  
entry,
 {
 const gchar* uri = gtk_entry_get_text (entry);
 gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT,
-uri  g_str_has_prefix (uri, http://;)
-|| g_str_has_prefix (uri, https://;));
+uri  (g_str_has_prefix (uri, http://;)
+|| g_str_has_prefix (uri, https://;)));
 }
 
 /* Private function, used by MidoriBookmarks and MidoriHistory */
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Show Menubar menu in context menu if menubar and navibar are hidden

2009-09-26 Thread Christian Dywan
Updating branch refs/heads/master
 to f294d79a74b04dcef6fd7edfb14b2325022648a4 (commit)
   from 55a2ecf710c304d602d3952ba6855f20ee181497 (commit)

commit f294d79a74b04dcef6fd7edfb14b2325022648a4
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Sep 26 22:08:16 2009 +0200

Show Menubar menu in context menu if menubar and navibar are hidden

It happens that users hide all toolbars and don't find a way to make
them visible again. A menu item will be there for this case.

 midori/midori-browser.c |   10 ++
 midori/midori-view.c|7 +++
 2 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 007e91d..042d856 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -2849,6 +2849,11 @@ _action_menubar_activate (GtkToggleAction* action,
 _midori_browser_save_toolbar_items (browser);
 }
 }
+
+g_object_set_data (G_OBJECT (browser), midori-toolbars-visible,
+GTK_WIDGET_VISIBLE (browser-menubar)
+|| GTK_WIDGET_VISIBLE (browser-navigationbar)
+? (void*)0xdeadbeef : NULL);
 #endif
 }
 
@@ -2860,6 +2865,11 @@ _action_navigationbar_activate (GtkToggleAction* action,
 if (browser-settings)
 g_object_set (browser-settings, show-navigationbar, active, NULL);
 sokoke_widget_set_visible (browser-navigationbar, active);
+
+g_object_set_data (G_OBJECT (browser), midori-toolbars-visible,
+GTK_WIDGET_VISIBLE (browser-menubar)
+|| GTK_WIDGET_VISIBLE (browser-navigationbar)
+? (void*)0xdeadbeef : NULL);
 }
 
 static void
diff --git a/midori/midori-view.c b/midori/midori-view.c
index 3404dc4..942f9d7 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1814,6 +1814,13 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 G_CALLBACK (midori_web_view_menu_inspect_page_activate_cb), 
widget); */
 #endif
 
+if (!g_object_get_data (G_OBJECT (browser), midori-toolbars-visible))
+{
+menuitem = sokoke_action_create_popup_menu_item (
+gtk_action_group_get_action (actions, Menubar));
+gtk_menu_shell_append (menu_shell, menuitem);
+}
+
 menuitem = sokoke_action_create_popup_menu_item (
 gtk_action_group_get_action (actions, ZoomIn));
 gtk_menu_shell_append (menu_shell, menuitem);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Enable new context menu code with WebKitGTK+ 1.1.15 afterall

2009-09-26 Thread Christian Dywan
Updating branch refs/heads/master
 to 55a2ecf710c304d602d3952ba6855f20ee181497 (commit)
   from 249b8e466920624afb69651298ce49332596eea0 (commit)

commit 55a2ecf710c304d602d3952ba6855f20ee181497
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Sep 26 21:36:41 2009 +0200

Enable new context menu code with WebKitGTK+ 1.1.15 afterall

To avoid regressing we keep the hacked document menu for now
and add a small improvement to fix image context menus with
older WebKitGTK+ versions.

 midori/midori-view.c |   43 ++-
 1 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 53b7720..3404dc4 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -69,7 +69,7 @@ struct _MidoriView
 MidoriLoadStatus load_status;
 gboolean minimized;
 gchar* statusbar_text;
-#if WEBKIT_CHECK_VERSION (1, 1, 16)
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
 WebKitHitTestResult* hit_test;
 #endif
 gchar* link_uri;
@@ -1150,7 +1150,7 @@ gtk_widget_button_press_event_cb (WebKitWebView*  
web_view,
 else if (view-middle_click_opens_selection)
 {
 gboolean is_editable;
-#if WEBKIT_CHECK_VERSION (1, 1, 16)
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
 WebKitHitTestResult* result;
 WebKitHitTestResultContext context;
 
@@ -1267,7 +1267,7 @@ gtk_widget_scroll_event_cb (WebKitWebView*  web_view,
 return FALSE;
 }
 
-#if WEBKIT_CHECK_VERSION (1, 1, 16)
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
 static void
 midori_web_view_menu_open_activate_cb (GtkWidget*  widget,
MidoriView* view)
@@ -1502,20 +1502,22 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 GtkWidget* widget = GTK_WIDGET (view);
 GtkWidget* menuitem;
 GtkWidget* icon;
+#if !WEBKIT_CHECK_VERSION (1, 1, 15)
 gchar* stock_id;
+#endif
 GList* items;
 gboolean has_selection;
 gboolean is_editable;
 gboolean is_document;
 GtkWidget* label;
+guint i;
 
-#if WEBKIT_CHECK_VERSION (1, 1, 16)
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
 gint x, y;
 GdkEventButton event;
 WebKitHitTestResultContext context;
 gboolean is_image;
 gboolean is_media;
-gint i;
 
 gdk_window_get_pointer (GTK_WIDGET (web_view)-window, x, y, NULL);
 event.x = x;
@@ -1553,6 +1555,8 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 gtk_image_get_stock (GTK_IMAGE (icon), stock_id, NULL);
 }
 is_editable = !strcmp (stock_id, GTK_STOCK_CUT);
+if (is_document  !strcmp (stock_id, GTK_STOCK_OPEN))
+is_document = FALSE;
 }
 else
 is_editable = FALSE;
@@ -1579,12 +1583,17 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 return;
 }
 
-#if WEBKIT_CHECK_VERSION (1, 1, 16)
-items = gtk_container_get_children (GTK_CONTAINER (menu));
-i = 0;
-while ((menuitem = g_list_nth_data (items, i++)))
-gtk_widget_destroy (menuitem);
-g_list_free (items);
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
+/* FIXME: We can't re-implement Open in Frame or Inspect page,
+  so we can't replace the default document menu */
+if (!is_document)
+{
+items = gtk_container_get_children (GTK_CONTAINER (menu));
+i = 0;
+while ((menuitem = g_list_nth_data (items, i++)))
+gtk_widget_destroy (menuitem);
+g_list_free (items);
+}
 if (view-link_uri)
 {
 midori_view_insert_menu_item (menu_shell, -1,
@@ -1688,7 +1697,6 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 if (!view-link_uri  has_selection)
 {
 GtkWidget* window;
-guint i;
 
 window = gtk_widget_get_toplevel (GTK_WIDGET (web_view));
 i = 0;
@@ -1724,7 +1732,7 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 }
 g_object_unref (search_engines);
 }
-#if WEBKIT_CHECK_VERSION (1, 1, 16)
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
 midori_view_insert_menu_item (menu_shell, 0,
 _(_Search the Web), GTK_STOCK_FIND,
 G_CALLBACK (midori_web_view_menu_search_web_activate_cb), widget);
@@ -1753,7 +1761,9 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 
 if (is_document)
 {
-#if WEBKIT_CHECK_VERSION (1, 1, 16)
+/* FIXME: We can't re-implement Open in Frame or Inspect page
+#if WEBKIT_CHECK_VERSION (1, 1, 15) */
+#if 0
 menuitem = sokoke_action_create_popup_menu_item (
 gtk_action_group_get_action (actions, Back));
 gtk_menu_shell_append (menu_shell, menuitem);
@@ -1787,7 +1797,7 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 gtk_menu_shell_append (menu_shell, menuitem

[Xfce4-commits] midori:master Open source of local files directly with no temporary copy

2009-09-28 Thread Christian Dywan
Updating branch refs/heads/master
 to b70a2569dfbe82b8a5b36aca05418b5bce5c30b7 (commit)
   from f294d79a74b04dcef6fd7edfb14b2325022648a4 (commit)

commit b70a2569dfbe82b8a5b36aca05418b5bce5c30b7
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Sep 26 23:56:29 2009 +0200

Open source of local files directly with no temporary copy

 midori/midori-browser.c |7 +++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 042d856..9949db0 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -3147,6 +3147,13 @@ _action_source_view_activate (GtkAction* action,
 #endif
 }
 
+if (g_str_has_prefix (uri, file://))
+{
+gchar* filename = g_filename_from_uri (uri, NULL, NULL);
+sokoke_spawn_program (text_editor, filename, TRUE);
+g_free (filename);
+return;
+}
 katze_net_load_uri (browser-net, uri, NULL,
 (KatzeNetTransferCb)midori_browser_source_transfer_cb, browser);
 g_free (text_editor);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Apply the correct settings to source view tabs

2009-09-28 Thread Christian Dywan
Updating branch refs/heads/master
 to 7259066e20d982d98a554caf19c7c1134f4658eb (commit)
   from b70a2569dfbe82b8a5b36aca05418b5bce5c30b7 (commit)

commit 7259066e20d982d98a554caf19c7c1134f4658eb
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Sep 27 23:37:08 2009 +0200

Apply the correct settings to source view tabs

 midori/midori-browser.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 9949db0..1b7bc76 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -3105,6 +3105,7 @@ _action_source_view_activate (GtkAction* action,
 GtkWidget* web_view;
 
 source = midori_view_new (browser-net);
+midori_view_set_settings (MIDORI_VIEW (source), browser-settings);
 midori_view_set_uri (MIDORI_VIEW (source), );
 web_view = gtk_bin_get_child (GTK_BIN (source));
 webkit_web_view_set_view_source_mode (WEBKIT_WEB_VIEW (web_view), 
TRUE);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Implement drag (finger) and kinetic scrolling with KatzeScrolled

2009-09-28 Thread Christian Dywan
Updating branch refs/heads/master
 to 96093d906754a986ef9b6dae5eae0ba8411653d4 (commit)
   from 7259066e20d982d98a554caf19c7c1134f4658eb (commit)

commit 96093d906754a986ef9b6dae5eae0ba8411653d4
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Sep 27 23:48:08 2009 +0200

Implement drag (finger) and kinetic scrolling with KatzeScrolled

The feature is primarily interesting for mobile devices and
by default enabled with gtk-touchscreen-mode.

 katze/katze-scrolled.c  | 1086 +++
 katze/katze-scrolled.h  |   59 +++
 katze/katze.h   |1 +
 midori/midori-browser.c |3 -
 midori/midori-preferences.c |   17 +-
 midori/midori-view.c|   24 +-
 midori/midori-websettings.c |   25 +
 7 files changed, 1203 insertions(+), 12 deletions(-)

diff --git a/katze/katze-scrolled.c b/katze/katze-scrolled.c
new file mode 100644
index 000..b7596f5
--- /dev/null
+++ b/katze/katze-scrolled.c
@@ -0,0 +1,1086 @@
+/*
+ Copyright (C) 2007 Henrik Hedberg hhedb...@innologies.fi
+ Copyright (C) 2009 Nadav Wiener nada...@yahoo.com
+ Copyright (C) 2009 Christian Dywan christ...@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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include config.h
+#endif
+
+#include katze-scrolled.h
+
+#define DEFAULT_INTERVAL 50
+#define DEFAULT_DECELERATION 0.7
+#define DEFAULT_DRAGGING_STOPPED_DELAY 100
+
+/**
+ * SECTION:katze-scrolled
+ * @short_description: Implements drag scrolling and kinetic scrolling
+ * @see_also: #GtkScrolledWindow
+ *
+ * A scrolled window derived from #GtkScrolledWindow that implements
+ * drag scrolling and kinetic scrolling. Can be used as a drop-in replacement
+ * for the existing #GtkScrolledWindow.
+ *
+ * If a direct child of the #KatzeScrolled has its own window
+ * (InputOnly is enough for events), it is automatically activated when added
+ * as a child. All motion events in that area will be used to scroll.
+ *
+ * If some descendant widgets capture button press, button release and/ or
+ * motion nofity events, the user can not scroll the area by pressing those
+ * widgets (unless the widget is activated). #GtkButton is a typical example
+ * of that. Usually that is the desired behaviour.
+ *
+ * Any widget can be registered to provide pointer events for the
+ * #KatzeScrolled by using the
+ * #katze_scrolled_activate_scrolling function.
+ *
+ **/
+
+G_DEFINE_TYPE (KatzeScrolled, katze_scrolled, GTK_TYPE_SCROLLED_WINDOW);
+
+enum
+{
+PROP_0,
+
+PROP_DRAG_SCROLLING,
+PROP_KINETIC_SCROLLING
+};
+
+static void
+katze_scrolled_set_property (GObject* object,
+ guint prop_id,
+ const GValue* value,
+ GParamSpec* pspec);
+
+static void
+katze_scrolled_get_property (GObject* object,
+ guint prop_id,
+ GValue* value,
+ GParamSpec* pspec);
+
+static void
+katze_scrolled_dispose (GObject* object);
+
+static void
+katze_scrolled_activate_scrolling (KatzeScrolled* scrolled,
+   GtkWidget* widget);
+
+static void
+katze_scrolled_set_drag_scrolling (KatzeScrolled* scrolled,
+   gboolean   drag_scrolling);
+
+struct _KatzeScrolledPrivate
+{
+/* Settings */
+guint interval;
+gdouble deceleration;
+gboolean drag_scrolling;
+gboolean kinetic_scrolling;
+guint32 dragging_stopped_delay;
+gboolean scrolling_hints;
+
+/* Temporary variables */
+gboolean dragged;
+gboolean press_received;
+GdkWindow* synthetic_crossing_event_window;
+
+/* Disabling twice happening scrolling adjustment */
+GtkAdjustment* hadjustment;
+GtkWidget* viewport;
+
+/* Motion scrolling */
+gint start_x;
+gint start_y;
+gint previous_x;
+gint previous_y;
+gint farest_x;
+gint farest_y;
+guint32 start_time;
+guint32 previous_time;
+guint32 farest_time;
+gboolean going_right;
+gboolean going_down;
+
+/* Kinetic scrolling */
+guint scrolling_timeout_id;
+gdouble horizontal_speed;
+gdouble vertical_speed;
+gdouble horizontal_deceleration;
+gdouble vertical_deceleration;
+
+/* Internal scrollbars */
+GdkWindow* vertical_scrollbar_window;
+GdkWindow* horizontal_scrollbar_window;
+gint vertical_scrollbar_size;
+gint horizontal_scrollbar_size;
+guint hide_scrollbars_timeout_id;
+GdkGC* hilight_gc;
+GdkGC* shadow_gc;
+};
+
+typedef struct _KatzeScrolledState KatzeScrolledState;
+typedef gboolean (*KatzeScrolledEventHandler)(GdkEvent*   event

[Xfce4-commits] midori:master Only if a preriod follws is a typed number the start of an IP address

2009-09-28 Thread Christian Dywan
Updating branch refs/heads/master
 to 1d634247c7e013794a7d4c75843c0e926491b9d0 (commit)
   from 96093d906754a986ef9b6dae5eae0ba8411653d4 (commit)

commit 1d634247c7e013794a7d4c75843c0e926491b9d0
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Sep 28 23:01:48 2009 +0200

Only if a preriod follws is a typed number the start of an IP address

 midori/sokoke.c   |4 ++--
 tests/magic-uri.c |2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/midori/sokoke.c b/midori/sokoke.c
index 0032aaf..bc16970 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -319,8 +319,8 @@ sokoke_magic_uri (const gchar* uri,
 if (g_strstr_len (uri, 8, ://))
 return sokoke_idn_to_punycode (g_strdup (uri));
 
-/* Do we have a domain, ip address or localhost? */
-if (g_ascii_isdigit (uri[0]))
+/* Do we have an IP address? */
+if (g_ascii_isdigit (uri[0])  g_strstr_len (uri, 4, .))
 return g_strconcat (http://;, uri, NULL);
 search = NULL;
 if (!strchr (uri, ' ') 
diff --git a/tests/magic-uri.c b/tests/magic-uri.c
index db9ea4e..38295f8 100644
--- a/tests/magic-uri.c
+++ b/tests/magic-uri.c
@@ -114,6 +114,8 @@ magic_uri_search (void)
 test_input (gtk2.0, NULL);
 test_input (pcre++, NULL);
 test_input (sm pcre++, SM pcre%2B%2B);
+test_input (5580, NULL);
+test_input (sm 5580, SM 5580);
 test_input (midori0.1.0, NULL);
 test_input (midori 0.1.0, NULL);
 test_input (search:cats, NULL);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Default to Ctrl+Alt+U instead of Ctrl+U for View source

2009-09-28 Thread Christian Dywan
Updating branch refs/heads/master
 to 6d31faecf3412b49663a08c2e3e7d453e9f87503 (commit)
   from 1d634247c7e013794a7d4c75843c0e926491b9d0 (commit)

commit 6d31faecf3412b49663a08c2e3e7d453e9f87503
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Sep 28 23:10:31 2009 +0200

Default to Ctrl+Alt+U instead of Ctrl+U for View source

 midori/midori-browser.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 4e7b6b8..3e722ab 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -4433,7 +4433,7 @@ static const GtkActionEntry entries[] = {
N_(Reset the zoom level), G_CALLBACK (_action_zoom_normal_activate) },
  { Encoding, NULL, N_(_Encoding) },
  { SourceView, NULL,
-   N_(View So_urce), CtrlU,
+   N_(View So_urce), CtrlAltU,
N_(View the source code of the page), G_CALLBACK 
(_action_source_view_activate) },
  { SelectionSourceView, NULL,
 N_(View Selection Source), ,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Count font names added to the list, to fix font combo boxes

2009-09-28 Thread Christian Dywan
Updating branch refs/heads/master
 to 7a5329a1e0467c87d62faa972c0138a67da39b00 (commit)
   from 6d31faecf3412b49663a08c2e3e7d453e9f87503 (commit)

commit 7a5329a1e0467c87d62faa972c0138a67da39b00
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Sep 28 23:54:39 2009 +0200

Count font names added to the list, to fix font combo boxes

 katze/katze-utils.c |   20 
 1 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/katze/katze-utils.c b/katze/katze-utils.c
index def1735..473d091 100644
--- a/katze/katze-utils.c
+++ b/katze/katze-utils.c
@@ -283,7 +283,7 @@ katze_property_proxy (gpointer object,
 || _hint == g_intern_string (font-monospace)))
 {
 GtkComboBox* combo;
-int n_families, i;
+gint n_families, i;
 PangoContext* context;
 PangoFontFamily** families;
 gboolean monospace = _hint == g_intern_string (font-monospace);
@@ -296,14 +296,18 @@ katze_property_proxy (gpointer object,
 if (!string)
 string = g_strdup (G_PARAM_SPEC_STRING (pspec)-default_value);
 if (string)
-for (i = 0; i  n_families; i++)
 {
-const gchar* font = pango_font_family_get_name (families[i]);
-if (monospace != pango_font_family_is_monospace (families[i]))
-continue;
-gtk_combo_box_append_text (combo, font);
-if (!g_ascii_strcasecmp (font, string))
-gtk_combo_box_set_active (combo, i);
+gint j = 0;
+for (i = 0; i  n_families; i++)
+{
+const gchar* font = pango_font_family_get_name (families[i]);
+if (monospace != pango_font_family_is_monospace (families[i]))
+continue;
+gtk_combo_box_append_text (combo, font);
+if (!g_ascii_strcasecmp (font, string))
+gtk_combo_box_set_active (combo, j);
+j++;
+}
 }
 gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (
 gtk_combo_box_get_model (combo)), 0, GTK_SORT_ASCENDING);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Notify MidoriBrowser::tab property properly

2009-09-29 Thread Christian Dywan
Updating branch refs/heads/master
 to f530218492f367fe60bf78dfd80e93c216571f3e (commit)
   from 7a5329a1e0467c87d62faa972c0138a67da39b00 (commit)

commit f530218492f367fe60bf78dfd80e93c216571f3e
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Sep 29 20:49:30 2009 +0200

Notify MidoriBrowser::tab property properly

 midori/midori-browser.c |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 3e722ab..d7b0df1 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -4255,7 +4255,10 @@ gtk_notebook_switch_page_cb (GtkWidget*   notebook,
 if (browser-proxy_array)
 katze_item_set_meta_integer (KATZE_ITEM (browser-proxy_array), 
current,
  midori_browser_get_current_page 
(browser));
+g_object_freeze_notify (G_OBJECT (browser));
 g_object_notify (G_OBJECT (browser), uri);
+g_object_notify (G_OBJECT (browser), tab);
+g_object_thaw_notify (G_OBJECT (browser));
 
 _midori_browser_set_statusbar_text (browser, NULL);
 _midori_browser_update_interface (browser);
@@ -4271,7 +4274,10 @@ midori_browser_notebook_page_reordered_cb (GtkNotebook*  
 notebook,
 KatzeItem* item = midori_view_get_proxy_item (view);
 katze_array_move_item (browser-proxy_array, item, page_num);
 
+g_object_freeze_notify (G_OBJECT (browser));
 g_object_notify (G_OBJECT (browser), uri);
+g_object_notify (G_OBJECT (browser), tab);
+g_object_thaw_notify (G_OBJECT (browser));
 }
 
 static gboolean
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Update tab panel selection when tabs are switched, opened or closed

2009-09-29 Thread Christian Dywan
Updating branch refs/heads/master
 to 0e0ce115f957ccf0667296fc71b182af69f80c48 (commit)
   from f530218492f367fe60bf78dfd80e93c216571f3e (commit)

commit 0e0ce115f957ccf0667296fc71b182af69f80c48
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Sep 29 20:50:04 2009 +0200

Update tab panel selection when tabs are switched, opened or closed

A convenince function tab_panel_get_iter_for_view is introduced
to make finding the right iter easier.

 extensions/tab-panel.c |  120 +---
 1 files changed, 63 insertions(+), 57 deletions(-)

diff --git a/extensions/tab-panel.c b/extensions/tab-panel.c
index 0feb2c0..df6c70d 100644
--- a/extensions/tab-panel.c
+++ b/extensions/tab-panel.c
@@ -35,6 +35,11 @@ tab_panel_browser_remove_tab_cb (MidoriBrowser*   browser,
  MidoriExtension* extension);
 
 static void
+tab_panel_browser_notify_tab_cb (MidoriBrowser* browser,
+ GParamSpec*pspec,
+ GtkTreeView*   treeview);
+
+static void
 tab_panel_view_notify_minimized_cb (GtkWidget*   view,
 GParamSpec*  pspec,
 MidoriExtension* extension);
@@ -67,22 +72,42 @@ tab_panel_get_toolitem_for_view (GtkWidget* view)
 return g_object_get_data (G_OBJECT (view), tab-panel-ext-toolitem);
 }
 
+static gboolean
+tab_panel_get_iter_for_view (GtkTreeModel* model,
+ GtkTreeIter*  iter,
+ gpointer  view)
+{
+guint i = 0;
+
+while (gtk_tree_model_iter_nth_child (model, iter, NULL, i))
+{
+MidoriView* view_;
+
+gtk_tree_model_get (model, iter, 0, view_, -1);
+g_object_unref (view_);
+if (view_ == view)
+return TRUE;
+i++;
+}
+
+return FALSE;
+}
+
 static void
 tab_panel_deactivate_cb (MidoriExtension* extension,
- GtkWidget*   panel)
+ GtkWidget*   treeview)
 {
 MidoriApp* app = midori_extension_get_app (extension);
 GtkTreeModel* model;
 MidoriBrowser* browser;
 
-browser = midori_browser_get_for_widget (panel);
+browser = midori_browser_get_for_widget (treeview);
 g_object_set (browser, show-tabs, TRUE, NULL);
 model = tab_panel_get_model_for_browser (browser);
 g_object_unref (model);
 
-gtk_widget_destroy (panel);
 g_signal_handlers_disconnect_by_func (
-extension, tab_panel_deactivate_cb, panel);
+extension, tab_panel_deactivate_cb, treeview);
 g_signal_handlers_disconnect_by_func (
 app, tab_panel_app_add_browser_cb, extension);
 g_signal_handlers_disconnect_by_func (
@@ -90,6 +115,8 @@ tab_panel_deactivate_cb (MidoriExtension* extension,
 g_signal_handlers_disconnect_by_func (
 browser, tab_panel_browser_remove_tab_cb, extension);
 g_signal_handlers_disconnect_by_func (
+browser, tab_panel_browser_notify_tab_cb, treeview);
+g_signal_handlers_disconnect_by_func (
 browser, tab_panel_settings_notify_cb, model);
 g_signal_handlers_disconnect_by_func (
 browser, tab_panel_view_notify_minimized_cb, extension);
@@ -97,6 +124,8 @@ tab_panel_deactivate_cb (MidoriExtension* extension,
 browser, tab_panel_view_notify_icon_cb, extension);
 g_signal_handlers_disconnect_by_func (
 browser, tab_panel_view_notify_title_cb, extension);
+
+gtk_widget_destroy (treeview);
 }
 
 static void
@@ -265,24 +294,8 @@ tab_panel_remove_view (MidoriBrowser* browser,
 {
 GtkTreeModel* model = tab_panel_get_model_for_browser (browser);
 GtkTreeIter iter;
-guint i = 0;
-
-while (gtk_tree_model_iter_nth_child (model, iter, NULL, i))
-{
-MidoriView* view_;
-
-gtk_tree_model_get (model, iter, 0, view_, -1);
-
-if ((MidoriView*)view == view_)
-{
-gtk_tree_store_remove (GTK_TREE_STORE (model), iter);
-g_object_unref (view_);
-break;
-}
-
-g_object_unref (view_);
-i++;
-}
+if (tab_panel_get_iter_for_view (model, iter, view))
+gtk_tree_store_remove (GTK_TREE_STORE (model), iter);
 }
 }
 
@@ -317,24 +330,8 @@ tab_panel_view_notify_icon_cb (GtkWidget*   view,
 {
 GtkTreeModel* model = tab_panel_get_model_for_browser (browser);
 GtkTreeIter iter;
-guint i = 0;
-
-while (gtk_tree_model_iter_nth_child (model, iter, NULL, i))
-{
-MidoriView* view_;
-
-gtk_tree_model_get (model, iter, 0, view_, -1);
-
-if ((MidoriView*)view == view_)
-{
-gtk_tree_store_set (GTK_TREE_STORE (model), iter, 3, icon, 
-1);
-g_object_unref (view_);
-break

[Xfce4-commits] midori:master Reduce the mount of casts in the browser

2009-09-29 Thread Christian Dywan
Updating branch refs/heads/master
 to df88be1aff98f357839fbfe2f7ba29b1fb0bae7e (commit)
   from 0e0ce115f957ccf0667296fc71b182af69f80c48 (commit)

commit df88be1aff98f357839fbfe2f7ba29b1fb0bae7e
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Sep 29 22:25:09 2009 +0200

Reduce the mount of casts in the browser

 midori/midori-browser.c |   94 +-
 1 files changed, 43 insertions(+), 51 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index d7b0df1..074d7ed 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -262,49 +262,44 @@ midori_browser_view_can_set_encoding (MidoriView* view)
 static void
 _midori_browser_update_interface (MidoriBrowser* browser)
 {
-GtkWidget* view;
+GtkWidget* widget;
+MidoriView* view;
 gboolean loading;
 gboolean can_reload;
 GtkAction* action;
 
-view = midori_browser_get_current_tab (browser);
-loading = midori_view_get_load_status (MIDORI_VIEW (view))
-!= MIDORI_LOAD_FINISHED;
-can_reload = midori_view_can_reload (MIDORI_VIEW (view));
+widget = midori_browser_get_current_tab (browser);
+view = MIDORI_VIEW (widget);
+loading = midori_view_get_load_status (view) != MIDORI_LOAD_FINISHED;
+can_reload = midori_view_can_reload (view);
 
 _action_set_sensitive (browser, Reload, can_reload  !loading);
 _action_set_sensitive (browser, Stop, can_reload  loading);
-_action_set_sensitive (browser, Back,
-midori_view_can_go_back (MIDORI_VIEW (view)));
-_action_set_sensitive (browser, Forward,
-midori_view_can_go_forward (MIDORI_VIEW (view)));
+_action_set_sensitive (browser, Back, midori_view_can_go_back (view));
+_action_set_sensitive (browser, Forward, midori_view_can_go_forward 
(view));
 
 gtk_action_set_visible (_action_by_name (browser, AddSpeedDial),
-browser-speed_dial_in_new_tabs  !midori_view_is_blank (MIDORI_VIEW 
(view)));
+browser-speed_dial_in_new_tabs  !midori_view_is_blank (view));
 /* Currently views that don't support source, don't support
saving either. If that changes, we need to think of something. */
-_action_set_sensitive (browser, SaveAs,
-midori_view_can_view_source (MIDORI_VIEW (view)));
-_action_set_sensitive (browser, Print,
-midori_view_can_print (MIDORI_VIEW (view)));
-_action_set_sensitive (browser, ZoomIn,
-midori_view_can_zoom_in (MIDORI_VIEW (view)));
-_action_set_sensitive (browser, ZoomOut,
-midori_view_can_zoom_out (MIDORI_VIEW (view)));
+_action_set_sensitive (browser, SaveAs, midori_view_can_view_source 
(view));
+_action_set_sensitive (browser, Print, midori_view_can_print (view));
+_action_set_sensitive (browser, ZoomIn, midori_view_can_zoom_in (view));
+_action_set_sensitive (browser, ZoomOut, midori_view_can_zoom_out 
(view));
 _action_set_sensitive (browser, ZoomNormal,
-midori_view_get_zoom_level (MIDORI_VIEW (view)) != 1.0f);
+midori_view_get_zoom_level (view) != 1.0f);
 _action_set_sensitive (browser, Encoding,
-midori_browser_view_can_set_encoding (MIDORI_VIEW (view)));
+midori_browser_view_can_set_encoding (view));
 _action_set_sensitive (browser, SourceView,
-midori_view_can_view_source (MIDORI_VIEW (view)));
+midori_view_can_view_source (view));
 _action_set_sensitive (browser, Find,
-midori_view_can_find (MIDORI_VIEW (view)));
+midori_view_can_find (view));
 _action_set_sensitive (browser, FindNext,
-midori_view_can_find (MIDORI_VIEW (view)));
+midori_view_can_find (view));
 _action_set_sensitive (browser, FindPrevious,
-midori_view_can_find (MIDORI_VIEW (view)));
+midori_view_can_find (view));
 gtk_widget_set_sensitive (GTK_WIDGET (browser-find_highlight),
-midori_view_can_find (MIDORI_VIEW (view)));
+midori_view_can_find (view));
 
 action = gtk_action_group_get_action (browser-action_group, ReloadStop);
 if (!loading)
@@ -334,7 +329,7 @@ _midori_browser_update_interface (MidoriBrowser* browser)
 {
 action = _action_by_name (browser, Location);
 midori_location_action_set_progress (MIDORI_LOCATION_ACTION 
(action),
-midori_view_get_progress (MIDORI_VIEW (view)));
+midori_view_get_progress (view));
 }
 }
 katze_throbber_set_animated (KATZE_THROBBER (browser-throbber), loading);
@@ -462,27 +457,26 @@ midori_view_notify_icon_cb (MidoriView*view,
 }
 
 static void
-midori_view_notify_load_status_cb (GtkWidget*  view,
+midori_view_notify_load_status_cb (GtkWidget*  widget,
GParamSpec* pspec,
MidoriBrowser*  browser)
 {
+MidoriView* view = MIDORI_VIEW (widget);
 const gchar* uri;
 GtkAction* action;
 
-uri

[Xfce4-commits] midori:master Add Window Focus Current Tab

2009-09-30 Thread Christian Dywan
Updating branch refs/heads/master
 to 3686db6f6f73c6deba1884b9f34a357596ede457 (commit)
   from df88be1aff98f357839fbfe2f7ba29b1fb0bae7e (commit)

commit 3686db6f6f73c6deba1884b9f34a357596ede457
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Sep 30 22:18:17 2009 +0200

Add Window  Focus Current Tab

 midori/midori-browser.c |   17 +
 1 files changed, 17 insertions(+), 0 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 074d7ed..0297525 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -2695,6 +2695,10 @@ _action_window_populate_popup (GtkAction* action,
 gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
 gtk_widget_show (menuitem);
 menuitem = gtk_action_create_menu_item (
+_action_by_name (browser, TabCurrent));
+gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
+gtk_widget_show (menuitem);
+menuitem = gtk_action_create_menu_item (
 _action_by_name (browser, TabPrevious));
 gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
 gtk_widget_show (menuitem);
@@ -4004,6 +4008,15 @@ _action_tab_next_activate (GtkAction* action,
 gtk_notebook_set_current_page (GTK_NOTEBOOK (browser-notebook), n + 1);
 }
 
+static void
+_action_tab_current_activate (GtkAction* action,
+  MidoriBrowser* browser)
+{
+GtkWidget* view = midori_browser_get_current_tab (browser);
+GtkWidget* child = gtk_bin_get_child (GTK_BIN (view));
+gtk_widget_grab_focus (child ? child : view);
+}
+
 static const gchar* credits_authors[] = {
 Christian Dywan christ...@twotoasts.de, NULL };
 static const gchar* credits_documenters[] = {
@@ -4479,6 +4492,9 @@ static const GtkActionEntry entries[] = {
  { TabNext, GTK_STOCK_GO_FORWARD,
N_(_Next Tab), CtrlPage_Down,
N_(Switch to the next tab), G_CALLBACK (_action_tab_next_activate) },
+ { TabCurrent, NULL,
+   N_(Focus _Current Tab), CtrlHome,
+   N_(Focus the current tab), G_CALLBACK (_action_tab_current_activate) },
 
  { Help, NULL, N_(_Help) },
  { HelpContents, GTK_STOCK_HELP,
@@ -4744,6 +4760,7 @@ static const gchar* ui_markup =
 menuitem action='ClearPrivateData'/
 menuitem action='TabPrevious'/
 menuitem action='TabNext'/
+menuitem action='TabCurrent'/
 menuitem action='UndoTabClose'/
 menuitem action='TrashEmpty'/
 menuitem action='Preferences'/
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Backup the old session when resetting it in the Crash dialog

2009-09-30 Thread Christian Dywan
Updating branch refs/heads/master
 to c848b24733635ffcaba80bb887ea5e116bc049fb (commit)
   from 3686db6f6f73c6deba1884b9f34a357596ede457 (commit)

commit c848b24733635ffcaba80bb887ea5e116bc049fb
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Sep 30 22:30:19 2009 +0200

Backup the old session when resetting it in the Crash dialog

 midori/main.c |   11 +++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 4f46ba6..2111c31 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -1150,6 +1150,17 @@ static void
 button_reset_session_clicked_cb (GtkWidget*  button,
  KatzeArray* session)
 {
+gchar* config_file;
+GError* error;
+
+config_file = build_config_filename (session.old.xbel);
+error = NULL;
+if (!midori_array_to_file (session, config_file, xbel, error))
+{
+g_warning (_(The session couldn't be saved. %s), error-message);
+g_error_free (error);
+}
+g_free (config_file);
 katze_array_clear (session);
 gtk_widget_set_sensitive (button, FALSE);
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Implement 'Open last session' menu item

2009-09-30 Thread Christian Dywan
Updating branch refs/heads/master
 to 60a96b9d8b1d69d1979c9e290ab019549ef3493f (commit)
   from c848b24733635ffcaba80bb887ea5e116bc049fb (commit)

commit 60a96b9d8b1d69d1979c9e290ab019549ef3493f
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Sep 30 23:02:10 2009 +0200

Implement 'Open last session' menu item

 midori/main.c   |   37 -
 midori/midori-browser.c |9 +
 2 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 2111c31..738e7f9 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -1350,6 +1350,32 @@ midori_load_extensions (gpointer data)
 return FALSE;
 }
 
+static void
+midori_browser_action_last_session_activate_cb (GtkAction* action,
+MidoriBrowser* browser)
+{
+KatzeArray* old_session = katze_array_new (KATZE_TYPE_ITEM);
+gchar* config_file = build_config_filename (session.old.xbel);
+GError* error = NULL;
+if (midori_array_from_file (old_session, config_file, xbel, error))
+{
+guint i = 0;
+KatzeItem* item;
+while ((item = katze_array_get_nth_item (old_session, i++)))
+midori_browser_add_item (browser, item);
+}
+else
+{
+g_warning (_(The session couldn't be loaded: %s\n), error-message);
+/* FIXME: Show a graphical dialog */
+g_error_free (error);
+}
+g_free (config_file);
+gtk_action_set_sensitive (action, FALSE);
+g_signal_handlers_disconnect_by_func (action,
+midori_browser_action_last_session_activate_cb, browser);
+}
+
 static gboolean
 midori_load_session (gpointer data)
 {
@@ -1364,10 +1390,19 @@ midori_load_session (gpointer data)
 gchar** command = g_object_get_data (G_OBJECT (app), execute-command);
 
 browser = midori_app_create_browser (app);
+config_file = build_config_filename (session.old.xbel);
+if (g_file_test (config_file, G_FILE_TEST_EXISTS))
+{
+GtkActionGroup* action_group = midori_browser_get_action_group 
(browser);
+GtkAction* action = gtk_action_group_get_action (action_group, 
LastSession);
+g_signal_connect (action, activate,
+G_CALLBACK (midori_browser_action_last_session_activate_cb), 
browser);
+gtk_action_set_sensitive (action, TRUE);
+}
 midori_app_add_browser (app, browser);
 gtk_widget_show (GTK_WIDGET (browser));
 
-config_file = build_config_filename (accels);
+katze_assign (config_file, build_config_filename (accels));
 if (is_writable (config_file))
 g_signal_connect_after (gtk_accel_map_get (), changed,
 G_CALLBACK (accel_map_changed_cb), NULL);
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 0297525..ca88013 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -2695,6 +2695,10 @@ _action_window_populate_popup (GtkAction* action,
 gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
 gtk_widget_show (menuitem);
 menuitem = gtk_action_create_menu_item (
+_action_by_name (browser, LastSession));
+gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
+gtk_widget_show (menuitem);
+menuitem = gtk_action_create_menu_item (
 _action_by_name (browser, TabCurrent));
 gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
 gtk_widget_show (menuitem);
@@ -4495,6 +4499,9 @@ static const GtkActionEntry entries[] = {
  { TabCurrent, NULL,
N_(Focus _Current Tab), CtrlHome,
N_(Focus the current tab), G_CALLBACK (_action_tab_current_activate) },
+ { LastSession, NULL,
+   N_(Open last _session), NULL,
+   N_(Open the tabs saved in the last session), NULL },
 
  { Help, NULL, N_(_Help) },
  { HelpContents, GTK_STOCK_HELP,
@@ -4761,6 +4768,7 @@ static const gchar* ui_markup =
 menuitem action='TabPrevious'/
 menuitem action='TabNext'/
 menuitem action='TabCurrent'/
+menuitem action='LastSession'/
 menuitem action='UndoTabClose'/
 menuitem action='TrashEmpty'/
 menuitem action='Preferences'/
@@ -5219,6 +5227,7 @@ midori_browser_init (MidoriBrowser* browser)
 #endif
 _action_set_sensitive (browser, EncodingCustom, FALSE);
 _action_set_sensitive (browser, SelectionSourceView, FALSE);
+_action_set_sensitive (browser, LastSession, FALSE);
 
 /* Create the navigationbar */
 browser-navigationbar = gtk_ui_manager_get_widget (
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Show 'Send a message to mail address' when hovering email links

2009-09-30 Thread Christian Dywan
Updating branch refs/heads/master
 to 1535bc89708ab1b6c83ecea931549c85767c3178 (commit)
   from 037be4dda44e622e2c33728e2cd55c4579c4d8df (commit)

commit 1535bc89708ab1b6c83ecea931549c85767c3178
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Sep 30 23:54:40 2009 +0200

Show 'Send a message to mail address' when hovering email links

 midori/midori-view.c |9 -
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index ed06281..109769f 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1077,7 +1077,14 @@ webkit_web_view_hovering_over_link_cb (WebKitWebView* 
web_view,
MidoriView*view)
 {
 katze_assign (view-link_uri, g_strdup (link_uri));
-g_object_set (G_OBJECT (view), statusbar-text, link_uri, NULL);
+if (link_uri  g_str_has_prefix (link_uri, mailto:;))
+{
+gchar* text = g_strdup_printf (_(Send a message to %s), 
link_uri[7]);
+g_object_set (G_OBJECT (view), statusbar-text, text, NULL);
+g_free (text);
+}
+else
+g_object_set (G_OBJECT (view), statusbar-text, link_uri, NULL);
 }
 
 #define MIDORI_KEYS_MODIFIER_MASK (GDK_SHIFT_MASK | GDK_CONTROL_MASK \
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Offer 'Send message to mail address' for selections

2009-09-30 Thread Christian Dywan
Updating branch refs/heads/master
 to 037be4dda44e622e2c33728e2cd55c4579c4d8df (commit)
   from 60a96b9d8b1d69d1979c9e290ab019549ef3493f (commit)

commit 037be4dda44e622e2c33728e2cd55c4579c4d8df
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Sep 30 23:38:18 2009 +0200

Offer 'Send message to mail address' for selections

 midori/midori-view.c |   38 +-
 1 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index f3c17ba..ed06281 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1404,10 +1404,20 @@ midori_web_view_menu_new_tab_activate_cb (GtkWidget*  
widget,
 else
 {
 gchar* data = (gchar*)g_object_get_data (G_OBJECT (widget), uri);
-gchar* uri = sokoke_magic_uri (data, NULL);
-g_signal_emit (view, signals[NEW_TAB], 0, uri,
-   view-open_tabs_in_the_background);
-g_free (uri);
+if (strchr (data, '@'))
+{
+gchar* uri = g_strconcat (mailto:;, data, NULL);
+sokoke_show_uri (gtk_widget_get_screen (widget),
+ uri, GDK_CURRENT_TIME, NULL);
+g_free (uri);
+}
+else
+{
+gchar* uri = sokoke_magic_uri (data, NULL);
+g_signal_emit (view, signals[NEW_TAB], 0, uri,
+   view-open_tabs_in_the_background);
+g_free (uri);
+}
 }
 }
 
@@ -1753,12 +1763,22 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 g_list_free (items);
 #endif
 
-if (view-selected_text  strchr (view-selected_text, '.')
- !strchr (view-selected_text, ' '))
+g_strstrip (view-selected_text);
+if (view-selected_text  !strchr (view-selected_text, ' ')
+ strchr (view-selected_text, '.'))
 {
-menuitem = midori_view_insert_menu_item (menu_shell, -1,
-_(Open Address in New _Tab), GTK_STOCK_JUMP_TO,
-G_CALLBACK (midori_web_view_menu_new_tab_activate_cb), widget);
+if (strchr (view-selected_text, '@'))
+{
+gchar* text = g_strdup_printf (_(Send a message to %s), 
view-selected_text);
+menuitem = midori_view_insert_menu_item (menu_shell, -1,
+text, GTK_STOCK_JUMP_TO,
+G_CALLBACK (midori_web_view_menu_new_tab_activate_cb), 
widget);
+g_free (text);
+}
+else
+menuitem = midori_view_insert_menu_item (menu_shell, -1,
+_(Open Address in New _Tab), GTK_STOCK_JUMP_TO,
+G_CALLBACK (midori_web_view_menu_new_tab_activate_cb), 
widget);
 g_object_set_data (G_OBJECT (menuitem), uri, 
view-selected_text);
 }
 /* FIXME: view selection source */
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master When hovering menu items, show descriptions in the statusbar

2009-09-30 Thread Christian Dywan
Updating branch refs/heads/master
 to 2d1481699ad7c97171cd31ff95b2a781e8fd9876 (commit)
   from 1535bc89708ab1b6c83ecea931549c85767c3178 (commit)

commit 2d1481699ad7c97171cd31ff95b2a781e8fd9876
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Sep 30 23:57:36 2009 +0200

When hovering menu items, show descriptions in the statusbar

 midori/midori-browser.c |  107 ++-
 1 files changed, 105 insertions(+), 2 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index ca88013..1cbcabb 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -2520,12 +2520,46 @@ midori_browser_toolbar_popup_context_menu_cb 
(GtkWidget* widget,
 }
 
 static void
+midori_browser_menu_item_select_cb (GtkWidget* menuitem,
+MidoriBrowser* browser)
+{
+GtkAction* action = gtk_widget_get_action (menuitem);
+const gchar* tooltip = action ? gtk_action_get_tooltip (action) : NULL;
+if (!tooltip)
+{
+/* This is undocumented object data, used by KatzeArrayAction. */
+KatzeItem* item = g_object_get_data (G_OBJECT (menuitem), KatzeItem);
+if (item)
+tooltip = katze_item_get_uri (item);
+}
+_midori_browser_set_statusbar_text (browser, tooltip);
+}
+
+static void
+midori_browser_menu_item_deselect_cb (GtkWidget* menuitem,
+  MidoriBrowser* browser)
+{
+_midori_browser_set_statusbar_text (browser, NULL);
+}
+
+static void
 _action_trash_populate_popup (GtkAction* action,
   GtkMenu*   menu,
   MidoriBrowser* browser)
 {
+GList* children = gtk_container_get_children (GTK_CONTAINER (menu));
+guint i = 0;
 GtkWidget* menuitem;
 
+while ((menuitem = g_list_nth_data (children, i++)))
+{
+g_signal_connect (menuitem, select,
+G_CALLBACK (midori_browser_menu_item_select_cb), browser);
+g_signal_connect (menuitem, deselect,
+G_CALLBACK (midori_browser_menu_item_deselect_cb), browser);
+}
+g_list_free (children);
+
 menuitem = gtk_separator_menu_item_new ();
 gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
 gtk_widget_show (menuitem);
@@ -2573,7 +2607,18 @@ _action_history_populate_popup (GtkAction* action,
 GtkMenu*   menu,
 MidoriBrowser* browser)
 {
-/* Nothing to do */
+GList* children = gtk_container_get_children (GTK_CONTAINER (menu));
+guint i = 0;
+GtkWidget* menuitem;
+
+while ((menuitem = g_list_nth_data (children, i++)))
+{
+g_signal_connect (menuitem, select,
+G_CALLBACK (midori_browser_menu_item_select_cb), browser);
+g_signal_connect (menuitem, deselect,
+G_CALLBACK (midori_browser_menu_item_deselect_cb), browser);
+}
+g_list_free (children);
 }
 
 static void
@@ -2589,8 +2634,19 @@ _action_bookmarks_populate_popup (GtkAction* action,
   GtkMenu*   menu,
   MidoriBrowser* browser)
 {
+GList* children = gtk_container_get_children (GTK_CONTAINER (menu));
+guint i = 0;
 GtkWidget* menuitem;
 
+while ((menuitem = g_list_nth_data (children, i++)))
+{
+g_signal_connect (menuitem, select,
+G_CALLBACK (midori_browser_menu_item_select_cb), browser);
+g_signal_connect (menuitem, deselect,
+G_CALLBACK (midori_browser_menu_item_deselect_cb), browser);
+}
+g_list_free (children);
+
 if (katze_array_get_nth_item (browser-bookmarks, 0))
 {
 menuitem = gtk_separator_menu_item_new ();
@@ -2691,7 +2747,20 @@ _action_window_populate_popup (GtkAction* action,
GtkMenu*   menu,
MidoriBrowser* browser)
 {
-GtkWidget* menuitem = gtk_separator_menu_item_new ();
+GList* children = gtk_container_get_children (GTK_CONTAINER (menu));
+guint i = 0;
+GtkWidget* menuitem;
+
+while ((menuitem = g_list_nth_data (children, i++)))
+{
+g_signal_connect (menuitem, select,
+G_CALLBACK (midori_browser_menu_item_select_cb), browser);
+g_signal_connect (menuitem, deselect,
+G_CALLBACK (midori_browser_menu_item_deselect_cb), browser);
+}
+g_list_free (children);
+
+menuitem = gtk_separator_menu_item_new ();
 gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem);
 gtk_widget_show (menuitem);
 menuitem = gtk_action_create_menu_item (
@@ -4935,6 +5004,36 @@ midori_browser_accel_switch_tab_activate_cb 
(GtkAccelGroup*  accel_group,
 }
 
 static void
+midori_browser_ui_manager_connect_proxy_cb (GtkUIManager*  ui_manager,
+GtkAction* action

[Xfce4-commits] midori:master Add Copy to the refactored context menu

2009-10-02 Thread Christian Dywan
Updating branch refs/heads/master
 to a6ee2320e85fe9b34aa076dc14f52a8258fcc873 (commit)
   from e4b09739fa2cc9dbba3bcb5cb4d67af4d1caaf4d (commit)

commit a6ee2320e85fe9b34aa076dc14f52a8258fcc873
Author: Christian Dywan christ...@twotoasts.de
Date:   Thu Oct 1 23:56:05 2009 +0200

Add Copy to the refactored context menu

 midori/midori-view.c |   16 
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 109769f..35bcb69 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -1449,6 +1449,18 @@ midori_web_view_menu_search_web_activate_cb (GtkWidget*  
widget,
 g_free (uri);
 }
 
+#if WEBKIT_CHECK_VERSION (1, 1, 15)
+static void
+midori_web_view_menu_copy_activate_cb (GtkWidget*  widget,
+   MidoriView* view)
+{
+GdkDisplay* display = gtk_widget_get_display (widget);
+GtkClipboard* clipboard = gtk_clipboard_get_for_display (display,
+GDK_SELECTION_CLIPBOARD);
+gtk_clipboard_set_text (clipboard, view-selected_text, -1);
+}
+#endif
+
 #if !WEBKIT_CHECK_VERSION (1, 1, 3)
 static void
 midori_web_view_menu_save_as_activate_cb (GtkWidget*  widget,
@@ -1758,6 +1770,10 @@ webkit_web_view_populate_popup_cb (WebKitWebView* 
web_view,
 midori_view_insert_menu_item (menu_shell, 0,
 _(_Search the Web), GTK_STOCK_FIND,
 G_CALLBACK (midori_web_view_menu_search_web_activate_cb), widget);
+gtk_menu_shell_append (menu_shell, gtk_separator_menu_item_new ());
+midori_view_insert_menu_item (menu_shell, -1,
+NULL, GTK_STOCK_COPY,
+G_CALLBACK (midori_web_view_menu_copy_activate_cb), widget);
 #else
 items = gtk_container_get_children (GTK_CONTAINER (menu));
 menuitem = (GtkWidget*)g_list_nth_data (items, 0);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Do not add history items for URIs that were visited on the same day

2009-10-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 255018aeaa498e0c0e787c4da932c57c789b54d7 (commit)
   from 41385a9e5ee638777fdb0a23610c4ca9aabef76a (commit)

commit 255018aeaa498e0c0e787c4da932c57c789b54d7
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Oct 2 21:29:08 2009 +0200

Do not add history items for URIs that were visited on the same day

 midori/midori-browser.c |   25 ++---
 1 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index d1ef4ff..346e055 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -160,7 +160,7 @@ midori_browser_get_property (GObject*object,
 
 static void
 midori_browser_new_history_item (MidoriBrowser* browser,
- KatzeItem* item);
+ KatzeItem**item);
 
 static void
 _midori_browser_set_toolbar_style (MidoriBrowser* browser,
@@ -559,7 +559,8 @@ midori_view_notify_title_cb (GtkWidget* widget,
 else
 {
 katze_object_assign (item, katze_item_copy (proxy));
-midori_browser_new_history_item (browser, g_object_ref (item));
+midori_browser_new_history_item (browser, item);
+g_object_ref (item);
 g_object_set_data_full (G_OBJECT (view), history-item-added,
 item, (GDestroyNotify)g_object_unref);
 }
@@ -4878,31 +4879,33 @@ midori_browser_entry_clear_icon_released_cb 
(GtkIconEntry* entry,
 
 static void
 midori_browser_new_history_item (MidoriBrowser* browser,
- KatzeItem* item)
+ KatzeItem**item)
 {
 KatzeArray* parent;
 gint i;
 gboolean found;
 time_t now;
 gint64 day;
-gint64 pday;
-gint64 newage;
 gchar token[50];
 
 now = time (NULL);
-katze_item_set_added (item, now);
+katze_item_set_added (*item, now);
 day = sokoke_time_t_to_julian (now);
 
 found = FALSE;
 i = 0;
 while ((parent = katze_array_get_nth_item (browser-history, i++)))
 {
-pday = katze_item_get_added (KATZE_ITEM (parent));
-newage = day - pday;
-if (newage == 0)
+gint64 pday = katze_item_get_added (KATZE_ITEM (parent));
+if (day - pday == 0)
 {
+KatzeItem* _item;
+
 found = TRUE;
-katze_array_add_item (parent, item);
+if ((_item = katze_array_find_uri (parent, katze_item_get_uri 
(*item
+*item = g_object_ref (_item);
+else
+katze_array_add_item (parent, *item);
 }
 }
 if (!found)
@@ -4912,7 +4915,7 @@ midori_browser_new_history_item (MidoriBrowser* browser,
 katze_item_set_added (KATZE_ITEM (parent), day);
 katze_item_set_name (KATZE_ITEM (parent), token);
 katze_array_add_item (browser-history, parent);
-katze_array_add_item (parent, item);
+katze_array_add_item (parent, *item);
 }
 }
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Load extension settings from global config folders

2009-10-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 18ab34bdc82aa1890f7924c3ab9422739f7ddb3b (commit)
   from 255018aeaa498e0c0e787c4da932c57c789b54d7 (commit)

commit 18ab34bdc82aa1890f7924c3ab9422739f7ddb3b
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Oct 2 23:07:36 2009 +0200

Load extension settings from global config folders

For example, /etc/xdg/midori/extensions/extension_name/config

 midori/main.c |6 +++---
 midori/midori-extension.c |   12 +++-
 midori/sokoke.c   |   11 ---
 midori/sokoke.h   |3 ++-
 4 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 738e7f9..dfe9489 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -94,7 +94,7 @@ settings_new_from_file (const gchar* filename,
 {
 if (error-code == G_FILE_ERROR_NOENT)
 {
-gchar* config_file = sokoke_find_config_filename (config);
+gchar* config_file = sokoke_find_config_filename (NULL, config);
 g_key_file_load_from_file (key_file, config_file,
G_KEY_FILE_KEEP_COMMENTS, NULL);
 }
@@ -1818,7 +1818,7 @@ main (intargc,
 search_engines = search_engines_new_from_file (config_file, NULL);
 #else
 katze_assign (config_file,
-sokoke_find_config_filename (search));
+sokoke_find_config_filename (NULL, search));
 search_engines = search_engines_new_from_file (config_file, NULL);
 #endif
 }
@@ -1839,7 +1839,7 @@ main (intargc,
 if (error-code == G_FILE_ERROR_NOENT)
 {
 katze_assign (config_file,
-sokoke_find_config_filename (bookmarks.xbel));
+sokoke_find_config_filename (NULL, bookmarks.xbel));
 midori_array_from_file (bookmarks, config_file, xbel, NULL);
 }
 else
diff --git a/midori/midori-extension.c b/midori/midori-extension.c
index ece419f..27ab9df 100644
--- a/midori/midori-extension.c
+++ b/midori/midori-extension.c
@@ -272,11 +272,21 @@ midori_extension_activate_cb (MidoriExtension* extension,
 if (!g_key_file_load_from_file (extension-priv-key_file, config_file,
 G_KEY_FILE_KEEP_COMMENTS, error))
 {
-if (error-code != G_FILE_ERROR_NOENT)
+if (error-code == G_FILE_ERROR_NOENT)
+{
+gchar* filename = g_object_get_data (G_OBJECT (extension), 
filename);
+gchar* folder = g_strconcat (extensions/, filename, NULL);
+katze_assign (config_file,
+sokoke_find_config_filename (folder, config));
+g_key_file_load_from_file (extension-priv-key_file, 
config_file,
+   G_KEY_FILE_KEEP_COMMENTS, NULL);
+}
+else
 printf (_(The configuration of the extension '%s' couldn't be 
loaded: %s\n),
 extension-priv-name, error-message);
 g_error_free (error);
 }
+g_free (config_file);
 }
 
 while (lsettings)
diff --git a/midori/sokoke.c b/midori/sokoke.c
index bc16970..35b95d5 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -963,6 +963,7 @@ sokoke_remove_path (const gchar* path,
 
 /**
  * sokoke_find_config_filename:
+ * @folder: a subfolder
  * @filename: a filename or relative path
  *
  * Looks for the specified filename in the system config
@@ -971,20 +972,24 @@ sokoke_remove_path (const gchar* path,
  * Return value: a full path
  **/
 gchar*
-sokoke_find_config_filename (const gchar* filename)
+sokoke_find_config_filename (const gchar* folder,
+ const gchar* filename)
 {
 const gchar* const* config_dirs = g_get_system_config_dirs ();
 guint i = 0;
 const gchar* config_dir;
 
+if (!folder)
+folder = ;
+
 while ((config_dir = config_dirs[i++]))
 {
-gchar* path = g_build_filename (config_dir, PACKAGE_NAME, filename, 
NULL);
+gchar* path = g_build_filename (config_dir, PACKAGE_NAME, folder, 
filename, NULL);
 if (g_file_test (path, G_FILE_TEST_EXISTS))
 return path;
 g_free (path);
 }
-return g_build_filename (SYSCONFDIR, xdg, PACKAGE_NAME, filename, NULL);
+return g_build_filename (SYSCONFDIR, xdg, PACKAGE_NAME, folder, 
filename, NULL);
 }
 
 /**
diff --git a/midori/sokoke.h b/midori/sokoke.h
index 9deee90..e2dbb21 100644
--- a/midori/sokoke.h
+++ b/midori/sokoke.h
@@ -152,7 +152,8 @@ sokoke_remove_path  (const gchar*
path,
  gbooleanignore_errors);
 
 gchar*
-sokoke_find_config_filename (const gchar*filename);
+sokoke_find_config_filename (const gchar*folder,
+ const gchar*filename);
 
 gchar

[Xfce4-commits] midori:master Provide default adblock config with easylist

2009-10-02 Thread Christian Dywan
Updating branch refs/heads/master
 to ec810682999df35032d665b8010f846d841d8c6f (commit)
   from 18ab34bdc82aa1890f7924c3ab9422739f7ddb3b (commit)

commit ec810682999df35032d665b8010f846d841d8c6f
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Oct 2 23:13:47 2009 +0200

Provide default adblock config with easylist

 data/extensions/adblock/config |2 ++
 wscript|   10 ++
 2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/data/extensions/adblock/config b/data/extensions/adblock/config
new file mode 100644
index 000..8b1daa5
--- /dev/null
+++ b/data/extensions/adblock/config
@@ -0,0 +1,2 @@
+[settings]
+filters=http://adblockplus.mozdev.org/easylist/easylist.txt
diff --git a/wscript b/wscript
index de8d813..8c0df74 100644
--- a/wscript
+++ b/wscript
@@ -454,6 +454,16 @@ def build (bld):
 bld.install_files ('${MDATADIR}/' + APPNAME + '/res', 
'data/speeddial.json')
 bld.install_files ('${MDATADIR}/' + APPNAME + '/res', 'data/mootools.js')
 
+# FIXME: Determine the library naming for other platforms
+if Options.platform == 'linux':
+extensions = os.listdir ('data/extensions')
+for extension in extensions:
+folder = 'lib' + extension + '.so'
+source = 'data/extensions/' + extension +  '/config'
+if os.path.exists (source):
+bld.install_files ('${SYSCONFDIR}/' + APPNAME + \
+   '/extensions/' + folder, source)
+
 if Options.commands['check']:
 bld.add_subdirs ('tests')
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Correct memory handling leading to corruption in adblock

2009-10-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 2b493414d5b096c2f25009d9af471ba4b42177d1 (commit)
   from ec810682999df35032d665b8010f846d841d8c6f (commit)

commit 2b493414d5b096c2f25009d9af471ba4b42177d1
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Oct 3 02:03:49 2009 +0200

Correct memory handling leading to corruption in adblock

 extensions/adblock.c |   11 ---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/extensions/adblock.c b/extensions/adblock.c
index 03e2a0b..9def25a 100644
--- a/extensions/adblock.c
+++ b/extensions/adblock.c
@@ -74,11 +74,12 @@ adblock_download_notify_status_cb (WebKitDownload* download,
gchar*  path)
 {
 pattern = adblock_parse_file (path);
+g_free (path);
 /* g_object_unref (download); */
 }
 
 static void
-adblock_reload_rules(MidoriExtension* extension)
+adblock_reload_rules (MidoriExtension* extension)
 {
 gchar** filters;
 gchar* folder;
@@ -114,8 +115,10 @@ adblock_reload_rules(MidoriExtension* extension)
 webkit_download_start (download);
 }
 else
+{
 pattern = adblock_parse_file (path);
-g_free (path);
+g_free (path);
+}
 g_free (filename);
 }
 g_strfreev (filters);
@@ -160,11 +163,13 @@ adblock_preferences_model_row_changed_cb (GtkTreeModel*   
 model,
 filters[i++] = filter;
 need_reload = TRUE;
 }
-g_free (filter);
+else
+g_free (filter);
 }
 while (gtk_tree_model_iter_next (model, iter));
 filters[length] = NULL;
 midori_extension_set_string_list (extension, filters, filters, length);
+g_strfreev (filters);
 if (need_reload)
 adblock_reload_rules (extension);
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Fix a memory leak in the address completion match handling

2009-10-02 Thread Christian Dywan
Updating branch refs/heads/master
 to a51b8f18dcac2ebcbf5ee7742b4551d3b54dbd7e (commit)
   from 2b493414d5b096c2f25009d9af471ba4b42177d1 (commit)

commit a51b8f18dcac2ebcbf5ee7742b4551d3b54dbd7e
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Oct 3 02:04:15 2009 +0200

Fix a memory leak in the address completion match handling

 midori/midori-locationaction.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/midori/midori-locationaction.c b/midori/midori-locationaction.c
index 0270f9c..ffda445 100644
--- a/midori/midori-locationaction.c
+++ b/midori/midori-locationaction.c
@@ -733,10 +733,11 @@ midori_location_entry_completion_match_cb 
(GtkEntryCompletion* completion,
 temp = g_utf8_casefold (title, -1);
 match = (strstr (temp, key) != NULL);
 g_free (temp);
-g_free (title);
 }
 }
 
+g_free (title);
+
 return match;
 }
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Display IDN hostnames decoded in address completion

2009-10-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 93e846bf47e0664fd207036b9950b0c7e92129a5 (commit)
   from a51b8f18dcac2ebcbf5ee7742b4551d3b54dbd7e (commit)

commit 93e846bf47e0664fd207036b9950b0c7e92129a5
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Oct 3 02:16:15 2009 +0200

Display IDN hostnames decoded in address completion

 midori/midori-locationaction.c |   10 +-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/midori/midori-locationaction.c b/midori/midori-locationaction.c
index ffda445..f19f0d9 100644
--- a/midori/midori-locationaction.c
+++ b/midori/midori-locationaction.c
@@ -619,6 +619,7 @@ midori_location_entry_render_text_cb (GtkCellLayout*   
layout,
   GtkTreeIter* iter,
   gpointer data)
 {
+gchar* uri_raw;
 gchar* uri;
 gchar* title;
 gchar* desc;
@@ -632,7 +633,14 @@ midori_location_entry_render_text_cb (GtkCellLayout*   
layout,
 gchar** parts;
 size_t len;
 
-gtk_tree_model_get (model, iter, URI_COL, uri, TITLE_COL, title, -1);
+gtk_tree_model_get (model, iter, URI_COL, uri_raw, TITLE_COL, title, -1);
+
+#if GLIB_CHECK_VERSION (2, 22, 0)
+uri = g_hostname_to_unicode (uri_raw);
+g_free (uri_raw);
+#else
+uri = uri_raw;
+#endif
 
 desc = desc_uri = desc_title = key = NULL;
 if (G_LIKELY (data))
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Fix a crash caused by freeing the adblock filters in the wrong way

2009-10-03 Thread Christian Dywan
Updating branch refs/heads/master
 to 7c2eb4de16a28b65978ee7d2488e50f5a8a69508 (commit)
   from 096a48b14cc43171934c4f8fde4af8b2f8738b2f (commit)

commit 7c2eb4de16a28b65978ee7d2488e50f5a8a69508
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Oct 3 13:24:43 2009 +0200

Fix a crash caused by freeing the adblock filters in the wrong way

 extensions/adblock.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/extensions/adblock.c b/extensions/adblock.c
index 9def25a..5208dea 100644
--- a/extensions/adblock.c
+++ b/extensions/adblock.c
@@ -169,7 +169,7 @@ adblock_preferences_model_row_changed_cb (GtkTreeModel*
model,
 while (gtk_tree_model_iter_next (model, iter));
 filters[length] = NULL;
 midori_extension_set_string_list (extension, filters, filters, length);
-g_strfreev (filters);
+g_free (filters);
 if (need_reload)
 adblock_reload_rules (extension);
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Add a module.xml for cgit

2009-10-03 Thread Christian Dywan
Updating branch refs/heads/master
 to b13c69a365286eb5abd215786527cabe1913d13b (commit)
   from 7c2eb4de16a28b65978ee7d2488e50f5a8a69508 (commit)

commit b13c69a365286eb5abd215786527cabe1913d13b
Author: Enrico Tröger enrico.troe...@uvena.de
Date:   Sat Oct 3 18:17:59 2009 +0200

Add a module.xml for cgit

 module.xml |   20 
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/module.xml b/module.xml
new file mode 100644
index 000..bfe1074
--- /dev/null
+++ b/module.xml
@@ -0,0 +1,20 @@
+?xml version='1.0' encoding='UTF-8'?
+Project xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns#;
+  xmlns:rdfs=http://www.w3.org/2000/01/rdf-schema#;
+  xmlns:foaf=http://xmlns.com/foaf/0.1/;
+  xmlns:gnome=http://api.gnome.org/doap-extensions#;
+  xmlns=http://usefulinc.com/ns/doap#;
+
+  name xml:lang=enmidori/name
+  shortdesc xml:lang=enMidori is a lightweight web browser/shortdesc
+  homepage rdf:resource=http://www.twotoasts.de/
+  mailing-list rdf:resource=http://foo-projects.org/mailman/listinfo/xfce/
+
+  maintainer
+foaf:Person
+  foaf:nameChristian Dywan/foaf:name
+  foaf:mboxchrist...@twotoasts.de/foaf:mbox
+  gnome:useridkalikiana/gnome:userid
+/foaf:Person
+  /maintainer
+/Project
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Go back to the previous, faster pattern handling in adblock

2009-10-03 Thread Christian Dywan
Updating branch refs/heads/master
 to c812efad2b0ee360077625b05376d0fa98904f8c (commit)
   from b13c69a365286eb5abd215786527cabe1913d13b (commit)

commit c812efad2b0ee360077625b05376d0fa98904f8c
Author: Alexander Butenko a.bute...@gmail.com
Date:   Sat Oct 3 23:52:59 2009 +0200

Go back to the previous, faster pattern handling in adblock

 extensions/adblock.c |   47 ---
 1 files changed, 12 insertions(+), 35 deletions(-)

diff --git a/extensions/adblock.c b/extensions/adblock.c
index 5208dea..1d964ca 100644
--- a/extensions/adblock.c
+++ b/extensions/adblock.c
@@ -508,31 +508,10 @@ adblock_parse_line (gchar* line)
 return adblock_fixup_regexp (line);
 }
 
-static GRegex*
-adblock_add_regexp (gchar *line)
-{
-GError* error;
-GRegex* regex;
-
-error = NULL;
-regex = g_regex_new (line, G_REGEX_OPTIMIZE | G_REGEX_CASELESS,
-   G_REGEX_MATCH_NOTEMPTY, error);
-if (error)
-{
-g_warning (%s: %s, G_STRFUNC, error-message);
-g_error_free (error);
-return NULL;
-}
-else
-return regex;
-}
-
 static GHashTable*
 adblock_parse_file (gchar* path)
 {
 FILE* file;
-int maxlimit = 150;
-int i = 0;
 if ((file = g_fopen (path, r)))
 {
 GHashTable* patt = g_hash_table_new_full (g_str_hash, g_str_equal,
@@ -541,35 +520,33 @@ adblock_parse_file (gchar* path)
 
 gboolean have_pattern = FALSE;
 gchar line[500];
-gchar* rline = ;
+GRegex* regex;
 
 while (fgets (line, 500, file))
 {
+GError* error = NULL;
 gchar* parsed;
 
 parsed = adblock_parse_line (line);
 if (!parsed)
 continue;
 
-i++;
-rline = g_strdup_printf (%s|%s, rline, parsed);
-if (rline  *rline  i = maxlimit)
+regex = g_regex_new (parsed, G_REGEX_OPTIMIZE,
+ G_REGEX_MATCH_NOTEMPTY, error);
+if (error)
+{
+g_warning (%s: %s, G_STRFUNC, error-message);
+g_error_free (error);
+g_free (parsed);
+}
+else
 {
 have_pattern = TRUE;
-g_hash_table_insert (patt, rline, adblock_add_regexp (rline));
-rline = g_strdup ();
-i = 0;
+g_hash_table_insert (patt, parsed, regex);
 }
 }
 fclose (file);
 
-if (rline  *rline)
-{
-have_pattern = TRUE;
-g_hash_table_insert (patt, rline, adblock_add_regexp (rline));
-rline = g_strdup ();
-}
-
 if (have_pattern)
 return patt;
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Use orientation property of the toolbar instead of the function

2009-10-03 Thread Christian Dywan
Updating branch refs/heads/master
 to 136f5d981f5eee654d77c4007b47c5becb1a366f (commit)
   from 53b3c6aee3a8ebc902c8eb04e3c6826554595940 (commit)

commit 136f5d981f5eee654d77c4007b47c5becb1a366f
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Oct 3 23:59:32 2009 +0200

Use orientation property of the toolbar instead of the function

The function is superseded with the introduction of the orientable
interface in new GTK+ releases, but the property is the same.

 midori/midori-panel.c |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/midori/midori-panel.c b/midori/midori-panel.c
index 6ae27e1..1368017 100644
--- a/midori/midori-panel.c
+++ b/midori/midori-panel.c
@@ -356,8 +356,7 @@ midori_panel_init (MidoriPanel* panel)
 gtk_toolbar_set_style (GTK_TOOLBAR (panel-toolbar), GTK_TOOLBAR_BOTH);
 gtk_toolbar_set_icon_size (GTK_TOOLBAR (panel-toolbar),
GTK_ICON_SIZE_BUTTON);
-gtk_toolbar_set_orientation (GTK_TOOLBAR (panel-toolbar),
- GTK_ORIENTATION_VERTICAL);
+g_object_set (panel-toolbar, orientation, GTK_ORIENTATION_VERTICAL, 
NULL);
 gtk_box_pack_start (GTK_BOX (panel), panel-toolbar, FALSE, FALSE, 0);
 gtk_widget_show_all (panel-toolbar);
 vbox = gtk_vbox_new (FALSE, 0);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Measure the performance of adblock parsing with a unit test

2009-10-03 Thread Christian Dywan
Updating branch refs/heads/master
 to 53b3c6aee3a8ebc902c8eb04e3c6826554595940 (commit)
   from c812efad2b0ee360077625b05376d0fa98904f8c (commit)

commit 53b3c6aee3a8ebc902c8eb04e3c6826554595940
Author: Alexander Butenko a.bute...@gmail.com
Date:   Sat Oct 3 23:57:12 2009 +0200

Measure the performance of adblock parsing with a unit test

 extensions/adblock.c |   28 
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/extensions/adblock.c b/extensions/adblock.c
index 1d964ca..b742ae2 100644
--- a/extensions/adblock.c
+++ b/extensions/adblock.c
@@ -657,11 +657,39 @@ test_adblock_pattern (void)
 g_unlink (filename);
 }
 
+static void
+test_adblock_count (void)
+{
+gchar* urls[6] = {
+
https://bugs.webkit.org/buglist.cgi?query_format=advancedshort_desc_type=allwordssubstrshort_desc=long_desc_type=substringlong_desc=bug_file_loc_type=allwordssubstrbug_file_loc=keywords_type=allwordskeywords=bug_status=UNCONFIRMEDbug_status=NEWbug_status=ASSIGNEDbug_status=REOPENEDemailassigned_to1=1emailtype1=substringemail1=emailassigned_to2=1emailreporter2=1emailcc2=1emailtype2=substringemail2=bugidtype=includebug_id=votes=chfieldfrom=chfieldto=Nowchfieldvalue=query_based_on=gtkportfield0-0-0=keywordstype0-0-0=anywordssubstrvalue0-0-0=Gtk%20Cairo%20soupfield0-0-1=short_desctype0-0-1=anywordssubstrvalue0-0-1=Gtk%20Cairo%20soup%20autoconf%20automake%20autotoolfield0-0-2=componenttype0-0-2=equalsvalue0-0-2=WebKit%20Gtk;,
+
http://www.engadget.com/2009/09/24/google-hits-android-rom-modder-with-a-cease-and-desist-letter/;,
+
http://karibik-invest.com/es/bienes_raices/search.php?sqT=19sqN=sqMp=sqL=0qR=1sqMb=searchMode=1action=B%FAsqueda;,
+http://google.com;,
+http://ya.ru;,
+http://google.com;
+};
+/* FIXME */
+gchar* filename = 
/home/avb/.cache/midori/adblock/bb6cd38a4579b3605946b1228fa65297;
+gdouble elapsed = 0.0;
+gchar* str;
+int i;
+pattern = adblock_parse_file (filename);
+for (i = 0; i  6; i++)
+{
+str = urls[i];
+g_test_timer_start ();
+g_hash_table_find (pattern, (GHRFunc) adblock_is_matched,str);
+elapsed += g_test_timer_elapsed ();
+}
+g_print (Search took %f seconds\n, elapsed);
+}
+
 void
 extension_test (void)
 {
 g_test_add_func (/extensions/adblock/parse, test_adblock_parse);
 g_test_add_func (/extensions/adblock/pattern, test_adblock_pattern);
+g_test_add_func (/extensions/adblock/count, test_adblock_count);
 }
 #endif
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Fix a leaked folder string when activating extensions

2009-10-03 Thread Christian Dywan
Updating branch refs/heads/master
 to d4c9c87f79e3dd2d1ebba7972fd1102d90aba343 (commit)
   from 2ff14cf64d920a55c66c81f08fb53f4153659af7 (commit)

commit d4c9c87f79e3dd2d1ebba7972fd1102d90aba343
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Oct 4 00:02:52 2009 +0200

Fix a leaked folder string when activating extensions

 midori/midori-extension.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/midori/midori-extension.c b/midori/midori-extension.c
index 27ab9df..9eceea8 100644
--- a/midori/midori-extension.c
+++ b/midori/midori-extension.c
@@ -278,6 +278,7 @@ midori_extension_activate_cb (MidoriExtension* extension,
 gchar* folder = g_strconcat (extensions/, filename, NULL);
 katze_assign (config_file,
 sokoke_find_config_filename (folder, config));
+g_free (folder);
 g_key_file_load_from_file (extension-priv-key_file, 
config_file,
G_KEY_FILE_KEEP_COMMENTS, NULL);
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Fix a leaked URI string when injecting user scripts

2009-10-03 Thread Christian Dywan
Updating branch refs/heads/master
 to 2ff14cf64d920a55c66c81f08fb53f4153659af7 (commit)
   from 136f5d981f5eee654d77c4007b47c5becb1a366f (commit)

commit 2ff14cf64d920a55c66c81f08fb53f4153659af7
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Oct 4 00:02:23 2009 +0200

Fix a leaked URI string when injecting user scripts

 panels/midori-addons.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/panels/midori-addons.c b/panels/midori-addons.c
index cb81b01..0d1c092 100644
--- a/panels/midori-addons.c
+++ b/panels/midori-addons.c
@@ -781,7 +781,7 @@ midori_web_widget_context_ready_cb (GtkWidget* 
web_widget,
 JSGlobalContextRef js_context,
 MidoriAddons*  addons)
 {
-const gchar* uri;
+gchar* uri;
 GSList* elements;
 struct AddonElement* element;
 gchar* fullname;
@@ -831,6 +831,8 @@ midori_web_widget_context_ready_cb (GtkWidget* 
web_widget,
 
 elements = g_slist_next (elements);
 }
+
+g_free (uri);
 }
 
 /**
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Encode IDN addresses passed externally

2009-10-04 Thread Christian Dywan
Updating branch refs/heads/master
 to acb2104128e98aa56fb9feedb3a69d0eee1881a4 (commit)
   from b53c39b82eabd8f10b656b14b0e125f58ef488c7 (commit)

commit acb2104128e98aa56fb9feedb3a69d0eee1881a4
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Oct 4 03:12:10 2009 +0200

Encode IDN addresses passed externally

Apparently libUnique can't handle international domains and
won't pass them onto the destined instance, so we encode
them beforehand.

 midori/main.c   |   16 
 midori/sokoke.c |2 +-
 midori/sokoke.h |3 +++
 3 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 60b6ad2..834e47d 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -1772,6 +1772,22 @@ main (intargc,
 {
 /* TODO: Open a tab per URI, seperated by pipes */
 /* FIXME: Handle relative files or magic URI here */
+/* Encode any IDN addresses because libUnique doesn't like them */
+i = 0;
+while (uris[i] != NULL)
+{
+#if GLIB_CHECK_VERSION (2, 22, 0)
+gchar* encoded = g_hostname_to_unicode (uris[i]);
+if (encoded)
+{
+g_free (uris[i]);
+uris[i] = encoded;
+}
+#else
+uris[i] = sokoke_idn_to_punycode (uris[i]);
+#endif
+i++;
+}
 result = midori_app_instance_send_uris (app, uris);
 }
 else
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 35b95d5..7d40e8d 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -185,7 +185,7 @@ sokoke_spawn_program (const gchar* command,
 return TRUE;
 }
 
-static gchar*
+gchar*
 sokoke_idn_to_punycode (gchar* uri)
 {
 #if HAVE_LIBIDN
diff --git a/midori/sokoke.h b/midori/sokoke.h
index e2dbb21..ea23caa 100644
--- a/midori/sokoke.h
+++ b/midori/sokoke.h
@@ -42,6 +42,9 @@ gchar* sokoke_search_uri(const gchar*uri,
  const gchar*keywords);
 
 gchar*
+sokoke_idn_to_punycode  (gchar*  uri);
+
+gchar*
 sokoke_magic_uri(const gchar*uri,
  KatzeArray* search_engines);
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Refactor location action to not use MidoriLocationEntryItem

2009-10-04 Thread Christian Dywan
Updating branch refs/heads/master
 to 19982199339aa083d8dc08d2c4dc95e02198485d (commit)
   from acb2104128e98aa56fb9feedb3a69d0eee1881a4 (commit)

commit 19982199339aa083d8dc08d2c4dc95e02198485d
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Oct 4 03:52:01 2009 +0200

Refactor location action to not use MidoriLocationEntryItem

 midori/midori-locationaction.c |   85 
 midori/midori-locationaction.h |7 ---
 midori/midori-locationentry.h  |1 -
 3 files changed, 42 insertions(+), 51 deletions(-)

diff --git a/midori/midori-locationaction.c b/midori/midori-locationaction.c
index f4eaeca..1c7c9a1 100644
--- a/midori/midori-locationaction.c
+++ b/midori/midori-locationaction.c
@@ -45,6 +45,13 @@ struct _MidoriLocationActionClass
 GtkActionClass parent_class;
 };
 
+typedef struct _MidoriLocationEntryItem
+{
+GdkPixbuf* favicon;
+const gchar* uri;
+const gchar* title;
+} MidoriLocationEntryItem;
+
 G_DEFINE_TYPE (MidoriLocationAction, midori_location_action, GTK_TYPE_ACTION)
 
 enum
@@ -843,42 +850,52 @@ midori_location_action_iter_insert (MidoriLocationAction* 
location_action,
 }
 
 static void
-midori_location_action_set_item (MidoriLocationAction*location_action,
- MidoriLocationEntryItem* item,
- gboolean increment_visits,
- gboolean filter)
+midori_location_action_set_item (MidoriLocationAction* location_action,
+ GdkPixbuf*icon,
+ const gchar*  uri,
+ const gchar*  title,
+ gboolean  increment_visits,
+ gboolean  filter)
 {
 GtkTreeModel* model;
 GtkTreeModel* filter_model;
 GtkTreeIter iter;
-GdkPixbuf* icon;
 GdkPixbuf* new_icon;
 gint visits = 0;
+gchar* _title = NULL;
+GdkPixbuf* original_icon = NULL;
 
 model = location_action-model;
 
-if (midori_location_action_iter_insert (location_action,
-item-uri, iter, G_MAXINT))
+if (midori_location_action_iter_insert (location_action, uri, iter, 
G_MAXINT))
 gtk_tree_model_get (model, iter, VISITS_COL, visits, -1);
 
+gtk_tree_model_get (model, iter, FAVICON_COL, original_icon, -1);
+
 if (increment_visits)
 gtk_list_store_set (GTK_LIST_STORE (model), iter,
 VISITS_COL, ++visits, VISIBLE_COL, TRUE, -1);
 
 /* Ensure we keep the title if we added the same URI with a title before */
-if (!item-title)
-gtk_tree_model_get (model, iter, TITLE_COL, item-title, -1);
+if (!title)
+{
+gtk_tree_model_get (model, iter, TITLE_COL, _title, -1);
+title = _title;
+}
 
 gtk_list_store_set (GTK_LIST_STORE (model), iter,
-URI_COL, item-uri, TITLE_COL, item-title, YALIGN_COL, 0.25, -1);
+URI_COL, uri, TITLE_COL, title, YALIGN_COL, 0.25, -1);
+g_free (_title);
 
-gtk_tree_model_get (model, iter, FAVICON_COL, icon, -1);
-if (item-favicon)
-new_icon = item-favicon;
-else if (!icon)
-new_icon = location_action-default_icon;
-else
+if (icon)
+new_icon = icon;
+else if (original_icon)
+{
 new_icon = NULL;
+g_object_unref (original_icon);
+}
+else
+new_icon = location_action-default_icon;
 if (new_icon)
 gtk_list_store_set (GTK_LIST_STORE (model), iter,
 FAVICON_COL, new_icon, -1);
@@ -1040,7 +1057,7 @@ midori_location_action_entry_changed_cb (GtkComboBox* 
 combo_box,
  GTK_ICON_ENTRY_PRIMARY, 
pixbuf);
 g_object_unref (pixbuf);
 katze_assign (location_action-text, uri);
-katze_assign (location_action-uri, uri);
+katze_assign (location_action-uri, g_strdup (uri));
 
 g_signal_emit (location_action, signals[ACTIVE_CHANGED], 0,
gtk_combo_box_get_active (combo_box));
@@ -1268,18 +1285,13 @@ void
 midori_location_action_add_uri (MidoriLocationAction* location_action,
 const gchar*  uri)
 {
-MidoriLocationEntryItem item;
-
 g_return_if_fail (MIDORI_IS_LOCATION_ACTION (location_action));
 g_return_if_fail (uri != NULL);
 
 if (midori_location_action_is_frozen (location_action))
 return;
 
-item.favicon = NULL;
-item.uri = uri;
-item.title = NULL;
-midori_location_action_set_item (location_action, item, TRUE, TRUE);
+midori_location_action_set_item (location_action, NULL, uri, NULL, TRUE, 
TRUE);
 
 katze_assign (location_action-uri, g_strdup (uri));
 }
@@ -1293,28 +1305,22 @@ midori_location_action_add_item (MidoriLocationAction

[Xfce4-commits] midori:master Enable integrated page setup combo box for printing

2009-10-05 Thread Christian Dywan
Updating branch refs/heads/master
 to c624048c218c2d3d73518de81f5138e41e1797b2 (commit)
   from 7aaf59ec9a75553ea081c9988bf03b6d3006bb3c (commit)

commit c624048c218c2d3d73518de81f5138e41e1797b2
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Oct 5 20:52:34 2009 +0200

Enable integrated page setup combo box for printing

 midori/midori-view.c |3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index 01c743e..1ca49dc 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -3774,6 +3774,9 @@ midori_view_print (MidoriView* view)
 #if WEBKIT_CHECK_VERSION (1, 1, 5)
 operation = gtk_print_operation_new ();
 gtk_print_operation_set_custom_tab_label (operation, _(Features));
+#if GTK_CHECK_VERSION (2, 18, 0)
+gtk_print_operation_set_embed_page_setup (operation, TRUE);
+#endif
 g_signal_connect (operation, create-custom-widget,
 G_CALLBACK (midori_view_print_create_custom_widget_cb), view);
 g_signal_connect (operation, custom-widget-apply,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Format addresses nicely, with no percents and no punycode

2009-10-05 Thread Christian Dywan
Updating branch refs/heads/master
 to 7aaf59ec9a75553ea081c9988bf03b6d3006bb3c (commit)
   from 19982199339aa083d8dc08d2c4dc95e02198485d (commit)

commit 7aaf59ec9a75553ea081c9988bf03b6d3006bb3c
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon Oct 5 20:50:08 2009 +0200

Format addresses nicely, with no percents and no punycode

 midori/midori-browser.c |2 +-
 midori/midori-view.c|4 ++--
 midori/sokoke.c |   36 
 midori/sokoke.h |3 +++
 4 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 2d48f23..dc549a8 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -351,7 +351,7 @@ _midori_browser_set_statusbar_text (MidoriBrowser* browser,
 gboolean is_location = widget ?
 MIDORI_IS_LOCATION_ENTRY (gtk_widget_get_parent (widget)) : FALSE;
 
-katze_assign (browser-statusbar_text, g_strdup (text));
+katze_assign (browser-statusbar_text, sokoke_format_uri_for_display 
(text));
 
 if (!GTK_WIDGET_VISIBLE (browser-statusbar)  !is_location)
 {
diff --git a/midori/midori-view.c b/midori/midori-view.c
index 35bcb69..01c743e 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -748,7 +748,7 @@ webkit_web_view_load_committed_cb (WebKitWebView*  web_view,
 
 uri = webkit_web_frame_get_uri (web_frame);
 g_return_if_fail (uri != NULL);
-katze_assign (view-uri, g_strdup (uri));
+katze_assign (view-uri, sokoke_format_uri_for_display (uri));
 if (view-item)
 {
 #if 0
@@ -2831,7 +2831,7 @@ midori_view_set_uri (MidoriView*  view,
 }
 else
 {
-katze_assign (view-uri, g_strdup (uri));
+katze_assign (view-uri, sokoke_format_uri_for_display (uri));
 g_object_notify (G_OBJECT (view), uri);
 if (view-item)
 katze_item_set_uri (view-item, uri);
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 7d40e8d..a1fa336 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -358,6 +358,42 @@ sokoke_magic_uri (const gchar* uri,
 return search;
 }
 
+/**
+ * sokoke_format_uri_for_display:
+ * @uri: an URI string
+ *
+ * Formats an URI for display, for instance by converting
+ * percent encoded characters and by decoding punycode.
+ *
+ * Return value: a newly allocated URI
+ **/
+gchar*
+sokoke_format_uri_for_display (const gchar* uri)
+{
+if (uri  g_str_has_prefix (uri, http://;))
+{
+gchar* unescaped = g_uri_unescape_string (uri, NULL);
+#ifdef HAVE_LIBSOUP_2_27_90
+gchar* decoded = g_hostname_to_unicode (unescaped);
+if (decoded)
+{
+g_free (unescaped);
+return decoded;
+}
+return unescaped;
+#elif HAVE_LIBIDN
+gchar* decoded;
+if (!idna_to_unicode_8z8z (unescaped, decoded, 0) == IDNA_SUCCESS)
+return unescaped;
+g_free (unescaped);
+return decoded;
+#else
+return unescaped;
+#endif
+}
+return g_strdup (uri);
+}
+
 void
 sokoke_combo_box_add_strings (GtkComboBox* combobox,
   const gchar* label_first, ...)
diff --git a/midori/sokoke.h b/midori/sokoke.h
index ea23caa..15f2c88 100644
--- a/midori/sokoke.h
+++ b/midori/sokoke.h
@@ -48,6 +48,9 @@ gchar*
 sokoke_magic_uri(const gchar*uri,
  KatzeArray* search_engines);
 
+gchar*
+sokoke_format_uri_for_display   (const gchar*uri);
+
 typedef enum {
 SOKOKE_MENU_POSITION_CURSOR = 0,
 SOKOKE_MENU_POSITION_LEFT,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Initial code for the form history extension

2009-10-06 Thread Christian Dywan
Updating branch refs/heads/master
 to 50c159e9bb88784ac3a4cc8d18f4fb8ab1a16c77 (commit)
   from c624048c218c2d3d73518de81f5138e41e1797b2 (commit)

commit 50c159e9bb88784ac3a4cc8d18f4fb8ab1a16c77
Author: Alexander Butenko a.bute...@gmail.com
Date:   Tue Oct 6 20:35:56 2009 +0200

Initial code for the form history extension

 data/autosuggestcontrol.css |   16 ++
 data/autosuggestcontrol.js  |  366 +++
 extensions/formhistory.c|  205 
 3 files changed, 587 insertions(+), 0 deletions(-)

diff --git a/data/autosuggestcontrol.css b/data/autosuggestcontrol.css
new file mode 100644
index 000..a7ca89d
--- /dev/null
+++ b/data/autosuggestcontrol.css
@@ -0,0 +1,16 @@
+div.suggestions {
+-moz-box-sizing: border-box;
+box-sizing: border-box;
+border: 1px solid #cc;
+text-align: left;
+background-color: #ff;
+position: absolute;
+}
+div.suggestions div {
+cursor: default;
+padding: 0px 3px;
+}
+div.suggestions div.current {
+background-color: #3366cc;
+color: white;
+}
diff --git a/data/autosuggestcontrol.js b/data/autosuggestcontrol.js
new file mode 100644
index 000..0b58336
--- /dev/null
+++ b/data/autosuggestcontrol.js
@@ -0,0 +1,366 @@
+/**
+ * An autosuggest textbox control.
+ * from Nicholas C. Zakas (Author) example: http://www.nczonline.net/
+ * @class
+ * @scope public
+ */
+function AutoSuggestControl(oTextbox /*:HTMLInputElement*/,
+oProvider /*:SuggestionProvider*/) {
+/**
+ * The currently selected suggestions.
+ * @scope private
+ */
+this.cur /*:int*/ = -1;
+/**
+ * The dropdown list layer.
+ * @scope private
+ */
+this.layer = null;
+/**
+ * Suggestion provider for the autosuggest feature.
+ * @scope private.
+ */
+this.provider /*:SuggestionProvider*/ = oProvider;
+/**
+ * The textbox to capture.
+ * @scope private
+ */
+this.textbox /*:HTMLInputElement*/ = oTextbox;
+//initialize the control
+this.init();
+
+}
+
+/**
+ * Autosuggests one or more suggestions for what the user has typed.
+ * If no suggestions are passed in, then no autosuggest occurs.
+ * @scope private
+ * @param aSuggestions An array of suggestion strings.
+ * @param bTypeAhead If the control should provide a type ahead suggestion.
+ */
+AutoSuggestControl.prototype.autosuggest = function (aSuggestions /*:Array*/,
+ bTypeAhead /*:boolean*/) {
+//make sure theres at least one suggestion
+if (aSuggestions.length  0) {
+if (bTypeAhead) {
+   this.typeAhead(aSuggestions[0]);
+}
+this.showSuggestions(aSuggestions);
+} else {
+this.hideSuggestions();
+}
+};
+
+/**
+ * Creates the dropdown layer to display multiple suggestions.
+ * @scope private
+ */
+AutoSuggestControl.prototype.createDropDown = function () {
+
+var oThis = this;
+
+//create the layer and assign styles
+this.layer = document.createElement(div);
+this.layer.className = suggestions;
+this.layer.style.visibility = hidden;
+this.layer.style.width = this.textbox.offsetWidth + 10;
+
+//when the user clicks on the a suggestion, get the text (innerHTML)
+//and place it into a textbox
+this.layer.onmousedown =
+this.layer.onmouseup =
+this.layer.onmouseover = function (oEvent) {
+oEvent = oEvent || window.event;
+oTarget = oEvent.target || oEvent.srcElement;
+
+if (oEvent.type == mousedown) {
+oThis.textbox.value = oTarget.firstChild.nodeValue;
+oThis.hideSuggestions();
+} else if (oEvent.type == mouseover) {
+oThis.highlightSuggestion(oTarget);
+} else {
+oThis.textbox.focus();
+}
+};
+
+
+document.body.appendChild(this.layer);
+};
+
+/**
+ * Gets the left coordinate of the textbox.
+ * @scope private
+ * @return The left coordinate of the textbox in pixels.
+ */
+AutoSuggestControl.prototype.getLeft = function () /*:int*/ {
+
+var oNode = this.textbox;
+var iLeft = 0;
+
+while(oNode.tagName != BODY) {
+iLeft += oNode.offsetLeft;
+oNode = oNode.offsetParent;
+}
+
+return iLeft;
+};
+
+/**
+ * Gets the top coordinate of the textbox.
+ * @scope private
+ * @return The top coordinate of the textbox in pixels.
+ */
+AutoSuggestControl.prototype.getTop = function () /*:int*/ {
+var oNode = this.textbox;
+var iTop = 0;
+while(oNode.tagName != BODY) {
+iTop += oNode.offsetTop;
+oNode = oNode.offsetParent;
+}
+return iTop;
+};
+
+/**
+ * Handles three keydown events.
+ * @scope private
+ * @param oEvent The event object for the keydown event.
+ */
+AutoSuggestControl.prototype.handleKeyDown = function (oEvent /*:Event*/) {
+switch(oEvent.keyCode) {
+case 38: //up arrow
+

[Xfce4-commits] midori:master Regard file:// URIs as valid for bookmarks

2009-10-06 Thread Christian Dywan
Updating branch refs/heads/master
 to ca81aeb0343c067ab0064a6b973aa19158f27382 (commit)
   from 50c159e9bb88784ac3a4cc8d18f4fb8ab1a16c77 (commit)

commit ca81aeb0343c067ab0064a6b973aa19158f27382
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Oct 6 20:40:43 2009 +0200

Regard file:// URIs as valid for bookmarks

 midori/midori-browser.c |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index dc549a8..d334d0a 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -608,7 +608,8 @@ midori_browser_edit_bookmark_uri_changed_cb (GtkEntry*  
entry,
 const gchar* uri = gtk_entry_get_text (entry);
 gtk_dialog_set_response_sensitive (dialog, GTK_RESPONSE_ACCEPT,
 uri  (g_str_has_prefix (uri, http://;)
-|| g_str_has_prefix (uri, https://;)));
+|| g_str_has_prefix (uri, https://;)
+|| g_str_has_prefix (uri, file://)));
 }
 
 /* Private function, used by MidoriBookmarks and MidoriHistory */
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Fix display formatting of URIs and unit test it properly

2009-10-06 Thread Christian Dywan
Updating branch refs/heads/master
 to 3ed9e482cd09b1d75fa6c0ab5e19385bbdf8dbf0 (commit)
   from ca81aeb0343c067ab0064a6b973aa19158f27382 (commit)

commit 3ed9e482cd09b1d75fa6c0ab5e19385bbdf8dbf0
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Oct 6 23:43:33 2009 +0200

Fix display formatting of URIs and unit test it properly

 midori/midori-locationaction.c |   10 +
 midori/sokoke.c|   93 +++
 tests/magic-uri.c  |   52 +++---
 3 files changed, 120 insertions(+), 35 deletions(-)

diff --git a/midori/midori-locationaction.c b/midori/midori-locationaction.c
index 1c7c9a1..568479f 100644
--- a/midori/midori-locationaction.c
+++ b/midori/midori-locationaction.c
@@ -635,7 +635,6 @@ midori_location_entry_render_text_cb (GtkCellLayout*   
layout,
   GtkTreeIter* iter,
   gpointer data)
 {
-gchar* uri_raw;
 gchar* uri;
 gchar* title;
 gchar* desc;
@@ -649,14 +648,7 @@ midori_location_entry_render_text_cb (GtkCellLayout*   
layout,
 gchar** parts;
 size_t len;
 
-gtk_tree_model_get (model, iter, URI_COL, uri_raw, TITLE_COL, title, -1);
-
-#if GLIB_CHECK_VERSION (2, 22, 0)
-uri = g_hostname_to_unicode (uri_raw);
-g_free (uri_raw);
-#else
-uri = uri_raw;
-#endif
+gtk_tree_model_get (model, iter, URI_COL, uri, TITLE_COL, title, -1);
 
 desc = desc_uri = desc_title = key = NULL;
 if (G_LIKELY (data))
diff --git a/midori/sokoke.c b/midori/sokoke.c
index a1fa336..2a9d966 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -185,6 +185,59 @@ sokoke_spawn_program (const gchar* command,
 return TRUE;
 }
 
+#if defined (HAVE_LIBSOUP_2_27_90) || HAVE_LIBIDN
+/**
+ * sokoke_hostname_from_uri:
+ * @uri: an URI string
+ * @path: location of a string pointer
+ *
+ * Returns the hostname of the specified URI,
+ * and stores the path in @path.
+ * @path is at least set to 
+ *
+ * Return value: a newly allocated hostname
+ **/
+static gchar*
+sokoke_hostname_from_uri (const gchar* uri,
+  gchar**  path)
+{
+gchar* hostname;
+
+*path = ;
+if ((hostname = g_utf8_strchr (uri, -1, '/')))
+{
+if (hostname[1] == '/')
+hostname += 2;
+if ((*path = g_utf8_strchr (hostname, -1, '/')))
+{
+gulong offset = g_utf8_pointer_to_offset (hostname, *path);
+gchar* buffer = g_malloc0 (offset + 1);
+g_utf8_strncpy (buffer, hostname, offset);
+hostname = buffer;
+}
+else
+hostname = g_strdup (hostname);
+}
+else
+hostname = g_strdup (uri);
+return hostname;
+}
+#endif
+
+/**
+ * sokoke_idn_to_punycode:
+ * @uri: an URI string
+ *
+ * The specified URI is parsed and the hostname
+ * part of it is encoded if it is not ASCII.
+ *
+ * If libIDN is not available at compile time,
+ * this code will pass the string unaltered.
+ *
+ * The called function owns the passed string.
+ *
+ * Return value: a newly allocated ASCII URI
+ **/
 gchar*
 sokoke_idn_to_punycode (gchar* uri)
 {
@@ -212,23 +265,7 @@ sokoke_idn_to_punycode (gchar* uri)
 proto = buffer;
 }
 
-path = NULL;
-if ((hostname = g_utf8_strchr (uri, -1, '/')))
-{
-if (hostname[1] == '/')
-hostname += 2;
-if ((path = g_utf8_strchr (hostname, -1, '/')))
-{
-gulong offset = g_utf8_pointer_to_offset (hostname, path);
-gchar* buffer = g_malloc0 (offset + 1);
-g_utf8_strncpy (buffer, hostname, offset);
-hostname = buffer;
-}
-else
-hostname = g_strdup (hostname);
-}
-else
-hostname = g_strdup (uri);
+hostname = sokoke_hostname_from_uri (uri, path);
 
 if (!(q = stringprep_utf8_to_ucs4 (hostname, -1, NULL)))
 {
@@ -294,6 +331,16 @@ gchar* sokoke_search_uri (const gchar* uri,
 return search;
 }
 
+/**
+ * sokoke_magic_uri:
+ * @uri: a string typed by a user
+ * @search_engines: search engines
+ *
+ * Takes a string that was typed by a user,
+ * guesses what it is, and returns an URI.
+ *
+ * Return value: a newly allocated URI
+ **/
 gchar*
 sokoke_magic_uri (const gchar* uri,
   KatzeArray*  search_engines)
@@ -358,6 +405,7 @@ sokoke_magic_uri (const gchar* uri,
 return search;
 }
 
+
 /**
  * sokoke_format_uri_for_display:
  * @uri: an URI string
@@ -374,12 +422,19 @@ sokoke_format_uri_for_display (const gchar* uri)
 {
 gchar* unescaped = g_uri_unescape_string (uri, NULL);
 #ifdef HAVE_LIBSOUP_2_27_90
-gchar* decoded = g_hostname_to_unicode (unescaped);
+gchar* path;
+gchar* hostname = sokoke_hostname_from_uri (unescaped, path);
+gchar* decoded = g_hostname_to_unicode (hostname);
+
 if (decoded)
 {
+gchar* result

[Xfce4-commits] postler:master Split MIME type and content type more carefully

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to 734c3ae2262499d2cfc44ec6be9b77233005326b (commit)
   from 31b22e071e18d11f05070463ef78b14bd509fec8 (commit)

commit 734c3ae2262499d2cfc44ec6be9b77233005326b
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 19:29:07 2010 +0200

Split MIME type and content type more carefully

We also want to clearly show an error message if the body of
the message can't be displayed.

 postler/postler-content.vala |   31 +++
 1 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index ebdb40a..f36560c 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -247,10 +247,23 @@ public class Postler.Content : WebKit.WebView {
 reply = linkify_address (reply, arguments);
 
 if (content_type != null) {
-parts = content_type.split (; charset=);
-if (parts != null  parts[0] != null  parts[1] != null) {
-mime_type = parts[0];
-charset = parts[1].replace (\,  ).strip ();
+parts = content_type.split_set (; );
+string filename = null;
+foreach (var part in parts) {
+if (part.has_prefix (charset=))
+charset = part.substring (8, part.length - 8);
+else if (part.has_prefix (name=))
+filename = part.substring (5, part.length - 5);
+else if (part !=   !part.contains (=))
+mime_type = part.down ();
+}
+
+if (mime_type == application/octet-stream  filename != 
null) {
+filename = filename.replace (\,  ).strip ();
+uchar[] data = {};
+bool uncertain;
+mime_type = g_content_type_guess (filename,
+data, out uncertain);
 }
 }
 
@@ -264,6 +277,16 @@ public class Postler.Content : WebKit.WebView {
 /* Message body starts here */
 body = new GLib.StringBuilder ();
 while ((line = stream.read_line (null, null)) != null) {
+if (!mime_type.has_prefix (text/)) {
+body.append (h1%s/h1p%s.printf (
+_(Error),
+_(This message of type \%s\ can't be displayed.).
+printf (mime_type)
+));
+mime_type = text/html;
+break;
+}
+
 if (content_encoding == quoted-printable)
 line = quoted_printable_decode (line);
 else if (content_encoding == base64)
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Add a clear icon to the search entry

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to e96335b335cd05b38d18b7a4d302eafef2b3afab (commit)
   from 734c3ae2262499d2cfc44ec6be9b77233005326b (commit)

commit e96335b335cd05b38d18b7a4d302eafef2b3afab
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 19:35:32 2010 +0200

Add a clear icon to the search entry

 postler/postler-bureau.vala |5 +
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index 088eb77..0dd4ed0 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -208,6 +208,11 @@ public class Postler.Bureau : Gtk.Window {
 /* FIXME: icons are available since GTK+ 2.16 */
 search.set_icon_from_stock (Gtk.EntryIconPosition.PRIMARY, 
Gtk.STOCK_FIND);
 search.activate.connect ((search) = {messages.search (search.text); } 
);
+search.set_icon_from_stock (Gtk.EntryIconPosition.SECONDARY, 
Gtk.STOCK_CLEAR);
+search.icon_release.connect ((position, event) = {
+search.text = ;
+search.activate ();
+} );
 toolitem.add (search);
 toolitem.show_all ();
 shelf.pack_start (toolbar, false, false, 0);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Perform search case insensitively

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to 1a08558f8c3ec071b7746c539be20c08d9ca18f1 (commit)
   from 1e5bd453b8ed7d35f6fa6dc9db8462cdc696b27f (commit)

commit 1a08558f8c3ec071b7746c539be20c08d9ca18f1
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 19:43:47 2010 +0200

Perform search case insensitively

 postler/postler-messages.vala |   10 +-
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 70734b4..46a3f87 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -20,7 +20,7 @@ public class Postler.Messages : Gtk.TreeView {
 public string? selected_location { get; set; }
 
 string last_location;
-string last_filter;
+string last_filter = ;
 
 enum Columns {
 FLAGGED,
@@ -190,15 +190,15 @@ public class Postler.Messages : Gtk.TreeView {
 
 public void search (string filter) {
 last_filter = filter;
-populate (last_location, last_filter);
+populate (last_location, filter.down ());
 }
 
-public bool populate (string? location, string? filter=null) {
+public bool populate (string? location, string filter=) {
 clear ();
 sort.reset_default_sort_func ();
 if (location == null)
 return true;
-if (filter != null)
+if (filter != )
 last_filter = filter;
 try {
 string[] folders = { cur, new };
@@ -282,7 +282,7 @@ public class Postler.Messages : Gtk.TreeView {
 
 string charset = null;
 string real_subject = parse_encoded (subject, out charset);
-if (last_filter != null  !(last_filter in real_subject))
+if (last_filter !=   !(last_filter in 
real_subject.down ()))
 continue;
 store.insert_with_values (out account_iter, null, -1,
 Columns.FLAGGED, flagged,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Explicitly check if there's a charset, default to ISO-8859-1

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to 1e8f8e88b6a57da4e89184573499382bb95f87a2 (commit)
   from 1a08558f8c3ec071b7746c539be20c08d9ca18f1 (commit)

commit 1e8f8e88b6a57da4e89184573499382bb95f87a2
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 19:55:53 2010 +0200

Explicitly check if there's a charset, default to ISO-8859-1

 postler/postler-content.vala |   10 +-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index f36560c..806491d 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -17,6 +17,8 @@ struct Postler.EmoticonMapping {
 }
 
 public class Postler.Content : WebKit.WebView {
+public string default_charset { get; set; default = ISO-8859-1; }
+
 public string? last_location { get; set; }
 public string? subject { get; set; }
 public string? reply_to { get; set; }
@@ -148,7 +150,7 @@ public class Postler.Content : WebKit.WebView {
 string line;
 string content_type = null;
 string mime_type = text/plain;
-string charset = UTF-8;
+string charset = null;
 string[] parts;
 GLib.StringBuilder body;
 
@@ -165,6 +167,9 @@ public class Postler.Content : WebKit.WebView {
 mime_type = parts[0];
 charset = parts[1];
 }
+if (charset == null)
+charset = default_charset;
+
 /* FIXME view_source_mode requires WebKitGTK+ 1.1.something */
 set_view_source_mode (true);
 load_string (body.str, mime_type, charset, about:blank);
@@ -228,6 +233,9 @@ public class Postler.Content : WebKit.WebView {
 x_mailer = format_x_mailer (parts[1]);
 }
 
+if (charset == null)
+charset = default_charset;
+
 reply_to = reply !=  ? reply : from;
 if (carbon_copy != )
 reply_to_all = reply_to + , + carbon_copy;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Recognize 'user-agent' as an alias for 'x-mailer'

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to 323c82a406ba1fa2e183d8797bd494b2dbab3976 (commit)
   from 1e8f8e88b6a57da4e89184573499382bb95f87a2 (commit)

commit 323c82a406ba1fa2e183d8797bd494b2dbab3976
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 20:05:30 2010 +0200

Recognize 'user-agent' as an alias for 'x-mailer'

 postler/postler-content.vala |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index 806491d..3e45d03 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -229,7 +229,7 @@ public class Postler.Content : WebKit.WebView {
 }
 else if (field == organization)
 organization = parts[1];
-else if (field == x-mailer)
+else if (field == x-mailer || field == user-agent)
 x_mailer = format_x_mailer (parts[1]);
 }
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Parse subject and content type of source properly

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to 0b9e9c2802362545d08c7711797d0ac5b3f74504 (commit)
   from 323c82a406ba1fa2e183d8797bd494b2dbab3976 (commit)

commit 0b9e9c2802362545d08c7711797d0ac5b3f74504
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 20:19:52 2010 +0200

Parse subject and content type of source properly

 postler/postler-content.vala |   22 --
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index 3e45d03..b45ed93 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -157,15 +157,25 @@ public class Postler.Content : WebKit.WebView {
 if (view_source) {
 body = new GLib.StringBuilder ();
 while ((line = stream.read_line (null, null)) != null) {
-if (line.has_prefix (Content-Type:))
-content_type = line.substring (14, line.length - 14);
+parts = line.split (:, 2);
+if (parts != null  parts[0] != null) {
+string field = parts[0].down ();
+if (field == content-type)
+content_type = parts[1].strip ();
+else if (field == subject)
+subject = parse_encoded (parts[1], out charset);
+}
 body.append (line + \n);
 }
 
-parts = content_type.split (; charset=);
-if (parts != null  parts[0] != null  parts[1] != null) {
-mime_type = parts[0];
-charset = parts[1];
+if (content_type != null) {
+parts = content_type.split_set (; );
+foreach (var part in parts) {
+if (part.has_prefix (charset=))
+charset = part.substring (8, part.length - 8);
+else if (part !=   !part.contains (=))
+mime_type = part.down ();
+}
 }
 if (charset == null)
 charset = default_charset;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Render emoticons lazily only when needed

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to e49eff41725bc101542cacfed0bf2678363fe5f7 (commit)
   from 0b9e9c2802362545d08c7711797d0ac5b3f74504 (commit)

commit e49eff41725bc101542cacfed0bf2678363fe5f7
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 20:48:28 2010 +0200

Render emoticons lazily only when needed

 postler/postler-content.vala |   51 ++---
 1 files changed, 37 insertions(+), 14 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index b45ed93..e145da5 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -114,6 +114,36 @@ public class Postler.Content : WebKit.WebView {
 { ~_^, face-wink },
 { ^_~, face-wink }
 };
+
+static bool evaluate_emoticon (GLib.MatchInfo match_info,
+   GLib.StringBuilder result,
+   void*  user_data) {
+EmoticonMapping emoticon = *(EmoticonMapping*)user_data;
+Gdk.Pixbuf pixbuf = null;
+try {
+pixbuf = Gtk.IconTheme.get_for_screen (
+Gdk.Screen.get_default ()).load_icon (emoticon.icon_name, 1, 
0);
+} catch (GLib.Error error) { }
+if (pixbuf == null)
+true;
+string buffer;
+size_t buffer_size;
+try {
+if (!Gdk.pixbuf_save_to_buffer (pixbuf, out buffer,
+out buffer_size, png, null, null))
+return true;
+}
+catch (GLib.Error error) {
+return true;
+}
+
+string encoded = GLib.base64_encode (buffer, buffer_size);
+string data_uri = data:image/png;base64, + encoded;
+result.append ( img src=\ + data_uri + \  +
+   title=\ + emoticon.token + \/);
+return false;
+}
+
 const string[] link_formats = {
 (https?:\\/\\/\\S+),
 ([a-za-z0-9.\\...@[a-za-z0-9.\\-]+[a-za-z0-9.]+)
@@ -345,20 +375,13 @@ public class Postler.Content : WebKit.WebView {
 
 /* Emoticons */
 foreach (var emoticon in emoticons) {
-var pixbuf = Gtk.IconTheme.get_for_screen (
-get_screen ()).load_icon (emoticon.icon_name, 1, 0);
-if (pixbuf == null)
-continue;
-string buffer;
-size_t buffer_size;
-if (!Gdk.pixbuf_save_to_buffer (pixbuf, out buffer,
-out buffer_size, png, null, null))
-continue;
-string encoded = GLib.base64_encode (buffer, buffer_size);
-string data_uri = data:image/png;base64, + encoded;
-body_chunk = body_chunk.replace (  + emoticon.token,
-img src=\ + data_uri + \  +
-title=\ + emoticon.token + \/);
+try {
+var escaped = GLib.Regex.escape_string (  + 
emoticon.token);
+var regex = new GLib.Regex (escaped);
+body_chunk = regex.replace_eval (body_chunk, -1, 0, 0,
+ evaluate_emoticon, 
emoticon);
+}
+catch (GLib.RegexError error) { }
 }
 
 load_string (
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Always append original token if emoticon failed

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to a5ad154854aa3f419b1ee9791739a70d048e79aa (commit)
   from e49eff41725bc101542cacfed0bf2678363fe5f7 (commit)

commit a5ad154854aa3f419b1ee9791739a70d048e79aa
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 21:18:15 2010 +0200

Always append original token if emoticon failed

 postler/postler-content.vala |   13 +
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index e145da5..94b040f 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -124,16 +124,21 @@ public class Postler.Content : WebKit.WebView {
 pixbuf = Gtk.IconTheme.get_for_screen (
 Gdk.Screen.get_default ()).load_icon (emoticon.icon_name, 1, 
0);
 } catch (GLib.Error error) { }
-if (pixbuf == null)
-true;
+if (pixbuf == null) {
+result.append (  + emoticon.token);
+return true;
+}
 string buffer;
 size_t buffer_size;
 try {
 if (!Gdk.pixbuf_save_to_buffer (pixbuf, out buffer,
-out buffer_size, png, null, null))
-return true;
+out buffer_size, png, null, null)) {
+result.append (  + emoticon.token);
+return true;
+}
 }
 catch (GLib.Error error) {
+result.append (  + emoticon.token);
 return true;
 }
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Implement loading delayed pages at startup

2010-05-31 Thread Christian Dywan
Updating branch refs/heads/master
 to ea7e627e3bb48eb0ebd1074196aaf0fbd6e95d92 (commit)
   from 6f6684855bcf9453f4834b15c25f2db53dfc99ee (commit)

commit ea7e627e3bb48eb0ebd1074196aaf0fbd6e95d92
Author: Tsahee Zidenberg tsa...@yahoo.com
Date:   Mon May 31 23:39:02 2010 +0200

Implement loading delayed pages at startup

Each view has a meta value 'delay' which indicates whether it be
loaded or needs to be loaded manually before it shows content.

One way to trigger this is that Midori crashes and if it is
configured to 'Show last open tabs', all tabs will now be
delayed. To allow Midori to safely open without crashing again.

The other way is to change the 'Load on Startup' preference to
'Show last tabs without loading'. This causes all tabs restored
from the session to be delayed.

One interesting aspect is that it is possible to have delayed
tabs, use 'Show last open tabs' and tabs will remain as they are,
so delayed tabs will be delayed over following sessions.

 midori/main.c   |   47 ++
 midori/midori-browser.c |   13 +--
 midori/midori-view.c|   17 +++
 midori/midori-websettings.c |1 +
 midori/midori-websettings.h |8 --
 5 files changed, 71 insertions(+), 15 deletions(-)

diff --git a/midori/main.c b/midori/main.c
index 628665c..759dc81 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -431,6 +431,18 @@ midori_history_terminate (sqlite3* db,
 #endif
 
 static void
+midori_session_add_delay (KatzeArray* session)
+{
+KatzeItem* item;
+gint i = 0;
+while ((item = katze_array_get_nth_item (session, i++)))
+{
+if (katze_item_get_meta_integer (item, delay)  0)
+katze_item_set_meta_integer (item, delay, 1);
+}
+}
+
+static void
 settings_notify_cb (MidoriWebSettings* settings,
 GParamSpec*pspec,
 MidoriApp* app)
@@ -1230,11 +1242,13 @@ midori_load_session (gpointer data)
 KatzeArray* _session = KATZE_ARRAY (data);
 MidoriBrowser* browser;
 MidoriApp* app = katze_item_get_parent (KATZE_ITEM (_session));
+MidoriWebSettings* settings = katze_object_get_object (app, settings);
 gchar* config_file;
 KatzeArray* session;
 KatzeItem* item;
 guint i;
 gint64 current;
+MidoriStartup load_on_startup;
 gchar** command = g_object_get_data (G_OBJECT (app), execute-command);
 #ifdef G_ENABLE_DEBUG
 gboolean startup_timer = g_getenv (MIDORI_STARTTIME) != NULL;
@@ -1263,14 +1277,13 @@ midori_load_session (gpointer data)
 g_signal_connect_after (gtk_accel_map_get (), changed,
 G_CALLBACK (accel_map_changed_cb), NULL);
 
+g_object_get (settings, load-on-startup, load_on_startup, NULL);
+
 if (katze_array_is_empty (_session))
 {
-MidoriWebSettings* settings = katze_object_get_object (app, 
settings);
-MidoriStartup load_on_startup;
 gchar* homepage;
 item = katze_item_new ();
 
-g_object_get (settings, load-on-startup, load_on_startup, NULL);
 if (load_on_startup == MIDORI_STARTUP_BLANK_PAGE)
 katze_item_set_uri (item, );
 else
@@ -1279,11 +1292,13 @@ midori_load_session (gpointer data)
 katze_item_set_uri (item, homepage);
 g_free (homepage);
 }
-g_object_unref (settings);
 katze_array_add_item (_session, item);
 g_object_unref (item);
 }
 
+if (load_on_startup == MIDORI_STARTUP_DELAYED_PAGES)
+midori_session_add_delay (_session);
+
 session = midori_browser_get_proxy_array (browser);
 i = 0;
 while ((item = katze_array_get_nth_item (_session, i++)))
@@ -1299,6 +1314,8 @@ midori_load_session (gpointer data)
 item = katze_array_get_nth_item (_session, 0);
 if (!strcmp (katze_item_get_uri (item), ))
 midori_browser_activate_action (browser, Location);
+
+g_object_unref (settings);
 g_object_unref (_session);
 
 katze_assign (config_file, build_config_filename (session.xbel));
@@ -1541,6 +1558,7 @@ main (intargc,
 gchar* webapp;
 gchar* config;
 gboolean diagnostic_dialog;
+gboolean back_from_crash;
 gboolean run;
 gchar* snapshot;
 gboolean execute;
@@ -1649,6 +1667,7 @@ main (intargc,
 /* Parse cli options */
 webapp = NULL;
 config = NULL;
+back_from_crash = FALSE;
 diagnostic_dialog = FALSE;
 run = FALSE;
 snapshot = NULL;
@@ -1926,7 +1945,7 @@ main (intargc,
 _session = katze_array_new (KATZE_TYPE_ITEM);
 #if HAVE_LIBXML
 g_object_get (settings, load-on-startup, load_on_startup, NULL);
-if (load_on_startup == MIDORI_STARTUP_LAST_OPEN_PAGES)
+if (load_on_startup = MIDORI_STARTUP_LAST_OPEN_PAGES)
 {
 katze_assign (config_file, build_config_filename (session.xbel));
 error = NULL;
@@ -2026,6 +2045,7 @@ 

[Xfce4-commits] postler:master Implement initial multipart support

2010-06-01 Thread Christian Dywan
Updating branch refs/heads/master
 to b63214b895b269fe3208c3553d21cd2f7cab835e (commit)
   from a5ad154854aa3f419b1ee9791739a70d048e79aa (commit)

commit b63214b895b269fe3208c3553d21cd2f7cab835e
Author: Christian Dywan christ...@twotoasts.de
Date:   Mon May 31 21:49:39 2010 +0200

Implement initial multipart support

 postler/postler-content.vala |   90 +++---
 1 files changed, 75 insertions(+), 15 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index 94b040f..ab83c14 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -187,10 +187,9 @@ public class Postler.Content : WebKit.WebView {
 string mime_type = text/plain;
 string charset = null;
 string[] parts;
-GLib.StringBuilder body;
 
 if (view_source) {
-body = new GLib.StringBuilder ();
+GLib.StringBuilder body = new GLib.StringBuilder ();
 while ((line = stream.read_line (null, null)) != null) {
 parts = line.split (:, 2);
 if (parts != null  parts[0] != null) {
@@ -299,6 +298,7 @@ public class Postler.Content : WebKit.WebView {
 if (reply != )
 reply = linkify_address (reply, arguments);
 
+string boundary = null;
 if (content_type != null) {
 parts = content_type.split_set (; );
 string filename = null;
@@ -307,6 +307,8 @@ public class Postler.Content : WebKit.WebView {
 charset = part.substring (8, part.length - 8);
 else if (part.has_prefix (name=))
 filename = part.substring (5, part.length - 5);
+else if (part.has_prefix (boundary=))
+boundary = part.substring (9, part.length - 9);
 else if (part !=   !part.contains (=))
 mime_type = part.down ();
 }
@@ -327,17 +329,62 @@ public class Postler.Content : WebKit.WebView {
 plain_text = true;
 }
 
+uint multipart = mime_type.has_prefix (multipart/) ? 1 : 0;
+if (multipart  0  boundary != null)
+boundary = boundary.replace (\,  ).strip ();
+else
+multipart = 0;
+if (!(mime_type.has_prefix (text/) || multipart  0)) {
+load_string (h1%s/h1p%s.printf (
+ _(Error),
+ _(This message of type \%s\ can't be 
displayed.).
+ printf (mime_type)),
+ text/html, UTF-8, about:blank);
+last_location = location;
+return false;
+}
+
 /* Message body starts here */
-body = new GLib.StringBuilder ();
+GLib.StringBuilder[] body = {};
+string[] mime_types = {};
+int slice = -1;
+if (multipart == 0) {
+body += new GLib.StringBuilder ();
+mime_types += mime_type;
+slice++;
+}
 while ((line = stream.read_line (null, null)) != null) {
-if (!mime_type.has_prefix (text/)) {
-body.append (h1%s/h1p%s.printf (
-_(Error),
-_(This message of type \%s\ can't be displayed.).
-printf (mime_type)
-));
-mime_type = text/html;
-break;
+if (multipart  0) {
+if (line.has_prefix (--)) {
+if (line == -- + boundary) {
+body += new GLib.StringBuilder ();
+mime_types += text/plain;
+plain_text = true;
+slice++;
+multipart = 2;
+continue;
+}
+}
+else if (multipart == 2) {
+parts = line.split (:, 2);
+if (parts[0] != null) {
+string field = parts[0].down ();
+if (field == content-type) {
+string ctype = parts[1].strip ();
+parts = ctype.split_set (; );
+mime_types[slice] = parts[0].strip ().down ();
+if (mime_types[slice] != text/plain)
+plain_text = false;
+continue;
+}
+else if (field == content-transfer-encoding) {
+/* TODO: Handle encoding

[Xfce4-commits] midori:master Connect tab switcher to child web view key events

2010-06-01 Thread Christian Dywan
Updating branch refs/heads/master
 to 0aa24037bd9a0142989d6b9c7cbb8cdfbf4c559c (commit)
   from a2e22b4341378e35f149d8dfa1971364b6965385 (commit)

commit 0aa24037bd9a0142989d6b9c7cbb8cdfbf4c559c
Author: André Stösel midori-plu...@pyit.de
Date:   Tue Jun 1 22:11:08 2010 +0200

Connect tab switcher to child web view key events

The parent view will do its best to forward the focus to the
child web view, so  the tab switcher should listen to it.

 extensions/tab-switcher.c |   13 ++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/extensions/tab-switcher.c b/extensions/tab-switcher.c
index add09df..ad77872 100644
--- a/extensions/tab-switcher.c
+++ b/extensions/tab-switcher.c
@@ -248,12 +248,19 @@ tab_selector_browser_add_tab_cb (MidoriBrowser  
*browser,
  GtkWidget  *view,
  MidoriExtension*extension)
 {
-g_signal_connect (view, key_press_event,
+GtkWidget* web_view;
+GList* list;
+
+g_return_if_fail (MIDORI_IS_VIEW (view));
+
+web_view = midori_view_get_web_view (MIDORI_VIEW(view));
+
+g_signal_connect (web_view, key_press_event,
 G_CALLBACK (tab_selector_handle_events), browser);
-g_signal_connect (view, key_release_event,
+g_signal_connect (web_view, key_release_event,
 G_CALLBACK (tab_selector_handle_events), browser);
 
-GList *list = g_object_get_data(G_OBJECT(browser), tab_selector_list);
+list = g_object_get_data(G_OBJECT(browser), tab_selector_list);
 list = g_list_append(list, view);
 g_object_set_data(G_OBJECT(browser), tab_selector_list, list);
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Connect view *after* mime-policy-decision-requested

2010-06-01 Thread Christian Dywan
Updating branch refs/heads/master
 to fa4de7b7232330ef8596ea10f37d238f5df7b192 (commit)
   from 0aa24037bd9a0142989d6b9c7cbb8cdfbf4c559c (commit)

commit fa4de7b7232330ef8596ea10f37d238f5df7b192
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Jun 1 22:19:11 2010 +0200

Connect view *after* mime-policy-decision-requested

In order to allow extensions to override the MIME handling,
we need to be late in the order.

 midori/midori-view.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index f99934d..4968b90 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -3391,7 +3391,7 @@ midori_view_construct_web_view (MidoriView* view)
   webkit_web_view_window_object_cleared_cb, view,
   signal::create-web-view,
   webkit_web_view_create_web_view_cb, view,
-  signal::mime-type-policy-decision-requested,
+  signal-after::mime-type-policy-decision-requested,
   webkit_web_view_mime_type_decision_cb, view,
   #if WEBKIT_CHECK_VERSION (1, 1, 3)
   signal::download-requested,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Use mail-inbox, mail-outbox, mail-sent icons

2010-06-01 Thread Christian Dywan
Updating branch refs/heads/master
 to 5d97b83b2c795660f9df996edfc98df8a783f328 (commit)
   from b63214b895b269fe3208c3553d21cd2f7cab835e (commit)

commit 5d97b83b2c795660f9df996edfc98df8a783f328
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Jun 1 22:32:42 2010 +0200

Use mail-inbox, mail-outbox, mail-sent icons

 postler/postler-app.vala |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/postler/postler-app.vala b/postler/postler-app.vala
index b60b787..081de1b 100644
--- a/postler/postler-app.vala
+++ b/postler/postler-app.vala
@@ -26,9 +26,9 @@ namespace Postler {
 const string STOCK_MAIL_MESSAGE_NEW = mail-message-new;
 const string STOCK_MAIL_REPLY_SENDER = mail-reply-sender;
 const string STOCK_MAIL_REPLY_ALL = mail-reply-all;
-const string STOCK_INBOX = stock_inbox;
-const string STOCK_OUTBOX = stock_outbox;
-const string STOCK_SENT_MAIL = stock_sent-mail;
+const string STOCK_INBOX = mail-inbox;
+const string STOCK_OUTBOX = mail-outbox;
+const string STOCK_SENT_MAIL = mail-sent;
 const string STOCK_USER_TRASH = user-trash;
 }
 
@@ -58,9 +58,9 @@ public class Postler.App : Unique.App {
 { STOCK_MAIL_REPLY_ALL, N_(Reply to _All) },
 { STOCK_MAIL_SEND, N_(_Send Message), 0, 0, STOCK_MAIL_SEND_RECEIVE 
},
 { STOCK_MAIL_SEND_RECEIVE, N_(_Receive Mail) },
-{ STOCK_INBOX },
-{ STOCK_OUTBOX },
-{ STOCK_SENT_MAIL },
+{ STOCK_INBOX, null, 0, 0, stock_inbox },
+{ STOCK_OUTBOX, null, 0, 0, stock_outbox },
+{ STOCK_SENT_MAIL, null, 0, 0, stock_sent-mail },
 { STOCK_USER_TRASH }
 };
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Check if a path is selected when clicking messages

2010-06-01 Thread Christian Dywan
Updating branch refs/heads/master
 to 8fc8ef80c6b2b2d4ba7b0612bacb41ef3963e81e (commit)
   from 5d97b83b2c795660f9df996edfc98df8a783f328 (commit)

commit 8fc8ef80c6b2b2d4ba7b0612bacb41ef3963e81e
Author: Christian Dywan christ...@twotoasts.de
Date:   Tue Jun 1 22:37:57 2010 +0200

Check if a path is selected when clicking messages

 postler/postler-messages.vala |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 46a3f87..ecb9467 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -358,9 +358,9 @@ public class Postler.Messages : Gtk.TreeView {
 override bool button_press_event (Gdk.EventButton event) {
 if (event.type == Gdk.EventType.2BUTTON_PRESS) {
 GLib.ListGtk.TreePath paths = get_selection ().get_selected_rows 
(null);
-Gtk.TreeIter sort_iter;
+Gtk.TreeIter sort_iter = Gtk.TreeIter ();
 var path = paths.nth_data (0);
-if (sort.get_iter (out sort_iter, path)) {
+if (path != null  sort.get_iter (out sort_iter, path)) {
 string location;
 sort.get (sort_iter, Columns.LOCATION, out location, -1);
 Postler.App.spawn_module (content, location);
@@ -374,9 +374,9 @@ public class Postler.Messages : Gtk.TreeView {
 return base.button_release_event (event);
 
 GLib.ListGtk.TreePath paths = get_selection ().get_selected_rows 
(null);
-Gtk.TreeIter sort_iter;
+Gtk.TreeIter sort_iter = Gtk.TreeIter ();
 var path = paths.nth_data (0);
-if (sort.get_iter (out sort_iter, path))
+if (path != null  sort.get_iter (out sort_iter, path))
 display_message (sort_iter);
 return base.button_release_event (event);
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Combined speed dial resize and thumbnail sizes

2010-06-01 Thread Christian Dywan
Updating branch refs/heads/master
 to 4422f640cb3a0bbc6cac1ea0e4332374009e1f6c (commit)
   from fa4de7b7232330ef8596ea10f37d238f5df7b192 (commit)

commit 4422f640cb3a0bbc6cac1ea0e4332374009e1f6c
Author: Peter de Ridder pe...@xfce.org
Date:   Tue Jun 1 23:56:04 2010 +0200

Combined speed dial resize and thumbnail sizes

 data/speeddial-head.html |  182 +++---
 midori/midori-browser.c  |2 +-
 midori/midori-view.c |   13 ++-
 3 files changed, 164 insertions(+), 33 deletions(-)

diff --git a/data/speeddial-head.html b/data/speeddial-head.html
index 6d5814f..0f5b51c 100644
--- a/data/speeddial-head.html
+++ b/data/speeddial-head.html
@@ -30,7 +30,7 @@
 }
 
 #content {
-margin-top: 10px;
+margin-top: 40px;
 }
 
 div.shortcut {
@@ -90,6 +90,11 @@
 text-decoration: none;
 }
 
+div.shortcut a img {
+width: 100%;
+height: 100%;
+}
+
 .waiter img {
 margin-top: 38px;
 }
@@ -142,23 +147,54 @@
 }
 
 div.config {
+position: absolute;
+top: 0px;
 padding: 12px;
 text-align: left;
 }
 
 div.config span {
 color: #ccc;
+margin-right: 10px;
+margin-right: 10px;
 }
 
-div.config span:hover {
+div.config span.config_option:hover {
 color: #999;
 cursor: pointer;
 }
+
+div.config span.config_label {
+color: #ccc;
+cursor: default;
+margin-right: 0px;
+}
+
+div.config span.config_option {
+margin-left: 0px;
+margin-right: 0px;
+}
+
+div.osd {
+top: 9px;
+position: fixed;
+width: 100%;
+text-align: right;
+}
+
+div.osd span {
+border: 1px solid #999;
+background-color: #f5f5f5;
+padding: 8px;
+color: #999;
+-webkit-border-bottom-left-radius: 10px;
+visibility: hidden;
+}
 /style
 
 script type=text/javascript
 
-sc = JSON.decode ({json_data});
+var sc = JSON.decode ({json_data});
 
 var encodeSafe = function (obj) {
 var str = JSON.encode (obj);
@@ -227,10 +263,9 @@
 
 var renameShortcut = function (id)
 {
-var name = prompt ({enter_shortcut_name}, );
-if (!name) return;
-
 var num = id.substr (1) - 1;
+var name = prompt ({enter_shortcut_name}, sc.shortcuts[num].title);
+if (!name) return;
 
 $(id).getLast ().set ('html', name);
 sc.shortcuts[num].title = name;
@@ -266,10 +301,18 @@
 var buildSpeeddial = function ()
 {
 var width = 3;
+var thumb = 160;
+
+if (sc.thumb)
+{
+thumb = sc.thumb;
+setThumbSize(thumb);
+}
+
 if (sc.width)
 {
 width = sc.width;
-$('wrap').style.width = (width * 220) + 'px';
+$('wrap').style.width = (width * (thumb + 60)) + 'px';
 }
 
 sc.shortcuts.each (function (item, index, sc)
@@ -319,23 +362,39 @@
 });
 }
 
-var setWidth = function ()
+var setSize = function ()
 {
-var width = prompt ({enter_dial_width}, );
-if (!width || isNaN (width)) return;
+var rows = Math.ceil (sc.shortcuts.length / sc.width);
+var size = prompt ({enter_dial_size}, sc.width + 'x' + rows);
 
-sc.width = width;
+if (!size) return;
 
-$('content').empty ();
-buildSpeeddial ();
+var pos = size.indexOf('x');
 
-console.log (speed_dial-save ' + encodeSafe (sc) + ');
-}
+if (pos = 0)
+{
+alert ({invalid_dial_size});
+return;
+}
 
-var setCount = function ()
-{
-var count = prompt ({enter_shortcut_count}, );
-if (!count || isNaN (count)) return;
+var cols = size.substr(0, pos);
+rows = size.substr(pos+1);
+
+if (isNaN (cols) || isNaN (rows) || cols == 0 || rows == 0)
+{
+alert ({invalid_dial_size});
+return;
+}
+
+if (size.indexOf('.') = 0)
+{
+alert ({invalid_dial_size});
+return;
+}
+
+sc.width = cols;
+
+var count = cols * rows;
 
 sc.shortcuts = sc.shortcuts.slice (0, count);
 
@@ -352,30 +411,99 @@
 console.log (speed_dial-save ' + encodeSafe (sc) + ');
 }
 
+var setThumbSize = function (size)
+{
+var i;
+var rules = document.styleSheets[0].cssRules;
+
+var width = 3;
+if (sc.width)
+width = sc.width;
+
+var height = Math.round (size / 1.5);
+
+$('wrap').style.width = (width * (size + 60)) + 'px';
+
+for (i = 0; i  rules.length; i++)
+{
+switch (rules[i].selectorText)
+{
+case 'div.shortcut a':
+rules[i].style.width = size + 'px';
+   

[Xfce4-commits] postler:master Explicitly hide the menubars in bureau and composer

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 7ae4f0f977ab40ecbf326f63fd4cbdf3c5f30428 (commit)
   from 8fc8ef80c6b2b2d4ba7b0612bacb41ef3963e81e (commit)

commit 7ae4f0f977ab40ecbf326f63fd4cbdf3c5f30428
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 18:14:15 2010 +0200

Explicitly hide the menubars in bureau and composer

 postler/postler-bureau.vala   |1 +
 postler/postler-composer.vala |1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index 0dd4ed0..31cfcea 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -199,6 +199,7 @@ public class Postler.Bureau : Gtk.Window {
 var menubar = ui.get_widget (/menubar);
 /* The menubar is nice for globalmenu, but otherwise redundant */
 menubar.set_no_show_all (true);
+menubar.hide ();
 shelf.pack_start (menubar, false, false, 0);
 toolbar = ui.get_widget (/toolbar) as Gtk.Toolbar;
 actions.get_action (MessageNew).is_important = true;
diff --git a/postler/postler-composer.vala b/postler/postler-composer.vala
index cd5dfd5..c717ae8 100644
--- a/postler/postler-composer.vala
+++ b/postler/postler-composer.vala
@@ -124,6 +124,7 @@ public class Postler.Composer : Gtk.Window {
 var menubar = ui.get_widget (/menubar);
 /* The menubar is nice for globalmenu, but otherwise redundant */
 menubar.set_no_show_all (true);
+menubar.hide ();
 shelf.pack_start (menubar, false, false, 0);
 toolbar = ui.get_widget (/toolbar) as Gtk.Toolbar;
 actions.get_action (MessageSend).is_important = true;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Move date from headers to floating right-aligned

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to a9638f906f2c6fb7effade31d9ca0974314b211c (commit)
   from 5f4ab25b75212c5c28761f24ef491e9444c6eadd (commit)

commit a9638f906f2c6fb7effade31d9ca0974314b211c
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 18:19:08 2010 +0200

Move date from headers to floating right-aligned

 postler/postler-content.vala |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index ab83c14..3856fbf 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -451,22 +451,22 @@ public class Postler.Content : WebKit.WebView {
 
 load_string (
 style text=text/css%s/style
+div style=float: right;%s/div
 b%s/b %sbr
 %s
 %s
 b%s/b %s br
-b%s/b %s br
 %s
 %s
 %s
 p style=%s%s/p
 .
 printf (style_sheet,
+date,
 _(From:), sender,
 format_header (_(To:), recipient),
 format_header (_(Copy:), carbon_copy),
 _(Subject:), subject,
-_(Date:), date,
 /* TODO: Sender:? */
 format_header (_(Reply To:), reply),
 format_header (_(Organization:), organization),
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Make the account name act as the inbox folder

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 5f4ab25b75212c5c28761f24ef491e9444c6eadd (commit)
   from 7ae4f0f977ab40ecbf326f63fd4cbdf3c5f30428 (commit)

commit 5f4ab25b75212c5c28761f24ef491e9444c6eadd
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 18:18:03 2010 +0200

Make the account name act as the inbox folder

 postler/postler-folders.vala |   11 +--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala
index 35d480b..8007987 100644
--- a/postler/postler-folders.vala
+++ b/postler/postler-folders.vala
@@ -52,7 +52,6 @@ public class Postler.Folders : Gtk.TreeView {
 }
 
 const MailFolder[] localized_folders = {
-{ INBOX, STOCK_INBOX, N_(Inbox) },
 { Sent, STOCK_SENT_MAIL, N_(Sent) },
 { Drafts, null, N_(Drafts) },
 { Queue, STOCK_OUTBOX, N_(Outbox) },
@@ -83,9 +82,17 @@ public class Postler.Folders : Gtk.TreeView {
 while ((info = folder_enumerator.next_file (null)) != null) {
 Gtk.TreeIter folder_iter;
 string name = info.get_name ();
+string location = toplevel + / + account_name;
+if (name == INBOX) {
+store.set (account_iter,
+Columns.ICON, STOCK_INBOX,
+Columns.LOCATION, location + / + name,
+-1);
+continue;
+}
+
 string localized_name = null;
 string stock_id = Gtk.STOCK_DIRECTORY;
-string location = toplevel + / + account_name;
 foreach (var localized_folder in localized_folders) {
 if (localized_folder.name == name) {
 localized_name = localized_folder.localized;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Implement 'rich' 2-line message overview

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 006f4d384e5109340057545cde0af589fbc41b02 (commit)
   from a9638f906f2c6fb7effade31d9ca0974314b211c (commit)

commit 006f4d384e5109340057545cde0af589fbc41b02
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 18:21:41 2010 +0200

Implement 'rich' 2-line message overview

 postler/postler-messages.vala |   36 +---
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index ecb9467..6195d6f 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -17,6 +17,7 @@ public class Postler.Messages : Gtk.TreeView {
 
 public Postler.Content content { get; set; }
 public bool hide_read { get; set; }
+public bool rich_rows { get; set; default = true; }
 public string? selected_location { get; set; }
 
 string last_location;
@@ -27,7 +28,6 @@ public class Postler.Messages : Gtk.TreeView {
 STATUS,
 ATTACHMENT,
 SUBJECT,
-WEIGHT,
 FROM,
 DATE,
 SIZE,
@@ -48,8 +48,8 @@ public class Postler.Messages : Gtk.TreeView {
 }
 
 public Messages () {
-store = new Gtk.TreeStore (10, typeof (string), typeof (string),
-typeof (string), typeof (string), typeof (int), typeof (string),
+store = new Gtk.TreeStore (9, typeof (string), typeof (string),
+typeof (string), typeof (string), typeof (string),
 typeof (string), typeof (string), typeof (string), typeof (ulong));
 sort = new Gtk.TreeModelSort.with_model (store);
 set_model (sort);
@@ -63,8 +63,7 @@ public class Postler.Messages : Gtk.TreeView {
 insert_column_with_attributes (-1, _(Attachment),
 new Gtk.CellRendererPixbuf (), stock-id, Columns.ATTACHMENT, 
null);
 insert_column_with_attributes (-1, _(Subject),
-new Gtk.CellRendererText (), text, Columns.SUBJECT,
-weight, Columns.WEIGHT, null);
+new Gtk.CellRendererText (), markup, Columns.SUBJECT, null);
 insert_column_with_attributes (-1, _(From),
 new Gtk.CellRendererText (), text, Columns.FROM, null);
 insert_column_with_attributes (-1, _(Date),
@@ -282,14 +281,37 @@ public class Postler.Messages : Gtk.TreeView {
 
 string charset = null;
 string real_subject = parse_encoded (subject, out charset);
+real_subject = GLib.Markup.escape_text (real_subject);
 if (last_filter !=   !(last_filter in 
real_subject.down ()))
 continue;
+
+if (rich_rows) {
+store.insert_with_values (out account_iter, null, -1,
+Columns.FLAGGED, flagged,
+Columns.STATUS, status,
+Columns.ATTACHMENT, null,
+Columns.SUBJECT,
+(span weight=\%d\%s/span 
small%s/small\n +
+ smalltt%s  /tt/small %s).printf 
(
+font_weight,
+real_subject,
+format_size_for_display (info.get_size ()),
+date,
+parse_address (from)[0]),
+Columns.FROM, null,
+Columns.DATE, null,
+Columns.TIMESTAMP, timestamp,
+Columns.LOCATION, contents.get_path (),
+-1);
+continue;
+}
+
 store.insert_with_values (out account_iter, null, -1,
 Columns.FLAGGED, flagged,
 Columns.STATUS, status,
 Columns.ATTACHMENT, null,
-Columns.SUBJECT, real_subject,
-Columns.WEIGHT, font_weight,
+Columns.SUBJECT, span 
weight=\%d\%s/span.printf (
+font_weight, real_subject),
 Columns.FROM, parse_address (from)[0],
 Columns.DATE, date,
 Columns.TIMESTAMP, timestamp,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Display date as Today or Yesterday if appropriate

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 904c55789889341f69f557f0373c605fbe768815 (commit)
   from 28271c5828a04a3c546726d8df7f1739461e (commit)

commit 904c55789889341f69f557f0373c605fbe768815
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 20:56:09 2010 +0200

Display date as Today or Yesterday if appropriate

 postler/postler-content.vala  |4 +++-
 postler/postler-messages.vala |   14 --
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index 3856fbf..c70dac2 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -223,6 +223,8 @@ public class Postler.Content : WebKit.WebView {
 string content_encoding = ;
 string from = _(Unknown);
 string date = _((No date));
+var now = GLib.Date ();
+now.set_time_val (GLib.TimeVal ());
 string recipient = ;
 string carbon_copy = ;
 /* TODO: blind_copy, some clients keep it */
@@ -259,7 +261,7 @@ public class Postler.Content : WebKit.WebView {
 }
 else if (field == date) {
 time_t timestamp;
-date = Postler.Messages.format_date (parts[1], out 
timestamp);
+date = Postler.Messages.format_date (parts[1], now, out 
timestamp);
 }
 else if (field == to)
 recipient = parts[1].strip ();
diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 6195d6f..f4e1a9c 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -181,9 +181,17 @@ public class Postler.Messages : Gtk.TreeView {
 content.clear ();
 }
 
-internal static string format_date (string date, out time_t timestamp) {
+internal static string format_date (string date, GLib.Date now,
+out time_t timestamp) {
 var parsed = new Soup.Date.from_string (date);
 timestamp = parsed != null ? (time_t)parsed.to_time_t () : 0;
+var the_time = GLib.Date ();
+the_time.set_time_t (timestamp);
+int days = now.days_between (the_time);
+if (days == 0)
+return _(Today) + GLib.Time.local (timestamp).format ( %X);
+if (days == 1)
+return _(Yesterday) + GLib.Time.local (timestamp).format (%X);
 return GLib.Time.local (timestamp).format (%x %X);
 }
 
@@ -199,6 +207,8 @@ public class Postler.Messages : Gtk.TreeView {
 return true;
 if (filter != )
 last_filter = filter;
+var now = GLib.Date ();
+now.set_time_val (GLib.TimeVal ());
 try {
 string[] folders = { cur, new };
 foreach (var folder in folders) {
@@ -272,7 +282,7 @@ public class Postler.Messages : Gtk.TreeView {
 from = parse_encoded (parts[1], out 
from_charset);
 }
 else if (field == date)
-date = format_date (parts[1], out timestamp);
+date = format_date (parts[1], now, out 
timestamp);
 }
 } catch (GLib.Error contents_error) {
 GLib.critical (_(Failed to read message \%s\: %s),
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Grab focus of the message view when selecting folder

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 32171bfe45ad8da30fb735a7b0232b0341b81079 (commit)
   from 0b0a8b714d367a837b85de1fe5a196cc38f3e1e7 (commit)

commit 32171bfe45ad8da30fb735a7b0232b0341b81079
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 23:18:28 2010 +0200

Grab focus of the message view when selecting folder

 postler/postler-folders.vala |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala
index 8007987..85ad8e4 100644
--- a/postler/postler-folders.vala
+++ b/postler/postler-folders.vala
@@ -124,8 +124,10 @@ public class Postler.Folders : Gtk.TreeView {
 requires (messages != null) {
 string location;
 store.get (iter, Columns.LOCATION, out location, -1);
-if (location != null)
+if (location != null) {
 messages.populate (location);
+messages.grab_focus ();
+}
 else
 messages.clear ();
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Select first message and restore selection after deletion

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 002506c5d92da08454e443e23faf6b18250d6852 (commit)
   from 32171bfe45ad8da30fb735a7b0232b0341b81079 (commit)

commit 002506c5d92da08454e443e23faf6b18250d6852
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 23:34:17 2010 +0200

Select first message and restore selection after deletion

 postler/postler-messages.vala |   10 ++
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index f4e1a9c..5c29731 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -333,12 +333,11 @@ public class Postler.Messages : Gtk.TreeView {
 sort.set_sort_column_id (Columns.TIMESTAMP, 
Gtk.SortType.ASCENDING);
 
 /* Scroll to the bottom */
-/* FIXME: This is broken atm */
 int last_child = sort.iter_n_children (null) - 1;
 if (last_child  -1) {
 Gtk.TreeIter sort_iter;
 if (sort.iter_nth_child (out sort_iter, null, last_child)) {
-scroll_to_cell (sort.get_path (sort_iter), null, false, 0, 
0);
+set_cursor (sort.get_path (sort_iter), null, false);
 }
 }
 last_location = location;
@@ -376,9 +375,12 @@ public class Postler.Messages : Gtk.TreeView {
 file.delete (null);
 Gtk.TreeIter child_iter;
 sort.convert_iter_to_child_iter (out child_iter, 
sort_iter);
-store.remove (child_iter);
+string next_path = sort.get_string_from_iter (sort_iter);
+if (store.remove (child_iter)) {
+if (sort.get_iter_from_string (out sort_iter, 
next_path))
+set_cursor (sort.get_path (sort_iter), null, 
false);
+}
 content.clear ();
-/* Restore selection */
 } catch (GLib.Error error) {
 GLib.critical (_(Failed to delete message \%s\: %s),
 location, error.message);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Use Ctrl+d to delete, or Delete when message view focussed

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 7ae834ce26085abda2d16c95c208db175072896f (commit)
   from fea1485bc0f14dbf5521cc41a0f501abc8b633a4 (commit)

commit 7ae834ce26085abda2d16c95c208db175072896f
Author: Christian Dywan christ...@twotoasts.de
Date:   Thu Jun 3 00:08:56 2010 +0200

Use Ctrl+d to delete, or Delete when message view focussed

 postler/postler-bureau.vala   |2 +-
 postler/postler-messages.vala |9 +
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index 88e7541..c7dbd5a 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -147,7 +147,7 @@ public class Postler.Bureau : Gtk.Window {
   N_(Reply to all recipients), action_message_reply_all },
 { MessageForward, STOCK_MAIL_FORWARD, null, Ctrlf,
   N_(Forward message), action_message_forward },
-{ MessageDelete, Gtk.STOCK_DELETE, null, Delete,
+{ MessageDelete, Gtk.STOCK_DELETE, null, Ctrld,
   N_(Delete message), action_delete },
 { Quit, Gtk.STOCK_QUIT, null, Ctrlq,
   N_(Quit the application), action_quit },
diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 5c29731..abd038e 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -70,6 +70,15 @@ public class Postler.Messages : Gtk.TreeView {
 new Gtk.CellRendererText (), text, Columns.DATE, null);
 insert_column_with_attributes (-1, _(Size),
 new Gtk.CellRendererText (), text, Columns.SIZE, null);
+
+unowned Gtk.BindingSet binding_set = Gtk.BindingSet.by_class 
(get_class ());
+Gtk.BindingEntry.add_signal (binding_set,
+Gdk.keyval_from_name (Delete), 0, delete, 0);
+}
+
+[Signal (action=true)]
+public virtual signal void delete () {
+delete_selected ();
 }
 
 static bool evaluate_hex (GLib.MatchInfo match_info,
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Implement Inbox actions, with hotkeys Alt+n

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to 0b0a8b714d367a837b85de1fe5a196cc38f3e1e7 (commit)
   from 904c55789889341f69f557f0373c605fbe768815 (commit)

commit 0b0a8b714d367a837b85de1fe5a196cc38f3e1e7
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 21:35:22 2010 +0200

Implement Inbox actions, with hotkeys Alt+n

 postler/postler-bureau.vala |   19 +++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index 219b62f..ffcea92 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -194,6 +194,25 @@ public class Postler.Bureau : Gtk.Window {
 GLib.error (_(Failed to create window: %s), error.message);
 }
 
+var folder_actions = new Gtk.ActionGroup (Bureau/Folders);
+for (int i = 1; i  9; i++) {
+string name = Inbox%d.printf (i);
+var action = new Gtk.Action (name, name, null, null);
+action.activate.connect ((action) = {
+int index = (int)action.name[5].digit_value ();
+Gtk.TreeModel model = folders.get_model ();
+Gtk.TreeIter iter;
+if (model.iter_nth_child (out iter, null, index - 1)) {
+folders.set_cursor (model.get_path (iter), null, false);
+folders.grab_focus ();
+}
+});
+folder_actions.add_action_with_accel (action, Alt%d.printf 
(i));
+action.set_accel_group (ui.get_accel_group ());
+action.connect_accelerator ();
+}
+ui.insert_action_group (folder_actions, 0);
+
 shelf = new Gtk.VBox (false, 0);
 add (shelf);
 var menubar = ui.get_widget (/menubar);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Grab focus of the message view when searching

2010-06-02 Thread Christian Dywan
Updating branch refs/heads/master
 to fea1485bc0f14dbf5521cc41a0f501abc8b633a4 (commit)
   from 002506c5d92da08454e443e23faf6b18250d6852 (commit)

commit fea1485bc0f14dbf5521cc41a0f501abc8b633a4
Author: Christian Dywan christ...@twotoasts.de
Date:   Wed Jun 2 23:54:29 2010 +0200

Grab focus of the message view when searching

 postler/postler-bureau.vala |5 -
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index ffcea92..88e7541 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -227,7 +227,10 @@ public class Postler.Bureau : Gtk.Window {
 search = new Gtk.Entry ();
 /* FIXME: icons are available since GTK+ 2.16 */
 search.set_icon_from_stock (Gtk.EntryIconPosition.PRIMARY, 
Gtk.STOCK_FIND);
-search.activate.connect ((search) = {messages.search (search.text); } 
);
+search.activate.connect ((search) = {
+messages.search (search.text);
+messages.grab_focus ();
+} );
 search.set_icon_from_stock (Gtk.EntryIconPosition.SECONDARY, 
Gtk.STOCK_CLEAR);
 search.icon_release.connect ((position, event) = {
 search.text = ;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] midori:master Replace {enter_dial_size}, not {enter_dial_width}

2010-06-03 Thread Christian Dywan
Updating branch refs/heads/master
 to 57b05a458e9de909bbe19b093d0ceb5490b34b7a (commit)
   from 7a1c84d96e9dfcf99aa2925f0d69d7c28ae2f0f1 (commit)

commit 57b05a458e9de909bbe19b093d0ceb5490b34b7a
Author: Christian Dywan christ...@twotoasts.de
Date:   Thu Jun 3 22:20:15 2010 +0200

Replace {enter_dial_size}, not {enter_dial_width}

 midori/midori-view.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index e7c36df..b1e0ba6 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -3516,7 +3516,7 @@ midori_view_set_uri (MidoriView*  view,
 {enter_shortcut_name}, _(Enter shortcut title),
 {are_you_sure}, _(Are you sure you want to delete this 
shortcut?),
 {set_dial_size}, _(Set number of columns and rows),
-{enter_dial_width}, _(Enter number of columns and rows:),
+{enter_dial_size}, _(Enter number of columns and rows:),
 {invalid_dial_size}, _(Invalid input for the size of the 
speed dial),
 {set_thumb_size}, _(Thumb size:),
 {set_thumb_small}, _(Small),
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Only enable 'Send Message' if To field is not empty

2010-06-03 Thread Christian Dywan
Updating branch refs/heads/master
 to 0c6c6e13c51c4d085934ee0e61e0fc35666498fa (commit)
   from 7ae834ce26085abda2d16c95c208db175072896f (commit)

commit 0c6c6e13c51c4d085934ee0e61e0fc35666498fa
Author: Christian Dywan christ...@twotoasts.de
Date:   Thu Jun 3 17:20:27 2010 +0200

Only enable 'Send Message' if To field is not empty

 postler/postler-composer.vala |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/postler/postler-composer.vala b/postler/postler-composer.vala
index c717ae8..d225c0e 100644
--- a/postler/postler-composer.vala
+++ b/postler/postler-composer.vala
@@ -163,6 +163,12 @@ public class Postler.Composer : Gtk.Window {
 shelf.pack_start (scrolled, true, true, 0);
 shelf.show_all ();
 
+actions.get_action (MessageSend).sensitive = false;
+entry_to.notify[text].connect ((object, pspec) = {
+bool state = entry_to.text != ;
+actions.get_action (MessageSend).sensitive = state;
+});
+
 entry_from.grab_focus ();
 
 content.editable = true;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Recognize key files as search folder descriptions

2010-06-03 Thread Christian Dywan
Updating branch refs/heads/master
 to b773e4b372dabfd3000494362ff3164bf34fd79e (commit)
   from 371ddde676b07313106b0396aa459a0c0734aacd (commit)

commit b773e4b372dabfd3000494362ff3164bf34fd79e
Author: Christian Dywan christ...@twotoasts.de
Date:   Thu Jun 3 17:40:59 2010 +0200

Recognize key files as search folder descriptions

 postler/postler-app.vala  |2 ++
 postler/postler-folders.vala  |   16 +---
 postler/postler-messages.vala |   34 ++
 3 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/postler/postler-app.vala b/postler/postler-app.vala
index 081de1b..2373c1d 100644
--- a/postler/postler-app.vala
+++ b/postler/postler-app.vala
@@ -18,6 +18,7 @@ namespace Postler {
 const string STOCK_FACE_GRIN = face-grin;
 const string STOCK_FACE_SAD = face-sad;
 const string STOCK_FACE_WINK = face-wink;
+const string STOCK_FOLDER_SAVED_SEARCH = folder-saved-search;
 const string STOCK_INTERNET_MAIL = internet-mail;
 const string STOCK_MAIL_ATTACHMENT = mail-attachment;
 const string STOCK_MAIL_FORWARD = mail-forward;
@@ -51,6 +52,7 @@ public class Postler.App : Unique.App {
 { STOCK_FACE_GRIN },
 { STOCK_FACE_SAD },
 { STOCK_FACE_WINK },
+{ STOCK_FOLDER_SAVED_SEARCH },
 { STOCK_MAIL_ATTACHMENT, null, 0, 0, stock_attach },
 { STOCK_MAIL_FORWARD, N_(_Forward) },
 { STOCK_MAIL_MESSAGE_NEW, N_(New _Message) },
diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala
index ba75d31..4d1959b 100644
--- a/postler/postler-folders.vala
+++ b/postler/postler-folders.vala
@@ -67,22 +67,32 @@ public class Postler.Folders : Gtk.TreeView {
 /* FIXME: Scan for toplevel, then sublevel */
 var account_dir = File.new_for_path (toplevel);
 var account_enumerator = account_dir.enumerate_children (
-FILE_ATTRIBUTE_STANDARD_NAME, 0, null);
+FILE_ATTRIBUTE_STANDARD_NAME + , +
+FILE_ATTRIBUTE_STANDARD_TYPE, 0, null);
 GLib.FileInfo info;
 while ((info = account_enumerator.next_file (null)) != null) {
+string account_name = info.get_name ();
+string location = toplevel + / + account_name;
+
+if (info.get_file_type () == FileType.REGULAR) {
+store.insert_with_values (null, null, -1,
+Columns.ICON, STOCK_FOLDER_SAVED_SEARCH,
+Columns.NAME, info.get_name (),
+Columns.LOCATION, location, -1);
+continue;
+}
+
 Gtk.TreeIter account_iter;
 store.insert_with_values (out account_iter, null, -1,
 Columns.ICON, Gtk.STOCK_DIRECTORY,
 Columns.NAME, info.get_name (),
 Columns.LOCATION, null, -1);
-string account_name = info.get_name ();
 var folder_dir = account_dir.resolve_relative_path 
(account_name);
 var folder_enumerator = folder_dir.enumerate_children (
 FILE_ATTRIBUTE_STANDARD_NAME, 0, null);
 while ((info = folder_enumerator.next_file (null)) != null) {
 Gtk.TreeIter folder_iter;
 string name = info.get_name ();
-string location = toplevel + / + account_name;
 if (name == INBOX) {
 var msg_dir = folder_dir.resolve_relative_path (
 location + / + name + /new);
diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index abd038e..622a4ff 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -219,9 +219,29 @@ public class Postler.Messages : Gtk.TreeView {
 var now = GLib.Date ();
 now.set_time_val (GLib.TimeVal ());
 try {
-string[] folders = { cur, new };
+string filter_header = subject;
+string real_filter = ;
+string[] folders = {};
+
+try {
+var keyfile = new KeyFile ();
+keyfile.load_from_file (location, 0);
+filter_header = keyfile.get_string (search, header);
+real_filter = keyfile.get_string (search, filter).down ();
+string search_account = keyfile.get_string (search, 
account);
+string toplevel = Environment.get_variable (MAILDIR);
+if (toplevel == null || toplevel == )
+toplevel = Environment.get_home_dir () + /Mail;
+folders += toplevel + / + search_account + /INBOX/cur;
+folders += toplevel + / + search_account + /INBOX/new;
+} catch (GLib.KeyFileError keyfile_error) {
+real_filter = last_filter;
+folders += location + /cur

[Xfce4-commits] postler:master Move filename flag parsing into a function

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to 8c239412bc2bc5fc517dd0a5aed44fefed9e3d62 (commit)
   from b773e4b372dabfd3000494362ff3164bf34fd79e (commit)

commit 8c239412bc2bc5fc517dd0a5aed44fefed9e3d62
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 15:22:14 2010 +0200

Move filename flag parsing into a function

 postler/postler-messages.vala |   64 ++--
 1 files changed, 35 insertions(+), 29 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 622a4ff..8941fd7 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -204,6 +204,40 @@ public class Postler.Messages : Gtk.TreeView {
 return GLib.Time.local (timestamp).format (%x %X);
 }
 
+static string parse_flags (string name, out string flagged, out int 
weight) {
+/* format unique:2,DFPRST, ordered alphabetically */
+int flag = 0;
+while (name[flag] != ':'  name[flag] != '\0')
+flag++;
+string status = Gtk.STOCK_NEW;
+while (name[flag++] != '\0') {
+switch (name[flag]) {
+case 'D':
+status = STOCK_EMBLEM_DRAFT;
+break;
+case 'F':
+flagged = STOCK_EMBLEM_IMPORTANT;
+break;
+case 'P':
+status = STOCK_MAIL_FORWARD;
+break;
+case 'R':
+status = STOCK_MAIL_REPLY_SENDER;
+break;
+case 'S':
+if (status == Gtk.STOCK_NEW) {
+status = null;
+weight = Pango.Weight.NORMAL;
+}
+break;
+case 'T':
+flagged = Gtk.STOCK_DELETE;
+break;
+}
+}
+return status;
+}
+
 public void search (string filter) {
 last_filter = filter;
 populate (last_location, filter.down ());
@@ -256,35 +290,7 @@ public class Postler.Messages : Gtk.TreeView {
 int font_weight = Pango.Weight.BOLD;
 string flagged = null;
 if (folder == cur) {
-/* format unique:2,DFPRST, ordered alphabetically */
-int flag = 0;
-while (name[flag] != ':'  name[flag] != '\0')
-flag++;
-while (name[flag++] != '\0') {
-switch (name[flag]) {
-case 'D':
-status = STOCK_EMBLEM_DRAFT;
-break;
-case 'F':
-flagged = STOCK_EMBLEM_IMPORTANT;
-break;
-case 'P':
-status = STOCK_MAIL_FORWARD;
-break;
-case 'R':
-status = STOCK_MAIL_REPLY_SENDER;
-break;
-case 'S':
-if (status == Gtk.STOCK_NEW) {
-status = null;
-font_weight = Pango.Weight.NORMAL;
-}
-break;
-case 'T':
-flagged = Gtk.STOCK_DELETE;
-break;
-}
-}
+status = parse_flags (name, out flagged, out 
font_weight);
 if (hide_read  status != Gtk.STOCK_NEW  flagged == 
null)
 continue;
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Use the folder basename, either 'cur' or 'new'

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to a975fad4e2ccf56e670c4a93c1b031a59f183ec3 (commit)
   from 8c239412bc2bc5fc517dd0a5aed44fefed9e3d62 (commit)

commit a975fad4e2ccf56e670c4a93c1b031a59f183ec3
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 15:30:44 2010 +0200

Use the folder basename, either 'cur' or 'new'

 postler/postler-messages.vala |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 8941fd7..7a685c5 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -280,6 +280,8 @@ public class Postler.Messages : Gtk.TreeView {
 FILE_ATTRIBUTE_STANDARD_NAME + , +
 FILE_ATTRIBUTE_STANDARD_SIZE, 0, null);
 GLib.FileInfo info;
+
+folder = folder_dir.get_basename ();
 while ((info = folder_enumerator.next_file (null)) != null) {
 Gtk.TreeIter account_iter;
 string name = info.get_name ();
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Update number of unread messages on file changes

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to 50922e9a1df6942272796427efb32e3ea57f655a (commit)
   from a975fad4e2ccf56e670c4a93c1b031a59f183ec3 (commit)

commit 50922e9a1df6942272796427efb32e3ea57f655a
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 15:53:24 2010 +0200

Update number of unread messages on file changes

 postler/postler-folders.vala |   30 +-
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/postler/postler-folders.vala b/postler/postler-folders.vala
index 4d1959b..fb337fa 100644
--- a/postler/postler-folders.vala
+++ b/postler/postler-folders.vala
@@ -20,6 +20,8 @@ struct Postler.MailFolder {
 public class Postler.Folders : Gtk.TreeView {
 Gtk.TreeStore store;
 string last_location;
+FileMonitor[] unread_monitors = {};
+uint unread_monitors_count = 0;
 
 public Postler.Messages messages { get; set; }
 public string? selected_location {
@@ -58,7 +60,22 @@ public class Postler.Folders : Gtk.TreeView {
 { Trash, STOCK_USER_TRASH, N_(Trash) }
 };
 
+void unread_monitor_changed (File msg_dir, string path, string account) {
+var msg_enumerator = msg_dir.enumerate_children (, 0, null);
+int unread = 0;
+FileInfo info;
+while ((info = msg_enumerator.next_file (null)) != null)
+unread++;
+Gtk.TreeIter iter;
+if (store.get_iter_from_string (out iter, path))
+store.set (iter,
+Columns.NAME, %s (%d).printf (account, unread),
+-1);
+}
+
 bool populate () {
+unread_monitors = {};
+unread_monitors_count = 0;
 string toplevel = Environment.get_variable (MAILDIR);
 if (toplevel == null || toplevel == )
 toplevel = Environment.get_home_dir () + /Mail;
@@ -96,14 +113,17 @@ public class Postler.Folders : Gtk.TreeView {
 if (name == INBOX) {
 var msg_dir = folder_dir.resolve_relative_path (
 location + / + name + /new);
-var msg_enumerator = msg_dir.enumerate_children (, 
0, null);
-int unread = 0;
-while ((info = msg_enumerator.next_file (null)) != 
null)
-unread++;
+unread_monitors += msg_dir.monitor_directory (0, null);
+unread_monitors_count++;
+string path = store.get_string_from_iter 
(account_iter);
+unread_monitors[unread_monitors_count - 
1].changed.connect (
+(monitor, file, other, event) = {
+unread_monitor_changed (msg_dir, path, 
account_name);
+});
+unread_monitor_changed (msg_dir, path, account_name);
 
 store.set (account_iter,
 Columns.ICON, STOCK_INBOX,
-Columns.NAME, %s (%d).printf (account_name, 
unread),
 Columns.LOCATION, location + / + name,
 -1);
 continue;
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Show To instead of From in Sent, Outbox and Drafts

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to 3f39b90e612ed3c2ef9c3298dc8b4aeea899a5e9 (commit)
   from 50922e9a1df6942272796427efb32e3ea57f655a (commit)

commit 3f39b90e612ed3c2ef9c3298dc8b4aeea899a5e9
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 21:56:20 2010 +0200

Show To instead of From in Sent, Outbox and Drafts

 postler/postler-messages.vala |   12 ++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 7a685c5..3f97c50 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -252,6 +252,14 @@ public class Postler.Messages : Gtk.TreeView {
 last_filter = filter;
 var now = GLib.Date ();
 now.set_time_val (GLib.TimeVal ());
+
+string basename = Path.get_basename (location);
+string to_or_from;
+if (basename == Sent || basename == Queue || basename == Drafts)
+to_or_from = to;
+else
+to_or_from = from;
+
 try {
 string filter_header = subject;
 string real_filter = ;
@@ -298,7 +306,7 @@ public class Postler.Messages : Gtk.TreeView {
 }
 
 string subject = _((No subject));
-string from = _((Uknown));
+string from = _((Unknown));
 string date = _((No date));
 time_t timestamp = 0;
 var contents = folder_dir.resolve_relative_path (name);
@@ -320,7 +328,7 @@ public class Postler.Messages : Gtk.TreeView {
 }
 if (field == subject)
 subject = parts[1].strip ();
-else if (field == from) {
+else if (field == to_or_from) {
 string from_charset = null;
 from = parse_encoded (parts[1], out 
from_charset);
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Boxes in PostlerScrolled implicitly use a viewport

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to d2aa4ba996f1cfe962ce642ba7f8d177a90b13eb (commit)
   from 3f39b90e612ed3c2ef9c3298dc8b4aeea899a5e9 (commit)

commit d2aa4ba996f1cfe962ce642ba7f8d177a90b13eb
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 22:19:27 2010 +0200

Boxes in PostlerScrolled implicitly use a viewport

 postler/postler-scrolled.vala |8 ++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/postler/postler-scrolled.vala b/postler/postler-scrolled.vala
index fa3fa7c..6e7884b 100644
--- a/postler/postler-scrolled.vala
+++ b/postler/postler-scrolled.vala
@@ -12,8 +12,12 @@
 public class Postler.ScrolledWindow : Gtk.ScrolledWindow {
 public ScrolledWindow (Gtk.Widget? child) {
 set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);
-if (child != null)
-add (child);
+if (child != null) {
+if (child is Gtk.Box)
+add_with_viewport (child);
+else
+add (child);
+}
 }
 }
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Implement a message part pane beside the content

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to b295c4e6dfd9229c63ddd234b508e6141c93efe6 (commit)
   from c266328fcee3b82380f82d7a8eebd56438589625 (commit)

commit b295c4e6dfd9229c63ddd234b508e6141c93efe6
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 22:56:50 2010 +0200

Implement a message part pane beside the content

 postler/postler-bureau.vala |   50 ++-
 1 files changed, 49 insertions(+), 1 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index c7dbd5a..e27c334 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -21,6 +21,7 @@ public class Postler.Bureau : Gtk.Window {
 Postler.Folders folders;
 Postler.Messages messages;
 Postler.Content content;
+Gtk.VBox message_parts;
 
 const string ui_markup = 
 ui
@@ -169,6 +170,24 @@ public class Postler.Bureau : Gtk.Window {
   false }
 };
 
+static string icon_name_for_mime_type (string mime_type, Gtk.Widget 
widget) {
+var icon_theme = Gtk.IconTheme.get_for_screen (widget.get_screen ());
+var parts = mime_type.split (/, 2);
+string icon_name = parts[0] + - + parts[1];
+if (icon_theme.has_icon (icon_name))
+return icon_name;
+icon_name = gnome-mime- + parts[0] + - + parts[1];
+if (icon_theme.has_icon (icon_name))
+return icon_name;
+icon_name = parts[0] + -x-generic;
+if (icon_theme.has_icon (icon_name))
+return icon_name;
+icon_name = gnome-mime- + parts[0] + -x-generic;
+if (icon_theme.has_icon (icon_name))
+return icon_name;
+return application-x-executable;
+}
+
 public Bureau () {
 GLib.Object (icon_name: STOCK_INTERNET_MAIL,
  title: GLib.Environment.get_application_name ());
@@ -277,9 +296,38 @@ public class Postler.Bureau : Gtk.Window {
 bool state = content.last_location != null;
 actions.get_action (ViewSource).sensitive = state;
 });
+var content_box = new Gtk.HBox (false, 0);
+vpaned.pack2 (content_box, false, true);
 scrolled = new Postler.ScrolledWindow (content);
-vpaned.pack2 (scrolled, false, true);
+content_box.pack_start (scrolled, true, true, 0);
+message_parts = new Gtk.VBox (false, 0);
+content.notify[n-parts].connect ((object, pspec) = {
+var scrollable = message_parts.parent.parent;
+if (content.n_parts == 1) {
+scrollable.hide ();
+return;
+}
+
+var children = message_parts.get_children ();
+foreach (var child in children)
+child.destroy ();
+var parts = content.get_parts ();
+foreach (var part in parts) {
+string icon_name = icon_name_for_mime_type (part, this);
+var icon = new Gtk.Image.from_icon_name (icon_name,
+ Gtk.IconSize.BUTTON);
+var button = new Gtk.Button ();
+button.relief = Gtk.ReliefStyle.NONE;
+button.add (icon);
+button.set_tooltip_text (part);
+message_parts.pack_start (button, false, false, 0);
+}
+scrollable.show_all ();
+});
+scrolled = new Postler.ScrolledWindow (message_parts);
+content_box.pack_start (scrolled, false, false, 0);
 shelf.show_all ();
+scrolled.hide ();
 
 folders.set_headers_visible (false);
 messages.set_headers_visible (false);
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Retain and expose message body parts as get_parts

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to c266328fcee3b82380f82d7a8eebd56438589625 (commit)
   from d2aa4ba996f1cfe962ce642ba7f8d177a90b13eb (commit)

commit c266328fcee3b82380f82d7a8eebd56438589625
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 22:35:49 2010 +0200

Retain and expose message body parts as get_parts

 postler/postler-content.vala |   33 ++---
 1 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index c70dac2..df8d780 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -17,6 +17,10 @@ struct Postler.EmoticonMapping {
 }
 
 public class Postler.Content : WebKit.WebView {
+GLib.StringBuilder[] body = {};
+string[] mime_types = {};
+int body_parts = -1;
+
 public string default_charset { get; set; default = ISO-8859-1; }
 
 public string? last_location { get; set; }
@@ -24,6 +28,11 @@ public class Postler.Content : WebKit.WebView {
 public string? reply_to { get; set; }
 public string? reply_to_all { get; set; }
 
+public string[] get_parts () {
+return mime_types;
+}
+public int n_parts { get { return body_parts + 1; } }
+
 public bool view_source { get; set; }
 
 const string style_sheet = 
@@ -177,7 +186,12 @@ public class Postler.Content : WebKit.WebView {
 }
 
 public bool display (string location) {
+last_location = location;
 subject = _((No subject));
+body = {};
+mime_types = {};
+body_parts = -1;
+
 var contents = File.new_for_path (location);
 try {
 var stream = new DataInputStream (contents.read (null));
@@ -347,13 +361,10 @@ public class Postler.Content : WebKit.WebView {
 }
 
 /* Message body starts here */
-GLib.StringBuilder[] body = {};
-string[] mime_types = {};
-int slice = -1;
 if (multipart == 0) {
 body += new GLib.StringBuilder ();
 mime_types += mime_type;
-slice++;
+body_parts++;
 }
 while ((line = stream.read_line (null, null)) != null) {
 if (multipart  0) {
@@ -362,7 +373,7 @@ public class Postler.Content : WebKit.WebView {
 body += new GLib.StringBuilder ();
 mime_types += text/plain;
 plain_text = true;
-slice++;
+body_parts++;
 multipart = 2;
 continue;
 }
@@ -374,8 +385,8 @@ public class Postler.Content : WebKit.WebView {
 if (field == content-type) {
 string ctype = parts[1].strip ();
 parts = ctype.split_set (; );
-mime_types[slice] = parts[0].strip ().down ();
-if (mime_types[slice] != text/plain)
+mime_types[body_parts] = parts[0].strip 
().down ();
+if (mime_types[body_parts] != text/plain)
 plain_text = false;
 continue;
 }
@@ -405,15 +416,15 @@ public class Postler.Content : WebKit.WebView {
 /* Render signature gray, beginning with --=20 */
 /* Looks like quoting */
 if (line.has_prefix ())
-body[slice].append (span style=\color: GrayText\);
+body[body_parts].append (span style=\color: 
GrayText\);
 string appendage;
 if (plain_text  content_encoding != base64)
 appendage = line + \n;
 else
 appendage = line;
-body[slice].append (appendage);
+body[body_parts].append (appendage);
 if (line.has_prefix ())
-body[slice].append (/span);
+body[body_parts].append (/span);
 }
 
 string body_chunk;
@@ -476,7 +487,6 @@ public class Postler.Content : WebKit.WebView {
 plain_text ? font-family: Monospace; : ,
 body_chunk),
 mime_type, UTF-8, about:blank);
-last_location = location;
 } catch (GLib.Error contents_error) {
 load_string (
 title%s/title
@@ -491,6 +501,7 @@ public class Postler.Content : WebKit.WebView {
 GLib.critical (_(Failed to read message \%s\: %s),
 contents.get_path (), contents_error.message);
 }
+notify_property (n-parts);
 return false;
 }
 
___
Xfce4-commits

[Xfce4-commits] midori:master Ensure the web view of the thumb view is realized

2010-06-04 Thread Christian Dywan
Updating branch refs/heads/master
 to 997d8df49c12eb29e672c83e8e638384bfb154ad (commit)
   from fc88d4bed36451de530c5854a02751cb17ff71f3 (commit)

commit 997d8df49c12eb29e672c83e8e638384bfb154ad
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 23:46:27 2010 +0200

Ensure the web view of the thumb view is realized

 midori/midori-view.c |1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/midori/midori-view.c b/midori/midori-view.c
index b1e0ba6..684b3bc 100644
--- a/midori/midori-view.c
+++ b/midori/midori-view.c
@@ -5115,6 +5115,7 @@ thumb_view_load_status_cb (MidoriView* thumb_view,
 if (katze_object_get_enum (thumb_view, load-status) != 
MIDORI_LOAD_FINISHED)
 return;
 
+gtk_widget_realize (midori_view_get_web_view (MIDORI_VIEW (thumb_view)));
 img = midori_view_get_snapshot (MIDORI_VIEW (thumb_view), 240, 160);
 gdk_pixbuf_save_to_buffer (img, file_content, sz, png, NULL, 
compression, 7, NULL);
 encoded = g_base64_encode ((guchar *)file_content, sz );
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Unset the message models while populating

2010-06-05 Thread Christian Dywan
Updating branch refs/heads/master
 to 2430729a9ba6f2538c406918065fd598766de942 (commit)
   from ff9645de581fef3510c51d09e241835e77552e9f (commit)

commit 2430729a9ba6f2538c406918065fd598766de942
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Jun 5 17:20:33 2010 +0200

Unset the message models while populating

 postler/postler-messages.vala |   16 +---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index c0e09e1..00a1182 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -245,9 +245,11 @@ public class Postler.Messages : Gtk.TreeView {
 
 public bool populate (string? location, string filter=, string 
header=subject) {
 clear ();
-sort.reset_default_sort_func ();
 if (location == null)
 return true;
+
+model = sort = null;
+
 if (filter != )
 last_filter = filter;
 var now = GLib.Date ();
@@ -291,6 +293,7 @@ public class Postler.Messages : Gtk.TreeView {
 GLib.FileInfo info;
 
 folder = folder_dir.get_basename ();
+bool folder_new = folder_dir.get_path ().has_suffix (cur);
 while ((info = folder_enumerator.next_file (null)) != null) {
 Gtk.TreeIter account_iter;
 string name = info.get_name ();
@@ -300,7 +303,7 @@ public class Postler.Messages : Gtk.TreeView {
 string status = Gtk.STOCK_NEW;
 int font_weight = Pango.Weight.BOLD;
 string flagged = null;
-if (folder == cur) {
+if (!folder_new) {
 status = parse_flags (name, out flagged, out 
font_weight);
 if (hide_read  status != Gtk.STOCK_NEW  flagged == 
null)
 continue;
@@ -382,7 +385,10 @@ public class Postler.Messages : Gtk.TreeView {
 -1);
 }
 }
+
+sort = new Gtk.TreeModelSort.with_model (store);
 sort.set_sort_column_id (Columns.TIMESTAMP, 
Gtk.SortType.ASCENDING);
+model = sort;
 
 /* Scroll to the bottom */
 int last_child = sort.iter_n_children (null) - 1;
@@ -392,11 +398,15 @@ public class Postler.Messages : Gtk.TreeView {
 set_cursor (sort.get_path (sort_iter), null, false);
 }
 }
-last_location = location;
+
 } catch (GLib.Error error) {
+sort = new Gtk.TreeModelSort.with_model (store);
+model = sort;
 GLib.critical (_(Failed to read folder \%s\: %s),
 location, error.message);
 }
+
+last_location = location;
 return false;
 }
 
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Implement a search option bar, shown while searching

2010-06-05 Thread Christian Dywan
Updating branch refs/heads/master
 to ad7ddb7bbd5e9b806624245377b16069d51bcace (commit)
   from b295c4e6dfd9229c63ddd234b508e6141c93efe6 (commit)

commit ad7ddb7bbd5e9b806624245377b16069d51bcace
Author: Christian Dywan christ...@twotoasts.de
Date:   Fri Jun 4 23:32:59 2010 +0200

Implement a search option bar, shown while searching

 postler/postler-bureau.vala   |   64 +
 postler/postler-messages.vala |9 +++--
 2 files changed, 63 insertions(+), 10 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index e27c334..ab1c712 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -18,6 +18,7 @@ public class Postler.Bureau : Gtk.Window {
 Gtk.VBox shelf;
 Gtk.Toolbar toolbar;
 Gtk.Entry search;
+Gtk.Toolbar search_options;
 Postler.Folders folders;
 Postler.Messages messages;
 Postler.Content content;
@@ -74,6 +75,11 @@ public class Postler.Bureau : Gtk.Window {
 toolitem action=About/
 separator expand=true/
 /toolbar
+toolbar name=search_options
+toolitem action=SearchSubject/
+toolitem action=SearchSender/
+toolitem action=SearchRecipient/
+/toolbar
 /ui
 ;
 
@@ -106,6 +112,36 @@ public class Postler.Bureau : Gtk.Window {
 search.grab_focus ();
 }
 
+void action_search_options () {
+search.activate ();
+}
+
+void search_entry_activated () {
+var action = actions.get_action (SearchSubject) as Gtk.RadioAction;
+if (search.text == ) {
+search_options.hide ();
+action.set_current_value (0);
+messages.search ();
+return;
+}
+
+switch (action.get_current_value ()) {
+case 0:
+messages.search (search.text, subject);
+break;
+case 1:
+messages.search (search.text, from);
+break;
+case 2:
+messages.search (search.text, to);
+break;
+default:
+assert_not_reached ();
+}
+messages.grab_focus ();
+search_options.show ();
+}
+
 void action_view_source () {
 Postler.App.spawn_module (source, content.last_location);
 }
@@ -170,6 +206,15 @@ public class Postler.Bureau : Gtk.Window {
   false }
 };
 
+const Gtk.RadioActionEntry[] radio_entries = {
+{ SearchSubject, null, N_(Subject), ,
+  N_(Search messages by subject), 0 },
+{ SearchSender, null, N_(Sender), ,
+  N_(Search messages by sender), 1 },
+{ SearchRecipient, null, N_(Recipient), ,
+  N_(Search messages by recipient), 2 }
+};
+
 static string icon_name_for_mime_type (string mime_type, Gtk.Widget 
widget) {
 var icon_theme = Gtk.IconTheme.get_for_screen (widget.get_screen ());
 var parts = mime_type.split (/, 2);
@@ -202,6 +247,7 @@ public class Postler.Bureau : Gtk.Window {
 actions.set_translation_domain (Config.GETTEXT_PACKAGE);
 actions.add_actions (action_entries, this);
 actions.add_toggle_actions  (toggle_entries, this);
+actions.add_radio_actions  (radio_entries, 0, action_search_options);
 actions.add_action (new Postler.MenuAction (View,
 _(_View), _(View), Gtk.STOCK_PREFERENCES));
 ui.insert_action_group (actions, 0);
@@ -246,10 +292,7 @@ public class Postler.Bureau : Gtk.Window {
 search = new Gtk.Entry ();
 /* FIXME: icons are available since GTK+ 2.16 */
 search.set_icon_from_stock (Gtk.EntryIconPosition.PRIMARY, 
Gtk.STOCK_FIND);
-search.activate.connect ((search) = {
-messages.search (search.text);
-messages.grab_focus ();
-} );
+search.activate.connect (search_entry_activated);
 search.set_icon_from_stock (Gtk.EntryIconPosition.SECONDARY, 
Gtk.STOCK_CLEAR);
 search.icon_release.connect ((position, event) = {
 search.text = ;
@@ -265,6 +308,13 @@ public class Postler.Bureau : Gtk.Window {
 shelf.pack_start (hpaned, true, true, 0);
 var vpaned = new Gtk.VPaned ();
 hpaned.pack2 (vpaned, false, true);
+var messages_box = new Gtk.VBox (false, 0);
+vpaned.pack1 (messages_box, false, true);
+search_options = ui.get_widget (/search_options) as Gtk.Toolbar;
+actions.get_action (SearchSubject).is_important = true;
+actions.get_action (SearchSender).is_important = true;
+actions.get_action (SearchRecipient).is_important = true;
+messages_box.pack_start (search_options, false, false, 0);
 messages = new Postler.Messages ();
 messages.notify[selected-location].connect ((object, pspec) = {
 Postler.Messages messages = object as Postler.Messages;
@@ -272,7 +322,7 @@ public class

[Xfce4-commits] postler:master Add 'Copy' to content context menu

2010-06-05 Thread Christian Dywan
Updating branch refs/heads/master
 to 021bb94b348f3c2eb5573e1d320c84d174fbd4f5 (commit)
   from 2430729a9ba6f2538c406918065fd598766de942 (commit)

commit 021bb94b348f3c2eb5573e1d320c84d174fbd4f5
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Jun 5 17:47:30 2010 +0200

Add 'Copy' to content context menu

 postler/postler-content.vala |   14 +-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index df8d780..2887554 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -90,7 +90,19 @@ public class Postler.Content : WebKit.WebView {
 
 void populate_menu (Gtk.Menu menu) {
 menu.hide_all ();
-var menuitem = new Gtk.MenuItem.with_mnemonic (_(View _Source));
+Gtk.MenuItem menuitem = new Gtk.ImageMenuItem.from_stock 
(Gtk.STOCK_COPY, null);
+menuitem.activate.connect ((menuitem) = {
+copy_clipboard (); });
+menuitem.show ();
+menuitem.sensitive = can_copy_clipboard ();
+menu.append (menuitem);
+if (view_source)
+return;
+
+menuitem = new Gtk.SeparatorMenuItem ();
+menuitem.show ();
+menu.append (menuitem);
+menuitem = new Gtk.MenuItem.with_mnemonic (_(View _Source));
 menuitem.activate.connect ((menuitem) = {
 Postler.App.spawn_module (source, last_location); });
 menuitem.show ();
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Display message columns lazily in render callbacks

2010-06-05 Thread Christian Dywan
Updating branch refs/heads/master
 to 43696960ac253c24b6b061e0d6feaf032e43488a (commit)
   from 021bb94b348f3c2eb5573e1d320c84d174fbd4f5 (commit)

commit 43696960ac253c24b6b061e0d6feaf032e43488a
Author: Christian Dywan christ...@twotoasts.de
Date:   Sat Jun 5 18:09:55 2010 +0200

Display message columns lazily in render callbacks

 postler/postler-messages.vala |  153 -
 1 files changed, 104 insertions(+), 49 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 00a1182..9fbefc6 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -28,8 +28,8 @@ public class Postler.Messages : Gtk.TreeView {
 STATUS,
 ATTACHMENT,
 SUBJECT,
+WEIGHT,
 FROM,
-DATE,
 SIZE,
 LOCATION,
 TIMESTAMP
@@ -47,10 +47,84 @@ public class Postler.Messages : Gtk.TreeView {
 selected_location = location;
 }
 
+void render_subject (Gtk.TreeViewColumn column, Gtk.CellRenderer cell,
+Gtk.TreeModel model, Gtk.TreeIter iter) {
+string charset, subject;
+int weight = Pango.Weight.NORMAL;
+var renderer = cell as Gtk.CellRendererText;
+
+if (!rich_rows) {
+model.get (iter, Columns.SUBJECT, out subject,
+ Columns.WEIGHT, out weight,
+ -1);
+renderer.text = parse_encoded (subject, out charset);
+renderer.weight = weight;
+return;
+}
+
+string from;
+time_t timestamp;
+int64 size;
+model.get (iter, Columns.SUBJECT, out subject,
+ Columns.WEIGHT, out weight,
+ Columns.SIZE, out size,
+ Columns.TIMESTAMP, out timestamp,
+ Columns.FROM, out from,
+ -1);
+
+subject = Markup.escape_text (parse_encoded (subject, out charset));
+renderer.markup = (span weight=\%d\%s/span small%s/small\n 
+
+   smalltt%s  /tt/small %s).printf (
+   weight, subject,
+   format_size_for_display (size),
+   GLib.Time.local (timestamp).format (%x %X),
+   parse_address (parse_encoded (from, out 
charset))[0]);
+}
+
+void render_from (Gtk.TreeViewColumn column, Gtk.CellRenderer cell,
+Gtk.TreeModel model, Gtk.TreeIter iter) {
+var renderer = cell as Gtk.CellRendererText;
+
+if (rich_rows)
+renderer.text = ;
+else {
+string from;
+model.get (iter, Columns.FROM, out from, -1);
+string charset;
+renderer.text = parse_address (parse_encoded (from, out 
charset))[0];
+}
+}
+
+void render_date (Gtk.TreeViewColumn column, Gtk.CellRenderer cell,
+Gtk.TreeModel model, Gtk.TreeIter iter) {
+var renderer = cell as Gtk.CellRendererText;
+
+if (rich_rows)
+renderer.text = ;
+else {
+time_t timestamp;
+model.get (iter, Columns.TIMESTAMP, out timestamp, -1);
+renderer.text = GLib.Time.local (timestamp).format (%x %X);
+}
+}
+
+void render_size (Gtk.TreeViewColumn column, Gtk.CellRenderer cell,
+Gtk.TreeModel model, Gtk.TreeIter iter) {
+var renderer = cell as Gtk.CellRendererText;
+
+if (rich_rows)
+renderer.text = ;
+else {
+int64 size;
+model.get (iter, Columns.SIZE, out size, -1);
+renderer.text = format_size_for_display (size);
+}
+}
+
 public Messages () {
 store = new Gtk.TreeStore (9, typeof (string), typeof (string),
-typeof (string), typeof (string), typeof (string),
-typeof (string), typeof (string), typeof (string), typeof (ulong));
+typeof (string), typeof (string), typeof (int), typeof (string),
+typeof (int64), typeof (string), typeof (ulong));
 sort = new Gtk.TreeModelSort.with_model (store);
 set_model (sort);
 set_search_column (Columns.SUBJECT); /* FIXME doesn't work atm */
@@ -62,14 +136,14 @@ public class Postler.Messages : Gtk.TreeView {
 new Gtk.CellRendererPixbuf (), stock-id, Columns.STATUS, null);
 insert_column_with_attributes (-1, _(Attachment),
 new Gtk.CellRendererPixbuf (), stock-id, Columns.ATTACHMENT, 
null);
-insert_column_with_attributes (-1, _(Subject),
-new Gtk.CellRendererText (), markup, Columns.SUBJECT, null);
-insert_column_with_attributes (-1, _(From),
-new Gtk.CellRendererText (), text, Columns.FROM, null);
-insert_column_with_attributes (-1, _(Date),
-new Gtk.CellRendererText (), text, Columns.DATE, null

[Xfce4-commits] postler:master Handle combination of search folder and search entry

2010-06-06 Thread Christian Dywan
Updating branch refs/heads/master
 to 740b3d0f5cb1774ac8291ff779b3b383383e8e1c (commit)
   from 43696960ac253c24b6b061e0d6feaf032e43488a (commit)

commit 740b3d0f5cb1774ac8291ff779b3b383383e8e1c
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Jun 6 07:29:37 2010 +0200

Handle combination of search folder and search entry

 postler/postler-messages.vala |   37 -
 1 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/postler/postler-messages.vala b/postler/postler-messages.vala
index 9fbefc6..7efbb74 100644
--- a/postler/postler-messages.vala
+++ b/postler/postler-messages.vala
@@ -337,15 +337,15 @@ public class Postler.Messages : Gtk.TreeView {
 to_or_from = from;
 
 try {
-string filter_header;
-string real_filter = ;
+string[] headers = {};
+string[] filters = {};
 string[] folders = {};
 
 try {
 var keyfile = new KeyFile ();
 keyfile.load_from_file (location, 0);
-filter_header = keyfile.get_string (search, header);
-real_filter = keyfile.get_string (search, filter).down ();
+headers += keyfile.get_string (search, header);
+filters += keyfile.get_string (search, filter).down ();
 string search_account = keyfile.get_string (search, 
account);
 string toplevel = Environment.get_variable (MAILDIR);
 if (toplevel == null || toplevel == )
@@ -353,11 +353,11 @@ public class Postler.Messages : Gtk.TreeView {
 folders += toplevel + / + search_account + /INBOX/cur;
 folders += toplevel + / + search_account + /INBOX/new;
 } catch (GLib.KeyFileError keyfile_error) {
-filter_header = header;
-real_filter = last_filter;
 folders += location + /cur;
 folders += location + /new;
 }
+headers += header;
+filters += last_filter !=  ? last_filter : null;
 
 foreach (var folder in folders) {
 var folder_dir = File.new_for_path (folder);
@@ -398,25 +398,36 @@ public class Postler.Messages : Gtk.TreeView {
 if (parts == null || parts[0] == null)
 continue;
 string field = parts[0].down ();
-if (real_filter !=   filter_header == field 
-!(real_filter in parts[1].down ())) {
-skip = true;
-break;
+if (filters[0] != null  parts[1] != null) {
+string lowercased = parts[1].down ();
+if (headers[0] == field
+  !(filters[0] in lowercased)) {
+skip = true;
+break;
+}
+else if (filters[1] != null  headers[1] == 
field
+  !(filters[1] in lowercased)) {
+skip = true;
+break;
+}
 }
 if (field == subject) {
 subject = parts[1].strip ();
-if (from != null  timestamp != 0)
+if (from != null  timestamp != 0
+  filters[0] == null)
 break;
 }
 else if (field == to_or_from) {
 from = parts[1];
-if (subject != null  timestamp != 0)
+if (subject != null  timestamp != 0
+  filters[0] == null)
 break;
 }
 else if (field == date) {
 var parsed = new Soup.Date.from_string 
(parts[1]);
 timestamp = parsed != null ? 
(time_t)parsed.to_time_t () : 0;
-if (subject != null  from != null)
+if (subject != null  from != null
+  filters[0] == null)
 break;
 }
 }
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Display parts through the message part pane

2010-06-06 Thread Christian Dywan
Updating branch refs/heads/master
 to d003fb327bd8e1eb3d2e9a9c5385d299200e7e1f (commit)
   from e5263989fcce2caa72454e53d683fbc1ff763d60 (commit)

commit d003fb327bd8e1eb3d2e9a9c5385d299200e7e1f
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Jun 6 07:44:02 2010 +0200

Display parts through the message part pane

 postler/postler-bureau.vala |5 +
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/postler/postler-bureau.vala b/postler/postler-bureau.vala
index ab1c712..a24c6ad 100644
--- a/postler/postler-bureau.vala
+++ b/postler/postler-bureau.vala
@@ -362,6 +362,7 @@ public class Postler.Bureau : Gtk.Window {
 foreach (var child in children)
 child.destroy ();
 var parts = content.get_parts ();
+uint index = 0;
 foreach (var part in parts) {
 string icon_name = icon_name_for_mime_type (part, this);
 var icon = new Gtk.Image.from_icon_name (icon_name,
@@ -370,7 +371,11 @@ public class Postler.Bureau : Gtk.Window {
 button.relief = Gtk.ReliefStyle.NONE;
 button.add (icon);
 button.set_tooltip_text (part);
+button.set_data (index, index);
+button.clicked.connect ((button) = {
+content.display_part (button.get_data (index));  });
 message_parts.pack_start (button, false, false, 0);
+index++;
 }
 scrollable.show_all ();
 });
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] postler:master Refactor display of individual parts as display_part

2010-06-06 Thread Christian Dywan
Updating branch refs/heads/master
 to e5263989fcce2caa72454e53d683fbc1ff763d60 (commit)
   from 740b3d0f5cb1774ac8291ff779b3b383383e8e1c (commit)

commit e5263989fcce2caa72454e53d683fbc1ff763d60
Author: Christian Dywan christ...@twotoasts.de
Date:   Sun Jun 6 07:39:13 2010 +0200

Refactor display of individual parts as display_part

 postler/postler-content.vala |  127 ++
 1 files changed, 78 insertions(+), 49 deletions(-)

diff --git a/postler/postler-content.vala b/postler/postler-content.vala
index 2887554..8dc5139 100644
--- a/postler/postler-content.vala
+++ b/postler/postler-content.vala
@@ -20,6 +20,14 @@ public class Postler.Content : WebKit.WebView {
 GLib.StringBuilder[] body = {};
 string[] mime_types = {};
 int body_parts = -1;
+string content_encoding;
+string date;
+string recipient;
+string carbon_copy;
+string reply;
+string sender;
+string organization;
+string x_mailer;
 
 public string default_charset { get; set; default = ISO-8859-1; }
 
@@ -36,6 +44,14 @@ public class Postler.Content : WebKit.WebView {
 public bool view_source { get; set; }
 
 const string style_sheet = 
+/* Quotations */
+blockquote {
+margin: 1em;
+padding: 0.5em;
+white-space: pre;
+color: GrayText;
+border-left: 0.1em solid GrayText;
+}
 /* Addresses not underlined, but underlined when hovering */
 a[href] {
 text-decoration: underline !important;
@@ -246,17 +262,17 @@ public class Postler.Content : WebKit.WebView {
 return true;
 }
 
-string content_encoding = ;
+content_encoding = ;
 string from = _(Unknown);
-string date = _((No date));
+date = _((No date));
 var now = GLib.Date ();
 now.set_time_val (GLib.TimeVal ());
-string recipient = ;
-string carbon_copy = ;
+recipient = ;
+carbon_copy = ;
 /* TODO: blind_copy, some clients keep it */
-string reply = ;
-string organization = ;
-string x_mailer = ;
+reply = ;
+organization = ;
+x_mailer = ;
 /* Skip the header */
 string previous_line = ;
 while ((line = stream.read_line (null, null)) != null) {
@@ -318,7 +334,7 @@ public class Postler.Content : WebKit.WebView {
 /* FIXME: Use raw subject for argument? */
 /* TODO: Show addressbook icons beside addresses */
 string arguments = ?from= + recipient + subject=Re:  + 
subject;
-string sender = linkify_address (from, arguments);
+sender = linkify_address (from, arguments);
 if (recipient != )
 recipient = linkify_address (recipient, arguments);
 if (carbon_copy != )
@@ -350,13 +366,6 @@ public class Postler.Content : WebKit.WebView {
 }
 }
 
-bool plain_text = false;
-/* We always want HTML, to render the headers nicely */
-if (mime_type == text/plain) {
-mime_type = text/html;
-plain_text = true;
-}
-
 uint multipart = mime_type.has_prefix (multipart/) ? 1 : 0;
 if (multipart  0  boundary != null)
 boundary = boundary.replace (\,  ).strip ();
@@ -378,6 +387,9 @@ public class Postler.Content : WebKit.WebView {
 mime_types += mime_type;
 body_parts++;
 }
+
+bool plain_text = mime_type == text/plain;
+bool in_quote = false;
 while ((line = stream.read_line (null, null)) != null) {
 if (multipart  0) {
 if (line.has_prefix (--)) {
@@ -421,38 +433,58 @@ public class Postler.Content : WebKit.WebView {
 line = GLib.convert (line, -1, UTF-8, charset, null);
 }
 catch (GLib.ConvertError error) { }
-/* TODO: Encoding, attachments */
-/* TODO: Can we parse and localize quoting, such as this?
-Em Quinta-feira 20 Maio 2010, =E0s 17:20:09, Pablo 
escreveu:
-On 20/05/10 15:53, Will Thompson wrote: */
-/* Render signature gray, beginning with --=20 */
-/* Looks like quoting */
-if (line.has_prefix ())
-body[body_parts].append (span style=\color: 
GrayText\);
-string appendage;
-if (plain_text  content_encoding != base64)
-appendage = line + \n;
-else
-appendage = line;
-body[body_parts].append (appendage);
-if (line.has_prefix ())
-body

  1   2   3   4   5   6   7   8   9   10   >