Loading...
Searching...
No Matches
Preset.hpp
1#pragma once
2#include <Process/ProcessMetadata.hpp>
3
4#include <optional>
5#include <verdigris>
6namespace Process
7{
8class ProcessFactoryList;
9
11{
13 QString effect;
14 friend bool
15 operator==(const ProcessIdentifier& lhs, const ProcessIdentifier& rhs) noexcept
16 {
17 return lhs.key == rhs.key && lhs.effect == rhs.effect;
18 }
19 friend bool
20 operator!=(const ProcessIdentifier& lhs, const ProcessIdentifier& rhs) noexcept
21 {
22 return !(lhs == rhs);
23 }
24 friend bool
25 operator<(const ProcessIdentifier& lhs, const ProcessIdentifier& rhs) noexcept
26 {
27 return lhs.key < rhs.key || (lhs.key == rhs.key && lhs.effect < rhs.effect);
28 }
29};
30
31struct SCORE_LIB_PROCESS_EXPORT Preset
32{
33 QString name;
35 QByteArray data;
36
37 // Optional hierarchical category used to group presets into submenus.
38 // Empty means "root"; "Foo/Bar/Baz" nests the preset under Foo > Bar > Baz.
39 QString category;
40
41 static std::shared_ptr<Process::Preset>
42 fromJson(const Process::ProcessFactoryList& procs, const QByteArray& obj) noexcept;
43
44 QByteArray toJson() const noexcept;
45
46 friend bool operator==(const Preset& lhs, const Preset& rhs) noexcept
47 {
48 return lhs.name == rhs.name && lhs.key == rhs.key && lhs.data == rhs.data
49 && lhs.category == rhs.category;
50 }
51 friend bool operator!=(const Preset& lhs, const Preset& rhs) noexcept
52 {
53 return !(lhs == rhs);
54 }
55 friend bool operator<(const Preset& lhs, const Preset& rhs) noexcept
56 {
57 return lhs.key < rhs.key;
58 }
59};
60}
61
62Q_DECLARE_METATYPE(Process::Preset)
63W_REGISTER_ARGTYPE(Process::Preset)
64Q_DECLARE_METATYPE(std::optional<Process::Preset>)
65W_REGISTER_ARGTYPE(std::optional<Process::Preset>)
Definition ProcessList.hpp:10
Definition UuidKey.hpp:345
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Definition Preset.hpp:32
Definition Preset.hpp:11