Index: growl/notifier.py
===================================================================
--- growl/notifier.py	(revision 4384)
+++ growl/notifier.py	(working copy)
@@ -96,7 +96,7 @@
         if 'attachment' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='attachment',
-                                      title='Attachment added',
+                                      title=self._title('Attachment added'),
                                       description=attachment.title)
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('attachment'), gnp)
@@ -106,7 +106,7 @@
         if 'attachment' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='ticket',
-                                      title='Attachment deleted',
+                                      title=self._title('Attachment deleted'),
                                       description=attachment.title)
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('attachment'), gnp)
@@ -119,7 +119,7 @@
         if 'ticket' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='ticket',
-                                      title='Ticket #%d created' % ticket.id,
+                                      title=self._title('Ticket #%d created' % ticket.id),
                                       description=self._ticket_repr(ticket))
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('ticket'), gnp)
@@ -129,7 +129,7 @@
         if 'ticket' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='ticket',
-                                      title='Ticket #%d updated' % ticket.id,
+                                      title=self._title('Ticket #%d updated' % ticket.id),
                                       description=self._ticket_repr(ticket))
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('ticket'), gnp)
@@ -152,7 +152,7 @@
         if 'wiki' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='wiki',
-                                      title='Page created',
+                                      title=self._title('Page created'),
                                       description=page.name)
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('wiki'), gnp)
@@ -162,7 +162,7 @@
         if 'wiki' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='wiki',
-                                      title='Page updated',
+                                      title=self._title('Page updated'),
                                       description=self._wiki_repr(page,
                                                                   comment))
         gs = GrowlSender(self.env)
@@ -173,7 +173,7 @@
         if 'wiki' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='wiki',
-                                      title='Page deleted',
+                                      title=self._title('Page deleted'),
                                       description=self._wiki_repr(page))
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('wiki'), gnp)
@@ -183,7 +183,7 @@
         if 'wiki' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='wiki',
-                                      title='Page suppressed',
+                                      title=self._title('Page suppressed'),
                                       description=self._wiki_repr(page))
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('wiki'), gnp)
@@ -196,7 +196,7 @@
         if 'bitten' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='bitten',
-                                      title='Build started',
+                                      title=self._title('Build started'),
                                       description=self._bitten_repr(build),
                                       priority=-2)
         gs = GrowlSender(self.env)
@@ -207,7 +207,7 @@
         if 'bitten' not in self.sources:
             return
         gnp = GrowlNotificationPacket(notification='bitten',
-                                      title='Build aborted',
+                                      title=self._title('Build aborted'),
                                       description=self._bitten_repr(build))
         gs = GrowlSender(self.env)
         gs.notify(self._get_hosts('bitten'), gnp)
@@ -220,7 +220,7 @@
         failure = self.status == Build.FAILURE
         status = 'Build %s' % failure and 'failed' or 'successful'
         gnp = GrowlNotificationPacket(notification='bitten',
-                                      title=status,
+                                      title=self._title(status),
                                       description=self._bitten_repr(build),
                                       sticky=failure,
                                       priority=failure and 2 or 0)
@@ -310,3 +310,7 @@
         self.log.debug("Hosts for %s: %s" % (source, hosts))
         # filter out empty hosts
         return filter(None, hosts)
+
+    def _title(self,topic):
+        return self.env.project_name+':'+topic
+
