aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/util/instance/methods.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/vcomponent/util/instance/methods.scm')
-rw-r--r--module/vcomponent/util/instance/methods.scm30
1 files changed, 19 insertions, 11 deletions
diff --git a/module/vcomponent/util/instance/methods.scm b/module/vcomponent/util/instance/methods.scm
index 193a0304..fef83958 100644
--- a/module/vcomponent/util/instance/methods.scm
+++ b/module/vcomponent/util/instance/methods.scm
@@ -80,7 +80,7 @@
(define-method (initialize (this <events>) args)
(next-method)
- (format (current-error-port) (_ "Building <events> from~%"))
+ (format (current-error-port) (G_ "Building <events> from~%"))
(for calendar in (slot-ref this 'calendar-files)
(format (current-error-port) " - ~a~%" calendar))
@@ -96,7 +96,7 @@
type (concatenate
(map children (slot-ref this 'calendars)))))
(events (awhen (assoc-ref groups 'VEVENT)
- (car it)))
+ it))
(removed remaining (partition (extract 'X-HNH-REMOVED) events)))
;; TODO figure out what to do with removed events
@@ -125,7 +125,7 @@
;;; with the same UID, which is BAD.
(define-method (add-event (this <events>) calendar event)
- (add-child! calendar event)
+ (reparent! calendar event)
(unless (prop event 'UID)
(set! (prop event 'UID) (uuid)))
@@ -174,13 +174,17 @@
(define-method (add-and-save-event (this <events>) calendar event)
+
+ ((@ (vcomponent validate) validate-event) event)
+
(cond
[(get-event-by-uid this (prop event 'UID))
=> (lambda (old-event)
+ (define old-calendar (parent old-event))
;; remove old instance of event from runtime
(remove-event this old-event)
- (remove-child! (parent old-event) old-event)
+ (abandon! old-calendar old-event)
;; Add new event to runtime,
;; MUST be done after since the two events SHOULD share UID.
@@ -196,13 +200,13 @@
;; save-event sets -X-HNH-FILENAME from the UID. This is fine
;; since the two events are guaranteed to have the same UID.
(unless ((@ (vcomponent formats vdir save-delete) save-event) event)
- (throw 'misc-error (_ "Saving event to disk failed.")))
-
+ (throw 'misc-error (G_ "Saving event to disk failed.")))
- (unless (eq? calendar (parent old-event))
+ #;
+ (unless (eq? calendar old-calendar)
;; change to a new calendar
(format (current-error-port)
- (_ "Unlinking old event from ~a~%")
+ (G_ "Unlinking old event from ~a~%")
(prop old-event '-X-HNH-FILENAME))
;; NOTE that this may fail, leading to a duplicate event being
;; created (since we save beforehand). This is just a minor problem
@@ -212,7 +216,9 @@
(format (current-error-port)
- (_ "Event updated ~a~%") (prop event 'UID)))]
+ (G_ "Event ~a updated in ~a~%")
+ (prop event 'UID)
+ (prop calendar 'NAME)))]
[else
(add-event this calendar event)
@@ -222,7 +228,9 @@
;; NOTE Posibly defer save to a later point.
;; That would allow better asyncronous preformance.
(unless ((@ (vcomponent formats vdir save-delete) save-event) event)
- (throw 'misc-error (_ "Saving event to disk failed.")))
+ (throw 'misc-error (G_ "Saving event to disk failed.")))
(format (current-error-port)
- (_ "Event inserted ~a~%") (prop event 'UID))]))
+ (G_ "Event ~a added to ~a~%")
+ (prop event 'UID)
+ (prop calendar 'NAME))]))