1/*
2 SPDX-FileCopyrightText: 2009 Aaron Seigo <aseigo@kde.org>
3 SPDX-FileCopyrightText: 2023 Alexander Lohnau <alexander.lohnau@gmx.de>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7
8#include "runnersyntax.h"
9
10#include <KLocalizedString>
11
12namespace KRunner
13{
14class RunnerSyntaxPrivate
15{
16public:
17 RunnerSyntaxPrivate(const QStringList &_exampleQueries, const QString &_description)
18 : exampleQueries(prepareExampleQueries(queries: _exampleQueries))
19 , description(_description)
20 {
21 }
22
23 static QStringList prepareExampleQueries(const QStringList &queries)
24 {
25 Q_ASSERT_X(!queries.isEmpty(), "KRunner::RunnerSyntax", "List of example queries must not be empty");
26 QStringList exampleQueries;
27 for (const QString &query : queries) {
28 Q_ASSERT_X(!query.isEmpty(), "KRunner::RunnerSyntax", "Example query must not be empty!");
29 const static QString termDescription = i18n(text: "search term");
30 const QString termDesc(QLatin1Char('<') + termDescription + QLatin1Char('>'));
31 exampleQueries.append(t: QString(query).replace(before: QLatin1String(":q:"), after: termDesc));
32 }
33 return exampleQueries;
34 }
35
36 const QStringList exampleQueries;
37 const QString description;
38};
39
40RunnerSyntax::RunnerSyntax(const QStringList &exampleQueries, const QString &description)
41 : d(new RunnerSyntaxPrivate(exampleQueries, description))
42{
43 Q_ASSERT_X(!exampleQueries.isEmpty(), "KRunner::RunnerSyntax", "Example queries must not be empty");
44}
45
46RunnerSyntax::RunnerSyntax(const RunnerSyntax &other)
47 : d(new RunnerSyntaxPrivate(*other.d))
48{
49}
50
51RunnerSyntax::~RunnerSyntax() = default;
52
53RunnerSyntax &RunnerSyntax::operator=(const RunnerSyntax &rhs)
54{
55 d.reset(p: new RunnerSyntaxPrivate(*rhs.d));
56 return *this;
57}
58
59QStringList RunnerSyntax::exampleQueries() const
60{
61 return d->exampleQueries;
62}
63
64QString RunnerSyntax::description() const
65{
66 return d->description;
67}
68
69} // KRunner namespace
70

source code of krunner/src/runnersyntax.cpp