Loading...
Searching...
No Matches
PdLibrary.hpp
1#pragma once
2#include <Process/Drop/ProcessDropHandler.hpp>
3
4#include <Library/LibraryInterface.hpp>
5#include <Library/LibrarySettings.hpp>
6#include <Library/ProcessesItemModel.hpp>
7#include <Pd/PdProcess.hpp>
8
9#include <QFileInfo>
10#include <QTimer>
11
12namespace Pd
13{
14class LibraryHandler final
15 : public QObject
17{
18 SCORE_CONCRETE("01ffc109-9cb3-4c5a-9cdd-d9fd38fe5e17")
19
20 QSet<QString> acceptedFiles() const noexcept override { return {"pd"}; }
21
22 Library::Subcategories categories;
23
25 override
26 {
27 // TODO relaunch whenever library path changes...
29 QModelIndex node = model.find(key);
30 if(node == QModelIndex{})
31 return;
32
33 categories.init(
34 Metadata<PrettyName_k, Pd::ProcessModel>::get().toStdString(), node, ctx);
35 }
36
37 std::function<void()> asyncAddPath(std::string_view path) override
38 {
39 score::PathInfo file{path};
41 pdata.prettyName
42 = QString::fromUtf8(file.completeBaseName.data(), file.completeBaseName.size());
44 pdata.customData
45 = QString::fromUtf8(file.absoluteFilePath.data(), file.absoluteFilePath.size());
46
47 return [this, p = std::string(path), pdata = std::move(pdata)]() mutable {
48 score::PathInfo file{p};
49 categories.add(file, std::move(pdata));
50 };
51 }
52};
53
55{
56 SCORE_CONCRETE("3c4379ce-a5b9-456f-b1d6-09f3f02cc67e")
57
58 QSet<QString> fileExtensions() const noexcept override { return {"pd"}; }
59
60 void dropPath(
61 std::vector<ProcessDrop>& vec, const score::FilePath& filename,
62 const score::DocumentContext& ctx) const noexcept override
63 {
66 p.creation.prettyName = filename.basename;
67 p.creation.customData = filename.relative;
68
69 vec.push_back(std::move(p));
70 }
71};
72
73}
Definition LibraryInterface.hpp:24
Definition ProcessesItemModel.hpp:44
Definition PdLibrary.hpp:55
Definition PdLibrary.hpp:17
Definition ProcessDropHandler.hpp:25
Definition ProcessesItemModel.hpp:33
Definition ProcessesItemModel.hpp:85
Static metadata implementation.
Definition lib/score/tools/Metadata.hpp:36
Definition ProcessDropHandler.hpp:29
Definition DocumentContext.hpp:18
Definition FilePath.hpp:25
Specializes ApplicationContext with the QMainWindow.
Definition GUIApplicationContext.hpp:15
Definition lib/score/tools/File.hpp:20