Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
scoreviewport.h
Go to the documentation of this file.
1 
8 #ifndef SCOREVIEWPORT_H_
9 #define SCOREVIEWPORT_H_
10 
11 #include <QList>
12 #include <QPen>
13 #include <QBrush>
14 #include <QRect>
15 #include <QLineEdit>
16 #include <QTimer>
17 
18 #include "widgets/viewport.h"
19 #include "core/kdtree.h"
20 #include "core/note.h"
21 
22 class QScrollBar;
23 class QMouseEvent;
24 class QWheelEvent;
25 class QTimer;
26 class QGridLayout;
27 
28 class CADrawable;
30 class CADrawableContext;
31 class CADrawableNote;
32 class CAMusElement;
33 class CAContext;
34 class CASheet;
35 class CAStaff;
36 class CALyricsContext;
37 
38 class CATextEdit : public QLineEdit {
39 Q_OBJECT
40 
41 public:
42  CATextEdit( QWidget *parent=0 );
43  ~CATextEdit();
44 
45 signals:
46  void CAKeyPressEvent( QKeyEvent * );
47 
48 public slots:
49  void keyPressEvent( QKeyEvent * );
50 };
51 
52 class CAScoreViewPort : public CAViewPort {
53 Q_OBJECT
54 
55 public:
60  };
61 
63  // Basic methods //
65  CAScoreViewPort(QWidget *parent=0);
66  CAScoreViewPort(CASheet *sheet, QWidget *parent=0);
67  virtual ~CAScoreViewPort();
69  CAScoreViewPort *clone(QWidget *parent);
70  inline CASheet *sheet() { return _sheet; }
71  inline void setSheet( CASheet *sheet ) { _sheet = sheet; }
72 
74  // Addition, removal of drawable elements //
76  void addMElement(CADrawableMusElement *elt, bool select=false);
77  void addCElement(CADrawableContext *elt, bool select=false);
78  CAMusElement *removeMElement(double x, double y);
79 
83 
85  // Selection //
87  inline QList<CADrawableMusElement*>& selection() { return _selection; };
88  QList<CAMusElement*> musElementSelection();
89  QList<CADrawableMusElement*> musElementsAt(double x, double y);
90  CADrawableContext *selectCElement(double x, double y);
93  inline QPoint lastMousePressCoords() { return _lastMousePressCoords; }
94  void setLastMousePressCoordsAfter(const QList<CAMusElement*> list);
95 
98 
99  void selectAll();
100  void selectAllCurBar();
101  void selectAllCurContext();
102  void invertSelection();
103  inline void clearSelection() { _selection.clear(); emit selectionChanged(); }
104  inline bool removeFromSelection(CADrawableMusElement *elt) { return _selection.removeAll(elt); emit selectionChanged(); }
105 
106  void addToSelection(CADrawableMusElement *elt, bool triggerSignal=true );
107  void addToSelection( const QList<CADrawableMusElement*> list, bool selectableOnly=true );
109  void addToSelection(const QList<CAMusElement *> elts);
110 
111  CADrawableMusElement* selectNextMusElement( bool append=false );
112  CADrawableMusElement* selectPrevMusElement( bool append=false );
115 
116  inline const QList<QRect> &selectionRegionList() const { return _selectionRegionList; }
117  inline void addSelectionRegion(QRect r) { _selectionRegionList << r; }
118  inline void removeSelectionRegion(QRect r) { _selectionRegionList.removeAll(r); }
121 
123  // Music elements and contexts query, space calculation and access //
127  QList<CADrawableContext*> findContextsInRegion(QRect &reg);
128  CADrawableMusElement *nearestLeftElement(double x, double y, CADrawableContext* context=0);
129  CADrawableMusElement *nearestLeftElement(double x, double y, CAVoice *voice);
130  CADrawableMusElement *nearestRightElement(double x, double y, CADrawableContext* context=0);
131  CADrawableMusElement *nearestRightElement(double x, double y, CAVoice *voice);
132  int coordsToTime( double x );
133  double timeToCoords( int time );
134  double timeToCoordsSimpleVersion( int time );
135 
136  CADrawableContext *nearestUpContext(double x, double y);
137  CADrawableContext *nearestDownContext(double x, double y);
138 
139  int calculateTime(double x, double y);
140 
141  CAContext *contextCollision(double x, double y);
142 
144  // Scrollbars //
146  inline void setManualScroll(bool scroll) { _allowManualScroll = scroll; }
147  inline bool manualScroll() { return _allowManualScroll; }
148 
149  void checkScrollBars();
150 
153 
155  // Scene appearance, properties and actions //
157  void rebuild();
158  inline const int drawableWidth() { return _canvas->width(); }
159  inline const int drawableHeight() { return _canvas->height(); }
160 
161  void setWorldX(int x, bool animate=false, bool force=false);
162  void setWorldY(int y, bool animate=false, bool force=false);
163  void setWorldWidth(int w, bool force=false);
164  void setWorldHeight(int h, bool force=false);
165 
166  inline const int worldX() { return _worldX; }
167  inline const int worldY() { return _worldY; }
168  inline const int worldWidth() { return _worldW; }
169  inline const int worldHeight() { return _worldH; }
170  inline const QRect worldCoords() { return QRect(worldX(), worldY(), worldWidth(), worldHeight()); }
171 
172  inline const float zoom() { return _zoom; }
173 
174  void setWorldCoords(const QRect r, bool animate=false, bool force=false);
175  void setWorldCoords(double x, double y, double w, double h, bool animate=false, bool force=false) { setWorldCoords( QRect(x,y,w,h), animate, force); }
176 
177  void setCenterCoords(double x, double y, bool animate=false, bool force=false);
178 
179  void setZoom(float z, double x=0, double y=0, bool animate=false, bool force = false);
180  void setZoom(float z, QPoint p, bool animate=false, bool force = false) { setZoom(z, p.x(), p.y(), animate, force); }
181 
182  void zoomToSelection(bool animate=false, bool force=false);
183  void zoomToWidth(bool animate=false, bool force=false);
184  void zoomToHeight(bool animate=false, bool force=false);
185  void zoomToFit(bool animate=false, bool force=false);
186 
187  void setBorder(const QPen pen);
188  void unsetBorder();
189  inline QPen border() { return _borderPen; }
190  inline QColor backgroundColor() { return _backgroundColor; }
191  inline void setBackgroundColor( const QColor c ) { _backgroundColor = c; }
192  inline QColor foregroundColor() { return _foregroundColor; }
193  inline void setForegroundColor( const QColor c ) { _foregroundColor = c; }
194  inline QColor selectionColor() { return _selectionColor; }
195  inline void setSelectionColor( const QColor c ) { _selectionColor = c; }
196  inline QColor selectionAreaColor() { return _selectionAreaColor; }
197  inline void setSelectionAreaColor( const QColor c ) { _selectionAreaColor = c; }
198  inline QColor selectedContextColor() { return _selectedContextColor; }
199  inline void setSelectedContextColor( const QColor c ) { _selectedContextColor = c; }
200  inline QColor hiddenElementsColor() { return _hiddenElementsColor; }
201  inline void setHiddenElementsColor( const QColor c ) { _hiddenElementsColor = c; }
202  inline QColor disabledElementsColor() { return _disabledElementsColor; }
203  inline void setDisabledElementsColor( const QColor c ) { _disabledElementsColor = c; }
204 
205  inline bool playing() { return _playing; }
206  inline void setPlaying(bool playing) { _playing = playing; }
207 
208  inline void setRepaintArea(QRect *area) { _repaintArea = area; }
209  inline void clearRepaintArea() { if (_repaintArea) delete _repaintArea; _repaintArea=0; }
210 
211  inline CAVoice *selectedVoice() { return _selectedVoice; }
213 
214  inline bool shadowNoteVisible() { return _shadowNoteVisible; }
215  inline void setShadowNoteVisible(bool visible) { _shadowNoteVisible = visible; setShadowNoteVisibleOnLeave(visible); }
216 
217  inline bool drawShadowNoteAccs() { return _drawShadowNoteAccs; }
218  inline void setDrawShadowNoteAccs(bool draw) { _drawShadowNoteAccs = draw; }
219 
220  inline int shadowNoteAccs() { return _shadowNoteAccs; }
221  inline void setShadowNoteAccs(int accs) { _shadowNoteAccs = accs; }
222 
224 
226  inline CATextEdit *textEdit() { return _textEdit; }
227  void removeTextEdit();
228  inline bool textEditVisible() { return _textEditVisible; }
229 
231  void setNoteNameVisible( bool v ) { _noteNameVisible = v; }
232 
233  QString noteName() { return _noteName; }
234  void setNoteName( QString n ) { _noteName = n; }
235 
236  void updateHelpers(); // method for updating shadow notes, syllable edits and other post-engrave elements coordinates and sizes when zoom level is changed etc.
237 
238 private slots:
239  void mousePressEvent(QMouseEvent *e);
240  void mouseMoveEvent(QMouseEvent *e);
241  void mouseReleaseEvent(QMouseEvent *e);
242  void wheelEvent(QWheelEvent *e);
243  void keyPressEvent(QKeyEvent *e);
244 
245  void HScrollBarEvent(int val);
246  void VScrollBarEvent(int val);
247 
248  void resizeEvent(QResizeEvent *e);
249  void paintEvent(QPaintEvent *p);
250  void leaveEvent(QEvent *e);
251  void enterEvent(QEvent *e);
253  void on_clickTimer_timeout();
254 
255 signals:
256  void CATripleClickEvent( QMouseEvent *e, QPoint p );
257  void CADoubleClickEvent( QMouseEvent *e, QPoint p );
258  void CAMousePressEvent( QMouseEvent *e, QPoint p );
259  void CAMouseReleaseEvent( QMouseEvent *e, QPoint p );
260  void CAMouseMoveEvent( QMouseEvent *e, QPoint p );
261  void CAWheelEvent( QWheelEvent *e, QPoint p );
262  void CAKeyPressEvent( QKeyEvent *e );
263  void selectionChanged();
264 
265 private:
266  void initScoreViewPort( CASheet *s );
267  inline void clearMElements() { _drawableMList.clear(true); }
268  inline void clearCElements() { _drawableCList.clear(true); }
269  inline bool isSelected(CADrawableMusElement *elt) { return (_selection.contains(elt)); }
270 
272  // Core Widgets //
274  QGridLayout *_layout; // Grid layout for placing the scrollbars at the right and the bottom.
275  QWidget *_canvas; // Virtual canvas which represents the size of the drawable area. All its signals are forwarded to CAViewPort.
276  QScrollBar *_hScrollBar, *_vScrollBar; // Horizontal/vertical scrollbars
277 
279  // General properties //
281  CAKDTree<CADrawableMusElement*> _drawableMList; // The list of music elements stored in a tree for faster lookup and other operations. Every viewport has its own list of drawable elements and drawable objects themselves!
282  CAKDTree<CADrawableContext*> _drawableCList; // The list of context drawable elements (staffs, lyrics etc.). Every viewport has its own list of drawable elements and drawable objects themselves!
283  CASheet *_sheet; // Pointer to the CASheet which the viewport represents.
284 
285  QList<CADrawableMusElement *> _selection; // The set of elements being selected.
286  CADrawableContext *_currentContext; // The pointer to the currently active context (staff, lyrics).
287 
288  static const int RIGHT_EXTRA_SPACE; // Extra space at the right end to insert new music
289  static const int BOTTOM_EXTRA_SPACE; // Extra space at the bottom end to insert new music
290  template <typename T> int getMaxXExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting at the end easier
291  template <typename T> int getMaxYExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting below easies
292 
293  double _worldX, _worldY, _worldW, _worldH; // Absolute world coordinates of the area the viewport is currently showing.
294  QPoint _lastMousePressCoords; // Used in multiple selection - coordinates of the upper-left point of the rectangle the user drags in world coordinates
295  inline void setLastMousePressCoords( QPoint p ) { _lastMousePressCoords = p; }
296  float _zoom; // Zoom level of the viewport (1.0 = 100%, 1.5 = 150% etc.).
297 
298  CAVoice *_selectedVoice; // Voice to be drawn normal colors, others are shaded
299 
301  // Helpers //
303  // Shadow note
304  bool _shadowNoteVisible; // Should the shadow notes be rendered or not
305 
306  bool _shadowNoteVisibleOnLeave; // When you leave the viewport, shadow note is always turned off. This property holds the value, if shadow note was enabled before you left the viewport.
309 
310  int _shadowNoteAccs; // Number of accidentals - 0 - natural, 1 - sharp, -1 flat
311  bool _drawShadowNoteAccs; // Draw shadow note accs?
312  QList<CANote*> _shadowNote; // List of all shadow notes - one shadow note per drawable staff
313  QList<CADrawableNote*> _shadowDrawableNote; // List of drawable shadow notes
314 
315  // QLineEdit for editing or creating a lyrics syllable
317  inline void setTextEdit( CATextEdit *e ) { _textEdit = e; }
319  inline QRect textEditGeometry() { return _textEditGeometry; }
320  inline void setTextEditGeometry( const QRect r ) { _textEditGeometry = r; }
322  inline void setTextEditVisible(bool v) { _textEditVisible = v; }
324  CADrawable::CADirection _resizeDirection; // Is the current scalable music element in drag-drop resizing mode?
325 
326  // Selection regions
327  QList<QRect> _selectionRegionList;
328  void drawSelectionRegion( QPainter *p, CADrawSettings s );
329 
331  // Appearance //
333  bool _drawBorder; // Should the border be drawn or not.
334  QRect *_repaintArea; // Area to be repainted on paintEvent().
335  QPen _borderPen; // Pen which the border is drawn by.
336  QColor _backgroundColor; // Color which the background is filled.
337  QColor _foregroundColor; // Color which the music elements are painted.
338  QColor _selectionColor; // Color which the selected music elements are painted.
339  QColor _selectionAreaColor; // Color which the selection area background is filled.
340  QColor _selectedContextColor; // Color which the current context is painted.
341  QColor _disabledElementsColor; // Color which the elements in non-selected voice are painted.
342  QColor _hiddenElementsColor; // Color which the invisible elements are painted in current-voice-only mode.
343  bool _noteNameVisible; // Is the written note name visible
344  QString _noteName; // Name of the note to be inserted. eg. c', Des,
345 
347  // Animation //
349  QTimer *_animationTimer; // Timer used to animate scroll/zoom behaviour.
350  static const int ANIMATION_STEPS; // Number of steps used in animation
351  int _animationStep; // Current step in the animation
352  double _targetWorldX, _targetWorldY, _targetWorldW, _targetWorldH; // Absolute world coordinates of the area the viewport is currently showing.
353  float _targetZoom; // Zoom level of the viewport (1.0 = 100%, 1.5 = 150% etc.).
354 
355  void startAnimationTimer();
356 
358  // Widgets behaviour //
360  CAScrollBarVisibility _scrollBarVisible; // Are the scrollbars always visible/never/if needed. Use CAViewPort::ScrollBarAlwaysVisible, CAViewPort::ScrollBarAlwaysHidden or CAViewPort::ScrollBarShowIfNeeded.
361  bool _allowManualScroll; // Does the scrollbars actually react on user actions - sometimes we only want the scrollbars to show the current location of the score and don't do anything
362 
364  // Internal properties //
366  double _oldWorldX, _oldWorldY, _oldWorldW, _oldWorldH; // Old coordinates used before the repaint. This is needed so only the new part of the viewport gets repainted when panning.
367  bool _playing; // Set to on, when in Playback mode
368  QTimer *_clickTimer; // Used for measuring doubleClick and tripleClick
369  int _numberOfClicks; // Used for measuring doubleClick and tripleClick
370 
371  double _xCursor, _yCursor; // Mouse cursor position in absolute world coords.
372  bool _holdRepaint; // Flag to prevent multiple repaintings.
373  bool _checkScrollBarsDeadLock; // Flag to prevent recursive checkScrollBars() calls.
374  bool _hScrollBarDeadLock; // Flag to prevent recursive scrollbar calls when its value is manually changed.
375  bool _vScrollBarDeadLock; // Flag to prevent recursive scrollbar calls when its value is manually changed.
376 };
377 
378 #endif /*SCOREVIEWPORT_H_*/
Represents a single sheet of paper in the document.
Definition: sheet.h:20
int getMaxXExtended(CAKDTree< T > &v)
Definition: scoreviewport.cpp:1587
void setBorder(const QPen pen)
Definition: scoreviewport.cpp:1067
double _oldWorldX
Definition: scoreviewport.h:366
float _targetZoom
Definition: scoreviewport.h:353
double _targetWorldX
Definition: scoreviewport.h:352
CADrawableMusElement * findMElement(CAMusElement *)
Definition: scoreviewport.cpp:1511
Definition: drawablenote.h:17
void setTextEditGeometry(const QRect r)
Definition: scoreviewport.h:320
QColor _backgroundColor
Definition: scoreviewport.h:336
void setSelectedContextColor(const QColor c)
Definition: scoreviewport.h:199
double _targetWorldH
Definition: scoreviewport.h:352
void CAMousePressEvent(QMouseEvent *e, QPoint p)
QPoint _lastMousePressCoords
Definition: scoreviewport.h:294
void setWorldY(int y, bool animate=false, bool force=false)
Definition: scoreviewport.cpp:589
CADrawableMusElement * selectUpMusElement()
Definition: scoreviewport.cpp:1364
QColor _selectionAreaColor
Definition: scoreviewport.h:339
void CAMouseReleaseEvent(QMouseEvent *e, QPoint p)
void CAKeyPressEvent(QKeyEvent *e)
CAMusElement * removeMElement(double x, double y)
Definition: scoreviewport.cpp:377
double _oldWorldY
Definition: scoreviewport.h:366
bool shadowNoteVisibleOnLeave()
Definition: scoreviewport.h:307
Definition: drawablecontext.h:18
CAContext * contextCollision(double x, double y)
Definition: scoreviewport.cpp:495
void zoomToFit(bool animate=false, bool force=false)
Definition: scoreviewport.cpp:754
CATextEdit(QWidget *parent=0)
Definition: scoreviewport.cpp:64
QColor _selectedContextColor
Definition: scoreviewport.h:340
void setZoom(float z, QPoint p, bool animate=false, bool force=false)
Definition: scoreviewport.h:180
virtual ~CAScoreViewPort()
Definition: scoreviewport.cpp:192
CADrawableMusElement * selectNextMusElement(bool append=false)
Definition: scoreviewport.cpp:1312
CATextEdit * _textEdit
Definition: scoreviewport.h:316
void setBackgroundColor(const QColor c)
Definition: scoreviewport.h:191
CADrawableContext * selectCElement(double x, double y)
Definition: scoreviewport.cpp:320
Definition: scoreviewport.h:52
bool isSelected(CADrawableMusElement *elt)
Definition: scoreviewport.h:269
void addSelectionRegion(QRect r)
Definition: scoreviewport.h:117
void setResizeDirection(CADrawable::CADirection r)
Definition: scoreviewport.h:323
CASheet * _sheet
Definition: scoreviewport.h:283
QList< CANote * > _shadowNote
Definition: scoreviewport.h:312
bool _allowManualScroll
Definition: scoreviewport.h:361
CADrawable::CADirection _resizeDirection
Definition: scoreviewport.h:324
const int drawableHeight()
Definition: scoreviewport.h:159
void setManualScroll(bool scroll)
Definition: scoreviewport.h:146
void zoomToSelection(bool animate=false, bool force=false)
Definition: scoreviewport.cpp:722
double _worldH
Definition: scoreviewport.h:293
void on_animationTimer_timeout()
Definition: scoreviewport.cpp:210
void CAWheelEvent(QWheelEvent *e, QPoint p)
QTimer * _clickTimer
Definition: scoreviewport.h:368
QList< QRect > _selectionRegionList
Definition: scoreviewport.h:327
void setShadowNoteAccs(int accs)
Definition: scoreviewport.h:221
void setLastMousePressCoords(QPoint p)
Definition: scoreviewport.h:295
int _numberOfClicks
Definition: scoreviewport.h:369
void mouseReleaseEvent(QMouseEvent *e)
Definition: scoreviewport.cpp:1185
Class which represents a voice in the staff.
Definition: voice.h:22
void on_clickTimer_timeout()
Definition: scoreviewport.cpp:1177
void setSelectionColor(const QColor c)
Definition: scoreviewport.h:195
CADrawable::CADirection resizeDirection()
Definition: scoreviewport.h:120
double _targetWorldY
Definition: scoreviewport.h:352
void wheelEvent(QWheelEvent *e)
Definition: scoreviewport.cpp:1230
bool shadowNoteVisible()
Definition: scoreviewport.h:214
void initScoreViewPort(CASheet *s)
Definition: scoreviewport.cpp:112
CAScoreViewPort * clone()
Definition: scoreviewport.cpp:227
double _worldY
Definition: scoreviewport.h:293
CADrawableMusElement * nearestLeftElement(double x, double y, CADrawableContext *context=0)
Definition: scoreviewport.cpp:430
QColor selectedContextColor()
Definition: scoreviewport.h:198
CADrawableMusElement * nearestRightElement(double x, double y, CADrawableContext *context=0)
Definition: scoreviewport.cpp:448
void startAnimationTimer()
Definition: scoreviewport.cpp:1298
QScrollBar * _vScrollBar
Definition: scoreviewport.h:276
Definition: drawable.h:16
Definition: scoreviewport.h:57
QWidget * _canvas
Definition: scoreviewport.h:275
void CADoubleClickEvent(QMouseEvent *e, QPoint p)
~CATextEdit()
Definition: scoreviewport.cpp:68
void setShadowNoteVisible(bool visible)
Definition: scoreviewport.h:215
void addMElement(CADrawableMusElement *elt, bool select=false)
Definition: scoreviewport.cpp:247
void addToSelection(CADrawableMusElement *elt, bool triggerSignal=true)
Definition: scoreviewport.cpp:1388
Definition: scoreviewport.h:59
double _xCursor
Definition: scoreviewport.h:371
void zoomToWidth(bool animate=false, bool force=false)
Definition: scoreviewport.cpp:744
void setWorldHeight(int h, bool force=false)
Definition: scoreviewport.cpp:652
QList< CADrawableMusElement * > & selection()
Definition: scoreviewport.h:87
bool _vScrollBarDeadLock
Definition: scoreviewport.h:375
int getMaxYExtended(CAKDTree< T > &v)
Definition: scoreviewport.cpp:1595
const QList< QRect > & selectionRegionList() const
Definition: scoreviewport.h:116
bool _drawShadowNoteAccs
Definition: scoreviewport.h:311
QGridLayout * _layout
Definition: scoreviewport.h:274
CASheet * sheet()
Definition: scoreviewport.h:70
int shadowNoteAccs()
Definition: scoreviewport.h:220
QColor _foregroundColor
Definition: scoreviewport.h:337
A text edit widget based on QLineEdit.
Definition: scoreviewport.h:38
void removeSelectionRegion(QRect r)
Definition: scoreviewport.h:118
double timeToCoords(int time)
Definition: scoreviewport.cpp:1686
QList< CADrawableNote * > _shadowDrawableNote
Definition: scoreviewport.h:313
void setSelectionAreaColor(const QColor c)
Definition: scoreviewport.h:197
QColor _disabledElementsColor
Definition: scoreviewport.h:341
void setLastMousePressCoordsAfter(const QList< CAMusElement * > list)
Definition: scoreviewport.cpp:302
QRect * _repaintArea
Definition: scoreviewport.h:334
bool _shadowNoteVisibleOnLeave
Definition: scoreviewport.h:306
bool playing()
Definition: scoreviewport.h:205
QColor selectionColor()
Definition: scoreviewport.h:194
void CATripleClickEvent(QMouseEvent *e, QPoint p)
CADrawableContext * _currentContext
Definition: scoreviewport.h:286
double _oldWorldW
Definition: scoreviewport.h:366
void setZoom(float z, double x=0, double y=0, bool animate=false, bool force=false)
Definition: scoreviewport.cpp:786
bool _noteNameVisible
Definition: scoreviewport.h:343
Musical length of notes and rests.
Definition: playablelength.h:16
void unsetBorder()
Definition: scoreviewport.cpp:1075
static const int RIGHT_EXTRA_SPACE
Definition: scoreviewport.h:288
void importMElements(CAKDTree< CADrawableMusElement * > *elts)
Definition: scoreviewport.cpp:415
bool manualScroll()
Definition: scoreviewport.h:147
CAKDTree< CADrawableMusElement * > _drawableMList
Definition: scoreviewport.h:281
bool _shadowNoteVisible
Definition: scoreviewport.h:304
void setScrollBarVisible(CAScrollBarVisibility status)
Definition: scoreviewport.cpp:1247
CADrawableMusElement * selectPrevMusElement(bool append=false)
Definition: scoreviewport.cpp:1338
int _animationStep
Definition: scoreviewport.h:351
void selectAllCurContext()
Definition: scoreviewport.cpp:1481
QRect _textEditGeometry
Definition: scoreviewport.h:318
void checkScrollBars()
Definition: scoreviewport.cpp:1093
Definition: drawablemuselement.h:16
CAScrollBarVisibility _scrollBarVisible
Definition: scoreviewport.h:360
bool _drawBorder
Definition: scoreviewport.h:333
CADrawableMusElement * selectDownMusElement()
Definition: scoreviewport.cpp:1378
void CAMouseMoveEvent(QMouseEvent *e, QPoint p)
bool _playing
Definition: scoreviewport.h:367
double _worldW
Definition: scoreviewport.h:293
void enterEvent(QEvent *e)
Definition: scoreviewport.cpp:1293
const QRect worldCoords()
Definition: scoreviewport.h:170
QColor foregroundColor()
Definition: scoreviewport.h:192
void selectAllCurBar()
Definition: scoreviewport.cpp:1458
QRect textEditGeometry()
Definition: scoreviewport.h:319
static const int BOTTOM_EXTRA_SPACE
Definition: scoreviewport.h:289
CAKDTree< CADrawableContext * > _drawableCList
Definition: scoreviewport.h:282
QColor _hiddenElementsColor
Definition: scoreviewport.h:342
void setTextEditVisible(bool v)
Definition: scoreviewport.h:322
CAVoice * selectedVoice()
Definition: scoreviewport.h:211
void VScrollBarEvent(int val)
Definition: scoreviewport.cpp:1280
void setWorldWidth(int w, bool force=false)
Definition: scoreviewport.cpp:622
CADrawableContext * selectContext(CAContext *context)
Definition: scoreviewport.cpp:282
QList< CADrawableMusElement * > _selection
Definition: scoreviewport.h:285
bool _checkScrollBarsDeadLock
Definition: scoreviewport.h:373
const int worldWidth()
Definition: scoreviewport.h:168
double _worldX
Definition: scoreviewport.h:293
int calculateTime(double x, double y)
Definition: scoreviewport.cpp:480
void HScrollBarEvent(int val)
Definition: scoreviewport.cpp:1269
void resizeEvent(QResizeEvent *e)
Definition: scoreviewport.cpp:1083
void setNoteNameVisible(bool v)
Definition: scoreviewport.h:231
An abstract class which represents every music element in the score.
Definition: muselement.h:20
void setCurrentContext(CADrawableContext *c)
Definition: scoreviewport.h:97
void clearMElements()
Definition: scoreviewport.h:267
QList< CAMusElement * > musElementSelection()
Definition: scoreviewport.cpp:1727
CADrawableContext * nearestUpContext(double x, double y)
Definition: scoreviewport.cpp:465
bool drawShadowNoteAccs()
Definition: scoreviewport.h:217
bool _textEditVisible
Definition: scoreviewport.h:321
One stanza line of lyrics.
Definition: lyricscontext.h:19
QList< CADrawableMusElement * > musElementsAt(double x, double y)
Definition: scoreviewport.cpp:338
void keyPressEvent(QKeyEvent *e)
Definition: scoreviewport.cpp:1243
QColor selectionAreaColor()
Definition: scoreviewport.h:196
bool _hScrollBarDeadLock
Definition: scoreviewport.h:374
CAScrollBarVisibility isScrollBarVisible()
Definition: scoreviewport.h:151
void clear(bool autoDelete=true)
Definition: kdtree.h:144
void addCElement(CADrawableContext *elt, bool select=false)
Definition: scoreviewport.cpp:261
CADrawableMusElement * selectMElement(CAMusElement *elt)
Definition: scoreviewport.cpp:355
void zoomToHeight(bool animate=false, bool force=false)
Definition: scoreviewport.cpp:749
void updateHelpers()
Definition: scoreviewport.cpp:1029
QPen _borderPen
Definition: scoreviewport.h:335
void invertSelection()
Definition: scoreviewport.cpp:1495
void leaveEvent(QEvent *e)
Definition: scoreviewport.cpp:1287
void setShadowNoteVisibleOnLeave(bool v)
Definition: scoreviewport.h:308
void setSelectedVoice(CAVoice *selectedVoice)
Definition: scoreviewport.h:212
void setHiddenElementsColor(const QColor c)
Definition: scoreviewport.h:201
void setShadowNoteLength(CAPlayableLength)
Definition: scoreviewport.cpp:1715
Represents a staff in the sheet.
Definition: staff.h:24
CADrawableContext * nearestDownContext(double x, double y)
Definition: scoreviewport.cpp:473
CADrawableContext * findCElement(CAContext *)
Definition: scoreviewport.cpp:1523
void paintEvent(QPaintEvent *p)
Definition: scoreviewport.cpp:844
QPen border()
Definition: scoreviewport.h:189
void clearRepaintArea()
Definition: scoreviewport.h:209
void rebuild()
Definition: scoreviewport.cpp:509
static const int ANIMATION_STEPS
Definition: scoreviewport.h:350
QPoint lastMousePressCoords()
Definition: scoreviewport.h:93
const float zoom()
Definition: scoreviewport.h:172
int coordsToTime(double x)
Definition: scoreviewport.cpp:1615
void setWorldCoords(const QRect r, bool animate=false, bool force=false)
Definition: scoreviewport.cpp:682
double _yCursor
Definition: scoreviewport.h:371
void setWorldX(int x, bool animate=false, bool force=false)
Definition: scoreviewport.cpp:556
void importCElements(CAKDTree< CADrawableContext * > *elts)
Definition: scoreviewport.cpp:420
void keyPressEvent(QKeyEvent *)
Definition: scoreviewport.cpp:71
QList< CADrawableContext * > findContextsInRegion(QRect &reg)
Definition: scoreviewport.cpp:1606
void setDisabledElementsColor(const QColor c)
Definition: scoreviewport.h:203
void selectionChanged()
void clearSelectionRegionList()
Definition: scoreviewport.h:119
CATextEdit * textEdit()
Definition: scoreviewport.h:226
void selectAll()
Definition: scoreviewport.cpp:1445
void setRepaintArea(QRect *area)
Definition: scoreviewport.h:208
float _zoom
Definition: scoreviewport.h:296
void clearCElements()
Definition: scoreviewport.h:268
bool _holdRepaint
Definition: scoreviewport.h:372
void setNoteName(QString n)
Definition: scoreviewport.h:234
bool removeFromSelection(CADrawableMusElement *elt)
Definition: scoreviewport.h:104
CATextEdit * createTextEdit(CADrawableMusElement *elt)
Definition: scoreviewport.cpp:1536
const int worldHeight()
Definition: scoreviewport.h:169
const int worldX()
Definition: scoreviewport.h:166
QColor hiddenElementsColor()
Definition: scoreviewport.h:200
void drawSelectionRegion(QPainter *p, CADrawSettings s)
Definition: scoreviewport.cpp:1059
Definition: drawable.h:27
QString noteName()
Definition: scoreviewport.h:233
void mousePressEvent(QMouseEvent *e)
Definition: scoreviewport.cpp:1135
CAScrollBarVisibility
Definition: scoreviewport.h:56
double _targetWorldW
Definition: scoreviewport.h:352
CAScoreViewPort(QWidget *parent=0)
Definition: scoreviewport.cpp:107
QString _noteName
Definition: scoreviewport.h:344
bool textEditVisible()
Definition: scoreviewport.h:228
void clearSelection()
Definition: scoreviewport.h:103
bool noteNameVisible()
Definition: scoreviewport.h:230
QColor disabledElementsColor()
Definition: scoreviewport.h:202
QScrollBar * _hScrollBar
Definition: scoreviewport.h:276
void setForegroundColor(const QColor c)
Definition: scoreviewport.h:193
void mouseMoveEvent(QMouseEvent *e)
Definition: scoreviewport.cpp:1194
const int drawableWidth()
Definition: scoreviewport.h:158
QTimer * _animationTimer
Definition: scoreviewport.h:349
void setPlaying(bool playing)
Definition: scoreviewport.h:206
void setSheet(CASheet *sheet)
Definition: scoreviewport.h:71
CAVoice * _selectedVoice
Definition: scoreviewport.h:298
void setCenterCoords(double x, double y, bool animate=false, bool force=false)
Definition: scoreviewport.cpp:767
void setWorldCoords(double x, double y, double w, double h, bool animate=false, bool force=false)
Definition: scoreviewport.h:175
CADrawableContext * currentContext()
Definition: scoreviewport.h:96
void removeTextEdit()
Definition: scoreviewport.cpp:1576
CADirection
Definition: drawable.h:34
double _oldWorldH
Definition: scoreviewport.h:366
void CAKeyPressEvent(QKeyEvent *)
Line of music elements in the sheet.
Definition: context.h:16
QColor _selectionColor
Definition: scoreviewport.h:338
Base class for various viewports.
Definition: viewport.h:15
void importElements(CAKDTree< CADrawableMusElement * > *drawableMList, CAKDTree< CADrawableContext * > *drawableCList)
Definition: scoreviewport.cpp:397
void setDrawShadowNoteAccs(bool draw)
Definition: scoreviewport.h:218
void setTextEdit(CATextEdit *e)
Definition: scoreviewport.h:317
double timeToCoordsSimpleVersion(int time)
Definition: scoreviewport.cpp:1647
QColor backgroundColor()
Definition: scoreviewport.h:190
int _shadowNoteAccs
Definition: scoreviewport.h:310
const int worldY()
Definition: scoreviewport.h:167
Definition: scoreviewport.h:58