denemo-devel
[Top][All Lists]
Advanced

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

Re: [Denemo-devel] Wrong display on pasting into different clef


From: Richard Shann
Subject: Re: [Denemo-devel] Wrong display on pasting into different clef
Date: Sun, 27 Sep 2009 19:26:50 +0100

OK. I have fixed display after cut and paste and clef insertion. One of
the caching routines was wrong: the clef at the start of a measure was
not being cached and noteheights were not recalculated (in case the
paste was to a different cleffed region). The clef at start of measure
is still not cached, just recalculated, so this could become an issue
with large scores. But at least it works.
But there is plenty of scope for bugs, so please try cut and paste and
clef changes and more...
Copying multiple staffs does not seem to work - should it be disabled?
Richard



On Sun, 2009-09-27 at 08:44 +0100, Richard Shann wrote:
> On Sat, 2009-09-26 at 10:23 +0100, Richard Shann wrote:
> > When you paste a note from an area with one clef into an area with
> > another the display is wrong. I have (at last) tracked down why.
> In fact there is more stuff cached about where to draw stuff for the
> chord: 
> 
>       * the field y of each note caches the y-position of the notehead,
>       * the field highesty of a chord caches the field y of the highest
>         pitched note (ditto lowest)
>       * the field stemy of a chord holds the y-position of the end of
>         any stem the chord might have
>       * the field is_stemup of a chord caches which way the stem should
>         go (which changes with change of clef)
>       * the field is_reversealigned of a chord caches the head
>         x-position (left/right) relative to the stem.
> 
> As with any caching system it is crucial to know when the caches are
> invalidated: things like pasting chords, clef changes, stem directives
> as well as changing the initial clef and of course ordinary note entry.
> And it would be useful to have a clear way to re-build the caches - the
> only secure method that I know of at the moment is to store the file to
> disk and reload it!
> At the moment I suspect one of the re-caching routines is wrong - if you
> put an eighth note c'' into a newly opened Denemo score and change to
> Bass clef and put in the note e the display shows the c'' with the stem
> up (the tail and the notehead are correct).
> So perhaps I should start with that bug.
> Richard
> 
> 
> > There are fields highesty and lowesty which cache the y-positions of the
> > notes in a chord they are calculated thus:
> > 
> >   if (mid_c_offset > ((chord *) thechord->object)->highestpitch)
> >     {
> >       ((chord *) thechord->object)->highestpitch = mid_c_offset;
> >       ((chord *) thechord->object)->highesty =
> >     calculateheight (mid_c_offset, dclef);
> >     }
> > 
> > this calculation however is not repeated on pasting chords, so the draw
> > routines draw them in the wrong places.
> > I'll look into fixing this
> > 
> > Richard
> > 
> > 
> > 
> > 
> > _______________________________________________
> > Denemo-devel mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/denemo-devel
> 
> 
> 
> _______________________________________________
> Denemo-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/denemo-devel





reply via email to

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