bugDenemo - Bugs: bug #38822, Consistent behaviour and user...

 
 

bug #38822: Consistent behaviour and user interface across staff and clef directives/properties

Submitted by:  None
Submitted on:  Wed 24 Apr 2013 06:25:59 PM UTC  
 
Category: NoneSeverity: 3 - Normal
Item Group: NoneStatus: In Progress
Privacy: PublicAssigned to: None
Open/Closed: Open

Add a New Comment (Rich MarkupRich Markup):
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Tue 07 May 2013 05:08:45 PM UTC, comment #9:

> 14] Yes, actually nothing is "present" the mousing.c code would need to know not to respond if the staff is a voice. (There are no widgets in the drawing area, it is all hand coded. I looked at using a gtk widget for the drawing area that allows buttons to be placed in it, but could not get it working).


This is now fixed in git.

Richard Shann <rshann>
Project Administrator
Mon 06 May 2013 05:21:35 PM UTC, comment #8:

>Shows another problem, on returning cancelled the message assumes there are no directives.

this is fixed now.

Richard Shann <rshann>
Project Administrator
Mon 06 May 2013 09:28:58 AM UTC, comment #7:

12] ... the escape key is bound to "OK" rather than "Cancel"
src/lilydirectives.c: GtkWidget *dialog = gtk_dialog_new_with_buttons (_("Select Directive")
this is fixed in git. Shows another problem, on returning cancelled the message assumes there are no directives.

Richard Shann <rshann>
Project Administrator
Mon 29 Apr 2013 04:28:36 PM UTC, comment #6:

>Good point. If possible the menu entry should be changed to "No Clef Directives..." when there are no clef directives, and diplayed as unselectable (greyed-out), similar to [9] below.


Unfortunately this menu is one created by the file denemoui.xml, that is, it is loaded up on program startup. So I am not sure what would be involved in getting hold of the menu item and interacting with it as directives are created/deleted. So that looks like a non-trivial tidying job.

10] Tablature is added as a clef directive, a staff directive, and a voice directive (in the later case the voice directives icon is added without any menu entries, so the menu is displayed as a thin white horizontal sliver). Rather, tablature should be consolidated under a single directive; I suggest the clef directive only.

The directives affect the thing they are attached to (in this case, modifying the LilyPond text generated), that set is what the author of the script found they needed to create a tab staff. There may be neater LilyPond syntax which could leave some of those elements unchanged, but generally it is not possible to change the LilyPond output at various points in the output text via a single directive.

Changing the name of the command to ToggleTabStaff would be good given its present behavior, but better still would be to upgrade the script to examine if the staff is currently a tab staff and offer a range of features (such as changing the tuning it is for - it defaults to guitar).

12] ... the escape key is bound to "OK" rather than "Cancel"
src/lilydirectives.c: GtkWidget *dialog = gtk_dialog_new_with_buttons (_("Select Directive")

is where the widget is created - it will need some code to respond to Esc

13] The Undo behavior can also be fixed in the script, basically taking a snapshot before the script runs and turning off the storage of history until the script finished. The command then undoes in one step.

14] Yes, actually nothing is "present" the mousing.c code would need to know not to respond if the staff is a voice. (There are no widgets in the drawing area, it is all hand coded. I looked at using a gtk widget for the drawing area that allows buttons to be placed in it, but could not get it working).

15] Clipping the top staff line. Well, there are a lot of collisions in the display to be tackled - some, I suspect are completely un-wonted. I didn't get round to that yet
I think that one is just down to the tab staff script again, there is a value to set the y position of text in the display.

Thank you for the detailed work - are you able to tinker with scripts yourself? They are written in Scheme and the facilities for modifying testing and saving scripted commands are all built in to Denemo.

Richard Shann <rshann>
Project Administrator
Mon 29 Apr 2013 02:17:45 PM UTC, comment #5:

>> 5] After implementing [1], the blue area preceding the staff will be dedicated to staff directives...
> Actually the area is divided into two, the top is for staff directives, the lower part for voice directives.

You're right, scratch this.

>> 3] Remove "Edit Clef Directives" from the clef symbol active area menu since...
> but of course it should check if there are any before offering to edit them...

Good point. If possible the menu entry should be changed to "No Clef Directives..." when there are no clef directives, and diplayed as unselectable (greyed-out), similar to [9] below.

After looking into voice directives and tablatures, unfortunately I've expanded the list:

10] Tablature is added as a clef directive, a staff directive, and a voice directive (in the later case the voice directives icon is added without any menu entries, so the menu is displayed as a thin white horizontal sliver). Rather, tablature should be consolidated under a single directive; I suggest the clef directive only.

11] As a staff directive, "TabStaff" is displayed as a menu entry. As a clef directive, "TabStaff" is displayed in the box "Select a clef directive" shown after clicking "Edit Clef Directives". In both cases, I expected that the action of selecting "TabStaff" would display a tablature customization widget, however it simply toggles between a regular staff and a tablature staff. I suggest changing the description "TabStaff" to "Toggle TabStaff" in order to reduce confusion.

12] In both boxes, "Select a staff directive" shown when selecting Staff/Voice -> Edit Staff Directives, and "Select a clef directive" shown when clicking "Edit Clef Directives" from the clef symbol active area, the escape key is bound to "OK" rather than "Cancel" which is unintuitive and non-standard.

13] The "TabStaff" directive does not integrate properly with undo history. From my limited testing it seems that a "TabStaff" action is placed in the history stack before the most current key-signature change. So to undo a "TabStaff" toggle, even if it is the most current action, you have to rewind the undo history back to the last key-change event.

14] Even though key signature and time signature symbols are not displayed on voice staffs, you can still interact with them. This doesn't seem right (the ability to interact with invisible widgets). I assume they're just present as spacers to align notes across staffs, but I suggest they don't accept input.

15] This is really trivial, but the "TabStaff" text shown below the instrument name is slightly cut-off.

Anonymous
Thu 25 Apr 2013 06:26:35 PM UTC, comment #4:

5] After implementing [1], the blue area preceding the staff will be dedicated to staff directives.
Actually the area is divided into two, the top is for staff directives, the lower part for voice directives.

Richard Shann <rshann>
Project Administrator
Thu 25 Apr 2013 06:22:39 PM UTC, comment #3:

I have tidied up some of the behavior for the mouse at the left margin.
There are quite a few other points here to be looked at: some of the behavior is down to the individual scripts being made consistent with each other I suspect.

Richard Shann <rshann>
Project Administrator
Thu 25 Apr 2013 12:16:46 PM UTC, comment #2:

>There are clef directives, e.g Tablature sets them ...

but of course it should check if there are any before offering to edit them...

Richard Shann <rshann>
Project Administrator
Thu 25 Apr 2013 07:06:06 AM UTC, comment #1:

Thank you for these comments
one of them has me puzzled

3] Remove "Edit Clef Directives" from the clef symbol active area menu since the clef directives functionality is not available in denemo and the menu entry does nothing.

There are clef directives, e.g Tablature sets them ...

Richard Shann <rshann>
Project Administrator
Wed 24 Apr 2013 06:25:59 PM UTC, original submission:

The lack of clearly-defined boundaries in functionality or otherwise simply broken behaviour renders this one of the more confusing aspects to denemo.

1] Limit the clef symbol active area, the area over which a menu is displayed containing "Initial Clef" and "Edit Clef Directives" upon a left click. The clef symbol active area should stop at the key signature area (which it already does) and start at the beginning of the staff excluding the blue area preceding the staff (which it does not do). Vertically, the clef symbol active area should be unlimited (which it already does), similar to the active area of note input.

2] Shift the position of the clefs slightly to the right of the staff start in order to reduce clutter.

3] Remove "Edit Clef Directives" from the clef symbol active area menu since the clef directives functionality is not available in denemo and the menu entry does nothing.

4] Require the staff directives active area - the screwdriver/wrench icon in the blue area preceding the staff - to receive a left click before displaying a menu, rather than a mouseover. The current mouseover behaviour is too easy to accidentally trigger, and furthermore requires an additional click to release focus from the menu.

5] The staff directives active area menu is still shown and continues grabbing the focus even after a menu item has been clicked. This requires a second, unnecessary click to release the focus and hide the menu before any further user interaction can continue.

5] After implementing [1], the blue area preceding the staff will be dedicated to staff directives. Therefore, the staff directives icon (screwdriver/wrench) should be removed, and/or the staff directives active area (the area over which a staff directives menu is shown upon input) should be expanded to the entire blue area.

6] Create consistent linking between instrument name and staff name. Currently, any updates to the instrument name are copied to the staff name, while updates to the staff name fail to affect the instrument name. Either the staff name and instrument name should be merged into a single property, or completely unlinked. If completely unlinked, both the staff name and the instrument name should be displayed in the denemo score. I suggest displaying the staff name above the staff, and the instrument name below the staff.

7] Update the functionality of the staff directives active area menu to remove the intermediate menu popup "Repeat the command?". From my [limited] testing the instrument name and short intrument name menu entries are affected, while the staff comment menu behaves appropriately.

8] Fix the Staff/Voice -> Edit Staff Directives functionality on a per-directive basis:
ShortInstrumentName
works
StaffComment
does not work, nothing happens
InstrumentName
does not work, resets instrument name and staff name to "edit"

9] If a staff contains no directives, decide how to handle the staff directives active area menu. Options:
. Do not display a menu
cons
confusing, inconsistent behaviour
. Display a menu showing all possible directives to add
cons
would require recreating a large portion of the Staffs/Voices menu, increasing clutter
would require a menu split between current directives, and all possible directives
difficult to program and difficult to maintain
. Display a menu with an unselectable (greyed-out) menu entry containing text along the lines of
"No Staff Directives.."
pros
simple, consistent

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by rshann (Posted a comment)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 25 Apr 2013 06:22:39 PM UTCrshannStatusConfirmed=>In Progress
    Thu 25 Apr 2013 07:06:06 AM UTCrshannStatusNone=>Confirmed

    Back to the top


    Powered by Savane 3.1-cleanup