mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.5 KiB
69 lines
2.5 KiB
/* |
|
SPDX-FileCopyrightText: 2009 Ben Cooksley <[email protected]> |
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later |
|
*/ |
|
|
|
#include <QCommandLineParser> |
|
#include <QCoreApplication> |
|
|
|
#include <KAboutData> |
|
#include <KLocalizedString> |
|
|
|
#include <KConfigGroup> |
|
#include <KDesktopFile> |
|
|
|
#include "SolidActionData.h" |
|
|
|
int main(int argc, char *argv[]) |
|
{ |
|
QCoreApplication application(argc, argv); |
|
KLocalizedString::setApplicationDomain("kcm_solid_actions"); |
|
|
|
// About data |
|
KAboutData aboutData(QStringLiteral("solid-action-desktop-gen"), |
|
i18n("Solid Action Desktop File Generator"), |
|
QStringLiteral("0.4"), |
|
i18n("Tool to automatically generate Desktop Files from Solid DeviceInterface classes for translation"), |
|
KAboutLicense::GPL, |
|
i18n("(c) 2009, Ben Cooksley")); |
|
aboutData.addAuthor(i18n("Ben Cooksley"), i18n("Maintainer"), QStringLiteral("[email protected]")); |
|
KAboutData::setApplicationData(aboutData); |
|
|
|
QCommandLineParser parser; |
|
aboutData.setupCommandLine(&parser); |
|
parser.process(application); |
|
aboutData.processCommandLine(&parser); |
|
|
|
SolidActionData *availActions = SolidActionData::instance(); |
|
const auto interfaceTypes = availActions->interfaceTypeList(); |
|
for (Solid::DeviceInterface::Type internalType : interfaceTypes) { |
|
const QString typeName = Solid::DeviceInterface::typeToString(internalType); |
|
KDesktopFile typeFile(QStandardPaths::GenericDataLocation, "solid/devices/solid-device-" + typeName + ".desktop"); |
|
KConfigGroup tConfig = typeFile.desktopGroup(); |
|
|
|
tConfig.writeEntry("Name", "Solid Device"); |
|
tConfig.writeEntry("X-KDE-ServiceTypes", "SolidDevice"); |
|
tConfig.writeEntry("Type", "Service"); |
|
|
|
if (!tConfig.hasKey("X-KDE-Solid-Actions-Type")) { |
|
tConfig.writeEntry("X-KDE-Solid-Actions-Type", typeName); |
|
} |
|
|
|
const QStringList typeValues = availActions->propertyInternalList(internalType); |
|
const QString actionText = typeValues.join(QLatin1Char(';')).append(";"); |
|
tConfig.writeEntry("Actions", actionText); |
|
|
|
for (const QString &tValue : typeValues) { |
|
KConfigGroup vConfig = typeFile.actionGroup(tValue); |
|
if (!vConfig.hasKey("Name")) { |
|
vConfig.writeEntry("Name", availActions->propertyName(internalType, tValue)); |
|
} |
|
vConfig.sync(); |
|
} |
|
tConfig.sync(); |
|
typeFile.sync(); |
|
} |
|
|
|
return 0; |
|
}
|
|
|