protected virtual void OnButtonEditRemoteClicked (object sender, System.EventArgs e)
		{
			TreeIter it;
			if (!treeRemotes.Selection.GetSelected (out it))
				return;
			
			RemoteSource remote = (RemoteSource) storeRemotes.GetValue (it, 0);
			string oldName = remote.Name;
			
			EditRemoteDialog dlg = new EditRemoteDialog (remote, false);
			try {
				if (dlg.Run () == (int) Gtk.ResponseType.Ok) {
					if (remote.Name != oldName)
						repo.RenameRemote (oldName, remote.Name);
					repo.UpdateRemote (remote);
					FillRemotes ();
				}
			} finally {
				dlg.Destroy ();
			}
		}
		protected virtual void OnButtonAddRemoteClicked (object sender, System.EventArgs e)
		{
			RemoteSource remote = new RemoteSource ();
			EditRemoteDialog dlg = new EditRemoteDialog (remote, true);
			try {
				if (dlg.Run () == (int) Gtk.ResponseType.Ok) {
					repo.AddRemote (remote, dlg.ImportTags);
					FillRemotes ();
				}
			} finally {
				dlg.Destroy ();
			}
		}