Loading...
Searching...
No Matches
PatternEditor.hpp
1#pragma once
2#include <score_plugin_midi_export.h>
3#include <QPointer>
4#include <QWidget>
5
6#include <array>
7#include <vector>
8
9class QGraphicsScene;
10class QGraphicsView;
11class QAction;
12class QCheckBox;
13class QComboBox;
14class QFormLayout;
15class QHBoxLayout;
16class QPushButton;
17class QLabel;
18class QSpinBox;
19class QToolButton;
20namespace score
21{
22struct DocumentContext;
23}
24namespace Patternist
25{
26class ProcessModel;
27class View;
28class Controller;
29
32class SCORE_PLUGIN_MIDI_EXPORT Editor final : public QWidget
33{
34public:
35 Editor(ProcessModel& model, const score::DocumentContext& ctx, QWidget* parent);
36 ~Editor() override;
37
38private:
39 void resizeEvent(QResizeEvent* event) override;
40 bool eventFilter(QObject* watched, QEvent* event) override;
41 QWidget* makeLanePanel();
42 void updateLanePanel();
43 void showStepMenu(int lane, int step, QPoint screen);
44 void updateBank();
45 void updatePatternControls();
46 void fitGrid();
48 void setRings(bool b);
49 void copy();
50 void paste();
51 void clear();
52 void addShortcuts();
53
54 QPointer<ProcessModel> m_model;
55 Controller* m_controller{};
56
57 QHBoxLayout* m_bank{};
58 std::vector<QToolButton*> m_bankButtons;
59 QToolButton* m_removePattern{};
60 QToolButton* m_paste{};
61 QLabel* m_status{};
62 QToolButton* m_select{};
63
64 QSpinBox* m_laneLength{};
65 QSpinBox* m_laneDivision{};
66 QSpinBox* m_laneVelocity{};
67 QCheckBox* m_perHit[4]{};
68 std::array<QWidget*, 2> m_perHitRows{};
69 QFormLayout* m_laneForm{};
70 QAction* m_addAccent{};
71 QAction* m_addSlide{};
72 QSpinBox* m_pulses{};
73 QSpinBox* m_rotation{};
74 QComboBox* m_combine{};
75 QSpinBox* m_steps{};
76 QSpinBox* m_rate{};
77 int m_playing{-1};
78 int m_pending{-1};
79
80 QGraphicsScene* m_scene{};
81 QGraphicsView* m_graphics{};
82 View* m_view{};
83};
84}
Definition PatternController.hpp:21
Definition PatternEditor.hpp:33
Definition PatternModel.hpp:247
Definition PatternView.hpp:20
Base toolkit upon which the software is built.
Definition Application.cpp:83
Definition DocumentContext.hpp:18