From 41bb195afaff1ad5c95fb75066c294de4e723eb3 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Fri, 6 Aug 2010 18:22:28 +0200 Subject: [PATCH] Use common open browser method for show website menu buttons Adds a menu to the lift list window. --- src/lift-detail-window.vala | 16 +--------------- src/lift-list-window.vala | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/lift-detail-window.vala b/src/lift-detail-window.vala index e519fda..b621417 100644 --- a/src/lift-detail-window.vala +++ b/src/lift-detail-window.vala @@ -20,10 +20,6 @@ using Gtk; using Hildon; public class LiftDetailWindow : StackableWindow { - private const string BROWSER_SERVICE = "com.nokia.osso_browser"; - private const string BROWSER_PATH = "/com/nokia/osso_browser"; - private const string BROWSER_IF = "com.nokia.osso_browser"; - private const string CALENDAR_SERVICE = "com.nokia.calendar"; private const string CALENDAR_PATH = "/com/nokia/calendar"; private const string CALENDAR_IF = "com.nokia.calendar"; @@ -348,17 +344,7 @@ public class LiftDetailWindow : StackableWindow { } void on_goto_website_clicked () { - var url = "http://mitfahrclub.adac.de" + lift.href; - - try { - var conn = DBus.Bus.get (DBus.BusType.SESSION); - - dynamic DBus.Object browser = conn.get_object (BROWSER_SERVICE, BROWSER_PATH, BROWSER_IF); - browser.open_new_window (url, false); - } catch (Error e) { - stderr.printf ("Error: %s\n", e.message); - Banner.show_information (this, null, _("Failed to open browser.")); - } + BeifahrerProgram.open_browser (this, adac.get_lift_details_url (lift)); } bool on_image_eventbox_button_pressed (Gdk.EventButton event) { diff --git a/src/lift-list-window.vala b/src/lift-list-window.vala index 4e82d9a..e4c5ae2 100644 --- a/src/lift-list-window.vala +++ b/src/lift-list-window.vala @@ -30,6 +30,9 @@ public class LiftListWindow : StackableWindow { Label no_lifts; GConf.Client gconf; bool preload = false; + string url; + + Gtk.Button goto_website; public LiftListWindow (AdacMitfahrclub _adac) { adac = _adac; @@ -38,6 +41,11 @@ public class LiftListWindow : StackableWindow { construct { set_title ("Beifahrer"); + var menu = new AppMenu (); + goto_website = new Gtk.Button.with_label (_("Show website")); + menu.append (goto_website); + set_main_menu (menu); + gconf = GConf.Client.get_default (); store = new ListStore (6, typeof (string), typeof (string), typeof (string), typeof (string), typeof (string), typeof (Lift)); @@ -113,6 +121,7 @@ public class LiftListWindow : StackableWindow { tree.row_activated.connect (this.on_row_activated); Gdk.Screen.get_default ().size_changed.connect (this.on_orientation_changed); + goto_website.clicked.connect (on_goto_website_clicked); } public async void find_lifts (string city_from, int radius_from, string city_to, int radius_to, Date date, int tolerance = 0) { @@ -120,6 +129,10 @@ public class LiftListWindow : StackableWindow { set_title ("%s - %s".printf (city_from, city_to)); Hildon.gtk_window_set_progress_indicator (this, 1); + url = adac.get_lift_list_url (city_from, radius_from, city_to, radius_to, date, tolerance); + if (url == null) + return; + goto_website.show (); var lift_list = yield adac.get_lift_list (city_from, radius_from, city_to, radius_to, date, tolerance); foreach (Lift lift in lift_list) { string icon_name = null; @@ -164,6 +177,10 @@ public class LiftListWindow : StackableWindow { Hildon.gtk_window_set_progress_indicator (this, 0); } + void on_goto_website_clicked () { + BeifahrerProgram.open_browser (this, url); + } + private void on_row_activated (TreeView tree, TreePath /*_*/path, TreeViewColumn column) { TreeModel model = tree.model; TreeIter iter; -- 1.7.9.5