File: importmidi_delegate.h

package info (click to toggle)
musescore 2.3.2%2Bdfsg2-7~deb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 187,932 kB
  • sloc: cpp: 264,610; xml: 176,707; sh: 3,311; ansic: 1,384; python: 356; makefile: 188; perl: 82; pascal: 78
file content (100 lines) | stat: -rw-r--r-- 2,281 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#ifndef IMPORTMIDI_DELEGATE_H
#define IMPORTMIDI_DELEGATE_H

#include "importmidi_view.h"


namespace Ms {

class TimeSigEditor : public QWidget
      {
      Q_OBJECT

   public:
      TimeSigEditor(const QStringList &values, QWidget *parent = nullptr);

      QStringList data() const;

   signals:
      void okClicked();

   private:
      QComboBox *_comboBoxNumerator;
      QComboBox *_comboBoxDenominator;
      };

class SizedListWidget : public QListWidget
      {
      Q_OBJECT

   public:
      SizedListWidget(QWidget *parent = nullptr);

      virtual QSize sizeHint () const;
      };

// class for multiple value representation
// each value is a button that can be checked or unchecked

class MultiValueEditor : public QWidget
      {
      Q_OBJECT

   public:
      MultiValueEditor(const QStringList &values, QWidget *parent = nullptr);

      QStringList data() const;

   signals:
      void okClicked();

   private slots:
      void checkBoxClicked(QListWidgetItem *);
      void itemClicked(QListWidgetItem *);

   private:
      void setAllCheckBox();
      void updateStates();
      void connectCheckBoxes();
      void disconnectCheckBoxes();

      SizedListWidget *_listWidget;
      std::vector<Qt::CheckState> _states;
      };


class OperationsDelegate : public SeparatorDelegate
      {
      Q_OBJECT

   public:
      explicit OperationsDelegate(QWidget *appWindow, bool rightArrowAlign);

      void paint(QPainter *painter,
                 const QStyleOptionViewItem &option,
                 const QModelIndex &index) const;

      QWidget* createEditor(QWidget *parent,
                            const QStyleOptionViewItem &option,
                            const QModelIndex &index) const;

      void setEditorData(QWidget *editor, const QModelIndex &index) const;
      void setModelData(QWidget *editor, QAbstractItemModel *model,
                        const QModelIndex &index) const;

   private slots:
      void commitAndCloseEditor();

   private:
      void drawArrow(QPainter *painter,
                     const QStyleOptionViewItem &option,
                     const QModelIndex &index) const;

      QWidget *appWindow;
      const bool rightArrowAlign;
      };

} // namespace Ms


#endif // IMPORTMIDI_DELEGATE_H