Package: agenda.app
Version: 0.44-1
Severity: important
Tags: patch
Patrick CARDONA wrote:
When I try to add a new task (#t) - or a new appointment - within
SimpleAgenda.app, the OK button is disabled in the "Edit task" panel
and the Store list is empty. So I cannot save anything.
Thanks for reporting this bug, it is easily reproducible on a fresh
installation (simulated by deleting the app defaults and
~/GNUstep/Library/Simplegenda).
In LocalStore -initWithName:, [[self config] objectForKey: ST_FILE]
returns nil so _globalFile ends up the same as _globalPath. It then
attempts to save the file which is identical to the newly created
directory and that fails, naturally. Which in turn sets the store as
non-writable in the -write method so you get the OK button disabled.
Riccardo's workaround actually works because adding a local calendar
file explicitly from the Preferences invokes +registerWithName: which
sets the object for that key.
The attached patch works for me.
--- agenda.app-0.44.orig/LocalStore.m
+++ agenda.app-0.44/LocalStore.m
@@ -27,9 +27,11 @@
{
self = [super initWithName:name];
if (self) {
+ ConfigManager *gc = [ConfigManager globalConfig];
+
_globalPath =
[[[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
NSUserDomainMask, YES) lastObject]
stringByAppendingPathComponent:@"SimpleAgenda"] retain];
- _globalFile = [[_globalPath
stringByAppendingPathComponent:[[self
config] objectForKey:ST_FILE]] retain];
+ _globalFile = [[_globalPath stringByAppendingPathComponent:[[gc
objectForKey:name] objectForKey:ST_FILE]] retain];
_globalTaskFile = [[NSString stringWithFormat:@"%@.tasks",
_globalFile]
retain];
[self read];
}