Loading...
Searching...
No Matches
PresetItemModel.hpp
1#pragma once
2#include <Process/Preset.hpp>
3
4#include <QAbstractItemModel>
5#include <QSortFilterProxyModel>
6
7namespace score
8{
9struct GUIApplicationContext;
10}
11
12namespace Process
13{
14class ApplicationPlugin;
15}
16
17namespace Library
18{
19class PresetFilterProxy;
20class PresetItemModel final : public QAbstractItemModel
21{
22public:
23 PresetItemModel(const score::GUIApplicationContext& ctx, QObject* parent);
24
25 std::vector<Process::Preset>& presets;
26
27 bool savePreset(const Process::ProcessModel& proc);
28
29private:
30 QModelIndex index(int row, int column, const QModelIndex& parent) const override;
31
32 QModelIndex parent(const QModelIndex& child) const override;
33 int rowCount(const QModelIndex& parent) const override;
34 int columnCount(const QModelIndex& parent) const override;
35 QVariant data(const QModelIndex& index, int role) const override;
36
37 bool setData(const QModelIndex& index, const QVariant& value, int role) override;
38
39 bool dropMimeData(
40 const QMimeData* data, Qt::DropAction act, int row, int col,
41 const QModelIndex& parent) override;
42 bool canDropMimeData(
43 const QMimeData* data, Qt::DropAction act, int row, int col,
44 const QModelIndex& parent) const override;
45
46 QMimeData* mimeData(const QModelIndexList& indexes) const override;
47 Qt::DropActions supportedDragActions() const override;
48 Qt::DropActions supportedDropActions() const override;
49 Qt::ItemFlags flags(const QModelIndex& index) const override;
50
52
53 friend class PresetFilterProxy;
54};
55
56class PresetFilterProxy final : public QSortFilterProxyModel
57{
58public:
59 using QSortFilterProxyModel::invalidate;
60 using QSortFilterProxyModel::QSortFilterProxyModel;
61
62 Process::ProcessIdentifier currentFilter{};
63
64private:
65 bool filterAcceptsRow(int srcRow, const QModelIndex& srcParent) const override;
66};
67}
Definition PresetItemModel.hpp:57
Definition PresetItemModel.hpp:21
Definition score-lib-process/Process/ApplicationPlugin.hpp:15
The Process class.
Definition score-lib-process/Process/Process.hpp:75
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Base toolkit upon which the software is built.
Definition Application.cpp:117
Definition Preset.hpp:11
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15