Canorus  0.0
scoreview.h
Go to the documentation of this file.
1 
8 #ifndef SCOREVIEW_H_
9 #define SCOREVIEW_H_
10 
11 #include <QList>
12 #include <QPen>
13 #include <QBrush>
14 #include <QRect>
15 #include <QLineEdit>
16 #include <QTimer>
17 #include <QMultiMap>
18 
19 #include "widgets/view.h"
20 #include "layout/kdtree.h"
21 #include "score/note.h"
22 
23 class QScrollBar;
24 class QMouseEvent;
25 class QWheelEvent;
26 class QTimer;
27 class QGridLayout;
28 
29 class CADrawable;
31 class CADrawableContext;
32 class CADrawableNote;
33 class CADrawableBarline;
34 class CAMusElement;
35 class CAContext;
36 class CASheet;
37 class CAStaff;
38 class CALyricsContext;
40 
41 class CATextEdit : public QLineEdit {
42 Q_OBJECT
43 
44 public:
45  CATextEdit( QWidget *parent=0 );
46  ~CATextEdit();
47 
48 signals:
49  void CAKeyPressEvent( QKeyEvent * );
50 
51 public slots:
52  void keyPressEvent( QKeyEvent * );
53 };
54 
55 class CAScoreView : public CAView {
56 Q_OBJECT
57 
58 public:
63  };
64 
66  // Basic methods //
68  CAScoreView(QWidget *parent=0);
69  CAScoreView(CASheet *sheet, QWidget *parent=0);
70  virtual ~CAScoreView();
71  CAScoreView *clone();
72  CAScoreView *clone(QWidget *parent);
73  inline CASheet *sheet() { return _sheet; }
74  inline void setSheet( CASheet *sheet ) { _sheet = sheet; }
75 
77  // Addition, removal of drawable elements //
79  void addMElement(CADrawableMusElement *elt, bool select=false);
80  void addCElement(CADrawableContext *elt, bool select=false);
82 
84 
86  // Selection //
88  inline const QList<CADrawableMusElement*>& selection() { return _selection; };
89  QList<CAMusElement*> musElementSelection();
90  QList<CADrawableMusElement*> musElementsAt(double x, double y);
91  CADrawableContext *selectCElement(double x, double y);
94  inline QPoint lastMousePressCoords() { return _lastMousePressCoords; }
95  void setLastMousePressCoordsAfter(const QList<CAMusElement*> list);
96 
99 
100  void selectAll();
101  void selectAllCurBar();
102  void selectAllCurContext();
103  void invertSelection();
104  inline void clearSelection() { _selection.clear(); emit selectionChanged(); }
105  inline bool removeFromSelection(CADrawableMusElement *elt) { return _selection.removeAll(elt); emit selectionChanged(); }
106 
107  void addToSelection(CADrawableMusElement *elt, bool triggerSignal=true );
108  void addToSelection( const QList<CADrawableMusElement*> list, bool selectableOnly=true );
110  void addToSelection(const QList<CAMusElement *> elts);
111 
112  CADrawableMusElement* selectNextMusElement( bool append=false );
113  CADrawableMusElement* selectPrevMusElement( bool append=false );
116 
117  inline const QList<QRect> &selectionRegionList() const { return _selectionRegionList; }
118  inline void addSelectionRegion(QRect r) { _selectionRegionList << r; }
119  inline void removeSelectionRegion(QRect r) { _selectionRegionList.removeAll(r); }
122  bool mouseDragActivated();
123 
125  // Music elements and contexts query, space calculation and access //
129  QList<CADrawableContext*> findContextsInRegion(QRect &reg);
130  CADrawableMusElement *nearestLeftElement(double x, double y, CADrawableContext* context=0);
131  CADrawableMusElement *nearestLeftElement(double x, double y, CAVoice *voice);
132  CADrawableMusElement *nearestRightElement(double x, double y, CADrawableContext* context=0);
133  CADrawableMusElement *nearestRightElement(double x, double y, CAVoice *voice);
134  int coordsToTime( double x );
135  double timeToCoords( int time );
136  double timeToCoordsSimpleVersion( int time );
137  static bool musElementTimeLessThan(const CAMusElement* a, const int b);
138  static bool timeMusElementLessThan(const int a, const CAMusElement* b);
139 
140  CADrawableContext *nearestUpContext(double x, double y);
141  CADrawableContext *nearestDownContext(double x, double y);
142 
143  int calculateTime(double x, double y);
144  QMap<int, CADrawableBarline*> computeBarlinePositions(bool dotted=false);
145 
146  CAContext *contextCollision(double x, double y);
147 
149  // Scrollbars //
151  inline void setManualScroll(bool scroll) { _allowManualScroll = scroll; }
152  inline bool manualScroll() { return _allowManualScroll; }
153 
154  void checkScrollBars();
155 
158 
160  // Scene appearance, properties and actions //
162  void rebuild();
163  void setMouseTracking(bool); // reimplemented!
164  inline const int drawableWidth() { return _canvas->width(); }
165  inline const int drawableHeight() { return _canvas->height(); }
166 
167  void setWorldX(double x, bool animate=false, bool force=false);
168  void setWorldY(double y, bool animate=false, bool force=false);
169  void setWorldWidth(double w, bool force=false);
170  void setWorldHeight(double h, bool force=false);
171 
172  inline const double worldX() { return _worldX; }
173  inline const double worldY() { return _worldY; }
174  inline const double worldWidth() { return _worldW; }
175  inline const double worldHeight() { return _worldH; }
176  inline const QRectF worldCoords() { return QRectF(worldX(), worldY(), worldWidth(), worldHeight()); }
177 
178  inline const float zoom() { return _zoom; }
179 
180  void setWorldCoords(const QRectF r, bool animate=false, bool force=false);
181  void setWorldCoords(double x, double y, double w, double h, bool animate=false, bool force=false) { setWorldCoords( QRect(x,y,w,h), animate, force); }
182 
183  void setCenterCoords(double x, double y, bool animate=false, bool force=false);
184 
185  void setZoom(float z, double x=0, double y=0, bool animate=false, bool force = false);
186  void setZoom(float z, QPoint p, bool animate=false, bool force = false) { setZoom(z, p.x(), p.y(), animate, force); }
187 
188  void zoomToSelection(bool animate=false, bool force=false);
189  void zoomToWidth(bool animate=false, bool force=false);
190  void zoomToHeight(bool animate=false, bool force=false);
191  void zoomToFit(bool animate=false, bool force=false);
192 
193  bool grabTabKey() { return _grabTabKey; }
194  void setGrabTabKey( bool g ) { _grabTabKey = g; }
195 
196  void setBorder(const QPen pen);
197  void unsetBorder();
198  inline QPen border() { return _borderPen; }
199  inline QColor backgroundColor() { return _backgroundColor; }
200  inline void setBackgroundColor( const QColor c ) { _backgroundColor = c; }
201  inline QColor foregroundColor() { return _foregroundColor; }
202  inline void setForegroundColor( const QColor c ) { _foregroundColor = c; }
203  inline QColor selectionColor() { return _selectionColor; }
204  inline void setSelectionColor( const QColor c ) { _selectionColor = c; }
205  inline QColor selectionAreaColor() { return _selectionAreaColor; }
206  inline void setSelectionAreaColor( const QColor c ) { _selectionAreaColor = c; }
207  inline QColor selectedContextColor() { return _selectedContextColor; }
208  inline void setSelectedContextColor( const QColor c ) { _selectedContextColor = c; }
209  inline QColor hiddenElementsColor() { return _hiddenElementsColor; }
210  inline void setHiddenElementsColor( const QColor c ) { _hiddenElementsColor = c; }
211  inline QColor disabledElementsColor() { return _disabledElementsColor; }
212  inline void setDisabledElementsColor( const QColor c ) { _disabledElementsColor = c; }
213 
214  inline bool playing() { return _playing; }
215  inline void setPlaying(bool playing) { _playing = playing; }
216 
217  inline void setRepaintArea(QRect *area) { _repaintArea = area; }
218  inline void clearRepaintArea() { if (_repaintArea) delete _repaintArea; _repaintArea=0; }
219 
220  inline CAVoice *selectedVoice() { return _selectedVoice; }
222 
223  inline bool shadowNoteVisible() { return _shadowNoteVisible; }
224  inline void setShadowNoteVisible(bool visible) { _shadowNoteVisible = visible; setShadowNoteVisibleOnLeave(visible); }
225 
226  inline bool drawShadowNoteAccs() { return _drawShadowNoteAccs; }
227  inline void setDrawShadowNoteAccs(bool draw) { _drawShadowNoteAccs = draw; }
228 
229  inline int shadowNoteAccs() { return _shadowNoteAccs; }
230  inline void setShadowNoteAccs(int accs) { _shadowNoteAccs = accs; }
231 
233 
235  inline CATextEdit *textEdit() { return _textEdit; }
236  void removeTextEdit();
237  inline bool textEditVisible() { return _textEditVisible; }
238 
240  void setNoteNameVisible( bool v ) { _noteNameVisible = v; }
241 
242  QString noteName() { return _noteName; }
243  void setNoteName( QString n ) { _noteName = n; }
244 
245  void updateHelpers(); // method for updating shadow notes, syllable edits and other post-engrave elements coordinates and sizes when zoom level is changed etc.
246 
247 private slots:
248  void mousePressEvent(QMouseEvent *e);
249  void mouseMoveEvent(QMouseEvent *e);
250  void mouseReleaseEvent(QMouseEvent *e);
251  void wheelEvent(QWheelEvent *e);
252  void keyPressEvent(QKeyEvent *e);
253 
254  void HScrollBarEvent(int val);
255  void VScrollBarEvent(int val);
256 
257  void resizeEvent(QResizeEvent *e);
258  void paintEvent(QPaintEvent *p);
259  void leaveEvent(QEvent *e);
260  void enterEvent(QEvent *e);
262  void on_clickTimer_timeout();
263 
264 signals:
265  void CATripleClickEvent( QMouseEvent *e, QPoint p );
266  void CADoubleClickEvent( QMouseEvent *e, QPoint p );
267  void CAMousePressEvent( QMouseEvent *e, QPoint p );
268  void CAMouseReleaseEvent( QMouseEvent *e, QPoint p );
269  void CAMouseMoveEvent( QMouseEvent *e, QPoint p );
270  void CAWheelEvent( QWheelEvent *e, QPoint p );
271  void CAKeyPressEvent( QKeyEvent *e );
272  void selectionChanged();
273 
274 protected:
275  bool event( QEvent *event );
276 
277 private:
278  void initScoreView( CASheet *s );
279  inline void clearMElements() { _drawableMList.clear(true); }
280  inline void clearCElements() { _drawableCList.clear(true); }
281  inline bool isSelected(CADrawableMusElement *elt) { return (_selection.contains(elt)); }
282 
284  // Core Widgets //
286  QGridLayout *_layout; // Grid layout for placing the scrollbars at the right and the bottom.
287  QWidget *_canvas; // Virtual canvas which represents the size of the drawable area. All its signals are forwarded to CAView.
288  QScrollBar *_hScrollBar, *_vScrollBar; // Horizontal/vertical scrollbars
289 
291  // General properties //
293  CAKDTree<CADrawableMusElement*> _drawableMList; // The list of music elements stored in a tree for faster lookup and other operations. Every view has its own list of drawable elements and drawable objects themselves!
294  CAKDTree<CADrawableContext*> _drawableCList; // The list of context drawable elements (staffs, lyrics etc.). Every view has its own list of drawable elements and drawable objects themselves!
295  CAKDTree<CADrawableNoteCheckerError*> _drawableNCEList; // The list of drawable note checker errors
296  QMultiMap<void*, CADrawable*> _mapDrawable; // Mapping of all music elements/contexts in the score -> drawable elements on canvas
297  CASheet *_sheet; // Pointer to the CASheet which the view represents.
298 
299  QList<CADrawableMusElement *> _selection; // The set of elements being selected.
300  CADrawableContext *_currentContext; // The pointer to the currently active context (staff, lyrics).
301 
302  static const int RIGHT_EXTRA_SPACE; // Extra space at the right end to insert new music
303  static const int BOTTOM_EXTRA_SPACE; // Extra space at the bottom end to insert new music
304  static const int RULER_HEIGHT; // Ruler height in pixels
305  template <typename T> double getMaxXExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting at the end easier
306  template <typename T> double getMaxYExtended(CAKDTree<T> &v); // Make the viewable World a little bigger (stuffed) to make inserting below easies
307 
308  double _worldX, _worldY, _worldW, _worldH; // Absolute world coordinates of the area the view is currently showing.
309  QPoint _lastMousePressCoords; // Used in multiple selection - coordinates of the upper-left point of the rectangle the user drags in world coordinates
310  inline void setLastMousePressCoords( QPoint p ) { _lastMousePressCoords = p; }
311  float _zoom; // Zoom level of the view (1.0 = 100%, 1.5 = 150% etc.).
312 
313  CAVoice *_selectedVoice; // Voice to be drawn normal colors, others are shaded
314 
316  // Helpers //
318  // Shadow note
319  bool _shadowNoteVisible; // Should the shadow notes be rendered or not
320 
321  bool _shadowNoteVisibleOnLeave; // When you leave the view, shadow note is always turned off. This property holds the value, if shadow note was enabled before you left the view.
324 
325  int _shadowNoteAccs; // Number of accidentals - 0 - natural, 1 - sharp, -1 flat
326  bool _drawShadowNoteAccs; // Draw shadow note accs?
327  QList<CANote*> _shadowNote; // List of all shadow notes - one shadow note per drawable staff
328  QList<CADrawableNote*> _shadowDrawableNote; // List of drawable shadow notes
329 
330  // QLineEdit for editing or creating a lyrics syllable
332  inline void setTextEdit( CATextEdit *e ) { _textEdit = e; }
334  inline QRect textEditGeometry() { return _textEditGeometry; }
335  inline void setTextEditGeometry( const QRect r ) { _textEditGeometry = r; }
337  inline void setTextEditVisible(bool v) { _textEditVisible = v; }
339  CADrawable::CADirection _resizeDirection; // Is the current scalable music element in drag-drop resizing mode?
340 
341  // Selection regions
342  QList<QRect> _selectionRegionList;
343  void drawSelectionRegion( QPainter *p, CADrawSettings s );
344 public:
345  static const int SELECTION_REGION_THRESHOLD; // Threshold in px for mouse move until the selection region is activated
346 
347 private:
349  // Appearance //
351  bool _grabTabKey; // Pass the tab key to keyPressEvent() or treat it like the next item key
352  bool _drawBorder; // Should the border be drawn or not.
353  QRect *_repaintArea; // Area to be repainted on paintEvent().
354  QPen _borderPen; // Pen which the border is drawn by.
355  QColor _backgroundColor; // Color which the background is filled.
356  QColor _foregroundColor; // Color which the music elements are painted.
357  QColor _selectionColor; // Color which the selected music elements are painted.
358  QColor _selectionAreaColor; // Color which the selection area background is filled.
359  QColor _selectedContextColor; // Color which the current context is painted.
360  QColor _disabledElementsColor; // Color which the elements in non-selected voice are painted.
361  QColor _hiddenElementsColor; // Color which the invisible elements are painted in current-voice-only mode.
362  bool _noteNameVisible; // Is the written note name visible
363  QString _noteName; // Name of the note to be inserted. eg. c', Des,
364 
366  // Animation //
368  QTimer *_animationTimer; // Timer used to animate scroll/zoom behaviour.
369  static const int ANIMATION_STEPS; // Number of steps used in animation
370  int _animationStep; // Current step in the animation
371  double _targetWorldX, _targetWorldY, _targetWorldW, _targetWorldH; // Absolute world coordinates of the area the view is currently showing.
372  float _targetZoom; // Zoom level of the view (1.0 = 100%, 1.5 = 150% etc.).
373 
374  void startAnimationTimer();
375 
377  // Widgets behaviour //
379  CAScrollBarVisibility _scrollBarVisible; // Are the scrollbars always visible/never/if needed. Use CAView::ScrollBarAlwaysVisible, CAView::ScrollBarAlwaysHidden or CAView::ScrollBarShowIfNeeded.
380  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
381 
383  // Internal properties //
385  double _oldWorldX, _oldWorldY, _oldWorldW, _oldWorldH; // Old coordinates used before the repaint. This is needed so only the new part of the view gets repainted when panning.
386  bool _playing; // Set to on, when in Playback mode
387  QTimer *_clickTimer; // Used for measuring doubleClick and tripleClick
388  int _numberOfClicks; // Used for measuring doubleClick and tripleClick
389 
390  double _xCursor, _yCursor; // Mouse cursor position in absolute world coords.
391  bool _holdRepaint; // Flag to prevent multiple repaintings.
392  bool _checkScrollBarsDeadLock; // Flag to prevent recursive checkScrollBars() calls.
393  bool _hScrollBarDeadLock; // Flag to prevent recursive scrollbar calls when its value is manually changed.
394  bool _vScrollBarDeadLock; // Flag to prevent recursive scrollbar calls when its value is manually changed.
395 };
396 
397 #endif /*SCOREVIEW_H_*/
Represents a single sheet of paper in the document.
Definition: sheet.h:22
CADrawableMusElement * selectMElement(CAMusElement *elt)
Definition: scoreview.cpp:388
CATextEdit * _textEdit
Definition: scoreview.h:331
CASheet * sheet()
Definition: scoreview.h:73
double _oldWorldH
Definition: scoreview.h:385
QTimer * _clickTimer
Definition: scoreview.h:387
void removeTextEdit()
Definition: scoreview.cpp:1721
bool _allowManualScroll
Definition: scoreview.h:380
QTimer * _animationTimer
Definition: scoreview.h:368
CADrawable::CADirection resizeDirection()
Definition: scoreview.h:121
void mousePressEvent(QMouseEvent *e)
Definition: scoreview.cpp:1268
CADrawableMusElement * selectUpMusElement()
Definition: scoreview.cpp:1507
void startAnimationTimer()
Definition: scoreview.cpp:1441
CADrawableMusElement * selectDownMusElement()
Definition: scoreview.cpp:1521
CAScrollBarVisibility
Definition: scoreview.h:59
void addSelectionRegion(QRect r)
Definition: scoreview.h:118
QMap< int, CADrawableBarline * > computeBarlinePositions(bool dotted=false)
Definition: scoreview.cpp:515
Definition: drawablenote.h:17
void setNoteName(QString n)
Definition: scoreview.h:243
QColor backgroundColor()
Definition: scoreview.h:199
void addCElement(CADrawableContext *elt, bool select=false)
Definition: scoreview.cpp:283
bool _noteNameVisible
Definition: scoreview.h:362
CADrawableMusElement * selectPrevMusElement(bool append=false)
Definition: scoreview.cpp:1481
double _worldH
Definition: scoreview.h:308
void mouseReleaseEvent(QMouseEvent *e)
Definition: scoreview.cpp:1318
static const int RULER_HEIGHT
Definition: scoreview.h:304
Definition: drawablecontext.h:18
const int drawableHeight()
Definition: scoreview.h:165
CATextEdit(QWidget *parent=0)
Definition: scoreview.cpp:70
QColor selectionColor()
Definition: scoreview.h:203
double _oldWorldX
Definition: scoreview.h:385
QList< CADrawableNote * > _shadowDrawableNote
Definition: scoreview.h:328
bool grabTabKey()
Definition: scoreview.h:193
const QList< QRect > & selectionRegionList() const
Definition: scoreview.h:117
QColor _selectionAreaColor
Definition: scoreview.h:358
QColor _hiddenElementsColor
Definition: scoreview.h:361
void CAWheelEvent(QWheelEvent *e, QPoint p)
CADrawableContext * nearestDownContext(double x, double y)
Definition: scoreview.cpp:487
double getMaxXExtended(CAKDTree< T > &v)
Definition: scoreview.cpp:1732
void leaveEvent(QEvent *e)
Definition: scoreview.cpp:1430
CAKDTree< CADrawableContext * > _drawableCList
Definition: scoreview.h:294
QList< CADrawableMusElement * > _selection
Definition: scoreview.h:299
CATextEdit * textEdit()
Definition: scoreview.h:235
QColor _backgroundColor
Definition: scoreview.h:355
void setWorldCoords(double x, double y, double w, double h, bool animate=false, bool force=false)
Definition: scoreview.h:181
CADrawableMusElement * findMElement(CAMusElement *)
Definition: scoreview.cpp:1654
QColor _disabledElementsColor
Definition: scoreview.h:360
double getMaxYExtended(CAKDTree< T > &v)
Definition: scoreview.cpp:1740
void setWorldCoords(const QRectF r, bool animate=false, bool force=false)
Definition: scoreview.cpp:754
QColor selectedContextColor()
Definition: scoreview.h:207
void CAMouseReleaseEvent(QMouseEvent *e, QPoint p)
void HScrollBarEvent(int val)
Definition: scoreview.cpp:1412
void setTextEdit(CATextEdit *e)
Definition: scoreview.h:332
void setShadowNoteAccs(int accs)
Definition: scoreview.h:230
bool _hScrollBarDeadLock
Definition: scoreview.h:393
void zoomToHeight(bool animate=false, bool force=false)
Definition: scoreview.cpp:821
bool _drawShadowNoteAccs
Definition: scoreview.h:326
Class which represents a voice in the staff.
Definition: voice.h:23
const double worldY()
Definition: scoreview.h:173
bool _grabTabKey
Definition: scoreview.h:351
void setCurrentContext(CADrawableContext *c)
Definition: scoreview.h:98
QRect textEditGeometry()
Definition: scoreview.h:334
int shadowNoteAccs()
Definition: scoreview.h:229
Base class for various views.
Definition: view.h:15
void setScrollBarVisible(CAScrollBarVisibility status)
Definition: scoreview.cpp:1390
void setSelectionColor(const QColor c)
Definition: scoreview.h:204
double _yCursor
Definition: scoreview.h:390
QList< CADrawableMusElement * > musElementsAt(double x, double y)
Definition: scoreview.cpp:371
QScrollBar * _hScrollBar
Definition: scoreview.h:288
void setForegroundColor(const QColor c)
Definition: scoreview.h:202
QPen _borderPen
Definition: scoreview.h:354
bool textEditVisible()
Definition: scoreview.h:237
void clearMElements()
Definition: scoreview.h:279
QColor hiddenElementsColor()
Definition: scoreview.h:209
Definition: drawable.h:16
void setLastMousePressCoordsAfter(const QList< CAMusElement * > list)
Definition: scoreview.cpp:334
void on_clickTimer_timeout()
Definition: scoreview.cpp:1310
CAVoice * _selectedVoice
Definition: scoreview.h:313
bool _shadowNoteVisible
Definition: scoreview.h:319
CADrawable::CADirection _resizeDirection
Definition: scoreview.h:339
double _worldX
Definition: scoreview.h:308
void paintEvent(QPaintEvent *p)
Definition: scoreview.cpp:918
const double worldWidth()
Definition: scoreview.h:174
QRect _textEditGeometry
Definition: scoreview.h:333
~CATextEdit()
Definition: scoreview.cpp:74
QPoint lastMousePressCoords()
Definition: scoreview.h:94
void CAMouseMoveEvent(QMouseEvent *e, QPoint p)
void drawSelectionRegion(QPainter *p, CADrawSettings s)
Definition: scoreview.cpp:1178
void selectAllCurContext()
Definition: scoreview.cpp:1623
bool drawShadowNoteAccs()
Definition: scoreview.h:226
CADrawableContext * selectContext(CAContext *context)
Definition: scoreview.cpp:313
const QRectF worldCoords()
Definition: scoreview.h:176
CAVoice * selectedVoice()
Definition: scoreview.h:220
Definition: scoreview.h:60
CAScrollBarVisibility isScrollBarVisible()
Definition: scoreview.h:156
double _targetWorldW
Definition: scoreview.h:371
QPoint _lastMousePressCoords
Definition: scoreview.h:309
const QList< CADrawableMusElement * > & selection()
Definition: scoreview.h:88
void addDrawableNoteCheckerError(CADrawableNoteCheckerError *dnce)
Definition: scoreview.cpp:300
CASheet * _sheet
Definition: scoreview.h:297
void setNoteNameVisible(bool v)
Definition: scoreview.h:240
CADrawableMusElement * nearestLeftElement(double x, double y, CADrawableContext *context=0)
Definition: scoreview.cpp:444
void setTextEditGeometry(const QRect r)
Definition: scoreview.h:335
QGridLayout * _layout
Definition: scoreview.h:286
void setWorldX(double x, bool animate=false, bool force=false)
Definition: scoreview.cpp:628
bool _shadowNoteVisibleOnLeave
Definition: scoreview.h:321
void zoomToSelection(bool animate=false, bool force=false)
Definition: scoreview.cpp:794
QScrollBar * _vScrollBar
Definition: scoreview.h:288
A text edit widget based on QLineEdit.
Definition: scoreview.h:41
bool _drawBorder
Definition: scoreview.h:352
QMultiMap< void *, CADrawable * > _mapDrawable
Definition: scoreview.h:296
QList< CADrawableContext * > findContextsInRegion(QRect &reg)
Definition: scoreview.cpp:1751
static const int SELECTION_REGION_THRESHOLD
Definition: scoreview.h:345
bool mouseDragActivated()
Definition: scoreview.cpp:1365
QColor _selectionColor
Definition: scoreview.h:357
void setSelectedContextColor(const QColor c)
Definition: scoreview.h:208
void checkScrollBars()
Definition: scoreview.cpp:1212
void removeSelectionRegion(QRect r)
Definition: scoreview.h:119
void setWorldHeight(double h, bool force=false)
Definition: scoreview.cpp:724
void on_animationTimer_timeout()
Definition: scoreview.cpp:218
const float zoom()
Definition: scoreview.h:178
CAScoreView * clone()
Definition: scoreview.cpp:244
void clearCElements()
Definition: scoreview.h:280
Musical length of notes and rests.
Definition: playablelength.h:16
static const int RIGHT_EXTRA_SPACE
Definition: scoreview.h:302
CADrawableContext * currentContext()
Definition: scoreview.h:97
void CATripleClickEvent(QMouseEvent *e, QPoint p)
void updateHelpers()
Definition: scoreview.cpp:1144
void setDisabledElementsColor(const QColor c)
Definition: scoreview.h:212
bool playing()
Definition: scoreview.h:214
Definition: drawablenotecheckererror.h:15
bool _checkScrollBarsDeadLock
Definition: scoreview.h:392
CAScoreView(QWidget *parent=0)
Definition: scoreview.cpp:113
Definition: drawablemuselement.h:16
virtual ~CAScoreView()
Definition: scoreview.cpp:199
bool noteNameVisible()
Definition: scoreview.h:239
void unsetBorder()
Definition: scoreview.cpp:1194
void setRepaintArea(QRect *area)
Definition: scoreview.h:217
CADrawableContext * selectCElement(double x, double y)
Definition: scoreview.cpp:353
CADrawableContext * nearestUpContext(double x, double y)
Definition: scoreview.cpp:479
QColor disabledElementsColor()
Definition: scoreview.h:211
void selectAll()
Definition: scoreview.cpp:1586
void setLastMousePressCoords(QPoint p)
Definition: scoreview.h:310
void addToSelection(CADrawableMusElement *elt, bool triggerSignal=true)
Definition: scoreview.cpp:1531
void zoomToWidth(bool animate=false, bool force=false)
Definition: scoreview.cpp:816
int _shadowNoteAccs
Definition: scoreview.h:325
An abstract class which represents every music element in the score.
Definition: muselement.h:21
QWidget * _canvas
Definition: scoreview.h:287
void setManualScroll(bool scroll)
Definition: scoreview.h:151
const double worldHeight()
Definition: scoreview.h:175
QList< CANote * > _shadowNote
Definition: scoreview.h:327
QList< QRect > _selectionRegionList
Definition: scoreview.h:342
void CAKeyPressEvent(QKeyEvent *e)
double _xCursor
Definition: scoreview.h:390
One stanza line of lyrics.
Definition: lyricscontext.h:19
bool manualScroll()
Definition: scoreview.h:152
void setShadowNoteVisibleOnLeave(bool v)
Definition: scoreview.h:323
void CADoubleClickEvent(QMouseEvent *e, QPoint p)
double _worldY
Definition: scoreview.h:308
bool _textEditVisible
Definition: scoreview.h:336
Definition: scoreview.h:62
void setTextEditVisible(bool v)
Definition: scoreview.h:337
void setPlaying(bool playing)
Definition: scoreview.h:215
void enterEvent(QEvent *e)
Definition: scoreview.cpp:1436
void clearSelectionRegionList()
Definition: scoreview.h:120
void clear(bool autoDelete=true)
Definition: kdtree.h:104
double timeToCoordsSimpleVersion(int time)
Definition: scoreview.cpp:1807
static bool musElementTimeLessThan(const CAMusElement *a, const int b)
Definition: scoreview.cpp:1788
void clearSelection()
Definition: scoreview.h:104
void setSelectionAreaColor(const QColor c)
Definition: scoreview.h:206
double timeToCoords(int time)
Definition: scoreview.cpp:1833
CAKDTree< CADrawableMusElement * > _drawableMList
Definition: scoreview.h:293
void setWorldWidth(double w, bool force=false)
Definition: scoreview.cpp:694
int _animationStep
Definition: scoreview.h:370
QList< CAMusElement * > musElementSelection()
Definition: scoreview.cpp:1890
void keyPressEvent(QKeyEvent *e)
Definition: scoreview.cpp:1386
bool _vScrollBarDeadLock
Definition: scoreview.h:394
Represents a staff in the sheet.
Definition: staff.h:25
bool event(QEvent *event)
Definition: scoreview.cpp:1253
CAKDTree< CADrawableNoteCheckerError * > _drawableNCEList
Definition: scoreview.h:295
CATextEdit * createTextEdit(CADrawableMusElement *elt)
Definition: scoreview.cpp:1681
const double worldX()
Definition: scoreview.h:172
void setShadowNoteLength(CAPlayableLength)
Definition: scoreview.cpp:1878
void setSheet(CASheet *sheet)
Definition: scoreview.h:74
QColor _foregroundColor
Definition: scoreview.h:356
bool _holdRepaint
Definition: scoreview.h:391
void setHiddenElementsColor(const QColor c)
Definition: scoreview.h:210
static const int BOTTOM_EXTRA_SPACE
Definition: scoreview.h:303
bool shadowNoteVisible()
Definition: scoreview.h:223
double _oldWorldY
Definition: scoreview.h:385
QColor selectionAreaColor()
Definition: scoreview.h:205
void setBorder(const QPen pen)
Definition: scoreview.cpp:1186
float _zoom
Definition: scoreview.h:311
bool isSelected(CADrawableMusElement *elt)
Definition: scoreview.h:281
void rebuild()
Definition: scoreview.cpp:579
void clearRepaintArea()
Definition: scoreview.h:218
static bool timeMusElementLessThan(const int a, const CAMusElement *b)
Definition: scoreview.cpp:1797
void CAMousePressEvent(QMouseEvent *e, QPoint p)
QPen border()
Definition: scoreview.h:198
void addMElement(CADrawableMusElement *elt, bool select=false)
Definition: scoreview.cpp:268
bool _playing
Definition: scoreview.h:386
Definition: scoreview.h:61
void setBackgroundColor(const QColor c)
Definition: scoreview.h:200
Definition: drawablebarline.h:16
double _targetWorldH
Definition: scoreview.h:371
bool removeFromSelection(CADrawableMusElement *elt)
Definition: scoreview.h:105
void selectionChanged()
QRect * _repaintArea
Definition: scoreview.h:353
void zoomToFit(bool animate=false, bool force=false)
Definition: scoreview.cpp:826
void keyPressEvent(QKeyEvent *)
Definition: scoreview.cpp:77
QColor foregroundColor()
Definition: scoreview.h:201
bool shadowNoteVisibleOnLeave()
Definition: scoreview.h:322
double _targetWorldX
Definition: scoreview.h:371
float _targetZoom
Definition: scoreview.h:372
QString _noteName
Definition: scoreview.h:363
CAScrollBarVisibility _scrollBarVisible
Definition: scoreview.h:379
void setSelectedVoice(CAVoice *selectedVoice)
Definition: scoreview.h:221
void importElements(CAKDTree< CADrawableMusElement * > *drawableMList, CAKDTree< CADrawableContext * > *drawableCList)
Definition: scoreview.cpp:415
QString noteName()
Definition: scoreview.h:242
void resizeEvent(QResizeEvent *e)
Definition: scoreview.cpp:1202
double _targetWorldY
Definition: scoreview.h:371
CADrawableMusElement * nearestRightElement(double x, double y, CADrawableContext *context=0)
Definition: scoreview.cpp:462
CAContext * contextCollision(double x, double y)
Definition: scoreview.cpp:565
void selectAllCurBar()
Definition: scoreview.cpp:1600
void setShadowNoteVisible(bool visible)
Definition: scoreview.h:224
CADrawableMusElement * selectNextMusElement(bool append=false)
Definition: scoreview.cpp:1455
Definition: scoreview.h:55
int _numberOfClicks
Definition: scoreview.h:388
void setResizeDirection(CADrawable::CADirection r)
Definition: scoreview.h:338
void setZoom(float z, QPoint p, bool animate=false, bool force=false)
Definition: scoreview.h:186
const int drawableWidth()
Definition: scoreview.h:164
Definition: drawable.h:27
void invertSelection()
Definition: scoreview.cpp:1637
void setWorldY(double y, bool animate=false, bool force=false)
Definition: scoreview.cpp:661
void setDrawShadowNoteAccs(bool draw)
Definition: scoreview.h:227
void mouseMoveEvent(QMouseEvent *e)
Definition: scoreview.cpp:1327
void setGrabTabKey(bool g)
Definition: scoreview.h:194
void wheelEvent(QWheelEvent *e)
Definition: scoreview.cpp:1373
int coordsToTime(double x)
Definition: scoreview.cpp:1760
void VScrollBarEvent(int val)
Definition: scoreview.cpp:1423
CADrawableContext * _currentContext
Definition: scoreview.h:300
QColor _selectedContextColor
Definition: scoreview.h:359
void setMouseTracking(bool)
Definition: scoreview.cpp:239
CADirection
Definition: drawable.h:34
void CAKeyPressEvent(QKeyEvent *)
int calculateTime(double x, double y)
Definition: scoreview.cpp:494
void setCenterCoords(double x, double y, bool animate=false, bool force=false)
Definition: scoreview.cpp:839
Line of music elements in the sheet.
Definition: context.h:16
void initScoreView(CASheet *s)
Definition: scoreview.cpp:118
CADrawableContext * findCElement(CAContext *)
Definition: scoreview.cpp:1667
double _worldW
Definition: scoreview.h:308
void setZoom(float z, double x=0, double y=0, bool animate=false, bool force=false)
Definition: scoreview.cpp:858
static const int ANIMATION_STEPS
Definition: scoreview.h:369
double _oldWorldW
Definition: scoreview.h:385