diff --git a/extensions/external-applications.vala b/extensions/external-applications.vala deleted file mode 100644 index f606a73f..00000000 --- a/extensions/external-applications.vala +++ /dev/null @@ -1,105 +0,0 @@ -/* - Copyright (C) 2010 Christian Dywan - - 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. -*/ - -using Gtk; -using WebKit; -using Midori; - -public class ExternalApplications : Midori.Extension { - Dialog? dialog; - bool launch (string command, string uri) { - try { - var info = GLib.AppInfo.create_from_commandline (command, "", 0); - var uris = new List(); - uris.prepend (uri); - info.launch_uris (uris, new GLib.AppLaunchContext ()); - return true; - } - catch (GLib.Error error) { - var error_dialog = new Gtk.MessageDialog (null, 0, - Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, - "Failed to launch external application."); - error_dialog.format_secondary_text (error.message); - error_dialog.response.connect ((dialog, response) - => { dialog.destroy (); }); - error_dialog.show (); - } - return false; - } - bool navigating (WebFrame web_frame, NetworkRequest request, - WebNavigationAction action, WebPolicyDecision decision) { - string uri = request.get_uri (); - if (uri.has_prefix ("ftp://")) { - if (launch ("gftp", uri)) { - decision.ignore (); - return true; - } - } - return false; - } - void tab_added (View tab) { - var web_view = tab.get_web_view (); - web_view.navigation_policy_decision_requested.connect (navigating); - } - void configure_external_applications () { - if (dialog == null) { - dialog = new Dialog.with_buttons ("Configure External Applications", - get_app ().browser, - DialogFlags.DESTROY_WITH_PARENT | DialogFlags.NO_SEPARATOR, - STOCK_CLOSE, ResponseType.CLOSE); - dialog.icon_name = STOCK_PROPERTIES; - dialog.destroy.connect ((dialog) => { dialog = null; }); - dialog.response.connect ((dialog, response) => { dialog.destroy (); }); - dialog.show (); - } - else - dialog.present (); - } - void tool_menu_populated (Menu menu) { - var menuitem = new MenuItem.with_mnemonic ("Configure _External Applications..."); - menuitem.activate.connect (configure_external_applications); - menuitem.show (); - menu.append (menuitem); - } - void browser_added (Browser browser) { - foreach (var tab in browser.get_tabs ()) - tab_added (tab); - browser.add_tab.connect (tab_added); - browser.populate_tool_menu.connect (tool_menu_populated); - } - void activated (Midori.App app) { - foreach (var browser in app.get_browsers ()) - browser_added (browser); - app.add_browser.connect (browser_added); - } - void deactivated () { - var app = get_app (); - app.add_browser.disconnect (browser_added); - foreach (var browser in app.get_browsers ()) { - foreach (var tab in browser.get_tabs ()) - /* */; - browser.populate_tool_menu.disconnect (tool_menu_populated); - } - } - internal ExternalApplications () { - GLib.Object (name: _("External Applications"), - description: _("Associate URL schemes with external commands"), - version: "0.1", - authors: "Christian Dywan "); - activate.connect (activated); - deactivate.connect (deactivated); - } -} - -public Midori.Extension extension_init () { - return new ExternalApplications (); -} - diff --git a/po/POTFILES.in b/po/POTFILES.in index 01a3119c..dd04bd3d 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -33,7 +33,6 @@ extensions/cookie-manager/cookie-manager.c extensions/cookie-manager/cookie-manager-page.c extensions/cookie-manager/main.c extensions/copy-tabs.c -extensions/external-applications.vala extensions/feed-panel/feed-atom.c extensions/feed-panel/feed-panel.c extensions/feed-panel/feed-parse.c