tasque r30 - in branches/cache: . src
- From: calvinrg svn gnome org
- To: svn-commits-list gnome org
- Subject: tasque r30 - in branches/cache: . src
- Date: Sat, 15 Mar 2008 00:15:38 +0000 (GMT)
Author: calvinrg
Date: Sat Mar 15 00:15:38 2008
New Revision: 30
URL: http://svn.gnome.org/viewvc/tasque?rev=30&view=rev
Log:
* tasque.mdp, src/TaskTreeView.cs, src/LocalCache.cs,
src/AllCategory.cs, src/Category.cs, src/TaskModelNode.cs,
src/TaskWindow.cs, src/Makefile.am: fixed up things so there is a
single TreeView which currently sucks pond water
Added:
branches/cache/src/TaskModelNode.cs
Modified:
branches/cache/ChangeLog
branches/cache/src/AllCategory.cs
branches/cache/src/Category.cs
branches/cache/src/LocalCache.cs
branches/cache/src/Makefile.am
branches/cache/src/TaskTreeView.cs
branches/cache/src/TaskWindow.cs
branches/cache/tasque.mdp
Modified: branches/cache/src/AllCategory.cs
==============================================================================
--- branches/cache/src/AllCategory.cs (original)
+++ branches/cache/src/AllCategory.cs Sat Mar 15 00:15:38 2008
@@ -15,7 +15,7 @@
// specified lists will be shown.
List<string> categoriesToHide;
- public AllCategory () : base(Application.LocalCache, Catalog.GetString ("All"))
+ public AllCategory () : base()
{
Preferences preferences = Application.Preferences;
categoriesToHide =
@@ -23,6 +23,13 @@
Application.Preferences.SettingChanged += OnSettingChanged;
}
+ public override string Name
+ {
+ get {
+ return Catalog.GetString("All");
+ }
+ }
+
public new bool ContainsTask(Task task)
{
// Filter out tasks based on the user's preferences of which
Modified: branches/cache/src/Category.cs
==============================================================================
--- branches/cache/src/Category.cs (original)
+++ branches/cache/src/Category.cs Sat Mar 15 00:15:38 2008
@@ -16,7 +16,7 @@
get { return id; }
}
- public string Name
+ public virtual string Name
{
get {
string command = String.Format("SELECT Name FROM Categories where ID='{0}'", id);
@@ -54,6 +54,11 @@
this.cache = cache;
this.id = id;
}
+
+ internal Category ()
+ {
+ }
+
public bool ContainsTask(Task task)
{
Modified: branches/cache/src/LocalCache.cs
==============================================================================
--- branches/cache/src/LocalCache.cs (original)
+++ branches/cache/src/LocalCache.cs Sat Mar 15 00:15:38 2008
@@ -27,6 +27,22 @@
public event BackendSyncStartedHandler BackendSyncStarted;
public event BackendSyncFinishedHandler BackendSyncFinished;
+ //private TaskGroup overdueGroup;
+ //private TaskGroup todayGroup;
+ //private TaskGroup tomorrowGroup;
+ //private TaskGroup nextSevenDaysGroup;
+ //private TaskGroup futureGroup;
+ //private CompletedTaskGroup completedTaskGroup;
+
+ private Gtk.TreeIter overdueIter;
+ private Gtk.TreeIter todayIter;
+ private Gtk.TreeIter tomorrowIter;
+ private Gtk.TreeIter nextSevenDaysIter;
+ private Gtk.TreeIter futureIter;
+ private Gtk.TreeIter completedTaskIter;
+
+
+
Category defaultCategory;
//Category workCategory;
//Category projectsCategory;
@@ -35,7 +51,7 @@
{
initialized = false;
taskIters = new Dictionary<int, Gtk.TreeIter> ();
- taskStore = new Gtk.TreeStore (typeof (Task));
+ taskStore = new Gtk.TreeStore (typeof (TaskModelNode));
sortedTasksModel = new Gtk.TreeModelSort (taskStore);
sortedTasksModel.SetSortFunc (0, new Gtk.TreeIterCompareFunc (CompareTasksSortFunc));
@@ -265,7 +281,25 @@
Gtk.TreeIter iter;
Task newTask;
bool hasValues = false;
+
+ overdueIter = taskStore.AppendNode();
+ taskStore.SetValue(overdueIter, 0, new TaskModelNode(Catalog.GetString("Overdue")));
+
+ todayIter = taskStore.AppendNode();
+ taskStore.SetValue(todayIter, 0, new TaskModelNode(Catalog.GetString("Today")));
+ tomorrowIter = taskStore.AppendNode();
+ taskStore.SetValue(overdueIter, 0, new TaskModelNode(Catalog.GetString("Tomorrow")));
+
+ nextSevenDaysIter = taskStore.AppendNode();
+ taskStore.SetValue(tomorrowIter, 0, new TaskModelNode(Catalog.GetString("Next 7 Days")));
+
+ futureIter = taskStore.AppendNode();
+ taskStore.SetValue(futureIter, 0, new TaskModelNode(Catalog.GetString("Future")));
+
+ completedTaskIter = taskStore.AppendNode();
+ taskStore.SetValue(completedTaskIter, 0, new TaskModelNode(Catalog.GetString("Completed")));
+
string command = "SELECT id FROM Tasks";
SqliteCommand cmd = db.Connection.CreateCommand();
cmd.CommandText = command;
@@ -275,8 +309,8 @@
hasValues = true;
newTask = new Task(this, id);
- iter = taskStore.AppendNode();
- taskStore.SetValue (iter, 0, newTask);
+ iter = taskStore.AppendNode(overdueIter);
+ taskStore.SetValue (iter, 0, new TaskModelNode(newTask));
}
dataReader.Close();
@@ -289,7 +323,7 @@
newTask.DueDate = DateTime.Now;
newTask.Priority = TaskPriority.Medium;
iter = taskStore.AppendNode ();
- taskStore.SetValue (iter, 0, newTask);
+ taskStore.SetValue (iter, 0, new TaskModelNode(newTask));
taskIters [newTask.Id] = iter;
}
}
Modified: branches/cache/src/Makefile.am
==============================================================================
--- branches/cache/src/Makefile.am (original)
+++ branches/cache/src/Makefile.am Sat Mar 15 00:15:38 2008
@@ -62,6 +62,7 @@
$(srcdir)/Task.cs \
$(srcdir)/TaskCalendar.cs \
$(srcdir)/TaskGroup.cs \
+ $(srcdir)/TaskModelNode.cs \
$(srcdir)/TaskPriority.cs \
$(srcdir)/TaskState.cs \
$(srcdir)/TaskWindow.cs \
Added: branches/cache/src/TaskModelNode.cs
==============================================================================
--- (empty file)
+++ branches/cache/src/TaskModelNode.cs Sat Mar 15 00:15:38 2008
@@ -0,0 +1,51 @@
+// TaskModelNode.cs created with MonoDevelop
+// User: calvin at 4:29 PMÂ3/14/2008
+//
+// To change standard headers go to Edit->Preferences->Coding->Standard Headers
+//
+
+using System;
+using System.Collections.Generic;
+using Gtk;
+using Mono.Unix;
+
+namespace Tasque
+{
+ public class TaskModelNode
+ {
+ private Task task;
+ private string name;
+
+ public bool IsSeparator
+ {
+ get { return (task == null); }
+ }
+
+ public Task Task
+ {
+ get { return task; }
+ }
+
+ public string Name
+ {
+ get {
+ if(task == null)
+ return name;
+ else
+ return task.Name;
+ }
+ }
+
+
+ public TaskModelNode(Task task)
+ {
+ this.task = task;
+ }
+
+ public TaskModelNode(string name)
+ {
+ this.task = null;
+ this.name = name;
+ }
+ }
+}
Modified: branches/cache/src/TaskTreeView.cs
==============================================================================
--- branches/cache/src/TaskTreeView.cs (original)
+++ branches/cache/src/TaskTreeView.cs Sat Mar 15 00:15:38 2008
@@ -63,11 +63,30 @@
// TODO: Figure out how to turn off selection highlight
Gtk.CellRenderer renderer;
+
+ //
+ // Task Separator name Column
+ //
+ Gtk.TreeViewColumn column = new Gtk.TreeViewColumn ();
+ // Title for Task Name Column
+ column.Title = Catalog.GetString ("Separator Name");
+// column.Sizing = Gtk.TreeViewColumnSizing.Fixed;
+ column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
+ column.Expand = true;
+ column.Resizable = true;
+
+ renderer = new Gtk.CellRendererText ();
+ column.PackStart (renderer, true);
+ column.SetCellDataFunc (renderer,
+ new Gtk.TreeCellDataFunc (TaskSeparatorTextCellDataFunc));
+ ((Gtk.CellRendererText)renderer).Editable = false;
+
+ AppendColumn (column);
//
// Checkbox Column
//
- Gtk.TreeViewColumn column = new Gtk.TreeViewColumn ();
+ column = new Gtk.TreeViewColumn ();
// Title for Completed/Checkbox Column
column.Title = Catalog.GetString ("Completed");
column.Sizing = Gtk.TreeViewColumnSizing.Autosize;
@@ -272,12 +291,13 @@
Gtk.TreeIter iter)
{
Gtk.CellRendererToggle crt = cell as Gtk.CellRendererToggle;
- Task task = model.GetValue (iter, 0) as Task;
- if (task == null)
- crt.Active = false;
+ TaskModelNode node = model.GetValue (iter, 0) as TaskModelNode;
+ if (node == null || node.IsSeparator)
+ crt.Visible = false;
else {
+ crt.Visible = true;
crt.Active =
- task.State == TaskState.Active ? false : true;
+ node.Task.State == TaskState.Active ? false : true;
}
}
@@ -288,8 +308,13 @@
{
// TODO: Add bold (for high), light (for None), and also colors to priority?
Gtk.CellRendererCombo crc = cell as Gtk.CellRendererCombo;
- Task task = Model.GetValue (iter, 0) as Task;
- switch (task.Priority) {
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if(node.IsSeparator) {
+ crc.Text = string.Empty;
+ return;
+ }
+
+ switch (node.Task.Priority) {
case TaskPriority.Low:
crc.Text = Catalog.GetString ("3");
break;
@@ -305,20 +330,40 @@
}
}
+
+ private void TaskSeparatorTextCellDataFunc (Gtk.TreeViewColumn treeColumn,
+ Gtk.CellRenderer renderer, Gtk.TreeModel model,
+ Gtk.TreeIter iter)
+ {
+ Gtk.CellRendererText crt = renderer as Gtk.CellRendererText;
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if( (node == null) || (!node.IsSeparator) ) {
+ crt.Text = string.Empty;
+ return;
+ }
+
+ string formatString = "<span weight=\"bold\">{0}</span>";
+
+ crt.Markup = string.Format (formatString,
+ GLib.Markup.EscapeText (node.Name));
+ }
+
+
+
private void TaskNameTextCellDataFunc (Gtk.TreeViewColumn treeColumn,
Gtk.CellRenderer renderer, Gtk.TreeModel model,
Gtk.TreeIter iter)
{
Gtk.CellRendererText crt = renderer as Gtk.CellRendererText;
crt.Ellipsize = Pango.EllipsizeMode.End;
- Task task = model.GetValue (iter, 0) as Task;
- if (task == null) {
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if (node == null || node.IsSeparator) {
crt.Text = string.Empty;
return;
}
string formatString = "{0}";
- switch (task.State) {
+ switch (node.Task.State) {
case TaskState.Inactive:
// Strikeout the text
formatString = "<span strikethrough=\"true\">{0}</span>";
@@ -333,7 +378,7 @@
}
crt.Markup = string.Format (formatString,
- GLib.Markup.EscapeText (task.Name));
+ GLib.Markup.EscapeText (node.Task.Name));
}
protected virtual void DueDateCellDataFunc (Gtk.TreeViewColumn treeColumn,
@@ -341,10 +386,14 @@
Gtk.TreeIter iter)
{
Gtk.CellRendererCombo crc = renderer as Gtk.CellRendererCombo;
- Task task = Model.GetValue (iter, 0) as Task;
- DateTime date = task.State == TaskState.Completed ?
- task.CompletionDate :
- task.DueDate;
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if(node == null || node.IsSeparator) {
+ crc.Text = string.Empty;
+ return;
+ }
+ DateTime date = node.Task.State == TaskState.Completed ?
+ node.Task.CompletionDate :
+ node.Task.DueDate;
if (date == DateTime.MinValue || date == DateTime.MaxValue) {
crc.Text = "-";
return;
@@ -362,13 +411,13 @@
Gtk.TreeIter iter)
{
Gtk.CellRendererPixbuf crp = renderer as Gtk.CellRendererPixbuf;
- Task task = model.GetValue (iter, 0) as Task;
- if (task == null) {
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if (node == null || node.IsSeparator) {
crp.Pixbuf = null;
return;
}
- crp.Pixbuf = task.HasNotes ? notePixbuf : null;
+ crp.Pixbuf = node.Task.HasNotes ? notePixbuf : null;
}
private void TaskTimerCellDataFunc (Gtk.TreeViewColumn treeColumn,
@@ -376,11 +425,11 @@
Gtk.TreeIter iter)
{
Gtk.CellRendererPixbuf crp = renderer as Gtk.CellRendererPixbuf;
- Task task = model.GetValue (iter, 0) as Task;
- if (task == null)
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if (node == null || node.IsSeparator)
return;
- if (task.State != TaskState.Inactive) {
+ if (node.Task.State != TaskState.Inactive) {
// The task is not in the inactive state so don't show any icon
crp.Pixbuf = null;
return;
@@ -393,7 +442,7 @@
//Logger.Debug ("TaskTimerCellDataFunc ()\n\tNow.Ticks: {0}\n\tCompletionDate.Ticks: {1}",
// DateTime.Now.Ticks, task.CompletionDate.Ticks);
- long elapsedTicks = DateTime.Now.Ticks - task.CompletionDate.Ticks;
+ long elapsedTicks = DateTime.Now.Ticks - node.Task.CompletionDate.Ticks;
//Logger.Debug ("\tElapsed Ticks: {0}", elapsedTicks);
long elapsedMillis = elapsedTicks / 10000;
//Logger.Debug ("\tElapsed Milliseconds: {0}", elapsedMillis);
@@ -453,17 +502,23 @@
Gtk.TreeIter iter)
{
// Filter out deleted tasks
- Task task = model.GetValue (iter, 0) as Task;
+ TaskModelNode node = model.GetValue (iter, 0) as TaskModelNode;
- if (task.State == TaskState.Deleted) {
+ if(node == null)
+ return false;
+
+ if(node.IsSeparator)
+ return true;
+
+ if (node.Task.State == TaskState.Deleted) {
//Logger.Debug ("TaskTreeView.FilterFunc:\n\t{0}\n\t{1}\n\tReturning false", task.Name, task.State);
return false;
}
if (filterCategory == null)
return true;
-
- return filterCategory.ContainsTask (task);
+
+ return filterCategory.ContainsTask (node.Task);
}
#endregion // Private Methods
@@ -475,15 +530,15 @@
Gtk.TreePath path = new Gtk.TreePath (args.Path);
if (Model.GetIter (out iter, path) == false)
return; // Do nothing
-
- Task task = Model.GetValue (iter, 0) as Task;
- if (task == null)
+
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if (node == null)
return;
// remove any timer set up on this task
- InactivateTimer.CancelTimer(task);
+ InactivateTimer.CancelTimer(node.Task);
- if (task.State == TaskState.Active) {
+ if (node.Task.State == TaskState.Active) {
bool showCompletedTasks =
Application.Preferences.GetBool (
Preferences.ShowCompletedTasksKey);
@@ -492,20 +547,20 @@
// away. Otherwise, set a timer and show the timer animation
// before marking the task completed.
if (showCompletedTasks == true) {
- task.Complete ();
+ node.Task.Complete ();
} else {
- task.Inactivate ();
+ node.Task.Inactivate ();
// Read the inactivate timeout from a preference
int timeout =
Application.Preferences.GetInt (Preferences.InactivateTimeoutKey);
Logger.Debug ("Read timeout from prefs: {0}", timeout);
InactivateTimer timer =
- new InactivateTimer (this, iter, task, (uint) timeout);
+ new InactivateTimer (this, iter, node.Task, (uint) timeout);
timer.StartTimer ();
}
} else {
- task.Activate ();
+ node.Task.Activate ();
}
}
@@ -527,9 +582,10 @@
newPriority = TaskPriority.None;
// Update the priority if it's different
- Task task = Model.GetValue (iter, 0) as Task;
- if (task.Priority != newPriority)
- task.Priority = newPriority;
+
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if (node.Task.Priority != newPriority)
+ node.Task.Priority = newPriority;
}
void OnTaskNameEdited (object sender, Gtk.EditedArgs args)
@@ -539,27 +595,27 @@
if (Model.GetIter (out iter, path) == false)
return;
- Task task = Model.GetValue (iter, 0) as Task;
- if (task == null)
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
+ if (node == null)
return;
string newText = args.NewText;
// Attempt to derive due date information from text.
if (Application.Preferences.GetBool (Preferences.ParseDateEnabledKey) &&
- task.State == TaskState.Active &&
- task.DueDate == DateTime.MinValue) {
+ node.Task.State == TaskState.Active &&
+ node.Task.DueDate == DateTime.MinValue) {
string parsedTaskText;
DateTime parsedDueDate;
Utilities.ParseTaskText (newText, out parsedTaskText, out parsedDueDate);
if (parsedDueDate != DateTime.MinValue)
- task.DueDate = parsedDueDate;
+ node.Task.DueDate = parsedDueDate;
newText = parsedTaskText;
}
- task.Name = newText;
+ node.Task.Name = newText;
}
/// <summary>
@@ -595,7 +651,7 @@
DateTime newDate = DateTime.MinValue;
DateTime today = DateTime.Now;
- Task task = Model.GetValue (iter, 0) as Task;
+ TaskModelNode node = Model.GetValue (iter, 0) as TaskModelNode;
if (args.NewText.CompareTo (
today.ToString(Catalog.GetString("M/d - ")) + Catalog.GetString("Today") ) == 0)
@@ -609,7 +665,7 @@
today.AddDays(7).ToString(Catalog.GetString("M/d - ")) + Catalog.GetString("In 1 Week") ) == 0)
newDate = today.AddDays (7);
else if (args.NewText.CompareTo (Catalog.GetString ("Choose Date...")) == 0) {
- TaskCalendar tc = new TaskCalendar(task, this.Parent);
+ TaskCalendar tc = new TaskCalendar(node.Task, this.Parent);
tc.ShowCalendar();
return;
} else {
@@ -623,12 +679,12 @@
}
}
- if (task.State == TaskState.Completed) {
+ if (node.Task.State == TaskState.Completed) {
// Modify the completion date
- task.CompletionDate = newDate;
+ node.Task.CompletionDate = newDate;
} else {
// Modify the due date
- task.DueDate = newDate;
+ node.Task.DueDate = newDate;
}
}
Modified: branches/cache/src/TaskWindow.cs
==============================================================================
--- branches/cache/src/TaskWindow.cs (original)
+++ branches/cache/src/TaskWindow.cs Sat Mar 15 00:15:38 2008
@@ -52,12 +52,12 @@
private Gtk.ComboBox categoryComboBox;
private Gtk.VBox targetVBox;
- private TaskGroup overdueGroup;
- private TaskGroup todayGroup;
- private TaskGroup tomorrowGroup;
- private TaskGroup nextSevenDaysGroup;
- private TaskGroup futureGroup;
- private CompletedTaskGroup completedTaskGroup;
+ //private TaskGroup overdueGroup;
+ //private TaskGroup todayGroup;
+ //private TaskGroup tomorrowGroup;
+ //private TaskGroup nextSevenDaysGroup;
+ //private TaskGroup futureGroup;
+ //private CompletedTaskGroup completedTaskGroup;
private List<TaskGroup> taskGroups;
@@ -72,6 +72,8 @@
private Gtk.AccelGroup accelGroup;
private GlobalKeybinder globalKeys;
+ private TaskTreeView taskTreeView;
+
static TaskWindow ()
{
noteIcon = Utilities.GetIcon ("note", 16);
@@ -254,8 +256,16 @@
rangeEnd = DateTime.Now.AddDays (-1);
rangeEnd = new DateTime (rangeEnd.Year, rangeEnd.Month, rangeEnd.Day,
23, 59, 59);
+
+ //
+ // Group TreeView
+ //
+ taskTreeView = new TaskTreeView (Application.LocalCache.Tasks);
+ taskTreeView.Show ();
+ targetVBox.PackStart (taskTreeView, true, true, 0);
+
- overdueGroup = new TaskGroup (Catalog.GetString ("Overdue"),
+/* overdueGroup = new TaskGroup (Catalog.GetString ("Overdue"),
rangeStart, rangeEnd,
Application.LocalCache.Tasks);
overdueGroup.RowActivated += OnRowActivated;
@@ -349,7 +359,7 @@
targetVBox.PackStart (completedTaskGroup, false, false, 0);
taskGroups.Add (completedTaskGroup);
-
+*/
//manualTarget = new TargetService();
//manualTarget.Show ();
//mainVBox.PackStart(manualTarget, false, false, 0);
@@ -939,12 +949,12 @@
categoryComboBox.Model.GetValue (iter, 0) as Category;
// Update the TaskGroups so they can filter accordingly
- overdueGroup.Refilter (category);
- todayGroup.Refilter (category);
- tomorrowGroup.Refilter (category);
- nextSevenDaysGroup.Refilter (category);
- futureGroup.Refilter (category);
- completedTaskGroup.Refilter (category);
+ //overdueGroup.Refilter (category);
+ //todayGroup.Refilter (category);
+ //tomorrowGroup.Refilter (category);
+ //nextSevenDaysGroup.Refilter (category);
+ //futureGroup.Refilter (category);
+ //completedTaskGroup.Refilter (category);
// Save the selected category in preferences
Application.Preferences.Set (Preferences.SelectedCategoryKey,
Modified: branches/cache/tasque.mdp
==============================================================================
--- branches/cache/tasque.mdp (original)
+++ branches/cache/tasque.mdp Sat Mar 15 00:15:38 2008
@@ -62,6 +62,7 @@
<File name="src/Category.cs" subtype="Code" buildaction="Compile" />
<File name="src/LocalCache.cs" subtype="Code" buildaction="Compile" />
<File name="src/Database.cs" subtype="Code" buildaction="Compile" />
+ <File name="src/TaskModelNode.cs" subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="glib-sharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]