hydrogen 1.2.3
PatternEditor Class Referenceabstract

Pattern Editor. More...

#include <PatternEditor.h>

Inheritance diagram for PatternEditor:
EventListener Object< PatternEditor > SelectionWidget< H2Core::Note * > Base DrumPatternEditor NotePropertiesRuler PianoRollEditor

Public Types

enum class  Editor { DrumPattern = 0 , PianoRoll = 1 , NotePropertiesRuler = 2 , None = 3 }
 
enum class  Mode {
  Velocity = 0 , Pan = 1 , LeadLag = 2 , NoteKey = 3 ,
  Probability = 4 , None = 5
}
 
- Public Types inherited from SelectionWidget< H2Core::Note * >
typedef H2Core::NoteSelectionIndex
 

Public Slots

virtual void copy ()
 Copy selection to clipboard in XML.
 
virtual void cut ()
 
virtual void deleteSelection ()=0
 
void onPreferencesChanged (H2Core::Preferences::Changes changes)
 
virtual void paste ()=0
 
void scrolled (int nValue)
 
virtual void selectAll ()=0
 
virtual void selectInstrumentNotes (int nInstrument)
 
virtual void selectNone ()
 
void setCurrentInstrument (int nInstrument)
 
virtual void updateEditor (bool bPatternOnly=false)=0
 

Public Member Functions

 PatternEditor (QWidget *pParent, PatternEditorPanel *panel)
 
 ~PatternEditor ()
 
virtual bool checkDeselectElements (std::vector< SelectionIndex > &elements) override
 Deselecting notes.
 
void clearSelection ()
 Clear the pattern editor selection.
 
void deselectAndOverwriteNotes (std::vector< H2Core::Note * > &selected, std::vector< H2Core::Note * > &overwritten)
 Deselect some notes, and "overwrite" some others.
 
void editNoteLengthAction (int nColumn, int nRealColumn, int nRow, int nLength, int nSelectedPatternNumber, int nSelectedInstrumentnumber, Editor editor)
 
void editNotePropertiesAction (int nColumn, int nRealColumn, int nRow, int nSelectedPatternNumber, int nSelectedInstrumentNumber, Mode mode, Editor editor, float fVelocity, float fPan, float fLeadLag, float fProbability)
 
virtual void endMouseGesture () override
 
unsigned getGridHeight () const
 
float getGridWidth () const
 
uint getResolution () const
 
bool isUsingTriplets () const
 
int lineToPitch (int nLine)
 
void mergeSelectionGroups (PatternEditor *pPatternEditor)
 Merge together the selection groups of two PatternEditor objects to share a common selection.
 
virtual void mouseDragEndEvent (QMouseEvent *ev) override
 
virtual void mouseDragStartEvent (QMouseEvent *ev) override
 
virtual void mouseDragUpdateEvent (QMouseEvent *ev) override
 
virtual void mouseMoveEvent (QMouseEvent *ev) override
 
virtual void mousePressEvent (QMouseEvent *ev) override
 Raw Qt mouse events are passed to the Selection.
 
virtual void mouseReleaseEvent (QMouseEvent *ev) override
 
bool notesMatchExactly (H2Core::Note *pNoteA, H2Core::Note *pNoteB) const
 Do two notes match exactly, from the pattern editor's point of view? They match if all user-editable properties are the same.
 
int pitchToLine (int nPitch)
 
void setResolution (uint res, bool bUseTriplets)
 Set the editor grid resolution, dividing a whole note into res subdivisions.
 
virtual void songModeActivationEvent () override
 
virtual void stackedModeActivationEvent (int nValue) override
 
virtual void startMouseLasso (QMouseEvent *ev) override
 Change the mouse cursor during mouse gestures.
 
virtual void startMouseMove (QMouseEvent *ev) override
 
void undoDeselectAndOverwriteNotes (std::vector< H2Core::Note * > &selected, std::vector< H2Core::Note * > &overwritten)
 
virtual void updateModifiers (QInputEvent *ev)
 Update the status of modifier keys in response to input events.
 
void updatePosition (float fTick)
 Caches the AudioEngine::m_nPatternTickPosition in the member variable m_nTick and triggers an update().
 
virtual void updateWidget () override
 Update a widget in response to a change in selection.
 
virtual void validateSelection () override
 Ensure that the Selection contains only valid elements.
 
void zoomIn ()
 Zoom in / out on the time axis.
 
void zoomOut ()
 
- Public Member Functions inherited from EventListener
virtual ~EventListener ()
 
virtual void actionModeChangeEvent (int nValue)
 
virtual void bbtChangedEvent ()
 
virtual void driverChangedEvent ()
 
virtual void drumkitLoadedEvent ()
 
virtual void errorEvent (int nErrorCode)
 
virtual void gridCellToggledEvent ()
 
virtual void instrumentParametersChangedEvent (int nInstrumentNumber)
 
virtual void jacksessionEvent (int nValue)
 
virtual void jackTimebaseStateChangedEvent ()
 
virtual void jackTransportActivationEvent ()
 
virtual void loopModeActivationEvent ()
 
virtual void metronomeEvent (int nValue)
 
virtual void midiActivityEvent ()
 
virtual void midiMapChangedEvent ()
 
virtual void nextPatternsChangedEvent ()
 
virtual void nextShotEvent ()
 
virtual void noteOnEvent (int nInstrument)
 
virtual void patternEditorLockedEvent ()
 
virtual void patternModifiedEvent ()
 
virtual void playbackTrackChangedEvent ()
 
virtual void playingPatternsChangedEvent ()
 
virtual void playlistLoadSongEvent (int nIndex)
 
virtual void progressEvent (int nValue)
 
virtual void quitEvent (int nValue)
 
virtual void relocationEvent ()
 
virtual void selectedInstrumentChangedEvent ()
 
virtual void selectedPatternChangedEvent ()
 
virtual void songModifiedEvent ()
 
virtual void songSizeChangedEvent ()
 
virtual void soundLibraryChangedEvent ()
 
virtual void stateChangedEvent (H2Core::AudioEngine::State state)
 
virtual void tempoChangedEvent (int nValue)
 
virtual void timelineActivationEvent ()
 
virtual void timelineUpdateEvent (int nValue)
 
virtual void undoRedoActionEvent (int nValue)
 
virtual void updatePreferencesEvent (int nValue)
 
virtual void updateSongEvent (int nValue)
 
virtual void XRunEvent ()
 
- Public Member Functions inherited from Object< PatternEditor >
 Object ()
 
 Object (const Object< PatternEditor > &other)
 
- Public Member Functions inherited from Base
 Base ()
 
 Base (const Base &other)
 
virtual const char * class_name () const
 
void Print (bool bShort=true) const
 Prints content of toQString() via DEBUGLOG.
 
virtual QString toQString (const QString &sPrefix="", bool bShort=true) const
 Formatted string version for debugging purposes.
 
- Public Member Functions inherited from SelectionWidget< H2Core::Note * >
virtual bool canDragElements ()
 Can elements be dragged as well as being selected? This may change to suit widget's current state.
 
virtual bool checkDeselectElements (std::vector< SelectionIndex > &elements)
 Inform the client that we're deselecting elements.
 
virtual std::vector< SelectionIndexelementsIntersecting (QRect r)=0
 Find list of elements which intersect a rectangular area.
 
virtual QScrollArea * findScrollArea ()
 Find the QScrollArea, if any, which contains the widget.
 
virtual QRect getKeyboardCursorRect ()=0
 Calculate screen space occupied by keyboard cursor.
 
virtual void mouseClickEvent (QMouseEvent *ev)=0
 
virtual void selectionMoveUpdateEvent (QMouseEvent *ev)
 
virtual void selectionMoveEndEvent (QInputEvent *ev)=0
 
virtual void selectionMoveCancelEvent ()
 

Static Public Member Functions

static QColor computeNoteColor (float velocity)
 Calculate colour to use for note representation based on note velocity.
 
static bool isUsingAdditionalPatterns (const H2Core::Pattern *pPattern)
 Determines whether to pattern editor should show further patterns (determined by getPattersToShow()) or just the currently selected one.
 
static QString modeToQString (Mode mode)
 
static void triggerStatusMessage (H2Core::Note *pNote, Mode mode)
 
- Static Public Member Functions inherited from Base
static const char * _class_name ()
 return the class name
 
static QString base_clock (const QString &sMsg)
 Measures the current time and stores it in __last_clock.
 
static QString base_clock_in (const QString &sMsg)
 
static int bootstrap (Logger *logger, bool count=false)
 must be called before any Object instantiation !
 
static bool count_active ()
 
static int getAliveObjectCount ()
 
static object_map_t getObjectMap ()
 
static Loggerlogger ()
 return the logger instance
 
static int objects_count ()
 
static void printObjectMapDiff (object_map_t map)
 Creates the difference between a snapshot of the object map and its current state and prints it to std::cout.
 
static void set_count (bool flag)
 enable/disable class instances counting
 
static void write_objects_map_to (std::ostream &out, object_map_t *map=nullptr)
 output the full objects map to a given ostream
 
static void write_objects_map_to_cerr ()
 output objects map to stderr
 

Static Public Attributes

static constexpr int nMargin = 20
 
- Static Public Attributes inherited from Base
static QString sPrintIndention = " "
 String used to format the debugging string output of some core classes.
 

Protected Member Functions

virtual void createBackground ()
 Updates m_pBackgroundPixmap to show the latest content.
 
void drawGridLines (QPainter &p, Qt::PenStyle style=Qt::SolidLine) const
 Draw lines for note grid.
 
void drawNoteSymbol (QPainter &p, QPoint pos, H2Core::Note *pNote, bool bIsForeground=true) const
 Draw a note.
 
virtual void enterEvent (QEvent *ev) override
 
virtual void focusInEvent (QFocusEvent *ev) override
 
virtual void focusOutEvent (QFocusEvent *ev) override
 
int getColumn (int x, bool bUseFineGrained=false) const
 
std::vector< H2Core::Pattern * > getPatternsToShow (void)
 Get notes to show in pattern editor.
 
int granularity () const
 Granularity of grid positioning (in ticks)
 
void invalidateBackground ()
 
virtual void leaveEvent (QEvent *ev) override
 
QPoint movingGridOffset () const
 
QColor selectedNoteColor () const
 Colour to use for outlining selected notes.
 
void storeNoteProperties (const H2Core::Note *pNote)
 Stores the properties of pNote in member variables.
 
void updatePatternInfo ()
 Update current pattern information.
 
void updateWidth ()
 Adjusts m_nActiveWidth and m_nEditorWidth to the current state of the editor.
 
- Protected Member Functions inherited from Object< PatternEditor >
 ~Object ()
 
- Protected Member Functions inherited from Base
 ~Base ()
 

Protected Attributes

bool m_bBackgroundInvalid
 
bool m_bCopyNotMove
 
bool m_bEntered
 Indicates whether the mouse pointer entered the widget.
 
bool m_bFineGrained
 
bool m_bSelectNewNotes
 
bool m_bUseTriplets
 
Editor m_editor
 
float m_fGridWidth
 
float m_fLeadLag = 0
 
float m_fOldLeadLag = 0
 
float m_fOldPan = 0
 
float m_fOldProbability = 0
 
float m_fOldVelocity = 0
 
float m_fPan = 0
 
float m_fProbability = 0
 
float m_fVelocity = 0
 
Mode m_mode
 
int m_nActiveWidth
 
int m_nColumn = 0
 
uint m_nEditorHeight
 
uint m_nEditorWidth
 
unsigned m_nGridHeight
 
unsigned m_nOctaves = 7
 
int m_nOldLength = 0
 
int m_nOldPoint
 
int m_nPressedLine = 0
 
int m_nRealColumn = 0
 
uint m_nResolution
 
int m_nRow = 0
 
int m_nSelectedInstrumentNumber = 0
 Cached properties used when adjusting a note property via right-press mouse movement.
 
int m_nSelectedPatternNumber = 0
 
int m_nTick
 
H2Core::AudioEnginem_pAudioEngine
 
QPixmap * m_pBackgroundPixmap
 
H2Core::Notem_pDraggedNote
 
H2Core::Patternm_pPattern
 
PatternEditorPanelm_pPatternEditorPanel
 
QMenu * m_pPopupMenu
 
Selection< SelectionIndexm_selection
 The Selection object.
 

Additional Inherited Members

- Static Protected Member Functions inherited from Base
static void registerClass (const char *name, const atomic_obj_cpt_t *counters)
 
- Static Protected Attributes inherited from Base
static bool __count = false
 should we count class instances
 
static timeval __last_clock = { 0, 0 }
 
static Logger__logger = nullptr
 

Detailed Description

Pattern Editor.

The PatternEditor class is an abstract base class for functionality common to Pattern Editor components (DrumPatternEditor, PianoRollEditor, NotePropertiesRuler).

This covers common elements such as some selection handling, timebase functions, and drawing grid lines.

Definition at line 57 of file PatternEditor.h.

Member Enumeration Documentation

◆ Editor

enum class Editor
strong
Enumerator
DrumPattern 
PianoRoll 
NotePropertiesRuler 
None 

Definition at line 66 of file PatternEditor.h.

◆ Mode

enum class Mode
strong
Enumerator
Velocity 
Pan 
LeadLag 
NoteKey 
Probability 
None 

Definition at line 73 of file PatternEditor.h.

Constructor & Destructor Documentation

◆ PatternEditor()

PatternEditor ( QWidget * pParent,
PatternEditorPanel * panel )

Definition at line 54 of file PatternEditor.cpp.

◆ ~PatternEditor()

Definition at line 102 of file PatternEditor.cpp.

Member Function Documentation

◆ checkDeselectElements()

bool checkDeselectElements ( std::vector< SelectionIndex > & elements)
overridevirtual

Deselecting notes.

Definition at line 518 of file PatternEditor.cpp.

◆ clearSelection()

void clearSelection ( )
inline

Clear the pattern editor selection.

Definition at line 101 of file PatternEditor.h.

◆ computeNoteColor()

QColor computeNoteColor ( float velocity)
static

Calculate colour to use for note representation based on note velocity.

Definition at line 150 of file PatternEditor.cpp.

◆ copy

void copy ( )
virtualslot

Copy selection to clipboard in XML.

Definition at line 381 of file PatternEditor.cpp.

◆ createBackground()

void createBackground ( )
protectedvirtual

Updates m_pBackgroundPixmap to show the latest content.

Reimplemented in DrumPatternEditor, NotePropertiesRuler, and PianoRollEditor.

Definition at line 887 of file PatternEditor.cpp.

◆ cut

void cut ( )
virtualslot

Definition at line 429 of file PatternEditor.cpp.

◆ deleteSelection

virtual void deleteSelection ( )
pure virtualslot

◆ deselectAndOverwriteNotes()

void deselectAndOverwriteNotes ( std::vector< H2Core::Note * > & selected,
std::vector< H2Core::Note * > & overwritten )

Deselect some notes, and "overwrite" some others.

Definition at line 576 of file PatternEditor.cpp.

◆ drawGridLines()

void drawGridLines ( QPainter & p,
Qt::PenStyle style = Qt::SolidLine ) const
protected

Draw lines for note grid.

Definition at line 680 of file PatternEditor.cpp.

◆ drawNoteSymbol()

void drawNoteSymbol ( QPainter & p,
QPoint pos,
H2Core::Note * pNote,
bool bIsForeground = true ) const
protected

Draw a note.

Parameters
pPainting device
posCenter of the note to draw
pNoteParticular note to draw
bIsForegroundWhether the pNote is contained in the pattern currently shown in the pattern editor (the one selected in the song editor)

Definition at line 200 of file PatternEditor.cpp.

◆ editNoteLengthAction()

void editNoteLengthAction ( int nColumn,
int nRealColumn,
int nRow,
int nLength,
int nSelectedPatternNumber,
int nSelectedInstrumentnumber,
Editor editor )

Definition at line 1235 of file PatternEditor.cpp.

◆ editNotePropertiesAction()

void editNotePropertiesAction ( int nColumn,
int nRealColumn,
int nRow,
int nSelectedPatternNumber,
int nSelectedInstrumentNumber,
Mode mode,
Editor editor,
float fVelocity,
float fPan,
float fLeadLag,
float fProbability )

Definition at line 1307 of file PatternEditor.cpp.

◆ endMouseGesture()

virtual void endMouseGesture ( )
inlineoverridevirtual

Reimplemented from SelectionWidget< H2Core::Note * >.

Definition at line 137 of file PatternEditor.h.

◆ enterEvent()

void enterEvent ( QEvent * ev)
overrideprotectedvirtual

Reimplemented in NotePropertiesRuler.

Definition at line 844 of file PatternEditor.cpp.

◆ focusInEvent()

void focusInEvent ( QFocusEvent * ev)
overrideprotectedvirtual

Definition at line 856 of file PatternEditor.cpp.

◆ focusOutEvent()

void focusOutEvent ( QFocusEvent * ev)
overrideprotectedvirtual

Definition at line 872 of file PatternEditor.cpp.

◆ getColumn()

int getColumn ( int x,
bool bUseFineGrained = false ) const
protected

Definition at line 356 of file PatternEditor.cpp.

◆ getGridHeight()

unsigned getGridHeight ( ) const
inline

Definition at line 95 of file PatternEditor.h.

◆ getGridWidth()

float getGridWidth ( ) const
inline

Definition at line 94 of file PatternEditor.h.

◆ getPatternsToShow()

std::vector< Pattern * > getPatternsToShow ( void )
protected

Get notes to show in pattern editor.

This may include "background" notes that are in currently-playing patterns rather than the current pattern.

Definition at line 893 of file PatternEditor.cpp.

◆ getResolution()

uint getResolution ( ) const
inline

Definition at line 91 of file PatternEditor.h.

◆ granularity()

int granularity ( ) const
inlineprotected

Granularity of grid positioning (in ticks)

Definition at line 224 of file PatternEditor.h.

◆ invalidateBackground()

void invalidateBackground ( )
protected

Definition at line 883 of file PatternEditor.cpp.

◆ isUsingAdditionalPatterns()

bool isUsingAdditionalPatterns ( const H2Core::Pattern * pPattern)
static

Determines whether to pattern editor should show further patterns (determined by getPattersToShow()) or just the currently selected one.

Definition at line 947 of file PatternEditor.cpp.

◆ isUsingTriplets()

bool isUsingTriplets ( ) const
inline

Definition at line 92 of file PatternEditor.h.

◆ leaveEvent()

void leaveEvent ( QEvent * ev)
overrideprotectedvirtual

Reimplemented in NotePropertiesRuler.

Definition at line 850 of file PatternEditor.cpp.

◆ lineToPitch()

int lineToPitch ( int nLine)
inline

Definition at line 190 of file PatternEditor.h.

◆ mergeSelectionGroups()

void mergeSelectionGroups ( PatternEditor * pPatternEditor)
inline

Merge together the selection groups of two PatternEditor objects to share a common selection.

Definition at line 110 of file PatternEditor.h.

◆ modeToQString()

QString modeToQString ( Mode mode)
static

Definition at line 1403 of file PatternEditor.cpp.

◆ mouseDragEndEvent()

void mouseDragEndEvent ( QMouseEvent * ev)
overridevirtual

Implements SelectionWidget< H2Core::Note * >.

Reimplemented in NotePropertiesRuler.

Definition at line 1182 of file PatternEditor.cpp.

◆ mouseDragStartEvent()

void mouseDragStartEvent ( QMouseEvent * ev)
overridevirtual

Implements SelectionWidget< H2Core::Note * >.

Reimplemented in DrumPatternEditor, NotePropertiesRuler, and PianoRollEditor.

Definition at line 1050 of file PatternEditor.cpp.

◆ mouseDragUpdateEvent()

void mouseDragUpdateEvent ( QMouseEvent * ev)
overridevirtual

Implements SelectionWidget< H2Core::Note * >.

Reimplemented in DrumPatternEditor, NotePropertiesRuler, and PianoRollEditor.

Definition at line 1096 of file PatternEditor.cpp.

◆ mouseMoveEvent()

void mouseMoveEvent ( QMouseEvent * ev)
overridevirtual

Reimplemented in NotePropertiesRuler.

Definition at line 465 of file PatternEditor.cpp.

◆ mousePressEvent()

void mousePressEvent ( QMouseEvent * ev)
overridevirtual

Raw Qt mouse events are passed to the Selection.

Reimplemented in DrumPatternEditor, NotePropertiesRuler, and PianoRollEditor.

Definition at line 459 of file PatternEditor.cpp.

◆ mouseReleaseEvent()

void mouseReleaseEvent ( QMouseEvent * ev)
overridevirtual

Definition at line 474 of file PatternEditor.cpp.

◆ movingGridOffset()

QPoint movingGridOffset ( ) const
protected

Definition at line 657 of file PatternEditor.cpp.

◆ notesMatchExactly()

bool notesMatchExactly ( H2Core::Note * pNoteA,
H2Core::Note * pNoteB ) const

Do two notes match exactly, from the pattern editor's point of view? They match if all user-editable properties are the same.

Definition at line 509 of file PatternEditor.cpp.

◆ onPreferencesChanged

void onPreferencesChanged ( H2Core::Preferences::Changes changes)
slot

Definition at line 109 of file PatternEditor.cpp.

◆ paste

virtual void paste ( )
pure virtualslot

◆ pitchToLine()

int pitchToLine ( int nPitch)
inline

Definition at line 193 of file PatternEditor.h.

◆ scrolled

void scrolled ( int nValue)
slot

Definition at line 839 of file PatternEditor.cpp.

◆ selectAll

virtual void selectAll ( )
pure virtualslot

◆ selectedNoteColor()

QColor selectedNoteColor ( ) const
protected

Colour to use for outlining selected notes.

Definition at line 796 of file PatternEditor.cpp.

◆ selectInstrumentNotes

void selectInstrumentNotes ( int nInstrument)
virtualslot

Definition at line 436 of file PatternEditor.cpp.

◆ selectNone

void selectNone ( )
virtualslot

Definition at line 372 of file PatternEditor.cpp.

◆ setCurrentInstrument

void setCurrentInstrument ( int nInstrument)
slot

Definition at line 454 of file PatternEditor.cpp.

◆ setResolution()

void setResolution ( uint res,
bool bUseTriplets )

Set the editor grid resolution, dividing a whole note into res subdivisions.

Definition at line 118 of file PatternEditor.cpp.

◆ songModeActivationEvent()

void songModeActivationEvent ( )
overridevirtual

Reimplemented from EventListener.

Reimplemented in DrumPatternEditor, NotePropertiesRuler, and PianoRollEditor.

Definition at line 995 of file PatternEditor.cpp.

◆ stackedModeActivationEvent()

void stackedModeActivationEvent ( int nValue)
overridevirtual

Reimplemented from EventListener.

Definition at line 1001 of file PatternEditor.cpp.

◆ startMouseLasso()

virtual void startMouseLasso ( QMouseEvent * ev)
inlineoverridevirtual

Change the mouse cursor during mouse gestures.

Reimplemented from SelectionWidget< H2Core::Note * >.

Definition at line 129 of file PatternEditor.h.

◆ startMouseMove()

virtual void startMouseMove ( QMouseEvent * ev)
inlineoverridevirtual

Reimplemented from SelectionWidget< H2Core::Note * >.

Definition at line 133 of file PatternEditor.h.

◆ storeNoteProperties()

void storeNoteProperties ( const H2Core::Note * pNote)
protected

Stores the properties of pNote in member variables.

Definition at line 1032 of file PatternEditor.cpp.

◆ triggerStatusMessage()

void triggerStatusMessage ( H2Core::Note * pNote,
Mode mode )
static

Definition at line 1430 of file PatternEditor.cpp.

◆ undoDeselectAndOverwriteNotes()

void undoDeselectAndOverwriteNotes ( std::vector< H2Core::Note * > & selected,
std::vector< H2Core::Note * > & overwritten )

Definition at line 612 of file PatternEditor.cpp.

◆ updateEditor

virtual void updateEditor ( bool bPatternOnly = false)
pure virtualslot

◆ updateModifiers()

void updateModifiers ( QInputEvent * ev)
virtual

Update the status of modifier keys in response to input events.

Definition at line 480 of file PatternEditor.cpp.

◆ updatePatternInfo()

void updatePatternInfo ( )
protected

Update current pattern information.

Definition at line 641 of file PatternEditor.cpp.

◆ updatePosition()

void updatePosition ( float fTick)

Caches the AudioEngine::m_nPatternTickPosition in the member variable m_nTick and triggers an update().

Definition at line 1008 of file PatternEditor.cpp.

◆ updateWidget()

virtual void updateWidget ( )
inlineoverridevirtual

Update a widget in response to a change in selection.

Implements SelectionWidget< H2Core::Note * >.

Definition at line 121 of file PatternEditor.h.

◆ updateWidth()

void updateWidth ( )
protected

Adjusts m_nActiveWidth and m_nEditorWidth to the current state of the editor.

Definition at line 960 of file PatternEditor.cpp.

◆ validateSelection()

void validateSelection ( )
overridevirtual

Ensure that the Selection contains only valid elements.

Ensure selection only refers to valid notes, and does not contain any stale references to deleted notes.

Implements SelectionWidget< H2Core::Note * >.

Definition at line 813 of file PatternEditor.cpp.

◆ zoomIn()

void zoomIn ( )

Zoom in / out on the time axis.

Definition at line 128 of file PatternEditor.cpp.

◆ zoomOut()

void zoomOut ( )

Definition at line 138 of file PatternEditor.cpp.

Field Documentation

◆ m_bBackgroundInvalid

bool m_bBackgroundInvalid
protected

Definition at line 293 of file PatternEditor.h.

◆ m_bCopyNotMove

bool m_bCopyNotMove
protected

Definition at line 250 of file PatternEditor.h.

◆ m_bEntered

bool m_bEntered
protected

Indicates whether the mouse pointer entered the widget.

Definition at line 302 of file PatternEditor.h.

◆ m_bFineGrained

bool m_bFineGrained
protected

Definition at line 249 of file PatternEditor.h.

◆ m_bSelectNewNotes

bool m_bSelectNewNotes
protected

Definition at line 252 of file PatternEditor.h.

◆ m_bUseTriplets

bool m_bUseTriplets
protected

Definition at line 248 of file PatternEditor.h.

◆ m_editor

Editor m_editor
protected

Definition at line 334 of file PatternEditor.h.

◆ m_fGridWidth

float m_fGridWidth
protected

Definition at line 241 of file PatternEditor.h.

◆ m_fLeadLag

float m_fLeadLag = 0
protected

Definition at line 330 of file PatternEditor.h.

◆ m_fOldLeadLag

float m_fOldLeadLag = 0
protected

Definition at line 331 of file PatternEditor.h.

◆ m_fOldPan

float m_fOldPan = 0
protected

Definition at line 329 of file PatternEditor.h.

◆ m_fOldProbability

float m_fOldProbability = 0
protected

Definition at line 333 of file PatternEditor.h.

◆ m_fOldVelocity

float m_fOldVelocity = 0
protected

Definition at line 327 of file PatternEditor.h.

◆ m_fPan

float m_fPan = 0
protected

Definition at line 328 of file PatternEditor.h.

◆ m_fProbability

float m_fProbability = 0
protected

Definition at line 332 of file PatternEditor.h.

◆ m_fVelocity

float m_fVelocity = 0
protected

Definition at line 326 of file PatternEditor.h.

◆ m_mode

Mode m_mode
protected

Definition at line 335 of file PatternEditor.h.

◆ m_nActiveWidth

int m_nActiveWidth
protected

Definition at line 239 of file PatternEditor.h.

◆ m_nColumn

int m_nColumn = 0
protected

Definition at line 320 of file PatternEditor.h.

◆ m_nEditorHeight

uint m_nEditorHeight
protected

Definition at line 235 of file PatternEditor.h.

◆ m_nEditorWidth

uint m_nEditorWidth
protected

Definition at line 236 of file PatternEditor.h.

◆ m_nGridHeight

unsigned m_nGridHeight
protected

Definition at line 242 of file PatternEditor.h.

◆ m_nOctaves

unsigned m_nOctaves = 7
protected

Definition at line 310 of file PatternEditor.h.

◆ m_nOldLength

int m_nOldLength = 0
protected

Definition at line 325 of file PatternEditor.h.

◆ m_nOldPoint

int m_nOldPoint
protected

Definition at line 323 of file PatternEditor.h.

◆ m_nPressedLine

int m_nPressedLine = 0
protected

Definition at line 322 of file PatternEditor.h.

◆ m_nRealColumn

int m_nRealColumn = 0
protected

Definition at line 319 of file PatternEditor.h.

◆ m_nResolution

uint m_nResolution
protected

Definition at line 247 of file PatternEditor.h.

◆ m_nRow

int m_nRow = 0
protected

Definition at line 321 of file PatternEditor.h.

◆ m_nSelectedInstrumentNumber

int m_nSelectedInstrumentNumber = 0
protected

Cached properties used when adjusting a note property via right-press mouse movement.

Definition at line 318 of file PatternEditor.h.

◆ m_nSelectedPatternNumber

int m_nSelectedPatternNumber = 0
protected

Definition at line 244 of file PatternEditor.h.

◆ m_nTick

int m_nTick
protected

Definition at line 308 of file PatternEditor.h.

◆ m_pAudioEngine

H2Core::AudioEngine* m_pAudioEngine
protected

Definition at line 255 of file PatternEditor.h.

◆ m_pBackgroundPixmap

QPixmap* m_pBackgroundPixmap
protected

Definition at line 292 of file PatternEditor.h.

◆ m_pDraggedNote

H2Core::Note* m_pDraggedNote
protected

Definition at line 253 of file PatternEditor.h.

◆ m_pPattern

H2Core::Pattern* m_pPattern
protected

Definition at line 245 of file PatternEditor.h.

◆ m_pPatternEditorPanel

PatternEditorPanel* m_pPatternEditorPanel
protected

Definition at line 257 of file PatternEditor.h.

◆ m_pPopupMenu

QMenu* m_pPopupMenu
protected

Definition at line 258 of file PatternEditor.h.

◆ m_selection

Selection< SelectionIndex > m_selection
protected

The Selection object.

Definition at line 206 of file PatternEditor.h.

◆ nMargin

constexpr int nMargin = 20
staticconstexpr

Definition at line 163 of file PatternEditor.h.