[gsharp-cvs] CVS update: gsharp/gui.lisp
Robert Strandh
rstrandh at common-lisp.net
Sat Nov 26 21:30:46 UTC 2005
Update of /project/gsharp/cvsroot/gsharp
In directory common-lisp.net:/tmp/cvs-serv11943
Modified Files:
gui.lisp
Log Message:
Invalidated elements of layers using a staff that has its key signature
altered.
Date: Sat Nov 26 22:30:43 2005
Author: rstrandh
Index: gsharp/gui.lisp
diff -u gsharp/gui.lisp:1.44 gsharp/gui.lisp:1.45
--- gsharp/gui.lisp:1.44 Sun Nov 20 20:17:22 2005
+++ gsharp/gui.lisp Sat Nov 26 22:30:13 2005
@@ -1089,39 +1089,59 @@
(layer (layer (cursor *application-frame*))))
(remove-staff-from-layer staff layer)))
+(defun invalidate-slice-using-staff (slice staff)
+ (declare (ignore staff)) ; maybe use this later
+ (loop for bar in (bars slice)
+ do (loop for element in (elements bar)
+ do (mark-modified element))))
+
(define-gsharp-command com-more-sharps ()
- (let ((keysig (keysig (car (staves (layer (cursor *application-frame*)))))))
- (cond ((eq (aref keysig 3) :flat) (setf (aref keysig 3) :natural))
- ((eq (aref keysig 0) :flat) (setf (aref keysig 0) :natural))
- ((eq (aref keysig 4) :flat) (setf (aref keysig 4) :natural))
- ((eq (aref keysig 1) :flat) (setf (aref keysig 1) :natural))
- ((eq (aref keysig 5) :flat) (setf (aref keysig 5) :natural))
- ((eq (aref keysig 2) :flat) (setf (aref keysig 2) :natural))
- ((eq (aref keysig 6) :flat) (setf (aref keysig 6) :natural))
- ((eq (aref keysig 3) :natural) (setf (aref keysig 3) :sharp))
- ((eq (aref keysig 0) :natural) (setf (aref keysig 0) :sharp))
- ((eq (aref keysig 4) :natural) (setf (aref keysig 4) :sharp))
- ((eq (aref keysig 1) :natural) (setf (aref keysig 1) :sharp))
- ((eq (aref keysig 5) :natural) (setf (aref keysig 5) :sharp))
- ((eq (aref keysig 2) :natural) (setf (aref keysig 2) :sharp))
- ((eq (aref keysig 6) :natural) (setf (aref keysig 6) :sharp)))))
+ (let ((staff (car (staves (layer (cursor *application-frame*))))))
+ (loop for segment in (segments (buffer *application-frame*))
+ do (loop for layer in (layers segment)
+ do (when (member staff (staves layer))
+ (invalidate-slice-using-staff (head layer) staff)
+ (invalidate-slice-using-staff (body layer) staff)
+ (invalidate-slice-using-staff (tail layer) staff))))
+ (let ((keysig (keysig staff)))
+ (cond ((eq (aref keysig 3) :flat) (setf (aref keysig 3) :natural))
+ ((eq (aref keysig 0) :flat) (setf (aref keysig 0) :natural))
+ ((eq (aref keysig 4) :flat) (setf (aref keysig 4) :natural))
+ ((eq (aref keysig 1) :flat) (setf (aref keysig 1) :natural))
+ ((eq (aref keysig 5) :flat) (setf (aref keysig 5) :natural))
+ ((eq (aref keysig 2) :flat) (setf (aref keysig 2) :natural))
+ ((eq (aref keysig 6) :flat) (setf (aref keysig 6) :natural))
+ ((eq (aref keysig 3) :natural) (setf (aref keysig 3) :sharp))
+ ((eq (aref keysig 0) :natural) (setf (aref keysig 0) :sharp))
+ ((eq (aref keysig 4) :natural) (setf (aref keysig 4) :sharp))
+ ((eq (aref keysig 1) :natural) (setf (aref keysig 1) :sharp))
+ ((eq (aref keysig 5) :natural) (setf (aref keysig 5) :sharp))
+ ((eq (aref keysig 2) :natural) (setf (aref keysig 2) :sharp))
+ ((eq (aref keysig 6) :natural) (setf (aref keysig 6) :sharp))))))
(define-gsharp-command com-more-flats ()
- (let ((keysig (keysig (car (staves (layer (cursor *application-frame*)))))))
- (cond ((eq (aref keysig 6) :sharp) (setf (aref keysig 6) :natural))
- ((eq (aref keysig 2) :sharp) (setf (aref keysig 2) :natural))
- ((eq (aref keysig 5) :sharp) (setf (aref keysig 5) :natural))
- ((eq (aref keysig 1) :sharp) (setf (aref keysig 1) :natural))
- ((eq (aref keysig 4) :sharp) (setf (aref keysig 4) :natural))
- ((eq (aref keysig 0) :sharp) (setf (aref keysig 0) :natural))
- ((eq (aref keysig 3) :sharp) (setf (aref keysig 3) :natural))
- ((eq (aref keysig 6) :natural) (setf (aref keysig 6) :flat))
- ((eq (aref keysig 2) :natural) (setf (aref keysig 2) :flat))
- ((eq (aref keysig 5) :natural) (setf (aref keysig 5) :flat))
- ((eq (aref keysig 1) :natural) (setf (aref keysig 1) :flat))
- ((eq (aref keysig 4) :natural) (setf (aref keysig 4) :flat))
- ((eq (aref keysig 0) :natural) (setf (aref keysig 0) :flat))
- ((eq (aref keysig 3) :natural) (setf (aref keysig 3) :flat)))))
+ (let ((staff (car (staves (layer (cursor *application-frame*))))))
+ (loop for segment in (segments (buffer *application-frame*))
+ do (loop for layer in (layers segment)
+ do (when (member staff (staves layer))
+ (invalidate-slice-using-staff (head layer) staff)
+ (invalidate-slice-using-staff (body layer) staff)
+ (invalidate-slice-using-staff (tail layer) staff))))
+ (let ((keysig (keysig staff)))
+ (cond ((eq (aref keysig 6) :sharp) (setf (aref keysig 6) :natural))
+ ((eq (aref keysig 2) :sharp) (setf (aref keysig 2) :natural))
+ ((eq (aref keysig 5) :sharp) (setf (aref keysig 5) :natural))
+ ((eq (aref keysig 1) :sharp) (setf (aref keysig 1) :natural))
+ ((eq (aref keysig 4) :sharp) (setf (aref keysig 4) :natural))
+ ((eq (aref keysig 0) :sharp) (setf (aref keysig 0) :natural))
+ ((eq (aref keysig 3) :sharp) (setf (aref keysig 3) :natural))
+ ((eq (aref keysig 6) :natural) (setf (aref keysig 6) :flat))
+ ((eq (aref keysig 2) :natural) (setf (aref keysig 2) :flat))
+ ((eq (aref keysig 5) :natural) (setf (aref keysig 5) :flat))
+ ((eq (aref keysig 1) :natural) (setf (aref keysig 1) :flat))
+ ((eq (aref keysig 4) :natural) (setf (aref keysig 4) :flat))
+ ((eq (aref keysig 0) :natural) (setf (aref keysig 0) :flat))
+ ((eq (aref keysig 3) :natural) (setf (aref keysig 3) :flat))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
More information about the Gsharp-cvs
mailing list