/[svn]/qsampler/trunk/src/qsamplerInstrumentList.h
ViewVC logotype

Contents of /qsampler/trunk/src/qsamplerInstrumentList.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1499 - (show annotations) (download) (as text)
Tue Nov 20 16:48:04 2007 UTC (16 years, 4 months ago) by capela
File MIME type: text/x-c++hdr
File size: 3408 byte(s)
* Qt4 migration: one first step forward to kiss Qt3Support goodbye.

1 // qsamplerInstrumentList.h
2 //
3 /****************************************************************************
4 Copyright (C) 2003-2007, rncbc aka Rui Nuno Capela. All rights reserved.
5 Copyright (C) 2007, Christian Schoenebeck
6
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21 *****************************************************************************/
22
23 #ifndef __qsamplerInstrumentList_h
24 #define __qsamplerInstrumentList_h
25
26 #include <QListWidget>
27 #include <QItemDelegate>
28
29 #include <lscp/client.h>
30
31 #include "qsamplerInstrument.h"
32
33
34 //-------------------------------------------------------------------------
35 // MidiInstrumentsModel - data model for MIDI prog mappings (used for QTableView)
36 //
37
38 class MidiInstrumentsModel : public QAbstractTableModel {
39 Q_OBJECT
40 public:
41 MidiInstrumentsModel(QObject* parent = 0);
42
43 // overridden methods from subclass(es)
44 int rowCount(const QModelIndex &parent) const;
45 int columnCount(const QModelIndex &parent) const;
46 QVariant data(const QModelIndex &index, int role) const;
47 QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
48
49 // make the following method public
50 QAbstractTableModel::reset;
51
52 // own methods
53 qsamplerInstrument* addInstrument(int iMap = 0, int iBank = -1, int iProg = -1);
54 void removeInstrument(const qsamplerInstrument& instrument);
55 void resort(const qsamplerInstrument instrument);
56
57 // Map selector.
58 void setMidiMap(int iMidiMap);
59 int midiMap() const;
60
61 signals:
62 // Instrument map/session change signal.
63 void instrumentsChanged();
64
65 public slots:
66 // General reloader.
67 void refresh();
68
69 private:
70 typedef QMap<int, QList<qsamplerInstrument> > InstrumentsMap;
71
72 // Current map selection.
73 int m_iMidiMap;
74
75 InstrumentsMap instruments;
76 };
77
78
79 //-------------------------------------------------------------------------
80 // MidiInstrumentsDelegate - table cell renderer for MIDI prog mappings
81 // (doesn't actually do anything ATM, but is already there for a future
82 // cell editor widget implementation)
83
84 class MidiInstrumentsDelegate : public QItemDelegate {
85 Q_OBJECT
86 public:
87 MidiInstrumentsDelegate(QObject* parent = 0);
88
89 QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option,
90 const QModelIndex& index) const;
91
92 void setEditorData(QWidget* editor, const QModelIndex& index) const;
93 void setModelData(QWidget* editor, QAbstractItemModel* model,
94 const QModelIndex& index) const;
95
96 void updateEditorGeometry(QWidget* editor,
97 const QStyleOptionViewItem& option, const QModelIndex& index) const;
98 };
99
100
101 #endif // __qsamplerInstrumentList_h
102
103
104 // end of qsamplerInstrumentList.h

  ViewVC Help
Powered by ViewVC