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.
308  inline void setShadowNoteVisibleOnLeave( bool v ) { _shadowNoteVisibleOnLeave = v; }
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