Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
ScrollingTemplateStore.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
6#include "phosphorzones_export.h"
7
9
10#include <QHash>
11#include <QList>
12#include <QObject>
13#include <QString>
14#include <QUuid>
15
16namespace PhosphorZones {
17
36class PHOSPHORZONES_EXPORT ScrollingTemplateStore : public QObject
37{
38 Q_OBJECT
39
40public:
41 explicit ScrollingTemplateStore(QObject* parent = nullptr);
42
46 static QString templateSubdirectory();
47
52 static QString userTemplateDirectory();
53
57
59 QList<ScrollingTemplate> templates() const;
61 ScrollingTemplate templateById(const QUuid& id) const;
62 bool contains(const QUuid& id) const
63 {
64 return m_templates.contains(id);
65 }
66 int count() const
67 {
68 return m_templates.size();
69 }
70
80
93 bool removeTemplate(const QUuid& id);
94
98 QUuid duplicateTemplate(const QUuid& id, const QString& newName = QString());
99
100Q_SIGNALS:
103
104private:
105 QString userTemplateFilePath(const QUuid& id) const;
106 bool writeTemplateFile(const ScrollingTemplate& templ);
107
108 QHash<QUuid, ScrollingTemplate> m_templates;
109};
110
111} // namespace PhosphorZones
Load/save store for scrolling templates.
Definition ScrollingTemplateStore.h:37
QUuid duplicateTemplate(const QUuid &id, const QString &newName=QString())
Store a copy of id under a fresh UUID with newName (or a "name (Copy)" derivative when empty).
static QString templateSubdirectory()
The data-location subdirectory templates live in, relative to GenericDataLocation.
bool removeTemplate(const QUuid &id)
Delete the USER files for id.
QList< ScrollingTemplate > templates() const
All templates, name-sorted (case-insensitive) for stable UI order.
ScrollingTemplate templateById(const QUuid &id) const
The template with id, or an invalid template.
ScrollingTemplateStore(QObject *parent=nullptr)
QUuid saveTemplate(ScrollingTemplate templ)
Persist templ (create or update).
bool contains(const QUuid &id) const
Definition ScrollingTemplateStore.h:62
int count() const
Definition ScrollingTemplateStore.h:66
void loadTemplates()
Rescan every data location (system first, user last).
static QString userTemplateDirectory()
Absolute path of the USER template directory (GenericDataLocation + templateSubdirectory()).
void templatesChanged()
The loaded template set changed (load, save, remove, duplicate).
A scrolling screen's first-class sizing template.
Definition ScrollingTemplate.h:128
Definition IWindowTrackingService.h:23