Loading...
Searching...
No Matches
ProcessWidget.hpp
1#pragma once
2#include <Process/Preset.hpp>
3
4#include <Library/LibraryInterface.hpp>
5#include <Library/PresetListView.hpp>
6#include <Library/ProcessTreeView.hpp>
7
8#include <score/tools/std/Optional.hpp>
9
10#include <QLabel>
11#include <QSplitter>
12#include <QTreeView>
13
14#include <functional>
15
16#include <score_plugin_library_export.h>
17namespace score
18{
19struct GUIApplicationContext;
20}
21namespace Process
22{
23class ApplicationPlugin;
24}
25namespace Library
26{
27class ProcessesItemModel;
28class PresetItemModel;
29
31 : public QObject
33{
34 SCORE_CONCRETE("7fc3a366-7792-489f-aca9-79d9f6d4415d")
35
36public:
37 QSet<QString> acceptedFiles() const noexcept override;
38 QSet<QString> acceptedMimeTypes() const noexcept override;
39
41 override;
42
43 void addPath(std::string_view path) override;
44
45 bool onDrop(const QMimeData& mime, int row, int column, const QDir& parent) override;
46
47private:
48 Process::ApplicationPlugin* presetLib{};
49 const Process::ProcessFactoryList* processes{};
50};
51
52class SCORE_PLUGIN_LIBRARY_EXPORT ProcessWidget : public QWidget
53{
54public:
55 ProcessWidget(const score::GUIApplicationContext& ctx, QWidget* parent);
57
58 ProcessesItemModel& processModel() const noexcept { return *m_processModel; }
59 PresetItemModel& presetModel() const noexcept { return *m_presetModel; }
60
61 const ProcessTreeView& processView() const noexcept { return m_tv; }
62 ProcessTreeView& processView() noexcept { return m_tv; }
63
64 const PresetListView& presetView() const noexcept { return m_lv; }
65 PresetListView& presetView() noexcept { return m_lv; }
66
71 void setNotice(const QString& html, std::function<void()> onActivated = {});
72
73private:
74 ProcessesItemModel* m_processModel{};
75 PresetItemModel* m_presetModel{};
76 ProcessTreeView m_tv;
77 PresetListView m_lv;
78 QLabel m_notice;
79 std::function<void()> m_noticeAction;
80
81 QWidget m_preview;
82 QWidget* m_previewChild{};
84 std::function<void()> m_refreshPresetPreview;
85};
86}
Definition LibraryInterface.hpp:26
Definition PresetItemModel.hpp:21
Definition ProcessWidget.hpp:33
Definition PresetListView.hpp:13
Definition ProcessTreeView.hpp:14
Definition ProcessWidget.hpp:53
Definition ProcessesItemModel.hpp:38
Definition score-lib-process/Process/ApplicationPlugin.hpp:15
Definition ProcessList.hpp:10
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Base toolkit upon which the software is built.
Definition Application.cpp:83
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15