lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tie break-visibility of OctavateEight to the one of the associated c


From: reinhold . kainhofer
Subject: Re: Tie break-visibility of OctavateEight to the one of the associated clef (issue3838042)
Date: Tue, 28 Dec 2010 23:02:25 +0000

Reviewers: Neil Puttock,

Message:
On 2010/12/28 22:06:43, Neil Puttock wrote:
I'd prefer a callback to copy the Clef's setting, then it's documented
automatically (and can be changed if absolutely necessary).

Hmm, I can't really think of a situation where you want to show or hide
the octavation eight independently of the associated clef (actually, I
never understood why it was a separate grob in the first place).

The only situation might be to hide the 8 in a "treble_8" clef for a
tenor voice. However, the break-visibility of OctavationEight only
applies to implicit clefs (i.e. NOT to clef changes!). For explicit
clefs, the explicitClefVisibility applies to both the clef and the
octavation (it is hardcoded to be explicitly assigned to both in the
engraver!). So, there is currently no way to hide the 8 in all treble_8
clefs, anyway. The initial clef will always have the 8 visible.

Of course, your suggestion of a callback (and the removal of the
hardcoded assignment of explicitClefVisibility to the octavate_ member)
would allow the user to hide ALL octavation eights, even for explicit
clefs.

Description:
Tie break-visibility of OctavateEight to the one of the associated clef

It does not make sense to handle break-visibility of OctavateEight
grobs independently from the clef they are assigned to.
This patch lets OctavateEight always inherit break-visibility from
the Clef grob and ignores any break-visibility assigned to
OctavateEight.

Please review this at http://codereview.appspot.com/3838042/

Affected files:
  M Documentation/notation/changing-defaults.itely
  A input/regression/clef-oct-visibility.ly
  M lily/clef-engraver.cc
  M scm/define-grobs.scm


Index: Documentation/notation/changing-defaults.itely
diff --git a/Documentation/notation/changing-defaults.itely b/Documentation/notation/changing-defaults.itely index 7a294693fee8f31043d3e37acb2d209d2db1f887..ef5f36ddd50966fa3cefe067a5a44113485947d4 100644
--- a/Documentation/notation/changing-defaults.itely
+++ b/Documentation/notation/changing-defaults.itely
@@ -3047,11 +3047,11 @@ occur only at explicit @code{\bar} commands.
 @cindex clefs, visibility of octavation

 The small octavation symbol on octavated clefs is produced by the
address@hidden layout object.  Its visibility is controlled
-independently from that of the @code{Clef} object, so it is
-necessary to apply any required @code{break-visibility} overrides
-to both the @code{Clef} and the @code{OctavateEight} layout objects
-to fully suppress such clef symbols at the start of each line.
address@hidden layout object.  Its visibility is automatically
+inherited from the @code{Clef} object, so it is not necessary (or
+even possible) to apply any required @code{break-visibility} overrides
+to the @code{OctavateEight} layout objects to suppress octavation
+symbols for visible clefs.

 For explicit clef changes, the @code{explicitClefVisibility}
 property controls both the clef symbol and any octavation symbol
Index: input/regression/clef-oct-visibility.ly
diff --git a/input/regression/clef-oct-visibility.ly b/input/regression/clef-oct-visibility.ly
new file mode 100644
index 0000000000000000000000000000000000000000..a429793c44ea2a927b532d5ed374c810c5d2e2dc
--- /dev/null
+++ b/input/regression/clef-oct-visibility.ly
@@ -0,0 +1,18 @@
+\version "2.13.45"
+
+\header {
+
+    texidoc = "Octavation signs may be added to clefs.  These
+octavation signs should inherit the break-visibility from the clef.  An
+explicit setting for Staff.OctavateEight should not have any effect."
+
+}
+\layout { ragged-right = ##t  }
+
+
+\relative c'' {
+  \override Staff.OctavateEight #'break-visibility = #all-visible
+  \clef "G_8"
+  c1 c1
+}
+
Index: lily/clef-engraver.cc
diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc
index 37151c2fbec387ed25aac8a17e744f1bc8bacc50..a0c5b508e7afab3fad4fc23b4393b7b395dc1e3c 100644
--- a/lily/clef-engraver.cc
+++ b/lily/clef-engraver.cc
@@ -128,6 +128,8 @@ Clef_engraver::create_clef ()
          g->set_parent (clef_, Y_AXIS);
          g->set_parent (clef_, X_AXIS);
          g->set_property ("direction", scm_from_int (dir));
+         SCM vis = clef_->get_property ("break-visibility");
+         g->set_property ("break-visibility", vis);
          octavate_ = g;
        }
     }
Index: scm/define-grobs.scm
diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm
index 36ec9f0d1efb241361afb1f38aff21dee2ef69d7..6e9d35c8f793d0efb7e40dfd548e80a9c206876d 100644
--- a/scm/define-grobs.scm
+++ b/scm/define-grobs.scm
@@ -1394,7 +1394,6 @@

     (OctavateEight
      . (
-       (break-visibility . ,begin-of-line-visible)
        (font-shape . italic)
        (font-size . -4)
        (self-alignment-X . ,CENTER)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]