[tomboy] Implement WebSync preferences.
- From: Sanford Armstrong <sharm src gnome org>
- To: svn-commits-list gnome org
- Subject: [tomboy] Implement WebSync preferences.
- Date: Mon, 18 May 2009 10:23:48 -0400 (EDT)
commit 813136d724c9f8597850001c492c3b23224b54b9
Author: Sandy Armstrong <sanfordarmstrong gmail com>
Date: Mon May 18 06:48:03 2009 -0700
Implement WebSync preferences.
Note that the password is saved in the clear for now.
---
Tomboy/Addins/WebSyncService/WebSyncServer.cs | 2 +-
.../Addins/WebSyncService/WebSyncServiceAddin.cs | 109 ++++++++++++++++++--
2 files changed, 103 insertions(+), 8 deletions(-)
diff --git a/Tomboy/Addins/WebSyncService/WebSyncServer.cs b/Tomboy/Addins/WebSyncService/WebSyncServer.cs
index adc5192..59d60ba 100644
--- a/Tomboy/Addins/WebSyncService/WebSyncServer.cs
+++ b/Tomboy/Addins/WebSyncService/WebSyncServer.cs
@@ -39,7 +39,7 @@ namespace Tomboy.WebSync
private UserInfo user;
private List<NoteInfo> pendingCommits;
- public WebSyncServer (string serverUrl, string userName)
+ public WebSyncServer (string serverUrl, string userName, string password)
{
this.serverUrl = serverUrl;
this.userName = userName;
diff --git a/Tomboy/Addins/WebSyncService/WebSyncServiceAddin.cs b/Tomboy/Addins/WebSyncService/WebSyncServiceAddin.cs
index ea02b8e..12db110 100644
--- a/Tomboy/Addins/WebSyncService/WebSyncServiceAddin.cs
+++ b/Tomboy/Addins/WebSyncService/WebSyncServiceAddin.cs
@@ -35,8 +35,18 @@ namespace Tomboy.WebSync
public class WebSyncServiceAddin : SyncServiceAddin
{
private bool initialized;
- private string serverUrl;
- private string userName;
+
+ private const string serverUrlPrefPath =
+ "/apps/tomboy/sync/tomboyweb/server";
+ private const string usernamePrefPath =
+ "/apps/tomboy/sync/tomboyweb/username";
+ // TODO: Migrate to keyring or hash it or something!
+ private const string passwordPrefPath =
+ "/apps/tomboy/sync/tomboyweb/password";
+
+ private Gtk.Entry serverEntry;
+ private Gtk.Entry userEntry;
+ private Gtk.Entry passwordEntry;
public WebSyncServiceAddin ()
{
@@ -56,7 +66,11 @@ namespace Tomboy.WebSync
public override bool IsConfigured {
get {
- return true; // TODO: Implement configuration
+ string serverPref, userPref, passPref;
+ GetConfigSettings (out serverPref, out userPref, out passPref);
+ return !string.IsNullOrEmpty (serverPref) &&
+ !string.IsNullOrEmpty (userPref) &&
+ !string.IsNullOrEmpty (passPref);
}
}
@@ -68,13 +82,40 @@ namespace Tomboy.WebSync
public override Gtk.Widget CreatePreferencesControl ()
{
- return new Gtk.VBox ();
+ Gtk.Table prefsTable = new Gtk.Table (3, 2, false);
+ prefsTable.RowSpacing = 5;
+ prefsTable.ColumnSpacing = 10;
+
+ serverEntry = new Gtk.Entry ();
+ userEntry = new Gtk.Entry ();
+ passwordEntry = new Gtk.Entry ();
+
+ string serverPref, userPref, passPref;
+ GetConfigSettings (out serverPref, out userPref, out passPref);
+
+ serverEntry.Text = serverPref;
+ userEntry.Text = userPref;
+ passwordEntry.Text = passPref;
+ passwordEntry.Visibility = false;
+
+ AddRow (prefsTable, serverEntry, Catalog.GetString ("Se_rver:"), 0);
+ AddRow (prefsTable, userEntry, Catalog.GetString ("User_name:"), 1);
+ AddRow (prefsTable, passwordEntry, Catalog.GetString ("_Password:"), 2);
+
+ prefsTable.Show ();
+
+ // TODO: Add a section that shows the user something to verify they put
+ // in the right URL...something that constructs their user URL, maybe?
+
+ return prefsTable;
}
public override SyncServer CreateSyncServer ()
{
// TODO: What exactly do we need for connecting?
- return new WebSyncServer (serverUrl, userName);
+ string serverPref, userPref, passPref;
+ GetConfigSettings (out serverPref, out userPref, out passPref);
+ return new WebSyncServer (serverPref, userPref, passPref);
}
public override void PostSyncCleanup ()
@@ -83,12 +124,15 @@ namespace Tomboy.WebSync
public override void ResetConfiguration ()
{
- throw new System.NotImplementedException();
+ SaveConfigSettings (null, null, null);
}
public override bool SaveConfiguration ()
{
- // TODO: Implement
+ string serverPref, userPref, passPref;
+ GetPrefWidgetSettings (out serverPref, out userPref, out passPref);
+ SaveConfigSettings (serverPref, userPref, passPref);
+ // TODO: Validate config
return true;
}
@@ -103,6 +147,7 @@ namespace Tomboy.WebSync
public override void Shutdown ()
{
+ initialized = false;
}
public override bool Initialized {
@@ -110,5 +155,55 @@ namespace Tomboy.WebSync
}
#endregion
+
+ #region Private Members
+
+ private void GetPrefWidgetSettings (out string serverPref, out string userPref, out string passPref)
+ {
+ serverPref = serverEntry.Text.Trim ();
+ userPref = userEntry.Text.Trim ();
+ passPref = passwordEntry.Text.Trim ();
+ }
+
+ private void GetConfigSettings (out string serverPref, out string userPref, out string passPref)
+ {
+ serverPref = (string)
+ Preferences.Get (serverUrlPrefPath);
+ userPref = (string)
+ Preferences.Get (usernamePrefPath);
+ passPref = (string)
+ Preferences.Get (passwordPrefPath);
+ }
+
+ private void SaveConfigSettings (string serverPref, string userPref, string passPref)
+ {
+ Preferences.Set (serverUrlPrefPath, serverPref);
+ Preferences.Set (usernamePrefPath, userPref);
+ Preferences.Set (passwordPrefPath, passPref);
+ }
+
+ private void AddRow (Gtk.Table table, Gtk.Widget widget, string labelText, uint row)
+ {
+ Gtk.Label l = new Gtk.Label (labelText);
+ l.UseUnderline = true;
+ l.Xalign = 0.0f;
+ l.Show ();
+ table.Attach (l, 0, 1, row, row + 1,
+ Gtk.AttachOptions.Fill,
+ Gtk.AttachOptions.Expand | Gtk.AttachOptions.Fill,
+ 0, 0);
+
+ widget.Show ();
+ table.Attach (widget, 1, 2, row, row + 1,
+ Gtk.AttachOptions.Expand | Gtk.AttachOptions.Fill,
+ Gtk.AttachOptions.Expand | Gtk.AttachOptions.Fill,
+ 0, 0);
+
+ l.MnemonicWidget = widget;
+
+ // TODO: Tooltips
+ }
+
+ #endregion
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]