wiRedPanda
Logic Circuit Simulator
Loading...
Searching...
No Matches
ExerciseTourResources.h
Go to the documentation of this file.
1// Copyright 2015 - 2026, GIBIS-UNIFESP and the wiRedPanda contributors
2// SPDX-License-Identifier: GPL-3.0-or-later
3
7
8#pragma once
9
10#include <QString>
11#include <QStringList>
12#include <QVector>
13
20 QString path;
21 QString id;
22 QString title;
23 QString description;
24};
25
50{
51public:
53
60 static QVector<ExerciseTourResourceEntry> scan(const QString &directory);
61
70 static QVector<ExerciseTourResourceEntry> discover(const QString &category);
71
76 static QString managedContentDir(const QString &category);
77
86 static QString preferredContentDir(const QString &category);
87
92 static QVector<ExerciseTourResourceEntry> mergeUnique(QVector<ExerciseTourResourceEntry> base,
93 const QVector<ExerciseTourResourceEntry> &additional);
94
100 static QString translate(const QString &key, const QString &fallbackEnglish);
101
105 static QString translateFromCatalog(const QString &catalogPath, const QString &key,
106 const QString &fallbackEnglish);
107
115 static QString resolveWritableDir(const QStringList &candidates, const QString &documentsFallback);
116
117private:
119 static QString documentsFallbackDir(const QString &category);
120};
static QVector< ExerciseTourResourceEntry > discover(const QString &category)
static QVector< ExerciseTourResourceEntry > mergeUnique(QVector< ExerciseTourResourceEntry > base, const QVector< ExerciseTourResourceEntry > &additional)
static QString preferredContentDir(const QString &category)
ExerciseTourResources()=delete
static QVector< ExerciseTourResourceEntry > scan(const QString &directory)
static QString translateFromCatalog(const QString &catalogPath, const QString &key, const QString &fallbackEnglish)
static QString managedContentDir(const QString &category)
static QString resolveWritableDir(const QStringList &candidates, const QString &documentsFallback)
static QString translate(const QString &key, const QString &fallbackEnglish)
QString description
JSON root "description" field; "" if absent.
QString id
JSON root "id" field.
QString path
":/Exercises/x.json" (built-in) or a real filesystem path.
QString title
JSON root "title" field (raw, English-source).