Akonadi

configdialog/main.cpp
1// SPDX-FileCopyrightText: 2025 Carl Schwan <carl@carlschwan.eu>
2// SPDX-License-Identifier: LGPL-2.0-or-later
3
4#include <Akonadi/AgentConfigurationDialog>
5#include <Akonadi/AgentInstance>
6#include <Akonadi/AgentManager>
7
8#include <KAboutData>
9#include <KLocalizedString>
10#include <KMessageBox>
11
12#include <QApplication>
13#include <QCommandLineParser>
14
15using namespace Qt::StringLiterals;
16using namespace std::chrono_literals;
17
18int main(int argc, char *argv[])
19{
20 QApplication app(argc, argv);
21 QCommandLineParser parser;
22 KAboutData about(u"akonadiagentconfigdialog"_s,
23 i18n("Configuration Dialog"),
24 u"1.0"_s,
25 i18n("Allows to configure an agent or resource"),
27 i18n("© 2025 Carl Schwan <carl@carlschwan.eu>"));
28 about.setupCommandLine(&parser);
29
30 parser.addPositionalArgument(u"identifier"_s, i18n("The agent identifier"));
31
32 parser.process(app);
33
34 const auto positionalArguments = parser.positionalArguments();
35 if (positionalArguments.isEmpty()) {
36 KMessageBox::error(nullptr, i18n("Required identifier argument missing."));
37 }
38 auto identifier = positionalArguments.at(0);
39 if (identifier.startsWith(u"akonadi:")) { // KIO::ApplicationLauncherJob uses Urls
40 identifier = identifier.mid(u"akonadi:"_s.size());
41 }
42
43 const auto manager = Akonadi::AgentManager::self();
44 const auto instance = manager->instance(identifier);
45
46 if (instance.isValid()) {
47 auto dlg = new Akonadi::AgentConfigurationDialog(instance);
48 dlg->setAttribute(Qt::WA_DeleteOnClose);
49 dlg->show();
50 } else {
51 KMessageBox::error(nullptr, i18n("No such agent found \"%1\"", identifier));
52 }
53
54 return app.exec();
55}
static AgentManager * self()
Returns the global instance of the agent manager.
QString i18n(const char *text, const TYPE &arg...)
void error(QWidget *parent, const QString &text, const QString &title, const KGuiItem &buttonOk, Options options=Notify)
void addPositionalArgument(const QString &name, const QString &description, const QString &syntax)
QStringList positionalArguments() const const
void process(const QCoreApplication &app)
const_reference at(qsizetype i) const const
WA_DeleteOnClose
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Mar 28 2025 11:53:21 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.