GTG

Merge lp:~gtg-user/gtg/urgency-color-api into lp:~gtg/gtg/old-trunk

Proposed by Wolter HV
Status: Merged
Merged at revision: 1103
Proposed branch: lp:~gtg-user/gtg/urgency-color-api
Merge into: lp:~gtg/gtg/old-trunk
Diff against target: 927 lines (+576/-0)
9 files modified
AUTHORS (+1/-0)
CHANGELOG (+1/-0)
GTG/core/plugins/api.py (+22/-0)
GTG/gtk/browser/treeview_factory.py (+10/-0)
GTG/plugins/urgency-color.gtg-plugin (+16/-0)
GTG/plugins/urgency_color/__init__.py (+21/-0)
GTG/plugins/urgency_color/preferences.ui (+302/-0)
GTG/plugins/urgency_color/urgency_color.py (+201/-0)
setup.py (+2/-0)
To merge this branch: bzr merge lp:~gtg-user/gtg/urgency-color-api
Reviewer Review Type Date Requested Status
Wolter HV (community) Approve
Izidor Matušov running, code Approve
Lionel Dricot (community) Needs Fixing
Review via email: mp+91517@code.launchpad.net

Description of the change

The branch implements a new way of handling task background colors, which is accessible from the plugin API.
It also includes a plugin, Urgency Color, which lets the user color tasks according to their urgency instead of tag color.

To post a comment you must log in.
Revision history for this message
Lionel Dricot (ploum-deactivatedaccount) wrote :

Traceback (most recent call last):
  File "/home/ploum/urgency-color-api/GTG/gtk/liblarch_gtk/__init__.py", line 318, in _celldatafunction
    color = self.bg_color_func(value, bgcolor)
  File "/home/ploum/urgency-color-api/GTG/plugins/urgency_color/urgency_color.py", line 67, in bgcolor
    daysleft = (ddate.offset - date.today()).days
TypeError: unsupported operand type(s) for -: 'int' and 'datetime.date

review: Needs Fixing
Revision history for this message
Wolter HV (wolterh) wrote :

Weird, I have not come across this, will fix as soon as possible. Thanks for reporting!

lp:~gtg-user/gtg/urgency-color-api updated
1059. By Lionel Dricot

This commit upgrade liblarch and fixes bug #924323

Revision history for this message
Wolter HV (wolterh) wrote :

Hi Lionel, I just pushed a new revision where I swapped the ddate.offset for ddate.days_left(). I don't really know if this will fix the problem as I couldn't reproduce it, but perhaps it will prevent the object from becoming an integer. Could you please tell me how to reproduce this bug so I can fix it properly?

lp:~gtg-user/gtg/urgency-color-api updated
1060. By Lionel Dricot

restoring the priority queue

1061. By Lionel Dricot

fixed the infamous bug where child-parent relationship were lost

1062. By Lionel Dricot

make actions on active tasks high priority in all cases

1063. By Izidor Matušov

Refractoring & polishing awesome work of Joao from GSoC 2011

1064. By Izidor Matušov

Merging AUTHORS and CHANGELOG from GTG 0.2.5

1065. By Lionel Dricot

Merging all the hard polishing work done by Jean-François. Thanks, highly appreciate because I suck at doing that

1066. By Izidor Matušov

Updated CHANGELOG, sorted AUTHORS by name and putting them also in GTG/info.py

1067. By Izidor Matušov

Merging translations

1068. By Izidor Matušov

Making liblarch independent. Bye bye liblarch

1069. By Izidor Matušov

Ignore task_added for nonexisting tasks in notification area

1070. By Izidor Matušov

Liblarch is no longer part of GTG code base

1071. By Izidor Matušov

import_liblarch(): bad indentation, transforming a comment into a docstring

1072. By Izidor Matušov

Updated changelog

1073. By Lionel Dricot

support for . and / in tags except if they are at the end of the tag

1074. By Lionel Dricot

we now close all deleted tasks if they are open

1075. By Izidor Matušov

Change in parsing tags had to be also reflected in GTG/tools/tags.py

1076. By Izidor Matušov

Closing taskeditors after marking as done/dismissing/deleting parents. There is a fix from rev1074 when many tasks are deleted, some of them are not closed

1077. By Izidor Matušov

Small cleaning of get_cannonical_date

1078. By Izidor Matušov

Cleaning GTG codebase a little bit

1079. By Izidor Matušov

Do not set name, parent of tag afterwards

1080. By Izidor Matušov

Merging a fix for focus issues of task browser, LP #917988. Thanks to dAnjou

1081. By Izidor Matušov

Regenerate pot file

1082. By Izidor Matušov

Renaming tagstore into tag

1083. By Izidor Matušov

Removed unused code & clean the rest of task_label_column

1084. By Izidor Matušov

Mark bold also tasks with previous due dates

1085. By Izidor Matušov

Hide tasks with due date someday, solves #931376

1086. By Luca Falavigna

Make gtcli_bash_completion executable

1087. By Luca Falavigna

/bin/env -> /usr/bin/env

1088. By Luca Falavigna

Fix some groff warnings in gtg_new_task man page

1089. By Izidor Matušov

Merging new Date class based on branch from Paul Kishimoto + many of my edits

1090. By Izidor Matušov

Remove unused backups of bryce test set

1091. By Izidor Matušov

Solved a regression from new date class merge

1092. By Izidor Matušov

First work on having robust XML support

1093. By Izidor Matušov

Remove redundant setlocale from dates (it makes GTG crash with set locale)

1094. By Izidor Matušov

I forgot to skip elements in localfile backend :-(

1095. By Izidor Matušov

Minor cleaning backend_localfile.py

1096. By Izidor Matušov

Get rid of legacy task-* and tag-* tasks, solving LP #908184

Revision history for this message
Wolter HV (wolterh) wrote :

Lionel, please guide me towards fixing this error.

review: Needs Information
Revision history for this message
Lionel Dricot (ploum-deactivatedaccount) wrote :

Hi Wolter, just trying to enable the plugin with your branch, I've that crash:

urgency-color-api/GTG/plugins/urgency_color/urgency_color.py:99: GtkWarning: Unknown property: GtkWindow.has-resize-grip
  'preferences.ui'))

I also have some other when you close/reopen the preferences window but I suspect it is a GTG bug, not your fault ;-)

Another change I would appreciate to see is, in the about box, an explanation on how the plugin computes the urgency.

Revision history for this message
Wolter HV (wolterh) wrote :

On Tue, 2012-02-28 at 09:23 +0000, Lionel Dricot wrote:
> Hi Wolter, just trying to enable the plugin with your branch, I've that crash:
>
> urgency-color-api/GTG/plugins/urgency_color/urgency_color.py:99: GtkWarning: Unknown property: GtkWindow.has-resize-grip
> 'preferences.ui'))

Fix released :) Removed the property from the UI file. Can you confirm
the crashes have stopped?

> Another change I would appreciate to see is, in the about box, an explanation on how the plugin computes the urgency.

I have added the explanation as requested. Feedback is welcome!

lp:~gtg-user/gtg/urgency-color-api updated
1097. By Izidor Matušov

Repair preselecting tomboy note. Solving LP#689743

1098. By Izidor Matušov

Better semantic for Date.days_left(), solves #942953

Revision history for this message
Izidor Matušov (izidor) wrote :

I've fixed the offset problem, merged with the newest trunk because handling dates was changed. It works fine for me, all ploum's comments are solved.

Wolter mentioned a bug when activating a plugin, it is the last "problem". (although I am not able to reproduce it)

review: Approve (running, code)
lp:~gtg-user/gtg/urgency-color-api updated
1099. By Izidor Matušov

Description for ValueErrors in Date class

1100. By Izidor Matušov

Solved Date regression in 'Remove old closed tasks' plugin, solves #941769

Revision history for this message
Wolter HV (wolterh) wrote :

I pointlessly gave a "Needs information" review type, so I will correct that by approving :)

review: Approve
lp:~gtg-user/gtg/urgency-color-api updated
1101. By Izidor Matušov

Merging translations and fixing a typo in GTG/tools/dates.py

1102. By Izidor Matušov

Regenerated POT for translation

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.bzrignore' (properties changed: -x to +x)
2=== modified file 'AUTHORS' (properties changed: -x to +x)
3--- AUTHORS 2012-02-17 12:05:18 +0000
4+++ AUTHORS 2012-02-29 10:16:18 +0000
5@@ -94,3 +94,4 @@
6 --------
7 * dAnjou <https://launchpad.net/~danjou> (no email provided)
8 * Paul Kishimoto <mail@paul.kishimoto.name>
9+* Wolter Hellmund <wolterh6@gmail.com>
10
11=== modified file 'CHANGELOG' (properties changed: -x to +x)
12--- CHANGELOG 2012-02-17 12:05:18 +0000
13+++ CHANGELOG 2012-02-29 10:16:18 +0000
14@@ -1,6 +1,7 @@
15 2012-0?-?? Getting Things GNOME! 0.3
16 * Hide tasks with due date someday, #931376
17 * New Date class by Paul Kishimoto and Izidor Matušov
18+ * Urgency Color plugin by Wolter Hellmund
19
20 2012-02-13 Getting Things GNOME! 0.2.9
21 * Big refractorization of code, now using liblarch
22
23=== modified file 'GTG/__init__.py' (properties changed: -x to +x)
24=== modified file 'GTG/backends/__init__.py' (properties changed: -x to +x)
25=== modified file 'GTG/backends/backend_evolution.py' (properties changed: -x to +x)
26=== modified file 'GTG/backends/backend_gnote.py' (properties changed: -x to +x)
27=== modified file 'GTG/backends/backend_identica.py' (properties changed: -x to +x)
28=== modified file 'GTG/backends/backend_launchpad.py' (properties changed: -x to +x)
29=== modified file 'GTG/backends/backend_localfile.py' (properties changed: -x to +x)
30=== modified file 'GTG/backends/backend_mantis.py' (properties changed: -x to +x)
31=== modified file 'GTG/backends/backend_rtm.py' (properties changed: -x to +x)
32=== modified file 'GTG/backends/backend_tomboy.py' (properties changed: -x to +x)
33=== modified file 'GTG/backends/backend_twitter.py' (properties changed: -x to +x)
34=== modified file 'GTG/backends/backendsignals.py' (properties changed: -x to +x)
35=== modified file 'GTG/backends/genericbackend.py' (properties changed: -x to +x)
36=== modified file 'GTG/backends/generictomboy.py' (properties changed: -x to +x)
37=== modified file 'GTG/backends/periodicimportbackend.py' (properties changed: -x to +x)
38=== modified file 'GTG/backends/rtm/__init__.py' (properties changed: -x to +x)
39=== modified file 'GTG/backends/syncengine.py' (properties changed: -x to +x)
40=== modified file 'GTG/backends/tweepy/__init__.py' (properties changed: -x to +x)
41=== modified file 'GTG/backends/tweepy/api.py' (properties changed: -x to +x)
42=== modified file 'GTG/backends/tweepy/auth.py' (properties changed: -x to +x)
43=== modified file 'GTG/backends/tweepy/binder.py' (properties changed: -x to +x)
44=== modified file 'GTG/backends/tweepy/cache.py' (properties changed: -x to +x)
45=== modified file 'GTG/backends/tweepy/cursor.py' (properties changed: -x to +x)
46=== modified file 'GTG/backends/tweepy/error.py' (properties changed: -x to +x)
47=== modified file 'GTG/backends/tweepy/models.py' (properties changed: -x to +x)
48=== modified file 'GTG/backends/tweepy/oauth.py' (properties changed: -x to +x)
49=== modified file 'GTG/backends/tweepy/parsers.py' (properties changed: -x to +x)
50=== modified file 'GTG/backends/tweepy/streaming.py' (properties changed: -x to +x)
51=== modified file 'GTG/backends/tweepy/utils.py' (properties changed: -x to +x)
52=== modified file 'GTG/core/__init__.py' (properties changed: -x to +x)
53=== modified file 'GTG/core/datastore.py' (properties changed: -x to +x)
54=== modified file 'GTG/core/firstrun_tasks.py' (properties changed: -x to +x)
55=== modified file 'GTG/core/plugins/api.py' (properties changed: -x to +x)
56--- GTG/core/plugins/api.py 2011-11-14 18:53:53 +0000
57+++ GTG/core/plugins/api.py 2012-02-29 10:16:18 +0000
58@@ -176,6 +176,28 @@
59 Log.debug("Error removing the toolbar item in the TaskEditor:"
60 "%s" % e)
61
62+ def set_bgcolor_func(self, func=None):
63+ """ Set a function which defines a background color for each task """
64+ # NOTE: this function is strongly dependend of browser structure
65+ # after refaractoring browser, this might need to review
66+ browser = self.__ui
67+
68+ # set default bgcolor?
69+ if func is None:
70+ func = browser.tv_factory.task_bg_color
71+ info_col = 'tags'
72+ else:
73+ info_col = 'task_id'
74+
75+ for pane in browser.vtree_panes:
76+ pane = browser.vtree_panes[pane]
77+ pane.set_bg_color(func, info_col)
78+ # FIXME: Added a parameter to the reset_filters call because
79+ # otherwise all old completed tasks are re-shown and unable
80+ # to be marked as done
81+ #pane.basetree.reset_filters()
82+ pane.basetree.reset_filters(transparent_only=True)
83+
84 #=== file saving/loading ======================================================
85
86 def load_configuration_object(self, plugin_name, filename, \
87
88=== modified file 'GTG/core/requester.py' (properties changed: -x to +x)
89=== modified file 'GTG/core/search.py' (properties changed: -x to +x)
90=== modified file 'GTG/core/tag.py' (properties changed: -x to +x)
91=== modified file 'GTG/core/task.py' (properties changed: -x to +x)
92=== modified file 'GTG/core/treefactory.py' (properties changed: -x to +x)
93=== modified file 'GTG/gtk/__init__.py' (properties changed: -x to +x)
94=== modified file 'GTG/gtk/backends_dialog.glade' (properties changed: -x to +x)
95=== modified file 'GTG/gtk/backends_dialog/__init__.py' (properties changed: -x to +x)
96=== modified file 'GTG/gtk/backends_dialog/addpanel.py' (properties changed: -x to +x)
97=== modified file 'GTG/gtk/backends_dialog/backendscombo.py' (properties changed: -x to +x)
98=== modified file 'GTG/gtk/backends_dialog/backendstree.py' (properties changed: -x to +x)
99=== modified file 'GTG/gtk/backends_dialog/configurepanel.py' (properties changed: -x to +x)
100=== modified file 'GTG/gtk/backends_dialog/parameters_ui/__init__.py' (properties changed: -x to +x)
101=== modified file 'GTG/gtk/backends_dialog/parameters_ui/checkboxui.py' (properties changed: -x to +x)
102=== modified file 'GTG/gtk/backends_dialog/parameters_ui/importtagsui.py' (properties changed: -x to +x)
103=== modified file 'GTG/gtk/backends_dialog/parameters_ui/passwordui.py' (properties changed: -x to +x)
104=== modified file 'GTG/gtk/backends_dialog/parameters_ui/pathui.py' (properties changed: -x to +x)
105=== modified file 'GTG/gtk/backends_dialog/parameters_ui/periodui.py' (properties changed: -x to +x)
106=== modified file 'GTG/gtk/backends_dialog/parameters_ui/textui.py' (properties changed: -x to +x)
107=== modified file 'GTG/gtk/browser/CellRendererTags.py' (properties changed: -x to +x)
108=== modified file 'GTG/gtk/browser/__init__.py' (properties changed: -x to +x)
109=== modified file 'GTG/gtk/browser/browser.py' (properties changed: -x to +x)
110=== modified file 'GTG/gtk/browser/custominfobar.py' (properties changed: -x to +x)
111=== modified file 'GTG/gtk/browser/taskbrowser.glade' (properties changed: -x to +x)
112=== modified file 'GTG/gtk/browser/treeview_factory.py' (properties changed: -x to +x)
113--- GTG/gtk/browser/treeview_factory.py 2012-02-29 09:59:27 +0000
114+++ GTG/gtk/browser/treeview_factory.py 2012-02-29 10:16:18 +0000
115@@ -411,6 +411,16 @@
116 #to both active and closed tasks treeview
117 def common_desc_for_tasks(self,tree):
118 desc = {}
119+
120+ #invisible 'task_id' column
121+ col_name = 'task_id'
122+ col = {}
123+ col['renderer'] = ['markup', gtk.CellRendererText()]
124+ col['value'] = [str, lambda node: node.get_id()]
125+ col['visible'] = False
126+ col['order'] = 0
127+ desc[col_name] = col
128+
129 #invisible 'title' column
130 col_name = 'title'
131 col = {}
132
133=== modified file 'GTG/gtk/colors.py' (properties changed: -x to +x)
134=== modified file 'GTG/gtk/crashhandler.py' (properties changed: -x to +x)
135=== modified file 'GTG/gtk/dbuswrapper.py' (properties changed: -x to +x)
136=== modified file 'GTG/gtk/delete_dialog.py' (properties changed: -x to +x)
137=== modified file 'GTG/gtk/deletion.glade' (properties changed: -x to +x)
138=== modified file 'GTG/gtk/editor/__init__.py' (properties changed: -x to +x)
139=== modified file 'GTG/gtk/editor/calendar.py' (properties changed: -x to +x)
140=== modified file 'GTG/gtk/editor/editor.py' (properties changed: -x to +x)
141=== modified file 'GTG/gtk/editor/taskeditor.glade' (properties changed: -x to +x)
142=== modified file 'GTG/gtk/editor/taskview.py' (properties changed: -x to +x)
143=== modified file 'GTG/gtk/editor/taskviewserial.py' (properties changed: -x to +x)
144=== modified file 'GTG/gtk/manager.py' (properties changed: -x to +x)
145=== modified file 'GTG/gtk/preferences.glade' (properties changed: -x to +x)
146=== modified file 'GTG/gtk/preferences.py' (properties changed: -x to +x)
147=== modified file 'GTG/info.py' (properties changed: -x to +x)
148=== modified file 'GTG/plugins/__init__.py' (properties changed: -x to +x)
149=== modified file 'GTG/plugins/bugzilla.gtg-plugin' (properties changed: -x to +x)
150=== modified file 'GTG/plugins/bugzilla/__init__.py' (properties changed: -x to +x)
151=== modified file 'GTG/plugins/bugzilla/bug.py' (properties changed: -x to +x)
152=== modified file 'GTG/plugins/bugzilla/server.py' (properties changed: -x to +x)
153=== modified file 'GTG/plugins/export.gtg-plugin' (properties changed: -x to +x)
154=== modified file 'GTG/plugins/export/__init__.py' (properties changed: -x to +x)
155=== modified file 'GTG/plugins/export/export.ui' (properties changed: -x to +x)
156=== modified file 'GTG/plugins/export/export_templates/description_pocketmod.py' (properties changed: -x to +x)
157=== modified file 'GTG/plugins/export/export_templates/description_sexy.py' (properties changed: -x to +x)
158=== modified file 'GTG/plugins/export/export_templates/description_simple.py' (properties changed: -x to +x)
159=== modified file 'GTG/plugins/export/export_templates/description_statusrpt.py' (properties changed: -x to +x)
160=== modified file 'GTG/plugins/export/export_templates/description_textual.py' (properties changed: -x to +x)
161=== modified file 'GTG/plugins/export/export_templates/graphics_pocketmod.svg' (properties changed: -x to +x)
162=== modified file 'GTG/plugins/export/export_templates/template_pocketmod.tex' (properties changed: -x to +x)
163=== modified file 'GTG/plugins/export/export_templates/template_sexy.html' (properties changed: -x to +x)
164=== modified file 'GTG/plugins/export/export_templates/template_simple.html' (properties changed: -x to +x)
165=== modified file 'GTG/plugins/export/export_templates/template_statusrpt.txt' (properties changed: -x to +x)
166=== modified file 'GTG/plugins/export/export_templates/template_textual.txt' (properties changed: -x to +x)
167=== modified file 'GTG/plugins/export/export_templates/thumbnail_pocketmod.png' (properties changed: -x to +x)
168=== modified file 'GTG/plugins/export/export_templates/thumbnail_sexy.png' (properties changed: -x to +x)
169=== modified file 'GTG/plugins/export/export_templates/thumbnail_simple.png' (properties changed: -x to +x)
170=== modified file 'GTG/plugins/export/export_templates/thumbnail_statusrpt.png' (properties changed: -x to +x)
171=== modified file 'GTG/plugins/export/export_templates/thumbnail_textual.png' (properties changed: -x to +x)
172=== modified file 'GTG/plugins/export/task_str.py' (properties changed: -x to +x)
173=== modified file 'GTG/plugins/export/templates.py' (properties changed: -x to +x)
174=== modified file 'GTG/plugins/geolocalized-tasks.gtg-plugin' (properties changed: -x to +x)
175=== modified file 'GTG/plugins/geolocalized_tasks/__init__.py' (properties changed: -x to +x)
176=== modified file 'GTG/plugins/geolocalized_tasks/geolocalized.glade' (properties changed: -x to +x)
177=== modified file 'GTG/plugins/geolocalized_tasks/geolocalized_tasks.py' (properties changed: -x to +x)
178=== modified file 'GTG/plugins/geolocalized_tasks/icons/hicolor/16x16/assign-location.png' (properties changed: -x to +x)
179=== modified file 'GTG/plugins/geolocalized_tasks/icons/hicolor/24x24/geolocalization.png' (properties changed: -x to +x)
180=== modified file 'GTG/plugins/geolocalized_tasks/icons/hicolor/svg/assign-location.svg' (properties changed: -x to +x)
181=== modified file 'GTG/plugins/geolocalized_tasks/icons/hicolor/svg/geolocalization.svg' (properties changed: -x to +x)
182=== modified file 'GTG/plugins/geolocalized_tasks/marker.py' (properties changed: -x to +x)
183=== modified file 'GTG/plugins/hamster.gtg-plugin' (properties changed: -x to +x)
184=== modified file 'GTG/plugins/hamster/__init__.py' (properties changed: -x to +x)
185=== modified file 'GTG/plugins/hamster/prefs.ui' (properties changed: -x to +x)
186=== modified file 'GTG/plugins/import-json.gtg-plugin' (properties changed: -x to +x)
187=== modified file 'GTG/plugins/import_json/__init__.py' (properties changed: -x to +x)
188=== modified file 'GTG/plugins/import_json/import_json.ui' (properties changed: -x to +x)
189=== modified file 'GTG/plugins/notification-area.gtg-plugin' (properties changed: -x to +x)
190=== modified file 'GTG/plugins/notification_area/__init__.py' (properties changed: -x to +x)
191=== modified file 'GTG/plugins/notification_area/notification_area.py' (properties changed: -x to +x)
192=== modified file 'GTG/plugins/notification_area/notification_area.ui' (properties changed: -x to +x)
193=== modified file 'GTG/plugins/send-email.gtg-plugin' (properties changed: -x to +x)
194=== modified file 'GTG/plugins/send_email/__init__.py' (properties changed: -x to +x)
195=== modified file 'GTG/plugins/task-reaper.gtg-plugin' (properties changed: -x to +x)
196=== modified file 'GTG/plugins/task_reaper/__init__.py' (properties changed: -x to +x)
197=== modified file 'GTG/plugins/task_reaper/reaper.ui' (properties changed: -x to +x)
198=== modified file 'GTG/plugins/tomboy.gtg-plugin' (properties changed: -x to +x)
199=== modified file 'GTG/plugins/tomboy/__init__.py' (properties changed: -x to +x)
200=== modified file 'GTG/plugins/tomboy/combobox_enhanced.py' (properties changed: -x to +x)
201=== modified file 'GTG/plugins/tomboy/tomboy.ui' (properties changed: -x to +x)
202=== added file 'GTG/plugins/urgency-color.gtg-plugin'
203--- GTG/plugins/urgency-color.gtg-plugin 1970-01-01 00:00:00 +0000
204+++ GTG/plugins/urgency-color.gtg-plugin 2012-02-29 10:16:18 +0000
205@@ -0,0 +1,16 @@
206+[GTG Plugin]
207+Module=urgency_color
208+Name=Urgency Color
209+Short-description="Task urgency color-coding"
210+Description='''This plugin will calculate the urgency status of every of your currently active tasks and color-code it accordingly.
211+
212+Color code
213+
214+Assuming your settings are default:
215+Red means you are within the last 30% of days between the start-date and due-date, or your task is overdue.
216+Yellow means your task's start-date has passed.
217+Green means your task's start-date is oncoming.
218+'''
219+Authors=Wolter Hellmund <wolterh6@gmail.com>
220+Version=0.1
221+Enabled=False
222
223=== added directory 'GTG/plugins/urgency_color'
224=== added file 'GTG/plugins/urgency_color/__init__.py'
225--- GTG/plugins/urgency_color/__init__.py 1970-01-01 00:00:00 +0000
226+++ GTG/plugins/urgency_color/__init__.py 2012-02-29 10:16:18 +0000
227@@ -0,0 +1,21 @@
228+# -*- coding: utf-8 -*-
229+# Copyright (c) 2012 - Wolter Hellmund <wolterh6@gmail.com>
230+#
231+# This program is free software: you can redistribute it and/or modify it under
232+# the terms of the GNU General Public License as published by the Free Software
233+# Foundation, either version 3 of the License, or (at your option) any later
234+# version.
235+#
236+# This program is distributed in the hope that it will be useful, but WITHOUT
237+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
238+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
239+# details.
240+#
241+# You should have received a copy of the GNU General Public License along with
242+# this program. If not, see <http://www.gnu.org/licenses/>.
243+
244+from GTG.plugins.urgency_color.urgency_color import pluginUrgencyColor
245+
246+#suppress pyflakes warning (given by make lint)
247+if False == True:
248+ pluginUrgencyColor()
249
250=== added file 'GTG/plugins/urgency_color/preferences.ui'
251--- GTG/plugins/urgency_color/preferences.ui 1970-01-01 00:00:00 +0000
252+++ GTG/plugins/urgency_color/preferences.ui 2012-02-29 10:16:18 +0000
253@@ -0,0 +1,302 @@
254+<?xml version="1.0" encoding="UTF-8"?>
255+<interface>
256+ <!-- interface-requires gtk+ 3.0 -->
257+ <object class="GtkAdjustment" id="spinbutton_reddays_adjustment">
258+ <property name="upper">100</property>
259+ <property name="step_increment">5</property>
260+ <property name="page_increment">10</property>
261+ </object>
262+ <object class="GtkWindow" id="prefs_window">
263+ <property name="can_focus">False</property>
264+ <property name="border_width">5</property>
265+ <property name="type_hint">dialog</property>
266+ <signal name="delete-event" handler="on_prefs_window_delete_event" swapped="no"/>
267+ <child>
268+ <object class="GtkVBox" id="vbox_main">
269+ <property name="can_focus">False</property>
270+ <property name="spacing">2</property>
271+ <child>
272+ <object class="GtkFrame" id="frame_reddays">
273+ <property name="visible">True</property>
274+ <property name="can_focus">False</property>
275+ <property name="label_xalign">0</property>
276+ <property name="shadow_type">in</property>
277+ <child>
278+ <object class="GtkAlignment" id="alignment1">
279+ <property name="visible">True</property>
280+ <property name="can_focus">False</property>
281+ <property name="top_padding">5</property>
282+ <property name="bottom_padding">5</property>
283+ <property name="left_padding">12</property>
284+ <child>
285+ <object class="GtkHBox" id="hbox_reddays">
286+ <property name="visible">True</property>
287+ <property name="can_focus">False</property>
288+ <child>
289+ <object class="GtkLabel" id="label3">
290+ <property name="visible">True</property>
291+ <property name="can_focus">False</property>
292+ <property name="label" translatable="yes">Danger zone span</property>
293+ </object>
294+ <packing>
295+ <property name="expand">True</property>
296+ <property name="fill">True</property>
297+ <property name="position">0</property>
298+ </packing>
299+ </child>
300+ <child>
301+ <object class="GtkSpinButton" id="spinbutton_reddays">
302+ <property name="visible">True</property>
303+ <property name="can_focus">True</property>
304+ <property name="invisible_char">•</property>
305+ <property name="adjustment">spinbutton_reddays_adjustment</property>
306+ <property name="climb_rate">10</property>
307+ <property name="numeric">True</property>
308+ <signal name="value-changed" handler="on_prefs_spinbutton_reddays_changed" swapped="no"/>
309+ </object>
310+ <packing>
311+ <property name="expand">False</property>
312+ <property name="fill">True</property>
313+ <property name="position">1</property>
314+ </packing>
315+ </child>
316+ <child>
317+ <object class="GtkLabel" id="label4">
318+ <property name="visible">True</property>
319+ <property name="can_focus">False</property>
320+ <property name="label" translatable="yes">%</property>
321+ </object>
322+ <packing>
323+ <property name="expand">False</property>
324+ <property name="fill">True</property>
325+ <property name="padding">5</property>
326+ <property name="position">2</property>
327+ </packing>
328+ </child>
329+ </object>
330+ </child>
331+ </object>
332+ </child>
333+ <child type="label">
334+ <object class="GtkLabel" id="label1">
335+ <property name="visible">True</property>
336+ <property name="can_focus">False</property>
337+ <property name="label" translatable="yes">&lt;b&gt;Danger zone&lt;/b&gt;</property>
338+ <property name="use_markup">True</property>
339+ </object>
340+ </child>
341+ </object>
342+ <packing>
343+ <property name="expand">False</property>
344+ <property name="fill">True</property>
345+ <property name="position">0</property>
346+ </packing>
347+ </child>
348+ <child>
349+ <object class="GtkFrame" id="frame_colors">
350+ <property name="visible">True</property>
351+ <property name="can_focus">False</property>
352+ <property name="label_xalign">0</property>
353+ <property name="shadow_type">in</property>
354+ <child>
355+ <object class="GtkAlignment" id="alignment2">
356+ <property name="visible">True</property>
357+ <property name="can_focus">False</property>
358+ <property name="top_padding">5</property>
359+ <property name="bottom_padding">5</property>
360+ <property name="left_padding">12</property>
361+ <child>
362+ <object class="GtkVBox" id="vbox_colors">
363+ <property name="visible">True</property>
364+ <property name="can_focus">False</property>
365+ <property name="spacing">5</property>
366+ <child>
367+ <object class="GtkHBox" id="hbox_colors_red">
368+ <property name="visible">True</property>
369+ <property name="can_focus">False</property>
370+ <child>
371+ <object class="GtkColorButton" id="colorbutton_red">
372+ <property name="use_action_appearance">False</property>
373+ <property name="visible">True</property>
374+ <property name="can_focus">True</property>
375+ <property name="receives_default">True</property>
376+ <property name="use_action_appearance">False</property>
377+ <signal name="color-set" handler="on_prefs_colorbutton_red_changed" swapped="no"/>
378+ </object>
379+ <packing>
380+ <property name="expand">False</property>
381+ <property name="fill">True</property>
382+ <property name="position">0</property>
383+ </packing>
384+ </child>
385+ <child>
386+ <object class="GtkLabel" id="label5">
387+ <property name="visible">True</property>
388+ <property name="can_focus">False</property>
389+ <property name="label" translatable="yes">In danger zone</property>
390+ </object>
391+ <packing>
392+ <property name="expand">True</property>
393+ <property name="fill">True</property>
394+ <property name="position">1</property>
395+ </packing>
396+ </child>
397+ </object>
398+ <packing>
399+ <property name="expand">False</property>
400+ <property name="fill">True</property>
401+ <property name="position">0</property>
402+ </packing>
403+ </child>
404+ <child>
405+ <object class="GtkHBox" id="hbox_colors_yellow">
406+ <property name="visible">True</property>
407+ <property name="can_focus">False</property>
408+ <child>
409+ <object class="GtkColorButton" id="colorbutton_yellow">
410+ <property name="use_action_appearance">False</property>
411+ <property name="visible">True</property>
412+ <property name="can_focus">True</property>
413+ <property name="receives_default">True</property>
414+ <property name="use_action_appearance">False</property>
415+ <signal name="color-set" handler="on_prefs_colorbutton_yellow_changed" swapped="no"/>
416+ </object>
417+ <packing>
418+ <property name="expand">False</property>
419+ <property name="fill">True</property>
420+ <property name="position">0</property>
421+ </packing>
422+ </child>
423+ <child>
424+ <object class="GtkLabel" id="label6">
425+ <property name="visible">True</property>
426+ <property name="can_focus">False</property>
427+ <property name="label" translatable="yes">Should work on it</property>
428+ </object>
429+ <packing>
430+ <property name="expand">True</property>
431+ <property name="fill">True</property>
432+ <property name="position">1</property>
433+ </packing>
434+ </child>
435+ </object>
436+ <packing>
437+ <property name="expand">False</property>
438+ <property name="fill">True</property>
439+ <property name="position">1</property>
440+ </packing>
441+ </child>
442+ <child>
443+ <object class="GtkHBox" id="hbox_colors_green">
444+ <property name="visible">True</property>
445+ <property name="can_focus">False</property>
446+ <child>
447+ <object class="GtkColorButton" id="colorbutton_green">
448+ <property name="use_action_appearance">False</property>
449+ <property name="visible">True</property>
450+ <property name="can_focus">True</property>
451+ <property name="receives_default">True</property>
452+ <property name="use_action_appearance">False</property>
453+ <signal name="color-set" handler="on_prefs_colorbutton_green_changed" swapped="no"/>
454+ </object>
455+ <packing>
456+ <property name="expand">False</property>
457+ <property name="fill">True</property>
458+ <property name="position">0</property>
459+ </packing>
460+ </child>
461+ <child>
462+ <object class="GtkLabel" id="label7">
463+ <property name="visible">True</property>
464+ <property name="can_focus">False</property>
465+ <property name="label" translatable="yes">Don't worry about it</property>
466+ </object>
467+ <packing>
468+ <property name="expand">True</property>
469+ <property name="fill">True</property>
470+ <property name="position">1</property>
471+ </packing>
472+ </child>
473+ </object>
474+ <packing>
475+ <property name="expand">False</property>
476+ <property name="fill">True</property>
477+ <property name="position">2</property>
478+ </packing>
479+ </child>
480+ </object>
481+ </child>
482+ </object>
483+ </child>
484+ <child type="label">
485+ <object class="GtkLabel" id="label2">
486+ <property name="visible">True</property>
487+ <property name="can_focus">False</property>
488+ <property name="label" translatable="yes">&lt;b&gt;Colors&lt;/b&gt;</property>
489+ <property name="use_markup">True</property>
490+ </object>
491+ </child>
492+ </object>
493+ <packing>
494+ <property name="expand">False</property>
495+ <property name="fill">True</property>
496+ <property name="position">1</property>
497+ </packing>
498+ </child>
499+ <child>
500+ <object class="GtkAlignment" id="alignment3">
501+ <property name="visible">True</property>
502+ <property name="can_focus">False</property>
503+ <property name="top_padding">5</property>
504+ <child>
505+ <object class="GtkHButtonBox" id="hbuttonbox">
506+ <property name="can_focus">False</property>
507+ <property name="border_width">6</property>
508+ <property name="homogeneous">True</property>
509+ <child>
510+ <object class="GtkButton" id="button_reset">
511+ <property name="label">gtk-revert-to-saved</property>
512+ <property name="use_action_appearance">False</property>
513+ <property name="visible">True</property>
514+ <property name="can_focus">True</property>
515+ <property name="receives_default">True</property>
516+ <property name="use_action_appearance">False</property>
517+ <property name="use_stock">True</property>
518+ <signal name="clicked" handler="on_prefs_reset_event" swapped="no"/>
519+ </object>
520+ <packing>
521+ <property name="expand">False</property>
522+ <property name="fill">True</property>
523+ <property name="position">0</property>
524+ </packing>
525+ </child>
526+ <child>
527+ <object class="GtkButton" id="button_apply">
528+ <property name="label">gtk-apply</property>
529+ <property name="use_action_appearance">False</property>
530+ <property name="visible">True</property>
531+ <property name="can_focus">True</property>
532+ <property name="receives_default">True</property>
533+ <property name="use_action_appearance">False</property>
534+ <property name="use_stock">True</property>
535+ <signal name="clicked" handler="on_prefs_apply_event" swapped="no"/>
536+ </object>
537+ <packing>
538+ <property name="expand">False</property>
539+ <property name="fill">True</property>
540+ <property name="position">1</property>
541+ </packing>
542+ </child>
543+ </object>
544+ </child>
545+ </object>
546+ <packing>
547+ <property name="expand">True</property>
548+ <property name="fill">True</property>
549+ <property name="position">3</property>
550+ </packing>
551+ </child>
552+ </object>
553+ </child>
554+ </object>
555+</interface>
556
557=== added file 'GTG/plugins/urgency_color/urgency_color.py'
558--- GTG/plugins/urgency_color/urgency_color.py 1970-01-01 00:00:00 +0000
559+++ GTG/plugins/urgency_color/urgency_color.py 2012-02-29 10:16:18 +0000
560@@ -0,0 +1,201 @@
561+# -*- coding: utf-8 -*-
562+# Copyright (c) 2012 - Wolter Hellmund <wolterh6@gmail.com>
563+#
564+# This program is free software: you can redistribute it and/or modify it under
565+# the terms of the GNU General Public License as published by the Free Software
566+# Foundation, either version 3 of the License, or (at your option) any later
567+# version.
568+#
569+# This program is distributed in the hope that it will be useful, but WITHOUT
570+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
571+# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
572+# details.
573+#
574+# You should have received a copy of the GNU General Public License along with
575+# this program. If not, see <http://www.gnu.org/licenses/>.
576+
577+from math import ceil
578+import gtk
579+import os
580+
581+from GTG.tools.dates import Date
582+
583+class pluginUrgencyColor:
584+
585+ PLUGIN_NAME = 'Urgency Color'
586+ DEFAULT_PREFS = {
587+ 'reddays': 30,
588+ 'color_green': '#cfff84',
589+ 'color_yellow': '#ffed84',
590+ 'color_red': '#ff9784'}
591+
592+ def __init__(self):
593+ self._plugin_api = None
594+ self.req = None
595+
596+ def activate(self, plugin_api):
597+ """ Plugin is activated """
598+ self._plugin_api = plugin_api
599+ self.req = self._plugin_api.get_requester()
600+ self.prefs_load()
601+ self.prefs_init()
602+ # Set color function
603+ self._plugin_api.set_bgcolor_func(self.bgcolor)
604+
605+ def _get_color(self, colindex):
606+ if colindex == 0:
607+ return self._pref_data['color_green']
608+ elif colindex == 1:
609+ return self._pref_data['color_yellow']
610+ elif colindex == 2:
611+ return self._pref_data['color_red']
612+ else:
613+ return None
614+
615+ def bgcolor(self, node_id, standard_color):
616+ node = self.req.get_task(node_id)
617+ sdate = node.get_start_date()
618+ ddate = node.get_due_date()
619+ if (sdate != Date.no_date() != ddate):
620+ dayspan = (ddate - sdate).days
621+ daysleft = ddate.days_left()
622+
623+ redf = self._pref_data['reddays']
624+ reddays = int(ceil(redf*dayspan/100))
625+ color = 0
626+ if daysleft <= dayspan:
627+ color = 1
628+ if daysleft <= reddays:
629+ color = 2
630+ # This list should be implemented in the settings
631+ #print "Giving color"
632+ return self._get_color(color)
633+ else:
634+ # Return color for this node
635+ return None
636+
637+ def deactivate(self, plugin_api):
638+ """ Plugin is deactivated """
639+ self._plugin_api.set_bgcolor_func()
640+
641+# Preferences dialog
642+ def is_configurable(self):
643+ """Requisite function for configurable plugins"""
644+ return True
645+
646+ def configure_dialog(self, manager_dialog):
647+ self._pref_data_potential = self._pref_data
648+ self.prefs_window.show_all()
649+ #self.prefs_window.set_transient_for(manager_dialog)
650+ pass
651+
652+ def prefs_init(self):
653+ self.builder = gtk.Builder()
654+ self.builder.add_from_file(os.path.join(
655+ os.path.dirname(os.path.abspath(__file__)),
656+ 'preferences.ui'))
657+
658+ # Get the widgets
659+ # Window
660+ self.prefs_window = self.builder.get_object('prefs_window')
661+ self.prefs_window.set_title(('GTG - %s preferences' \
662+ % self.PLUGIN_NAME))
663+ self.prefs_window.set_size_request(300, -1)
664+ self.prefs_window.hide_on_delete()
665+
666+ # Spin button
667+ self.spinbutton_reddays = self.builder.get_object('spinbutton_reddays')
668+
669+ # Colorbutton - RED
670+ self.colorbutton_red = self.builder.get_object('colorbutton_red')
671+
672+ # Colorbutton - YELLOW
673+ self.colorbutton_yellow = self.builder.get_object('colorbutton_yellow')
674+
675+ # Colorbutton - GREEN
676+ self.colorbutton_green = self.builder.get_object('colorbutton_green')
677+
678+ # Buttons
679+ self.button_apply = self.builder.get_object('button_apply')
680+ self.button_reset = self.builder.get_object('button_reset')
681+
682+ # Update widget's values
683+ self.prefs_update_widgets()
684+
685+ # Signal connections
686+ SIGNAL_CONNECTIONS_DIC = {
687+ 'on_prefs_window_delete_event':
688+ self.on_prefs_cancel,
689+ 'on_prefs_apply_event':
690+ self.on_prefs_apply,
691+ 'on_prefs_reset_event':
692+ self.on_prefs_reset,
693+ 'on_prefs_spinbutton_reddays_changed':
694+ self.on_prefs_spinbutton_reddays_changed,
695+ 'on_prefs_colorbutton_red_changed':
696+ self.on_prefs_colorbutton_red_changed,
697+ 'on_prefs_colorbutton_yellow_changed':
698+ self.on_prefs_colorbutton_yellow_changed,
699+ 'on_prefs_colorbutton_green_changed':
700+ self.on_prefs_colorbutton_green_changed}
701+ self.builder.connect_signals(SIGNAL_CONNECTIONS_DIC)
702+
703+ def prefs_update_widgets(self):
704+ """ Synchronizes the widgets with the data in _pref_data """
705+ # Spin button
706+ self.spinbutton_reddays.set_value(self._pref_data['reddays'])
707+ # Colorbutton - RED
708+ self.colorbutton_red.set_color( \
709+ gtk.gdk.color_parse(self._pref_data['color_red']))
710+ # Colorbutton - YELLOW
711+ self.colorbutton_yellow.set_color( \
712+ gtk.gdk.color_parse(self._pref_data['color_yellow']))
713+ # Colorbutton - GREEN
714+ self.colorbutton_green.set_color( \
715+ gtk.gdk.color_parse(self._pref_data['color_green']))
716+
717+ def on_prefs_cancel(self, widget=None, data=None):
718+ self.prefs_update_widgets()
719+ self.prefs_window.hide()
720+ return True
721+
722+ def on_prefs_apply(self, widget=None, data=None):
723+ self._pref_data = self._pref_data_potential
724+ self.prefs_store()
725+ self.prefs_window.hide()
726+
727+ def on_prefs_reset(self, widget=None, data=None):
728+ # Restore the default plugin settings
729+ self._pref_data = self._pref_data_potential = dict(self.DEFAULT_PREFS)
730+ self.prefs_update_widgets()
731+
732+ def prefs_load(self):
733+ data = self._plugin_api.load_configuration_object( \
734+ self.PLUGIN_NAME,
735+ 'preferences')
736+ if not data or not isinstance(data, dict):
737+ self._pref_data = dict(self.DEFAULT_PREFS)
738+ else:
739+ self._pref_data = data
740+
741+ def prefs_store(self):
742+ self._plugin_api.save_configuration_object( \
743+ self.PLUGIN_NAME,
744+ 'preferences',
745+ self._pref_data)
746+
747+ def on_prefs_spinbutton_reddays_changed(self, widget=None, data=None):
748+ self._pref_data_potential['reddays'] = \
749+ self.spinbutton_reddays.get_value()
750+
751+ def on_prefs_colorbutton_red_changed(self, widget=None, data=None):
752+ self._pref_data_potential['color_red'] = \
753+ self.colorbutton_red.get_color().to_string()
754+
755+ def on_prefs_colorbutton_yellow_changed(self, widget=None, data=None):
756+ self._pref_data_potential['color_yellow'] = \
757+ self.colorbutton_yellow.get_color().to_string()
758+
759+ def on_prefs_colorbutton_green_changed(self, widget=None, data=None):
760+ self._pref_data_potential['color_green'] = \
761+ self.colorbutton_green.get_color().to_string()
762
763=== modified file 'GTG/tests/__init__.py' (properties changed: -x to +x)
764=== modified file 'GTG/tests/signals_testing.py' (properties changed: -x to +x)
765=== modified file 'GTG/tests/test_apidocs.py' (properties changed: -x to +x)
766=== modified file 'GTG/tests/test_backend_tomboy.py' (properties changed: -x to +x)
767=== modified file 'GTG/tests/test_backends.py' (properties changed: -x to +x)
768=== modified file 'GTG/tests/test_bidict.py' (properties changed: -x to +x)
769=== modified file 'GTG/tests/test_datastore.py' (properties changed: -x to +x)
770=== modified file 'GTG/tests/test_dates.py' (properties changed: -x to +x)
771=== modified file 'GTG/tests/test_interruptible.py' (properties changed: -x to +x)
772=== modified file 'GTG/tests/test_signal_testing.py' (properties changed: -x to +x)
773=== modified file 'GTG/tests/test_syncengine.py' (properties changed: -x to +x)
774=== modified file 'GTG/tests/test_syncmeme.py' (properties changed: -x to +x)
775=== modified file 'GTG/tests/test_tagstore.py' (properties changed: -x to +x)
776=== modified file 'GTG/tests/test_taskviewserial.py' (properties changed: -x to +x)
777=== modified file 'GTG/tests/test_tool_tags.py' (properties changed: -x to +x)
778=== modified file 'GTG/tests/test_twokeydict.py' (properties changed: -x to +x)
779=== modified file 'GTG/tests/tree_testing.py' (properties changed: -x to +x)
780=== modified file 'GTG/tests/xdg/xdg.txt' (properties changed: -x to +x)
781=== modified file 'GTG/tools/__init__.py' (properties changed: -x to +x)
782=== modified file 'GTG/tools/bidict.py' (properties changed: -x to +x)
783=== modified file 'GTG/tools/borg.py' (properties changed: -x to +x)
784=== modified file 'GTG/tools/cleanxml.py' (properties changed: -x to +x)
785=== modified file 'GTG/tools/clipboard.py' (properties changed: -x to +x)
786=== modified file 'GTG/tools/dates.py' (properties changed: -x to +x)
787=== modified file 'GTG/tools/interruptible.py' (properties changed: -x to +x)
788=== modified file 'GTG/tools/keyring.py' (properties changed: -x to +x)
789=== modified file 'GTG/tools/logger.py' (properties changed: -x to +x)
790=== modified file 'GTG/tools/networkmanager.py' (properties changed: -x to +x)
791=== modified file 'GTG/tools/openurl.py' (properties changed: -x to +x)
792=== modified file 'GTG/tools/readurl.py' (properties changed: -x to +x)
793=== modified file 'GTG/tools/synchronized.py' (properties changed: -x to +x)
794=== modified file 'GTG/tools/tags.py' (properties changed: -x to +x)
795=== modified file 'GTG/tools/taskxml.py' (properties changed: -x to +x)
796=== modified file 'GTG/tools/testingmode.py' (properties changed: -x to +x)
797=== modified file 'GTG/tools/twokeydict.py' (properties changed: -x to +x)
798=== modified file 'GTG/tools/urlregex.py' (properties changed: -x to +x)
799=== modified file 'GTG/tools/watchdog.py' (properties changed: -x to +x)
800=== modified file 'HACKING' (properties changed: -x to +x)
801=== modified file 'LICENSE' (properties changed: -x to +x)
802=== modified file 'MANIFEST.in' (properties changed: -x to +x)
803=== modified file 'Makefile' (properties changed: -x to +x)
804=== modified file 'README' (properties changed: -x to +x)
805=== modified file 'data/icons/hicolor/16x16/actions/gtg-note-new.png' (properties changed: -x to +x)
806=== modified file 'data/icons/hicolor/16x16/actions/gtg-plugin.png' (properties changed: -x to +x)
807=== modified file 'data/icons/hicolor/16x16/actions/gtg-tag-new.png' (properties changed: -x to +x)
808=== modified file 'data/icons/hicolor/16x16/actions/gtg-tag.png' (properties changed: -x to +x)
809=== modified file 'data/icons/hicolor/16x16/actions/gtg-task-dismiss.png' (properties changed: -x to +x)
810=== modified file 'data/icons/hicolor/16x16/actions/gtg-task-done.png' (properties changed: -x to +x)
811=== modified file 'data/icons/hicolor/16x16/actions/gtg-task-new.png' (properties changed: -x to +x)
812=== modified file 'data/icons/hicolor/16x16/actions/gtg-task-undismiss.png' (properties changed: -x to +x)
813=== modified file 'data/icons/hicolor/16x16/actions/gtg-task-undone.png' (properties changed: -x to +x)
814=== modified file 'data/icons/hicolor/16x16/apps/gtg.png' (properties changed: -x to +x)
815=== modified file 'data/icons/hicolor/16x16/categories/gtg-tags-all.png' (properties changed: -x to +x)
816=== modified file 'data/icons/hicolor/16x16/categories/gtg-tags-none.png' (properties changed: -x to +x)
817=== modified file 'data/icons/hicolor/16x16/categories/search.png' (properties changed: -x to +x)
818=== modified file 'data/icons/hicolor/16x16/emblems/gtg-home.png' (properties changed: -x to +x)
819=== modified file 'data/icons/hicolor/16x16/emblems/gtg-people.png' (properties changed: -x to +x)
820=== modified file 'data/icons/hicolor/16x16/emblems/gtg-work.png' (properties changed: -x to +x)
821=== modified file 'data/icons/hicolor/22x22/actions/gtg-note-new.png' (properties changed: -x to +x)
822=== modified file 'data/icons/hicolor/22x22/actions/gtg-plugin.png' (properties changed: -x to +x)
823=== modified file 'data/icons/hicolor/22x22/actions/gtg-tag-new.png' (properties changed: -x to +x)
824=== modified file 'data/icons/hicolor/22x22/actions/gtg-tag.png' (properties changed: -x to +x)
825=== modified file 'data/icons/hicolor/22x22/actions/gtg-task-dismiss.png' (properties changed: -x to +x)
826=== modified file 'data/icons/hicolor/22x22/actions/gtg-task-done.png' (properties changed: -x to +x)
827=== modified file 'data/icons/hicolor/22x22/actions/gtg-task-new.png' (properties changed: -x to +x)
828=== modified file 'data/icons/hicolor/22x22/actions/gtg-task-undismiss.png' (properties changed: -x to +x)
829=== modified file 'data/icons/hicolor/22x22/actions/gtg-task-undone.png' (properties changed: -x to +x)
830=== modified file 'data/icons/hicolor/22x22/apps/gtg.png' (properties changed: -x to +x)
831=== modified file 'data/icons/hicolor/22x22/categories/items-tags.png' (properties changed: -x to +x)
832=== modified file 'data/icons/hicolor/24x24/actions/gtg-tag-new.png' (properties changed: -x to +x)
833=== modified file 'data/icons/hicolor/24x24/apps/gtg.png' (properties changed: -x to +x)
834=== modified file 'data/icons/hicolor/32x32/actions/gtg-plugin.png' (properties changed: -x to +x)
835=== modified file 'data/icons/hicolor/32x32/apps/gtg.png' (properties changed: -x to +x)
836=== modified file 'data/icons/hicolor/scalable/apps/backend_evolution.png' (properties changed: -x to +x)
837=== modified file 'data/icons/hicolor/scalable/apps/backend_gnote.png' (properties changed: -x to +x)
838=== modified file 'data/icons/hicolor/scalable/apps/backend_identica.png' (properties changed: -x to +x)
839=== modified file 'data/icons/hicolor/scalable/apps/backend_launchpad.png' (properties changed: -x to +x)
840=== modified file 'data/icons/hicolor/scalable/apps/backend_localfile.png' (properties changed: -x to +x)
841=== modified file 'data/icons/hicolor/scalable/apps/backend_localfile.svg' (properties changed: -x to +x)
842=== modified file 'data/icons/hicolor/scalable/apps/backend_mantis.png' (properties changed: -x to +x)
843=== modified file 'data/icons/hicolor/scalable/apps/backend_rtm.png' (properties changed: -x to +x)
844=== modified file 'data/icons/hicolor/scalable/apps/backend_tomboy.png' (properties changed: -x to +x)
845=== modified file 'data/icons/hicolor/scalable/apps/backend_twitter.png' (properties changed: -x to +x)
846=== modified file 'data/icons/hicolor/scalable/apps/gtg.svg' (properties changed: -x to +x)
847=== modified file 'data/icons/hicolor/svg/gtg-plugin.svg' (properties changed: -x to +x)
848=== modified file 'data/icons/hicolor/svg/gtg.svg' (properties changed: -x to +x)
849=== modified file 'doc/gtg.1' (properties changed: -x to +x)
850=== modified file 'doc/gtg_new_task.1' (properties changed: -x to +x)
851=== modified file 'gtg.desktop' (properties changed: -x to +x)
852=== modified file 'org.gnome.GTG.service' (properties changed: -x to +x)
853=== modified file 'po/af.po' (properties changed: -x to +x)
854=== modified file 'po/ar.po' (properties changed: -x to +x)
855=== modified file 'po/ast.po' (properties changed: -x to +x)
856=== modified file 'po/be.po' (properties changed: -x to +x)
857=== modified file 'po/bg.po' (properties changed: -x to +x)
858=== modified file 'po/bn.po' (properties changed: -x to +x)
859=== modified file 'po/ca.po' (properties changed: -x to +x)
860=== modified file 'po/cs.po' (properties changed: -x to +x)
861=== modified file 'po/da.po' (properties changed: -x to +x)
862=== modified file 'po/de.po' (properties changed: -x to +x)
863=== modified file 'po/en_CA.po' (properties changed: -x to +x)
864=== modified file 'po/en_GB.po' (properties changed: -x to +x)
865=== modified file 'po/es.po' (properties changed: -x to +x)
866=== modified file 'po/eu.po' (properties changed: -x to +x)
867=== modified file 'po/fi.po' (properties changed: -x to +x)
868=== modified file 'po/fr.po' (properties changed: -x to +x)
869=== modified file 'po/gl.po' (properties changed: -x to +x)
870=== modified file 'po/gtg.pot' (properties changed: -x to +x)
871=== modified file 'po/he.po' (properties changed: -x to +x)
872=== modified file 'po/hr.po' (properties changed: -x to +x)
873=== modified file 'po/hu.po' (properties changed: -x to +x)
874=== modified file 'po/id.po' (properties changed: -x to +x)
875=== modified file 'po/is.po' (properties changed: -x to +x)
876=== modified file 'po/it.po' (properties changed: -x to +x)
877=== modified file 'po/ja.po' (properties changed: -x to +x)
878=== modified file 'po/jbo.po' (properties changed: -x to +x)
879=== modified file 'po/lt.po' (properties changed: -x to +x)
880=== modified file 'po/ms.po' (properties changed: -x to +x)
881=== modified file 'po/nb.po' (properties changed: -x to +x)
882=== modified file 'po/nds.po' (properties changed: -x to +x)
883=== modified file 'po/nl.po' (properties changed: -x to +x)
884=== modified file 'po/pl.po' (properties changed: -x to +x)
885=== modified file 'po/pt.po' (properties changed: -x to +x)
886=== modified file 'po/pt_BR.po' (properties changed: -x to +x)
887=== modified file 'po/ro.po' (properties changed: -x to +x)
888=== modified file 'po/ru.po' (properties changed: -x to +x)
889=== modified file 'po/si.po' (properties changed: -x to +x)
890=== modified file 'po/sl.po' (properties changed: -x to +x)
891=== modified file 'po/sq.po' (properties changed: -x to +x)
892=== modified file 'po/sv.po' (properties changed: -x to +x)
893=== modified file 'po/te.po' (properties changed: -x to +x)
894=== modified file 'po/tr.po' (properties changed: -x to +x)
895=== modified file 'po/uk.po' (properties changed: -x to +x)
896=== modified file 'po/zh_CN.po' (properties changed: -x to +x)
897=== modified file 'setup.py' (properties changed: -x to +x)
898--- setup.py 2012-02-13 09:44:15 +0000
899+++ setup.py 2012-02-29 10:16:18 +0000
900@@ -142,6 +142,7 @@
901 'GTG.plugins.send_email',
902 'GTG.plugins.tomboy',
903 'GTG.plugins.import_json',
904+ 'GTG.plugins.urgency_color'
905 ],
906 package_data = {
907 'GTG.core.plugins': ['pluginmanager.glade'],
908@@ -158,6 +159,7 @@
909 'send-email.gtg-plugin',
910 'tomboy.gtg-plugin',
911 'import-json.gtg-plugin',
912+ 'urgency-color.gtg-plugin'
913 ],
914 'GTG.plugins.export': ['export.ui',
915 './export_templates/description_pocketmod.py',
916
917=== modified file 'test/data/bryce/xdg/config/gtg/gtg.conf' (properties changed: -x to +x)
918=== modified file 'test/data/bryce/xdg/config/gtg/tasks.conf' (properties changed: -x to +x)
919=== modified file 'test/data/bryce/xdg/data/gtg/d4657d9f-3440-4791-a3d7-63cb4f00012e.xml' (properties changed: -x to +x)
920=== modified file 'test/data/bryce/xdg/data/gtg/projects.xml' (properties changed: -x to +x)
921=== modified file 'test/data/bryce/xdg/data/gtg/tags.xml' (properties changed: -x to +x)
922=== modified file 'test/data/standard/xdg/config/gtg/gtg.conf' (properties changed: -x to +x)
923=== modified file 'test/data/standard/xdg/config/gtg/tasks.conf' (properties changed: -x to +x)
924=== modified file 'test/data/standard/xdg/data/gtg/866eace6-7482-41e9-b450-e9664a5d1602.xml' (properties changed: -x to +x)
925=== modified file 'test/data/standard/xdg/data/gtg/gtg.pid' (properties changed: -x to +x)
926=== modified file 'test/data/standard/xdg/data/gtg/projects.xml' (properties changed: -x to +x)
927=== modified file 'test/data/standard/xdg/data/gtg/tags.xml' (properties changed: -x to +x)

Subscribers

People subscribed via source and target branches

to status/vote changes: