fix scripting regression

This commit is contained in:
Werner Schweer 2012-07-13 16:11:39 +02:00
parent 7638cc3773
commit bd446e523c
6 changed files with 251 additions and 31 deletions

View file

@ -58,6 +58,13 @@ extern void initDrumset();
void MScore::init()
{
#ifdef SCRIPT_INTERFACE
qRegisterMetaType<MScore::ElementType>("ElementType");
qRegisterMetaType<MScore::ValueType>("ValueType");
qRegisterMetaType<MScore::Direction>("Direction");
qRegisterMetaType<MScore::DirectionH>("DirectionH");
#endif
DPMM = DPI / INCH; // dots/mm
#ifdef __MINGW32__

View file

@ -59,7 +59,133 @@ static const char mimeSymbolFormat[] = "application/mscore/symbol";
static const char mimeSymbolListFormat[] = "application/mscore/symbollist";
static const char mimeStaffListFormat[] = "application/mscore/stafflist";
#include "elementType.h"
//---------------------------------------------------------
// ElementType
// The value of this enum determines the "stacking order"
// of elements on the canvas.
//---------------------------------------------------------
enum ElementType {
INVALID = 0,
SYMBOL = 1,
TEXT,
INSTRUMENT_NAME,
SLUR_SEGMENT,
BAR_LINE,
STEM_SLASH,
LINE,
BRACKET,
ARPEGGIO,
ACCIDENTAL,
NOTE,
STEM,
CLEF,
KEYSIG,
TIMESIG,
REST,
BREATH,
GLISSANDO,
REPEAT_MEASURE,
IMAGE,
/*19*/TIE,
ARTICULATION,
CHORDLINE,
DYNAMIC,
BEAM,
HOOK,
LYRICS,
FIGURED_BASS,
MARKER,
JUMP,
FINGERING,
TUPLET,
/*30*/TEMPO_TEXT,
STAFF_TEXT,
REHEARSAL_MARK,
INSTRUMENT_CHANGE,
HARMONY,
FRET_DIAGRAM,
BEND,
TREMOLOBAR,
VOLTA,
HAIRPIN_SEGMENT,
OTTAVA_SEGMENT,
TRILL_SEGMENT,
TEXTLINE_SEGMENT,
VOLTA_SEGMENT,
LAYOUT_BREAK,
SPACER,
STAFF_STATE,
LEDGER_LINE,
NOTEHEAD,
NOTEDOT,
TREMOLO,
MEASURE,
STAFF_LINES,
SELECTION,
LASSO,
SHADOW_NOTE,
RUBBERBAND,
TAB_DURATION_SYMBOL,
FSYMBOL,
PAGE,
// not drawable elements:
HAIRPIN,
OTTAVA,
PEDAL,
TRILL,
TEXTLINE,
SEGMENT,
SYSTEM,
COMPOUND,
CHORD,
SLUR,
// special types for drag& drop:
ELEMENT,
ELEMENT_LIST,
STAFF_LIST,
MEASURE_LIST,
LAYOUT,
HBOX,
VBOX,
TBOX,
FBOX,
ACCIDENTAL_BRACKET,
ICON,
OSSIA,
MAXTYPE
};
//---------------------------------------------------------
// ValueType
// used for Note->velocity
//---------------------------------------------------------
enum ValueType {
OFFSET_VAL, USER_VAL
};
//---------------------------------------------------------
// Direction
// used for stem and slur
//---------------------------------------------------------
enum Direction {
AUTO, UP, DOWN
};
//---------------------------------------------------------
// DirectionH
// used for note head mirror
//---------------------------------------------------------
enum DirectionH {
DH_AUTO, DH_LEFT, DH_RIGHT
};
//---------------------------------------------------------
// ArticulationType
@ -145,33 +271,6 @@ enum Anchor {
ANCHOR_SEGMENT, ANCHOR_MEASURE, ANCHOR_CHORD, ANCHOR_NOTE
};
//---------------------------------------------------------
// Direction
// used for stem and slur
//---------------------------------------------------------
enum Direction {
AUTO, UP, DOWN
};
//---------------------------------------------------------
// DirectionH
// used for note head mirror
//---------------------------------------------------------
enum DirectionH {
DH_AUTO, DH_LEFT, DH_RIGHT
};
//---------------------------------------------------------
// ValueType
// used for Note->velocity
//---------------------------------------------------------
enum ValueType {
OFFSET_VAL, USER_VAL
};
//---------------------------------------------------------
// Placement
//---------------------------------------------------------
@ -470,6 +569,9 @@ struct NoteVal {
class MScore : public QObject {
Q_OBJECT
Q_ENUMS(ElementType)
Q_ENUMS(ValueType)
Q_ENUMS(Direction)
Q_ENUMS(DirectionH)
private:
static MStyle* _defaultStyle; // default modified by preferences
@ -478,7 +580,99 @@ class MScore : public QObject {
static int _hRaster, _vRaster;
public:
#include "elementType.h"
enum ElementType {
INVALID = 0,
SYMBOL = 1,
TEXT,
INSTRUMENT_NAME,
SLUR_SEGMENT,
BAR_LINE,
STEM_SLASH,
LINE,
BRACKET,
ARPEGGIO,
ACCIDENTAL,
NOTE,
STEM,
CLEF,
KEYSIG,
TIMESIG,
REST,
BREATH,
GLISSANDO,
REPEAT_MEASURE,
IMAGE,
TIE,
ARTICULATION,
CHORDLINE,
DYNAMIC,
BEAM,
HOOK,
LYRICS,
FIGURED_BASS,
MARKER,
JUMP,
FINGERING,
TUPLET,
TEMPO_TEXT,
STAFF_TEXT,
REHEARSAL_MARK,
INSTRUMENT_CHANGE,
HARMONY,
FRET_DIAGRAM,
BEND,
TREMOLOBAR,
VOLTA,
HAIRPIN_SEGMENT,
OTTAVA_SEGMENT,
TRILL_SEGMENT,
TEXTLINE_SEGMENT,
VOLTA_SEGMENT,
LAYOUT_BREAK,
SPACER,
STAFF_STATE,
LEDGER_LINE,
NOTEHEAD,
NOTEDOT,
TREMOLO,
MEASURE,
STAFF_LINES,
SELECTION,
LASSO,
SHADOW_NOTE,
RUBBERBAND,
TAB_DURATION_SYMBOL,
FSYMBOL,
PAGE,
HAIRPIN,
OTTAVA,
PEDAL,
TRILL,
TEXTLINE,
SEGMENT,
SYSTEM,
COMPOUND,
CHORD,
SLUR,
ELEMENT,
ELEMENT_LIST,
STAFF_LIST,
MEASURE_LIST,
LAYOUT,
HBOX,
VBOX,
TBOX,
FBOX,
ACCIDENTAL_BRACKET,
ICON,
OSSIA,
MAXTYPE
};
enum ValueType { OFFSET_VAL, USER_VAL };
enum Direction { AUTO, UP, DOWN };
enum DirectionH { DH_AUTO, DH_LEFT, DH_RIGHT };
static void init();
static MStyle* defaultStyle();
@ -518,6 +712,10 @@ class MScore : public QObject {
static bool debugMode;
};
Q_DECLARE_METATYPE(MScore::ElementType)
Q_DECLARE_METATYPE(MScore::ValueType)
Q_DECLARE_METATYPE(MScore::Direction)
Q_DECLARE_METATYPE(MScore::DirectionH)
//---------------------------------------------------------
// center

View file

@ -68,6 +68,7 @@ class NoteHead : public Symbol {
// @P mirror bool mirror note head on x axis
// @P small bool small note head
// @P tuning qreal tuning offset in cent
// @P veloType enum type of veloOffset: MScore.OFFSET_VAL, MScore.USER_VAL
//-------------------------------------------------------------------
/**
@ -88,6 +89,15 @@ class Note : public Element {
Q_PROPERTY(bool mirror READ mirror WRITE setMirror)
Q_PROPERTY(bool small READ small WRITE setSmall)
Q_PROPERTY(qreal tuning READ tuning WRITE setTuning)
Q_PROPERTY(ValueType veloType READ veloType WRITE setVeloType)
Q_PROPERTY(int veloOffset READ veloOffset WRITE setVeloOffset)
Q_PROPERTY(int onTimeOffset READ onTimeOffset WRITE setOnTimeOffset)
Q_PROPERTY(int onTimeUserOffset READ onTimeUserOffset WRITE setOnTimeUserOffset)
Q_PROPERTY(int offTimeOffset READ offTimeOffset WRITE setOffTimeOffset)
Q_PROPERTY(int offTimeUserOffset READ offTimeUserOffset WRITE setOffTimeUserOffset)
Q_PROPERTY(DirectionH userMirror READ userMirror WRITE setUserMirror)
Q_PROPERTY(Direction dotPosition READ dotPosition WRITE setDotPosition)
int _subchannel; ///< articulation
int _line; ///< y-Position; 0 - top line.

View file

@ -378,6 +378,10 @@ void MuseScore::pluginTriggered(int idx)
endCmd();
}
//---------------------------------------------------------
// newElement
//---------------------------------------------------------
Element* QmlPlugin::newElement(int t)
{
Score* score = curScore();

View file

@ -15,7 +15,7 @@ rewind cursor<br/>
type=0 rewind to start of score<br/>
type=1 rewind to start of selection<br/>
type=2 rewind to end of selection<br/>
<div/>
</div>
<div class="method">
<code>bool <b>next</b>()</code>
</div>
@ -36,7 +36,7 @@ set duration<br/>
z: numerator<br/>
n: denominator<br/>
Quarter, if n == 0<br/>
<div/>
</div>
<h4 class="groupB">Properties</h4>
<div class="tab2">
<table border="1" rules="all" cellpadding="0" cellspacing="0">

View file

@ -21,6 +21,7 @@
<tr><td><code>mirror</code></td><td><code>bool</code></td><td> mirror note head on x axis</td></tr>
<tr><td><code>small</code></td><td><code>bool</code></td><td> small note head</td></tr>
<tr><td><code>tuning</code></td><td><code>qreal</code></td><td> tuning offset in cent</td></tr>
<tr><td><code>veloType</code></td><td><code>enum</code></td><td> type of veloOffset: MScore.OFFSET_VAL, MScore.USER_VAL</td></tr>
</table></div>
</body>
</html>