Skip to content

Commit

Permalink
Add a signal_prefix variable to the gtd.Base class
Browse files Browse the repository at this point in the history
This avoids the need to overload various methods just to be able to emit the
_modified signal.

Signed-off-by: Darren Hart <darren@dvhart.com>
  • Loading branch information
dvhart committed Sep 7, 2009
1 parent a9655ed commit 851dcb1
Showing 1 changed file with 6 additions and 62 deletions.
68 changes: 6 additions & 62 deletions gtd.py
Expand Up @@ -40,6 +40,7 @@ def __init__(self, id, title):
self.id = id
self.__title = title
self.__tags = {}
self._signal_prefix = self.__class__.__name__.lower() + "_"

def __cmp__(self, obj):
if not isinstance(obj, Base):
Expand All @@ -54,6 +55,7 @@ def __cmp__(self, obj):

def set_title(self, title):
self.__title = title
GTD().emit(self._signal_prefix + "modified", self)

def tag(self, label, val=None):
if not label:
Expand Down Expand Up @@ -94,10 +96,6 @@ def create(id=None, title=""):
def __init__(self, id=None, title=""):
Base.__init__(self, id, title)

def set_title(self, title):
Base.set_title(self, title)
GTD().emit("context_modified", self)


class ContextNone(Context, BaseNone):
__metaclass__ = Singleton
Expand All @@ -121,10 +119,6 @@ def __init__(self, id, title, visible):
self.visible = visible
Base.__init__(self, id, title)

def set_title(self, title):
Base.set_title(self, title)
GTD().emit("realm_modified", self)

def get_tasks(self):
tasks = []
for a in self.areas:
Expand Down Expand Up @@ -182,10 +176,6 @@ def __init__(self, id, title, realm):
self.__realm = realm
self.__realm.add_area(self)

def set_title(self, title):
Base.set_title(self, title)
GTD().emit("area_modified", self)

def set_realm(self, realm):
if not realm:
error("realm is None")
Expand Down Expand Up @@ -293,17 +283,21 @@ def set_complete(self, complete):
assert isinstance(complete, datetime)
self.__complete = complete
self.__set_state()
GTD().emit(self._signal_prefix + "modified", self)

def set_notes(self, notes):
self.__notes = notes
GTD().emit(self._signal_prefix + "modified", self)

def set_start_date(self, start_date):
self.__start_date = start_date
self.__set_state()
GTD().emit(self._signal_prefix + "modified", self)

def set_due_date(self, due_date):
self.__due_date = due_date
self.__set_state()
GTD().emit(self._signal_prefix + "modified", self)

notes = OProperty(lambda s: s.__notes, set_notes)
start_date = OProperty(lambda s: s.__start_date, set_start_date)
Expand All @@ -328,31 +322,6 @@ def __init__(self, id, title, notes, area):
self.__area = AreaNone()
self.area.add_project(self)

# Base methods
# FIXME: find a way to not have to implement these here at all!
def set_title(self, title):
Base.set_title(self, title)
GTD().emit("project_modified", self)

# Actionable methods
# FIXME: find a way to not have to implement these here at all!
def set_complete(self, complete):
Actionable.set_complete(self, complete)
GTD().emit("project_modified", self)

def set_notes(self, notes):
Actionable.set_notes(self, notes)
GTD().emit("project_modified", self)

def set_start_date(self, start_date):
Actionable.set_start_date(self, start_date)
GTD().emit("project_modified", self)

def set_due_date(self, due_date):
Actionable.set_due_date(self, due_date)
GTD().emit("project_modified", self)

# Project methods
def set_area(self, area):
self.__area = area
GTD().emit("project_modified", self)
Expand Down Expand Up @@ -410,31 +379,6 @@ def __init__(self, id, title, project, contexts, notes, waiting):
self.__contexts = contexts
self.__waiting = waiting

# Base methods
# FIXME: find a way to not have to implement these here at all!
def set_title(self, title):
Base.set_title(self, title)
GTD().emit("task_modified", self)

# Actionable methods
# FIXME: find a way to not have to implement these here at all!
def set_complete(self, complete):
Actionable.set_complete(self, complete)
GTD().emit("task_modified", self)

def set_notes(self, notes):
Actionable.set_notes(self, notes)
GTD().emit("task_modified", self)

def set_start_date(self, start_date):
Actionable.set_start_date(self, start_date)
GTD().emit("task_modified", self)

def set_due_date(self, due_date):
Actionable.set_due_date(self, due_date)
GTD().emit("task_modified", self)

# Task methods
def set_project(self, project):
# FIXME: I think this is a hack, this should never be None
# maybe just throw an exception here ? or an assert?
Expand Down

0 comments on commit 851dcb1

Please sign in to comment.