Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
CurveLoader.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 fuddlesworth
2// SPDX-License-Identifier: LGPL-2.1-or-later
3
4#pragma once
5
7#include <PhosphorAnimation/phosphoranimation_export.h>
8
12
13#include <QtCore/QHash>
14#include <QtCore/QObject>
15#include <QtCore/QString>
16#include <QtCore/QStringList>
17
18#include <memory>
19
20namespace PhosphorAnimation {
21
22class CurveRegistry;
23
25
29class PHOSPHORANIMATION_EXPORT CurveLoader : public QObject
30{
31 Q_OBJECT
32
33public:
34 explicit CurveLoader(CurveRegistry& registry, QObject* parent = nullptr);
35 ~CurveLoader() override;
36
38 int loadFromDirectory(const QString& directory, LiveReload liveReload = LiveReload::Off);
39
42 const QStringList& directories, LiveReload liveReload = LiveReload::Off,
44
46 int loadLibraryBuiltins(LiveReload liveReload = LiveReload::Off);
47
49 int registeredCount() const;
50 QString ownerTag() const;
51
52 struct Entry
53 {
54 QString name;
55 QString displayName;
56 QString sourcePath;
58 };
59 QList<Entry> entries() const;
60
61Q_SIGNALS:
63
64private:
65 class Sink;
66 std::unique_ptr<Sink> m_sink;
67 std::unique_ptr<PhosphorFsLoader::DirectoryLoader> m_loader;
68};
69
70} // namespace PhosphorAnimation
Scans JSON curve-definition files and registers them with CurveRegistry.
Definition CurveLoader.h:30
CurveLoader(CurveRegistry &registry, QObject *parent=nullptr)
int loadFromDirectory(const QString &directory, LiveReload liveReload=LiveReload::Off)
Scan directory for *.json curve definitions and register each.
QList< Entry > entries() const
int loadFromDirectories(const QStringList &directories, LiveReload liveReload=LiveReload::Off, PhosphorFsLoader::RegistrationOrder order=PhosphorFsLoader::RegistrationOrder::LowestPriorityFirst)
Scan multiple directories in caller-declared priority order.
int loadLibraryBuiltins(LiveReload liveReload=LiveReload::Off)
Load curves bundled at the library's install-prefix data directory.
String-id <-> curve factory registry.
Definition CurveRegistry.h:22
Definition AnimatedValue.h:31
RegistrationOrder
Caller's declared priority direction for registerDirectories / setDirectories input.
Definition WatchedDirectorySet.h:58
@ LowestPriorityFirst
[sys-lowest, ..., sys-highest, user] — the canonical strategy view.
LiveReload
Opt-in policy for directory watching.
Definition WatchedDirectorySet.h:34
Definition CurveLoader.h:53
QString sourcePath
Definition CurveLoader.h:56
QString name
Definition CurveLoader.h:54
QString systemSourcePath
Non-empty when this copy shadows a system entry.
Definition CurveLoader.h:57
QString displayName
Definition CurveLoader.h:55