mirror of
https://github.com/Kopano-dev/kopano-ol-extension.git
synced 2023-10-10 13:37:40 +02:00
[KOE-124] UI improvements
This commit is contained in:
parent
6d50679269
commit
3736d8d320
@ -49,6 +49,7 @@
|
|||||||
this.checkReminders = new System.Windows.Forms.CheckBox();
|
this.checkReminders = new System.Windows.Forms.CheckBox();
|
||||||
this._labelPermissions = new System.Windows.Forms.Label();
|
this._labelPermissions = new System.Windows.Forms.Label();
|
||||||
this.dialogButtons = new Acacia.Controls.KDialogButtons();
|
this.dialogButtons = new Acacia.Controls.KDialogButtons();
|
||||||
|
this._labelRestartRequired = new System.Windows.Forms.Label();
|
||||||
this._layout.SuspendLayout();
|
this._layout.SuspendLayout();
|
||||||
this._mainBusyHider.SuspendLayout();
|
this._mainBusyHider.SuspendLayout();
|
||||||
this._layoutMain.SuspendLayout();
|
this._layoutMain.SuspendLayout();
|
||||||
@ -136,7 +137,7 @@
|
|||||||
resources.ApplyResources(this._layoutOptions, "_layoutOptions");
|
resources.ApplyResources(this._layoutOptions, "_layoutOptions");
|
||||||
this._layoutOptions.Controls.Add(this._labelWholeStore, 0, 0);
|
this._layoutOptions.Controls.Add(this._labelWholeStore, 0, 0);
|
||||||
this._layoutOptions.Controls.Add(this.checkWholeStore, 1, 0);
|
this._layoutOptions.Controls.Add(this.checkWholeStore, 1, 0);
|
||||||
this._layoutOptions.Controls.Add(this.labelPermissionsValue, 0, 4);
|
this._layoutOptions.Controls.Add(this.labelPermissionsValue, 1, 4);
|
||||||
this._layoutOptions.Controls.Add(this._labelName, 0, 1);
|
this._layoutOptions.Controls.Add(this._labelName, 0, 1);
|
||||||
this._layoutOptions.Controls.Add(this.textName, 1, 1);
|
this._layoutOptions.Controls.Add(this.textName, 1, 1);
|
||||||
this._layoutOptions.Controls.Add(this._labelSendAs, 0, 2);
|
this._layoutOptions.Controls.Add(this._labelSendAs, 0, 2);
|
||||||
@ -144,6 +145,7 @@
|
|||||||
this._layoutOptions.Controls.Add(this._labelReminders, 0, 3);
|
this._layoutOptions.Controls.Add(this._labelReminders, 0, 3);
|
||||||
this._layoutOptions.Controls.Add(this.checkReminders, 1, 3);
|
this._layoutOptions.Controls.Add(this.checkReminders, 1, 3);
|
||||||
this._layoutOptions.Controls.Add(this._labelPermissions, 0, 4);
|
this._layoutOptions.Controls.Add(this._labelPermissions, 0, 4);
|
||||||
|
this._layoutOptions.Controls.Add(this._labelRestartRequired, 2, 0);
|
||||||
this._layoutOptions.Name = "_layoutOptions";
|
this._layoutOptions.Name = "_layoutOptions";
|
||||||
//
|
//
|
||||||
// _labelWholeStore
|
// _labelWholeStore
|
||||||
@ -154,6 +156,7 @@
|
|||||||
// checkWholeStore
|
// checkWholeStore
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.checkWholeStore, "checkWholeStore");
|
resources.ApplyResources(this.checkWholeStore, "checkWholeStore");
|
||||||
|
this.checkWholeStore.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||||
this.checkWholeStore.Name = "checkWholeStore";
|
this.checkWholeStore.Name = "checkWholeStore";
|
||||||
this.checkWholeStore.UseVisualStyleBackColor = true;
|
this.checkWholeStore.UseVisualStyleBackColor = true;
|
||||||
this.checkWholeStore.CheckedChanged += new System.EventHandler(this.checkWholeStore_CheckedChanged);
|
this.checkWholeStore.CheckedChanged += new System.EventHandler(this.checkWholeStore_CheckedChanged);
|
||||||
@ -161,6 +164,7 @@
|
|||||||
// labelPermissionsValue
|
// labelPermissionsValue
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this.labelPermissionsValue, "labelPermissionsValue");
|
resources.ApplyResources(this.labelPermissionsValue, "labelPermissionsValue");
|
||||||
|
this._layoutOptions.SetColumnSpan(this.labelPermissionsValue, 2);
|
||||||
this.labelPermissionsValue.Name = "labelPermissionsValue";
|
this.labelPermissionsValue.Name = "labelPermissionsValue";
|
||||||
//
|
//
|
||||||
// _labelName
|
// _labelName
|
||||||
@ -170,6 +174,7 @@
|
|||||||
//
|
//
|
||||||
// textName
|
// textName
|
||||||
//
|
//
|
||||||
|
this._layoutOptions.SetColumnSpan(this.textName, 2);
|
||||||
resources.ApplyResources(this.textName, "textName");
|
resources.ApplyResources(this.textName, "textName");
|
||||||
this.textName.Name = "textName";
|
this.textName.Name = "textName";
|
||||||
this.textName.TextChanged += new System.EventHandler(this.textName_TextChanged);
|
this.textName.TextChanged += new System.EventHandler(this.textName_TextChanged);
|
||||||
@ -214,6 +219,11 @@
|
|||||||
this.dialogButtons.Name = "dialogButtons";
|
this.dialogButtons.Name = "dialogButtons";
|
||||||
this.dialogButtons.Apply += new System.EventHandler(this.dialogButtons_Apply);
|
this.dialogButtons.Apply += new System.EventHandler(this.dialogButtons_Apply);
|
||||||
//
|
//
|
||||||
|
// _labelRestartRequired
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this._labelRestartRequired, "_labelRestartRequired");
|
||||||
|
this._labelRestartRequired.Name = "_labelRestartRequired";
|
||||||
|
//
|
||||||
// SharedFoldersDialog
|
// SharedFoldersDialog
|
||||||
//
|
//
|
||||||
resources.ApplyResources(this, "$this");
|
resources.ApplyResources(this, "$this");
|
||||||
@ -259,5 +269,6 @@
|
|||||||
private System.Windows.Forms.CheckBox checkReminders;
|
private System.Windows.Forms.CheckBox checkReminders;
|
||||||
private System.Windows.Forms.CheckBox checkWholeStore;
|
private System.Windows.Forms.CheckBox checkWholeStore;
|
||||||
private System.Windows.Forms.Label labelPermissionsValue;
|
private System.Windows.Forms.Label labelPermissionsValue;
|
||||||
|
private System.Windows.Forms.Label _labelRestartRequired;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -93,10 +93,17 @@ namespace Acacia.Features.SharedFolders
|
|||||||
private readonly ZPushAccount _account;
|
private readonly ZPushAccount _account;
|
||||||
private readonly SharedFoldersManager _folders;
|
private readonly SharedFoldersManager _folders;
|
||||||
private readonly SyncId _initialSyncId;
|
private readonly SyncId _initialSyncId;
|
||||||
|
private ZPushAccount _initialAccount;
|
||||||
private SharedFolder _initialFolder;
|
private SharedFolder _initialFolder;
|
||||||
|
|
||||||
public SharedFoldersDialog(FeatureSharedFolders feature, ZPushAccount account, SyncId initial = null)
|
public SharedFoldersDialog(FeatureSharedFolders feature, ZPushAccount account, SyncId initial = null)
|
||||||
{
|
{
|
||||||
|
// If this is a shared store, open the account it's a share for, with the request account as the initial
|
||||||
|
if (account.ShareFor != null)
|
||||||
|
{
|
||||||
|
_initialAccount = account;
|
||||||
|
account = account.ShareForAccount;
|
||||||
|
}
|
||||||
this._account = account;
|
this._account = account;
|
||||||
this._folders = feature.Manage(account);
|
this._folders = feature.Manage(account);
|
||||||
this._initialSyncId = initial;
|
this._initialSyncId = initial;
|
||||||
@ -142,6 +149,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
.New((ctx) =>
|
.New((ctx) =>
|
||||||
{
|
{
|
||||||
// TODO: bind cancellation token to Cancel button
|
// TODO: bind cancellation token to Cancel button
|
||||||
|
|
||||||
// Fetch current shares
|
// Fetch current shares
|
||||||
ICollection<SharedFolder> folders = _folders.GetCurrentShares(ctx.CancellationToken);
|
ICollection<SharedFolder> folders = _folders.GetCurrentShares(ctx.CancellationToken);
|
||||||
|
|
||||||
@ -175,12 +183,18 @@ namespace Acacia.Features.SharedFolders
|
|||||||
// Add public folders
|
// Add public folders
|
||||||
Dictionary<BackendId, SharedFolder> publicShares;
|
Dictionary<BackendId, SharedFolder> publicShares;
|
||||||
shares.TryGetValue(GABUser.USER_PUBLIC, out publicShares);
|
shares.TryGetValue(GABUser.USER_PUBLIC, out publicShares);
|
||||||
AddUserFolders(GABUser.USER_PUBLIC, publicShares, false);
|
AddUserFolders(GABUser.USER_PUBLIC, false, publicShares, false);
|
||||||
|
|
||||||
|
// Add shared stores
|
||||||
|
foreach (ZPushAccount shared in _account.SharedAccounts)
|
||||||
|
{
|
||||||
|
AddUserFolders(new GABUser(shared.ShareUserName), true, null, false);
|
||||||
|
}
|
||||||
|
|
||||||
// Add any users for which we have shared folders
|
// Add any users for which we have shared folders
|
||||||
foreach (KeyValuePair<GABUser, Dictionary<BackendId, SharedFolder>> entry in shares.OrderBy(x => x.Key.DisplayName))
|
foreach (KeyValuePair<GABUser, Dictionary<BackendId, SharedFolder>> entry in shares.OrderBy(x => x.Key.DisplayName))
|
||||||
if (GABUser.USER_PUBLIC != entry.Key)
|
if (GABUser.USER_PUBLIC != entry.Key)
|
||||||
AddUserFolders(entry.Key, entry.Value, false);
|
AddUserFolders(entry.Key, false, entry.Value, false);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
@ -206,6 +220,14 @@ namespace Acacia.Features.SharedFolders
|
|||||||
}
|
}
|
||||||
SetInitialFocus(kTreeFolders);
|
SetInitialFocus(kTreeFolders);
|
||||||
}
|
}
|
||||||
|
else if (_initialAccount != null)
|
||||||
|
{
|
||||||
|
StoreTreeNode node;
|
||||||
|
if (_userFolders.TryGetValue(new GABUser(_initialAccount.ShareUserName), out node))
|
||||||
|
{
|
||||||
|
FocusNode(node, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetInitialFocus(gabLookup);
|
SetInitialFocus(gabLookup);
|
||||||
@ -237,6 +259,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
|
|
||||||
foreach (StoreTreeNode storeNode in _userFolders.Values)
|
foreach (StoreTreeNode storeNode in _userFolders.Values)
|
||||||
{
|
{
|
||||||
|
// Check modified folders
|
||||||
if (storeNode.IsDirty)
|
if (storeNode.IsDirty)
|
||||||
{
|
{
|
||||||
ctx.AddBusy(1);
|
ctx.AddBusy(1);
|
||||||
@ -245,6 +268,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
_folders.SetSharesForStore(storeNode.User, storeNode.CurrentShares, ctx.CancellationToken);
|
_folders.SetSharesForStore(storeNode.User, storeNode.CurrentShares, ctx.CancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// And modified stores
|
||||||
if (storeNode.IsWholeStoreDirty)
|
if (storeNode.IsWholeStoreDirty)
|
||||||
{
|
{
|
||||||
state.stores.Add(storeNode);
|
state.stores.Add(storeNode);
|
||||||
@ -272,6 +296,23 @@ namespace Acacia.Features.SharedFolders
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (state.stores.Count > 0)
|
if (state.stores.Count > 0)
|
||||||
|
{
|
||||||
|
List<StoreTreeNode> add = new List<StoreTreeNode>();
|
||||||
|
|
||||||
|
// Remove any unshared store
|
||||||
|
foreach (StoreTreeNode store in state.stores)
|
||||||
|
{
|
||||||
|
if (store.WantShare)
|
||||||
|
{
|
||||||
|
add.Add(store);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for any new stores
|
||||||
|
if (add.Count > 0)
|
||||||
{
|
{
|
||||||
bool restart = MessageBox.Show(ThisAddIn.Instance.Window,
|
bool restart = MessageBox.Show(ThisAddIn.Instance.Window,
|
||||||
"Outlook will be restarted to open the new stores",
|
"Outlook will be restarted to open the new stores",
|
||||||
@ -294,6 +335,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
restarter.OpenShare(_account, node.User);
|
restarter.OpenShare(_account, node.User);
|
||||||
restarter.Restart();
|
restarter.Restart();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}, true)
|
}, true)
|
||||||
.OnError((x) =>
|
.OnError((x) =>
|
||||||
{
|
{
|
||||||
@ -311,7 +353,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
|
|
||||||
private void buttonOpenUser_Click(object sender, EventArgs e)
|
private void buttonOpenUser_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AddUserFolders(gabLookup.SelectedUser, null, true);
|
AddUserFolders(gabLookup.SelectedUser, false, null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void gabLookup_SelectedUserChanged(object source, GABLookupControl.SelectedUserEventArgs e)
|
private void gabLookup_SelectedUserChanged(object source, GABLookupControl.SelectedUserEventArgs e)
|
||||||
@ -320,7 +362,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
|
|
||||||
if (e.IsChosen)
|
if (e.IsChosen)
|
||||||
{
|
{
|
||||||
AddUserFolders(e.SelectedUser, null, true);
|
AddUserFolders(e.SelectedUser, false, null, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -338,7 +380,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
|
|
||||||
private readonly Dictionary<GABUser, StoreTreeNode> _userFolders = new Dictionary<GABUser, StoreTreeNode>();
|
private readonly Dictionary<GABUser, StoreTreeNode> _userFolders = new Dictionary<GABUser, StoreTreeNode>();
|
||||||
|
|
||||||
private void AddUserFolders(GABUser user, Dictionary<BackendId, SharedFolder> currentShares, bool select)
|
private void AddUserFolders(GABUser user, bool wholeStore, Dictionary<BackendId, SharedFolder> currentShares, bool select)
|
||||||
{
|
{
|
||||||
if (user == null)
|
if (user == null)
|
||||||
return;
|
return;
|
||||||
@ -355,7 +397,9 @@ namespace Acacia.Features.SharedFolders
|
|||||||
|
|
||||||
// Add the node
|
// Add the node
|
||||||
node = new StoreTreeNode(_folders, gabLookup.GAB,
|
node = new StoreTreeNode(_folders, gabLookup.GAB,
|
||||||
user, user.DisplayName, currentShares ?? new Dictionary<BackendId, SharedFolder>());
|
user, user.DisplayName, currentShares ?? new Dictionary<BackendId, SharedFolder>(),
|
||||||
|
wholeStore);
|
||||||
|
if (wholeStore)
|
||||||
node.DirtyChanged += UserSharesChanged;
|
node.DirtyChanged += UserSharesChanged;
|
||||||
node.CheckStateChanged += WholeStoreShareChanged;
|
node.CheckStateChanged += WholeStoreShareChanged;
|
||||||
_userFolders.Add(user, node);
|
_userFolders.Add(user, node);
|
||||||
|
@ -307,7 +307,7 @@
|
|||||||
<value>GrowAndShrink</value>
|
<value>GrowAndShrink</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_layoutOptions.ColumnCount" type="System.Int32, mscorlib">
|
<data name="_layoutOptions.ColumnCount" type="System.Int32, mscorlib">
|
||||||
<value>2</value>
|
<value>3</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_labelWholeStore.AutoSize" type="System.Boolean, mscorlib">
|
<data name="_labelWholeStore.AutoSize" type="System.Boolean, mscorlib">
|
||||||
<value>True</value>
|
<value>True</value>
|
||||||
@ -402,9 +402,6 @@
|
|||||||
<data name="labelPermissionsValue.TabIndex" type="System.Int32, mscorlib">
|
<data name="labelPermissionsValue.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>8</value>
|
<value>8</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="labelPermissionsValue.Text" xml:space="preserve">
|
|
||||||
<value>Share as</value>
|
|
||||||
</data>
|
|
||||||
<data name="labelPermissionsValue.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
<data name="labelPermissionsValue.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||||
<value>MiddleLeft</value>
|
<value>MiddleLeft</value>
|
||||||
</data>
|
</data>
|
||||||
@ -648,6 +645,39 @@
|
|||||||
<data name=">>_labelPermissions.ZOrder" xml:space="preserve">
|
<data name=">>_labelPermissions.ZOrder" xml:space="preserve">
|
||||||
<value>9</value>
|
<value>9</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="_labelRestartRequired.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
|
<value>Fill</value>
|
||||||
|
</data>
|
||||||
|
<data name="_labelRestartRequired.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>123, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="_labelRestartRequired.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>322, 27</value>
|
||||||
|
</data>
|
||||||
|
<data name="_labelRestartRequired.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
|
<data name="_labelRestartRequired.Text" xml:space="preserve">
|
||||||
|
<value>(Requires restart)</value>
|
||||||
|
</data>
|
||||||
|
<data name="_labelRestartRequired.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||||
|
<value>MiddleLeft</value>
|
||||||
|
</data>
|
||||||
|
<data name="_labelRestartRequired.Visible" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>_labelRestartRequired.Name" xml:space="preserve">
|
||||||
|
<value>_labelRestartRequired</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>_labelRestartRequired.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>_labelRestartRequired.Parent" xml:space="preserve">
|
||||||
|
<value>_layoutOptions</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>_labelRestartRequired.ZOrder" xml:space="preserve">
|
||||||
|
<value>10</value>
|
||||||
|
</data>
|
||||||
<data name="_layoutOptions.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="_layoutOptions.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
</data>
|
</data>
|
||||||
@ -679,7 +709,7 @@
|
|||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_layoutOptions.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
<data name="_layoutOptions.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
||||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="_labelWholeStore" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkWholeStore" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelPermissionsValue" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="_labelName" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="textName" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="_labelSendAs" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkSendAs" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="_labelReminders" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkReminders" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="_labelPermissions" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,Percent,100" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="_labelWholeStore" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkWholeStore" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="labelPermissionsValue" Row="4" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="_labelName" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="textName" Row="1" RowSpan="1" Column="1" ColumnSpan="2" /><Control Name="_labelSendAs" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkSendAs" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="_labelReminders" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="checkReminders" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /><Control Name="_labelPermissions" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="_labelRestartRequired" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /></Controls><Columns Styles="AutoSize,0,AutoSize,0,Percent,100" /><Rows Styles="AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,AutoSize,0,Absolute,20" /></TableLayoutSettings></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="_layoutMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
<data name="_layoutMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||||
<value>Fill</value>
|
<value>Fill</value>
|
||||||
|
@ -47,9 +47,10 @@ namespace Acacia.Features.SharedFolders
|
|||||||
private readonly GABUser _user;
|
private readonly GABUser _user;
|
||||||
|
|
||||||
public readonly bool IsReadOnly;
|
public readonly bool IsReadOnly;
|
||||||
|
public readonly bool IsShared;
|
||||||
|
|
||||||
public StoreTreeNode(SharedFoldersManager folders, GABHandler gab, GABUser user, string text,
|
public StoreTreeNode(SharedFoldersManager folders, GABHandler gab, GABUser user, string text,
|
||||||
Dictionary<BackendId, SharedFolder> currentFolders)
|
Dictionary<BackendId, SharedFolder> currentFolders, bool isShared)
|
||||||
:
|
:
|
||||||
base(text)
|
base(text)
|
||||||
{
|
{
|
||||||
@ -58,6 +59,7 @@ namespace Acacia.Features.SharedFolders
|
|||||||
this._gab = gab;
|
this._gab = gab;
|
||||||
this._user = user;
|
this._user = user;
|
||||||
this.IsReadOnly = false;
|
this.IsReadOnly = false;
|
||||||
|
this.IsShared = isShared;
|
||||||
|
|
||||||
// Create an empty current state. When loading the nodes, the shares will be added. This has the benefit of
|
// Create an empty current state. When loading the nodes, the shares will be added. This has the benefit of
|
||||||
// cleaning up automatically any obsolote shares.
|
// cleaning up automatically any obsolote shares.
|
||||||
@ -80,6 +82,9 @@ namespace Acacia.Features.SharedFolders
|
|||||||
ChildLoader.Reload();
|
ChildLoader.Reload();
|
||||||
};
|
};
|
||||||
Control = _reloader;
|
Control = _reloader;
|
||||||
|
|
||||||
|
// Set up sharing
|
||||||
|
WantShare = isShared;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void ApplyReadOnly(KTreeNode node, bool isReadOnly)
|
private static void ApplyReadOnly(KTreeNode node, bool isReadOnly)
|
||||||
@ -92,11 +97,6 @@ namespace Acacia.Features.SharedFolders
|
|||||||
get { return ((UserFolderLoader)ChildLoader).User; }
|
get { return ((UserFolderLoader)ChildLoader).User; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsShared
|
|
||||||
{
|
|
||||||
get { return false; }
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool WantShare
|
public bool WantShare
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -46,6 +46,7 @@ namespace Acacia
|
|||||||
public const string REG_VAL_CURRENT_SIGNATURE = "KOE Signature Digest";
|
public const string REG_VAL_CURRENT_SIGNATURE = "KOE Signature Digest";
|
||||||
|
|
||||||
public const string REG_VAL_NEXT_ACCOUNT_ID = "NextAccountID";
|
public const string REG_VAL_NEXT_ACCOUNT_ID = "NextAccountID";
|
||||||
|
public const string REG_VAL_KOE_SHARE_FOR = "KOE Share For";
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
@ -72,5 +72,7 @@ namespace Acacia.Stubs
|
|||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string ShareFor {get;}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -284,6 +284,14 @@ namespace Acacia.Stubs.OutlookWrappers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string ShareFor
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return RegistryUtil.GetValueString(_regPath, OutlookConstants.REG_VAL_KOE_SHARE_FOR, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,10 +36,12 @@ namespace Acacia.ZPush
|
|||||||
{
|
{
|
||||||
#region Miscellaneous
|
#region Miscellaneous
|
||||||
|
|
||||||
|
private readonly ZPushAccounts _zPushAccounts;
|
||||||
private readonly IAccount _account;
|
private readonly IAccount _account;
|
||||||
|
|
||||||
internal ZPushAccount(IAccount account)
|
internal ZPushAccount(ZPushAccounts zPushAccounts, IAccount account)
|
||||||
{
|
{
|
||||||
|
this._zPushAccounts = zPushAccounts;
|
||||||
this._account = account;
|
this._account = account;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,5 +208,62 @@ namespace Acacia.ZPush
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region Account sharing
|
||||||
|
|
||||||
|
public string ShareFor
|
||||||
|
{
|
||||||
|
get { return Account.ShareFor; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ShareUserName
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (ShareFor == null)
|
||||||
|
return null;
|
||||||
|
int index = Account.UserName.IndexOf("+share+");
|
||||||
|
if (index < 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return Account.UserName.Substring(index + 7);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
|
public ZPushAccount ShareForAccount
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (Account.ShareFor == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return _zPushAccounts.GetAccount(Account.ShareFor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Browsable(false)]
|
||||||
|
public ZPushAccount[] SharedAccounts
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (ShareFor != null)
|
||||||
|
return new ZPushAccount[0];
|
||||||
|
|
||||||
|
List<ZPushAccount> shares = new List<ZPushAccount>();
|
||||||
|
foreach (ZPushAccount account in _zPushAccounts.GetAccounts())
|
||||||
|
{
|
||||||
|
if (account == this)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (account.ShareFor != null && account.ShareFor == this.Account.SmtpAddress)
|
||||||
|
shares.Add(account);
|
||||||
|
}
|
||||||
|
|
||||||
|
return shares.ToArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ namespace Acacia.ZPush
|
|||||||
// Only EAS accounts can be zpush accounts
|
// Only EAS accounts can be zpush accounts
|
||||||
if (account.AccountType == AccountType.EAS)
|
if (account.AccountType == AccountType.EAS)
|
||||||
{
|
{
|
||||||
ZPushAccount zpush = new ZPushAccount(account);
|
ZPushAccount zpush = new ZPushAccount(this, account);
|
||||||
_accountsByStoreId.Add(account.StoreID, zpush);
|
_accountsByStoreId.Add(account.StoreID, zpush);
|
||||||
_accountsBySmtp.Add(account.SmtpAddress, zpush);
|
_accountsBySmtp.Add(account.SmtpAddress, zpush);
|
||||||
Logger.Instance.Trace(this, "ZPush account: {0}", zpush);
|
Logger.Instance.Trace(this, "ZPush account: {0}", zpush);
|
||||||
|
Loading…
Reference in New Issue
Block a user