~ubuntu-branches/ubuntu/jaunty/gnome-do-plugins/jaunty-proposed

« back to all changes in this revision

Viewing changes to GoogleMaps/src/MapAction.cs

  • Committer: Bazaar Package Importer
  • Author(s): Iain Lane, Daniel T Chen, Iain Lane
  • Date: 2009-03-18 00:40:51 UTC
  • mfrom: (1.1.4 upstream)
  • Revision ID: james.westby@ubuntu.com-20090318004051-ujn1ja3kiu3ky7ru
Tags: 0.8.1.3+dfsg-0ubuntu1
[ Daniel T Chen ]
* New upstream release (LP: #344578)
  + Banshee plugin goes crazy if banshee isn't loaded first
    (LP: #289802)
  + gnome-do gCalculate plugin fails to display "times" symbol
    (LP: #274252)
  + Banshee-1 fails to build in Mono 2.0 (LP: #309188)
  + Pidgin 2.5.4 has incompatible dbus interface. s/uint/int/
    (LP: #314927)
  + Pidgin plugin hangs opening a chat if pidgin is unresponsive
    (LP: #315565)
  + twitter plugin still reports friend updates even when
    deactivated (LP: #317674)
  + Misspelling in microblogging plugin confirmation message
    (LP: #319433)
  + make install uses mdtool, but configure doesn't check for it
    (LP: #322951)
  + Virtualbox Icon in 2.10 are broken because of a new
    specification (LP: #323902)
  + Google Maps Plugin shouldn't always use route (LP: #324271)
  + Fix for Google Maps when using newlines and other special
    characters (LP: #324667)
  + VirtualBox failed to load icon (LP: #325712)
  + 'Read Man Pages' plugin makes Gnome-Do unresponsive
    (LP: #325935)
  + Search returns broken URLs (LP: #327855)
  + Default action for SSH hosts is "open" (LP: #328236)
  + Files and Folders Configuration doesn't use standard buttons
    (LP: #328236)
  + Window manager maximize action should focus if window is not
    currently focused (LP: #258893)
  + Locate plugin has no error message (LP: #262360)
  + Wishlist: Let user specify files and folders to ignore
    (LP: #263177)
  + ts-client plugin doesn't index subdirectories (LP: #322352)
  + Max 3000 items in Files and Folders plugin (LP: #324105)
  + putty cannot find host when running from gnome do
    (LP: #324282)
  + locate plugin with globbing (LP: #334798)
  + Twitter plugin encountered an error in UpdateFriends
    (LP: #317575)
  + gnome-terminal profiles no longer work (LP: #321977)
  + Creating a task using Remember the Milk plugin can fail if
    no task list is specified (LP: #324066)
  + bundled libraries makefile needs destdir (LP: #324704)
  + Typographical error in del.icio.us plugin (LP: #330525)
  + ImageShack fails to upload (LP: #337324)
* debian/copyright
  + Refresh for new upstream version; new plugins added.
* debian/patches/00_dfsg_autofoo.dpatch
  + Update for new upstream version
  + Don't build the YouTube plugin due to removal of shipped
    exes and dlls causing FTBFS
* debian/patches/02_ssh_respect_exec_arg.dpatch
  debian/patches/03_buildsystem_respect_mcs.dpatch
  debian/patches/04_fix_pidgin_dbus_ints.dpatch
  + Drop; fixed upstream

[ Iain Lane ]
* debian/rules: Update repackaging to not delete *.dll; upstream now ships
  source copies of google-gdata meaning we can now enable the Google and
  Youtube plugins.
* debian/patches/00_dfsg_autofoo: Drop, fixed by including and building
  these libs now. 
* debian/copyright: Update with information for google-gdata. 
* debian/patches/04_fix_pidgin_dbus_ints.dpatch: Add left out piece of patch
* debian/control: Bump gnome-do build-dep to require current version. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
using System;
21
21
using System.Collections.Generic;
22
22
using System.Linq;
 
23
using System.Web;
23
24
using Mono.Unix;
24
25
 
25
26
using Do.Universe;
29
30
namespace Google
30
31
{
31
32
        /// <summary>
32
 
        /// Given an ITextItem, GoogleMapAction will plot its location,
33
 
        /// with a modifier item it will plot the route from the item location
34
 
        /// to the modifier location
 
33
        /// Given an ITextItem, ContactItem, or ContactDetailItem GoogleMapAction 
 
34
        /// will plot its location, with a modifier item it will plot the route 
 
35
        /// from the item location to the modifier location.
35
36
        /// </summary>
36
37
        public class MapAction : Act
37
38
        {
52
53
                public override IEnumerable<Type> SupportedItemTypes
53
54
                {
54
55
                        get {
55
 
                                return new Type[] {
56
 
                                        typeof (IContactDetailItem),
57
 
                                        typeof (ContactItem),
58
 
                                        typeof (ITextItem),
59
 
                                };
 
56
                                yield return typeof (IContactDetailItem);
 
57
                                yield return typeof (ContactItem);
 
58
                                yield return typeof (ITextItem);
60
59
                        }
61
60
                }
62
61
 
63
62
                public override IEnumerable<Type> SupportedModifierItemTypes
64
63
                {
65
64
                        get {
66
 
                                return new Type[] {
67
 
                                        typeof (IContactDetailItem),
68
 
                                        typeof (ContactItem),
69
 
                                        typeof (ITextItem),
70
 
                                };
 
65
                                yield return typeof (IContactDetailItem);
 
66
                                yield return typeof (ContactItem);
 
67
                                yield return typeof (ITextItem);
71
68
                        }               
72
69
                }
73
70
                                
89
86
                }
90
87
                
91
88
                public override bool ModifierItemsOptional {
92
 
            get { return true; }
93
 
        }
 
89
                        get { return true; }
 
90
                }
94
91
                
95
92
                public override IEnumerable<Item> Perform (IEnumerable<Item> items, IEnumerable<Item> modifierItems)
96
93
                {
97
94
                        string expression, url, start, end;
98
 
                        start = end = String.Empty;
 
95
                        start = end = "";
99
96
                        
100
97
                        foreach (Item item in items) {
101
98
                                start = AddressFromItem (item);
103
100
                                if (modifierItems.Any ())
104
101
                                        end = AddressFromItem (modifierItems.First ());
105
102
                                                        
106
 
                                expression = String.Format ("from: {0}", start);
107
 
                                if (!String.IsNullOrEmpty (end))
108
 
                                        expression += String.Format (" to: {0}",end);
 
103
                                expression = String.IsNullOrEmpty (end) ?
 
104
                                        start :
 
105
                                        String.Format ("from: {0} to: {1}", start, end);
109
106
 
110
107
                                url = GoogleMapsURLWithExpression (expression);
111
108
                                
129
126
                
130
127
                string GoogleMapsURLWithExpression (string e)
131
128
                {
132
 
                        return "http://maps.google.com/maps?q=" + (e ?? "")
133
 
                                .Replace (" ", "+");
 
129
                        return "http://maps.google.com/maps?q=" + HttpUtility.UrlEncode (e ?? "");
134
130
                }
135
131
                
136
132
                bool ContactSupportsAddress (ContactItem item)