diff --git a/Outlook2013TodoAddIn/AppointmentsControl.cs b/Outlook2013TodoAddIn/AppointmentsControl.cs
index 89ef6fa..2fd0842 100644
--- a/Outlook2013TodoAddIn/AppointmentsControl.cs
+++ b/Outlook2013TodoAddIn/AppointmentsControl.cs
@@ -50,6 +50,11 @@ namespace Outlook2013TodoAddIn
set { this.apptCalendar.SelectedDate = value; }
}
+ ///
+ /// Gets/sets whether to show the tasks list
+ ///
+ public bool ShowTasks { get; set; }
+
#endregion "Properties"
#region "Methods"
@@ -69,33 +74,53 @@ namespace Outlook2013TodoAddIn
/// DateRangeEventArgs
private void apptCalendar_SelectedDateChanged(object sender, EventArgs e)
{
- this.RetrieveAppointments();
+ this.RetrieveData();
}
///
- /// Retrieves tasks for all stores
+ /// Retrieves appointments and tasks if configured
///
- public void RetrieveTasks()
+ public void RetrieveData()
{
- // We want tasks for all the accounts
- //foreach (Outlook.Store store in Globals.ThisAddIn.Application.Session.Stores)
- //{
- // // Get the Outlook to-do folder to retrieve the items
- // MessageBox.Show("Store: " + store.DisplayName);
- // // TODO: try..catch (public folders times out)
- Outlook.Folder todoFolder =
- Globals.ThisAddIn.Application.Session.GetDefaultFolder(
- Outlook.OlDefaultFolders.olFolderToDo)
- as Outlook.Folder;
- this.RetrieveTasksForFolder(todoFolder);
+ this.RetrieveAppointments();
+ if (this.ShowTasks)
+ {
+ // this.RetrieveTasks();
+ }
+ }
+
+ ///
+ /// Retrieves tasks for all selected stores
+ ///
+ private void RetrieveTasks()
+ {
+ List tasks = new List();
+ foreach (Outlook.Store store in Globals.ThisAddIn.Application.Session.Stores)
+ {
+ if (Properties.Settings.Default.Accounts != null && Properties.Settings.Default.Accounts.Contains(store.DisplayName))
+ {
+ Outlook.Folder todoFolder = store.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderToDo) as Outlook.Folder;
+ tasks.AddRange(this.RetrieveTasksForFolder(todoFolder));
+ // TODO: Shared calendars?
+ }
+ }
+ // We need to sort them because they may come from different accounts already ordered
+ // tasks.Sort(CompareTasks);
+
+ //Outlook.Folder todoFolder =
+ // Globals.ThisAddIn.Application.Session.GetDefaultFolder(
+ // Outlook.OlDefaultFolders.olFolderToDo)
+ // as Outlook.Folder;
+ //this.RetrieveTasksForFolder(todoFolder);
}
///
/// Retrieves to-do tasks for the folder on the specified store
///
/// Outlook folder
- private void RetrieveTasksForFolder(Outlook.Folder todoFolder)
+ private List RetrieveTasksForFolder(Outlook.Folder todoFolder)
{
+ List tasks = new List();
foreach (object item in todoFolder.Items)
{
if (item is Outlook.MailItem)
@@ -124,12 +149,13 @@ namespace Outlook2013TodoAddIn
MessageBox.Show("Unknown type");
}
}
+ return tasks;
}
///
/// Retrieve all appointments for the current configurations for all selected stores
///
- public void RetrieveAppointments()
+ private void RetrieveAppointments()
{
List appts = new List();
foreach (Outlook.Store store in Globals.ThisAddIn.Application.Session.Stores)
@@ -344,7 +370,7 @@ namespace Outlook2013TodoAddIn
// Open up the appointment in a new window
appt.Display(true); // Modal yes/no
}
- // At the end, synchronously "refresh" items in case they have changed
+ // At the end, synchronously "refresh" appointments in case they have changed
this.RetrieveAppointments();
}
}
@@ -411,7 +437,8 @@ namespace Outlook2013TodoAddIn
this.ShowPastAppointments = cfg.ShowPastAppointments;
this.Accounts = cfg.Accounts;
this.ShowFriendlyGroupHeaders = cfg.ShowFriendlyGroupHeaders;
- this.RetrieveAppointments();
+ this.ShowTasks = cfg.ShowTasks;
+ this.RetrieveData();
}
}
}
diff --git a/Outlook2013TodoAddIn/Forms/FormConfiguration.Designer.cs b/Outlook2013TodoAddIn/Forms/FormConfiguration.Designer.cs
index 6ecfe7b..bf54685 100644
--- a/Outlook2013TodoAddIn/Forms/FormConfiguration.Designer.cs
+++ b/Outlook2013TodoAddIn/Forms/FormConfiguration.Designer.cs
@@ -37,6 +37,7 @@
this.chkListCalendars = new System.Windows.Forms.CheckedListBox();
this.lblAccounts = new System.Windows.Forms.Label();
this.chkFriendlyGroupHeaders = new System.Windows.Forms.CheckBox();
+ this.chkShowTasks = new System.Windows.Forms.CheckBox();
((System.ComponentModel.ISupportInitialize)(this.numRangeDays)).BeginInit();
this.SuspendLayout();
//
@@ -84,7 +85,7 @@
// btnCancel
//
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.btnCancel.Location = new System.Drawing.Point(168, 291);
+ this.btnCancel.Location = new System.Drawing.Point(168, 314);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(87, 37);
this.btnCancel.TabIndex = 11;
@@ -94,7 +95,7 @@
// btnOK
//
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.btnOK.Location = new System.Drawing.Point(26, 291);
+ this.btnOK.Location = new System.Drawing.Point(26, 314);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(87, 37);
this.btnOK.TabIndex = 10;
@@ -115,7 +116,7 @@
// chkListCalendars
//
this.chkListCalendars.FormattingEnabled = true;
- this.chkListCalendars.Location = new System.Drawing.Point(26, 176);
+ this.chkListCalendars.Location = new System.Drawing.Point(26, 199);
this.chkListCalendars.Name = "chkListCalendars";
this.chkListCalendars.Size = new System.Drawing.Size(229, 106);
this.chkListCalendars.TabIndex = 13;
@@ -123,7 +124,7 @@
// lblAccounts
//
this.lblAccounts.AutoSize = true;
- this.lblAccounts.Location = new System.Drawing.Point(23, 156);
+ this.lblAccounts.Location = new System.Drawing.Point(23, 179);
this.lblAccounts.Name = "lblAccounts";
this.lblAccounts.Size = new System.Drawing.Size(70, 17);
this.lblAccounts.TabIndex = 14;
@@ -139,13 +140,24 @@
this.chkFriendlyGroupHeaders.Text = "Show Friendly Headers";
this.chkFriendlyGroupHeaders.UseVisualStyleBackColor = true;
//
+ // chkShowTasks
+ //
+ this.chkShowTasks.AutoSize = true;
+ this.chkShowTasks.Location = new System.Drawing.Point(45, 148);
+ this.chkShowTasks.Name = "chkShowTasks";
+ this.chkShowTasks.Size = new System.Drawing.Size(106, 21);
+ this.chkShowTasks.TabIndex = 16;
+ this.chkShowTasks.Text = "Show Tasks";
+ this.chkShowTasks.UseVisualStyleBackColor = true;
+ //
// FormConfiguration
//
this.AcceptButton = this.btnOK;
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnCancel;
- this.ClientSize = new System.Drawing.Size(282, 343);
+ this.ClientSize = new System.Drawing.Size(282, 383);
+ this.Controls.Add(this.chkShowTasks);
this.Controls.Add(this.chkFriendlyGroupHeaders);
this.Controls.Add(this.lblAccounts);
this.Controls.Add(this.chkListCalendars);
@@ -180,5 +192,6 @@
private System.Windows.Forms.CheckedListBox chkListCalendars;
private System.Windows.Forms.Label lblAccounts;
private System.Windows.Forms.CheckBox chkFriendlyGroupHeaders;
+ private System.Windows.Forms.CheckBox chkShowTasks;
}
}
\ No newline at end of file
diff --git a/Outlook2013TodoAddIn/Forms/FormConfiguration.cs b/Outlook2013TodoAddIn/Forms/FormConfiguration.cs
index 231152a..e703455 100644
--- a/Outlook2013TodoAddIn/Forms/FormConfiguration.cs
+++ b/Outlook2013TodoAddIn/Forms/FormConfiguration.cs
@@ -67,6 +67,15 @@ namespace Outlook2013TodoAddIn.Forms
set { this.chkFriendlyGroupHeaders.Checked = value; }
}
+ ///
+ /// Gets/sets whether to show the tasks list
+ ///
+ public bool ShowTasks
+ {
+ get { return this.chkShowTasks.Checked; }
+ set { this.chkShowTasks.Checked = value; }
+ }
+
#endregion "Properties"
#region "Methods"
@@ -90,6 +99,7 @@ namespace Outlook2013TodoAddIn.Forms
this.chkMailAlerts.Checked = Properties.Settings.Default.MailAlertsEnabled;
this.chkShowPastAppointments.Checked = Properties.Settings.Default.ShowPastAppointments;
this.chkFriendlyGroupHeaders.Checked = Properties.Settings.Default.ShowFriendlyGroupHeaders;
+ this.chkShowTasks.Checked = Properties.Settings.Default.ShowTasks;
this.LoadStores();
}
@@ -118,6 +128,7 @@ namespace Outlook2013TodoAddIn.Forms
Properties.Settings.Default.ShowPastAppointments = this.chkShowPastAppointments.Checked;
Properties.Settings.Default.Accounts = this.Accounts;
Properties.Settings.Default.ShowFriendlyGroupHeaders = this.chkFriendlyGroupHeaders.Checked;
+ Properties.Settings.Default.ShowTasks = this.chkShowTasks.Checked;
}
#endregion "Methods"
diff --git a/Outlook2013TodoAddIn/Properties/Settings.Designer.cs b/Outlook2013TodoAddIn/Properties/Settings.Designer.cs
index 4175c5b..2ce36a6 100644
--- a/Outlook2013TodoAddIn/Properties/Settings.Designer.cs
+++ b/Outlook2013TodoAddIn/Properties/Settings.Designer.cs
@@ -117,5 +117,17 @@ namespace Outlook2013TodoAddIn.Properties {
this["ShowFriendlyGroupHeaders"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("True")]
+ public bool ShowTasks {
+ get {
+ return ((bool)(this["ShowTasks"]));
+ }
+ set {
+ this["ShowTasks"] = value;
+ }
+ }
}
}
diff --git a/Outlook2013TodoAddIn/Properties/Settings.settings b/Outlook2013TodoAddIn/Properties/Settings.settings
index b849e14..853dd48 100644
--- a/Outlook2013TodoAddIn/Properties/Settings.settings
+++ b/Outlook2013TodoAddIn/Properties/Settings.settings
@@ -26,5 +26,8 @@
True
+
+ True
+
\ No newline at end of file
diff --git a/Outlook2013TodoAddIn/ThisAddIn.cs b/Outlook2013TodoAddIn/ThisAddIn.cs
index c16713d..568872a 100644
--- a/Outlook2013TodoAddIn/ThisAddIn.cs
+++ b/Outlook2013TodoAddIn/ThisAddIn.cs
@@ -44,6 +44,7 @@ namespace Outlook2013TodoAddIn
this.AppControl.ShowPastAppointments = Properties.Settings.Default.ShowPastAppointments;
this.AppControl.Accounts = Properties.Settings.Default.Accounts;
this.AppControl.ShowFriendlyGroupHeaders = Properties.Settings.Default.ShowFriendlyGroupHeaders;
+ this.AppControl.ShowTasks = Properties.Settings.Default.ShowTasks;
this.AppControl.NumDays = Properties.Settings.Default.NumDays; // Setting the value will load the appointments
ToDoTaskPane = this.CustomTaskPanes.Add(this.AppControl, "Appointments");
@@ -57,7 +58,7 @@ namespace Outlook2013TodoAddIn
// Selecting the date will retrieve the appointments
// Otherwise it'll take the one used when the designer changed!
this.AppControl.SelectedDate = DateTime.Today;
- // this.AppControl.RetrieveAppointments();
+ // this.AppControl.RetrieveData();
Globals.ThisAddIn.Application.ActiveExplorer().Deactivate += ThisAddIn_Deactivate;
diff --git a/Outlook2013TodoAddIn/app.config b/Outlook2013TodoAddIn/app.config
index 0390c6d..bcdff4c 100644
--- a/Outlook2013TodoAddIn/app.config
+++ b/Outlook2013TodoAddIn/app.config
@@ -28,6 +28,9 @@
True
+
+ True
+