📄 matrixview.h
字号:
/** * Set the time pointer position during playback */ void slotSetPointerPosition(timeT time); /** * Set the time pointer position during playback */ void slotSetPointerPosition(timeT time, bool scroll); /** * Set the insertion pointer position (from the bottom LoopRuler) */ void slotSetInsertCursorPosition(timeT position, bool scroll); virtual void slotSetInsertCursorPosition(timeT position) { slotSetInsertCursorPosition(position, true); } /** * Catch the keyboard being pressed */ void slotKeyPressed(unsigned int y, bool repeating); /** * Catch the keyboard being released */ void slotKeyReleased(unsigned int y, bool repeating); /** * Catch the keyboard being pressed with selection modifier */ void slotKeySelected(unsigned int y, bool repeating); /** * Handle scrolling between view and PianoKeyboard */ void slotVerticalScrollPianoKeyboard(int y); /** * Close */ void closeWindow(); /** * A new selection has been acquired by a tool */ void slotNewSelection(); /** * Set the snaptime of the grid from an item in the snap combo */ void slotSetSnapFromIndex(int); /** * Set the snaptime of the grid based on the name of the invoking action */ void slotSetSnapFromAction(); /** * Set the snaptime of the grid */ void slotSetSnap(timeT); /** * Quantize a selection to a given level */ void slotQuantizeSelection(int); /** * Collapse equal pitch notes */ void slotTransformsCollapseNotes(); /** * Pop-up the velocity modification dialog */ void slotSetVelocities(); /** * Set selected event velocities to whatever's in the velocity widget */ void slotSetVelocitiesToCurrent(); /** * Pop-up the select trigger segment dialog */ void slotTriggerSegment(); /** * Clear triggers from selection */ void slotRemoveTriggers(); /** * Change horizontal zoom */ void slotChangeHorizontalZoom(int); void slotZoomIn(); void slotZoomOut(); /** * Select all */ void slotSelectAll(); /** * Keyboard insert */ void slotInsertNoteFromAction(); /// Note-on received asynchronously -- consider step-by-step editing void slotInsertableNoteOnReceived(int pitch, int velocity); /// Note-off received asynchronously -- consider step-by-step editing void slotInsertableNoteOffReceived(int pitch, int velocity); /// Note-on or note-off received asynchronously -- as above void slotInsertableNoteEventReceived(int pitch, int velocity, bool noteOn); /// The given QObject has originated a step-by-step-editing request void slotStepByStepTargetRequested(QObject *); void slotInstrumentLevelsChanged(InstrumentId, const LevelInfo &); /// Set the velocity menu to the given value void slotSetCurrentVelocity(int); void slotSetCurrentVelocityFromSelection();protected slots: void slotCanvasBottomWidgetHeightChanged(int newHeight); /** * A new percussion key mapping has to be displayed */ void slotPercussionSetChanged(Instrument *); /** * Re-dock the parameters box to its initial position */ void slotDockParametersBack(); /** * The parameters box was closed */ void slotParametersClosed(); /** * The parameters box was docked back */ void slotParametersDockedBack(KDockWidget*, KDockWidget::DockPosition); /** * The instrument for this track may have changed */ void slotCheckTrackAssignments(); void slotToolHelpChanged(const QString &); void slotMouseEnteredCanvasView(); void slotMouseLeftCanvasView(); protected: virtual RulerScale* getHLayout(); virtual Segment *getCurrentSegment(); virtual Staff *getCurrentStaff(); virtual timeT getInsertionTime(); /** * save general Options like all bar positions and status as well * as the geometry and the recent file list to the configuration * file */ virtual void slotSaveOptions(); /** * read general Options again and initialize all variables like the recent file list */ virtual void readOptions(); /** * create menus and toolbars */ virtual void setupActions(); /** * setup status bar */ virtual void initStatusBar(); /** * update the current quantize level from selection or entire segment */ virtual void updateQuantizeCombo(); /** * Return the size of the MatrixCanvasView */ virtual QSize getViewSize(); /** * Set the size of the MatrixCanvasView */ virtual void setViewSize(QSize); virtual MatrixCanvasView *getCanvasView(); /** * Init matrix actions toolbar */ void initActionsToolbar(); /** * Zoom toolbar */ void initZoomToolbar(); /** * Test whether we've had too many preview notes recently */ bool canPreviewAnotherNote(); virtual void paintEvent(QPaintEvent* e); virtual void updateViewCaption(); int computePostLayoutWidth(); /** * Get min and max pitches of notes on matrix. * Return false if no notes. */ bool getMinMaxPitches(int& minPitch, int& maxPitch); /** * If necessary, extend local keymapping to contain * all notes currently on staff */ void extendKeyMapping(); //--------------- Data members --------------------------------- std::vector<MatrixStaff*> m_staffs; MatrixHLayout m_hlayout; MatrixVLayout m_vlayout; SnapGrid *m_snapGrid; timeT m_lastEndMarkerTime; // Status bar elements QLabel* m_hoveredOverAbsoluteTime; QLabel* m_hoveredOverNoteName; QLabel *m_selectionCounter; QLabel *m_insertModeLabel; bool m_haveHoveredOverNote; /** * used in slotHoveredOverKeyChanged to track moves over the piano * keyboard */ int m_previousEvPitch; KDockWidget *m_dockLeft; MatrixCanvasView *m_canvasView; QDeferScrollView *m_pianoView; PitchRuler *m_pitchRuler; MidiKeyMapping *m_localMapping; // The last note we sent in case we're swooshing up and // down the keyboard and don't want repeat notes sending // MidiByte m_lastNote; // The first note we sent in similar case (only used for // doing effective sweep selections // MidiByte m_firstNote; PropertyName m_selectedProperty; // The parameter box // InstrumentParameterBox *m_parameterBox; // Toolbar flora // KComboBox *m_velocityCombo; KComboBox *m_quantizeCombo; KComboBox *m_snapGridCombo; ZoomSlider<double> *m_hZoomSlider; ZoomSlider<double> *m_vZoomSlider; QLabel *m_zoomLabel; // Hold our matrix quantization values and snap values // std::vector<timeT> m_quantizations; std::vector<timeT> m_snapValues; std::vector<std::pair<PropertyViewRuler*, PropertyBox*> > m_propertyViewRulers; ChordNameRuler *m_chordNameRuler; QWidget *m_tempoRuler; // ruler used to scale tempo and chord name ruler ZoomableMatrixHLayoutRulerScale* m_referenceRuler; std::vector<std::pair<int, int> > m_pendingInsertableNotes; bool m_playTracking; bool m_dockVisible; bool m_drumMode; bool m_mouseInCanvasView; QString m_toolContextHelp;};// Commented this out - was a MatrixView inner class, but we get a warning// that Q_OBJECT can't be used in an inner class - gl//// class NoteSender : public QObject// {// Q_OBJECT // public:// NoteSender(int i, int p) : m_insid(i), m_pitch(p) { }// virtual ~NoteSender(); // public slots:// void sendNote(); // private:// int m_insid, m_pitch;// };}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -