[gsharp-cvs] CVS gsharp

crhodes crhodes at common-lisp.net
Thu Jul 12 16:04:50 UTC 2007


Update of /project/gsharp/cvsroot/gsharp
In directory clnet:/tmp/cvs-serv6210

Modified Files:
	buffer.lisp 
Log Message:
Quick bandage for editing scores with non-fiveline (i.e. lyrics) staves: 
don't try to find a key signature.  (When the number of staff types 
expands, we will need a better protocol...)


--- /project/gsharp/cvsroot/gsharp/buffer.lisp	2007/07/05 21:13:03	1.49
+++ /project/gsharp/cvsroot/gsharp/buffer.lisp	2007/07/12 16:04:49	1.50
@@ -773,19 +773,22 @@
   (let* ((layer (layer (slice bar)))
 	 (staves (staves layer)))
     (dolist (staff staves)
-      (let ((key-signatures (key-signatures staff)))
-	(when (and key-signatures
-		   (find (gsharp-numbering:number bar) key-signatures 
-			 :key (lambda (x) (gsharp-numbering:number (bar x)))))
-	  ;; we actually only need to invalidate everything in the
-	  ;; current bar using the staff, not the entire staff, but...
-	  (gsharp-measure::invalidate-everything-using-staff (buffer staff) staff)
-	  ;; there might be more than one key signature in the bar,
-	  ;; and they might have changed their relative order as a
-	  ;; result of the edit.
-	  (setf (key-signatures staff)
-		(sort (key-signatures staff)
-		      (lambda (x y) (gsharp::starts-before-p x (bar y) y)))))))))
+      ;; FIXME: this isn't the Right Thing: instead we should be using
+      ;; something like maybe-update-key-signatures-using-staff.
+      (when (typep staff 'fiveline-staff)
+	(let ((key-signatures (key-signatures staff)))
+	  (when (and key-signatures
+		     (find (gsharp-numbering:number bar) key-signatures 
+			   :key (lambda (x) (gsharp-numbering:number (bar x)))))
+	    ;; we actually only need to invalidate everything in the
+	    ;; current bar using the staff, not the entire staff, but...
+	    (gsharp-measure::invalidate-everything-using-staff (buffer staff) staff)
+	    ;; there might be more than one key signature in the bar,
+	    ;; and they might have changed their relative order as a
+	    ;; result of the edit.
+	    (setf (key-signatures staff)
+		  (sort (key-signatures staff)
+			(lambda (x y) (gsharp::starts-before-p x (bar y) y))))))))))
  
 (defmethod add-element :after ((element element) (bar bar) position)
   (maybe-update-key-signatures bar))




More information about the Gsharp-cvs mailing list