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 void addPath(std::string_view path) override
38 {
39 QFileInfo file{QString::fromUtf8(path.data(), path.length())};
41 pdata.prettyName = file.completeBaseName();
43 pdata.customData = [&] { return file.absoluteFilePath(); }();
44
45 categories.add(file, std::move(pdata));
46 }
47};
48
50{
51 SCORE_CONCRETE("3c4379ce-a5b9-456f-b1d6-09f3f02cc67e")
52
53 QSet<QString> fileExtensions() const noexcept override { return {"pd"}; }
54
55 void dropPath(
56 std::vector<ProcessDrop>& vec, const score::FilePath& filename,
57 const score::DocumentContext& ctx) const noexcept override
58 {
61 p.creation.prettyName = filename.basename;
62 p.creation.customData = filename.relative;
63
64 vec.push_back(std::move(p));
65 }
66};
67
68}
Definition LibraryInterface.hpp:22
Definition ProcessesItemModel.hpp:43
Definition PdLibrary.hpp:50
Definition PdLibrary.hpp:17
Definition ProcessDropHandler.hpp:25
Definition ProcessesItemModel.hpp:32
Definition ProcessesItemModel.hpp:84
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