From 0d38e7ef5eda988c18c6d4cc2b01a4399b0dde37 Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Wed, 30 Nov 2011 11:18:26 +0100 Subject: [PATCH] setup: move convenience method to derived class --- SparkleShare/SparkleSetup.cs | 38 ++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/SparkleShare/SparkleSetup.cs b/SparkleShare/SparkleSetup.cs index e1b3a011..74592426 100755 --- a/SparkleShare/SparkleSetup.cs +++ b/SparkleShare/SparkleSetup.cs @@ -52,13 +52,6 @@ namespace SparkleShare { return Catalog.GetString (s); } - public static int GetSelected (TreeView tree) - { - TreeIter iter; - TreeModel model; - tree.Selection.GetSelected(out model, out iter); - return int.Parse (model.GetPath (iter).ToString ()); - } public SparkleSetup () : base () { @@ -144,7 +137,7 @@ namespace SparkleShare { ListStore store = new ListStore (typeof (Gdk.Pixbuf), typeof (string), typeof (SparklePlugin)); - TreeView tree = new TreeView (store) { HeadersVisible = false }; + SparkleTreeView tree = new SparkleTreeView (store) { HeadersVisible = false }; ScrolledWindow scrolled_window = new ScrolledWindow (); scrolled_window.AddWithViewport (tree); @@ -220,7 +213,7 @@ namespace SparkleShare { // Update the address field text when the selection changes tree.CursorChanged += delegate (object sender, EventArgs e) { - Controller.SelectedPluginChanged (GetSelected(sender as TreeView)); + Controller.SelectedPluginChanged ((sender as TreeView).SelectedRow); // TODO: Scroll to selected row when using arrow keys }; @@ -267,7 +260,7 @@ namespace SparkleShare { AddressEntry.Completion.TextColumn = 0; AddressEntry.Changed += delegate { - Controller.CheckAddPage (AddressEntry.Text, PathEntry.Text, GetSelected(tree)); + Controller.CheckAddPage (AddressEntry.Text, PathEntry.Text, tree.SelectedRow); }; layout_address.PackStart (new Label () { @@ -288,7 +281,7 @@ namespace SparkleShare { PathEntry.Completion.TextColumn = 0; PathEntry.Changed += delegate { - Controller.CheckAddPage (AddressEntry.Text, PathEntry.Text, GetSelected(tree)); + Controller.CheckAddPage (AddressEntry.Text, PathEntry.Text, tree.SelectedRow); }; layout_path.PackStart (new Label () { Markup = "" + _("Remote Path") + "", Xalign = 0 }, @@ -324,7 +317,7 @@ namespace SparkleShare { AddButton (cancel_button); AddButton (SyncButton); - Controller.CheckAddPage (AddressEntry.Text, PathEntry.Text, GetSelected(tree)); + Controller.CheckAddPage (AddressEntry.Text, PathEntry.Text, tree.SelectedRow); break; } @@ -614,4 +607,25 @@ namespace SparkleShare { ); } } + + + public class SparkleTreeView : TreeView { + + public int SelectedRow + { + get { + TreeIter iter; + TreeModel model; + + Selection.GetSelected (out model, out iter); + + return int.Parse (model.GetPath (iter).ToString ()); + } + } + + + public SparkleTreeView (ListStore store) : base (store) + { + } + } }