From: Chris C. <ca...@al...> - 2009-06-18 14:19:27
|
Although quite a few of the notation editor functions now work, there are quite a few still in need of reconnection. Many of them are very easy to reconnect -- could be a good task for anyone with a moment to spare (I think Michael may have been hinting to me in an email earlier that he might do a few of these?) I've just committed (rev 10401) a single example, the Interpret... function. Here are some notes about it: The basic principle is to look for actions created in NewNotationView::setupActions() that are connected to slots that do not exist in that file. In this case the action is set up as: createAction("interpret", SLOT(slotTransformsInterpret())); but slotTransformsInterpret() did not appear anywhere else in the file. (If you know what command will be used to implement this function, perhaps also check that it doesn't appear in NotationCommandRegistry.cpp -- if it appears there, then it may be the case that the action should not have been constructed at all in NotationView, rather than that it needs to be connected. I expect there will be few or no instances of that though.) Then, once you've found an action that needs connecting, look in OldNotationView.cpp for the slot function that implements it in the old code. If it's very long and complicated, perhaps bring it to the attention of the list rather than trying to attack it straight away. Or try it and ask if you get stuck -- some of the long & complicated functions are probably quite simple to convert in fact. Anyway, once you've found it, just plonk that slot code into the new notation view, change the class name from NotationView to NewNotationView, and switch over anything that now works differently... not that there is any thorough documentation of that, but for example: * replace m_currentEventSelection with getSelection() -- the notation view no longer contains its own selection object * replace addCommandToHistory() with CommandHistory::getInstance()->addCommand() * replace the form "staff = getCurrentStaff(); segment = staff->getSegment()" with "segment = getCurrentSegment()" and, um, probably some others. Check out that diff for rev 10401 for a simple example. Chris |