1 /* 2 SPDX-FileCopyrightText: 2007-2009 Aaron Seigo <aseigo@kde.org> 3 4 SPDX-License-Identifier: LGPL-2.0-or-later 5 */ 6 7 #include "plasma.h" 8 9 #include "config-plasma.h" 10 #include <KLocalizedString> 11 #include <kpackage/package.h> 12 #include <kpackage/packagestructure.h> 13 14 class ThemePackage : public KPackage::PackageStructure 15 { 16 Q_OBJECT 17 public: ThemePackage(QObject * parent=nullptr,const QVariantList & args=QVariantList ())18 ThemePackage(QObject *parent = nullptr, const QVariantList &args = QVariantList()) 19 : KPackage::PackageStructure(parent, args) 20 { 21 } 22 initPackage(KPackage::Package * package)23 void initPackage(KPackage::Package *package) override 24 { 25 // by default the packages have "contents/" as contentsPrefixPaths 26 // but for the themes we don't want that, so unset it. 27 package->setContentsPrefixPaths(QStringList()); 28 package->setDefaultPackageRoot(QStringLiteral(PLASMA_RELATIVE_DATA_INSTALL_DIR "/desktoptheme/")); 29 30 package->addDirectoryDefinition("dialogs", QStringLiteral("dialogs/"), i18n("Images for dialogs")); 31 package->addFileDefinition("dialogs/background", QStringLiteral("dialogs/background.svg"), i18n("Generic dialog background")); 32 package->addFileDefinition("dialogs/background", QStringLiteral("dialogs/background.svgz"), i18n("Generic dialog background")); 33 package->addFileDefinition("dialogs/shutdowndialog", QStringLiteral("dialogs/shutdowndialog.svg"), i18n("Theme for the logout dialog")); 34 package->addFileDefinition("dialogs/shutdowndialog", QStringLiteral("dialogs/shutdowndialog.svgz"), i18n("Theme for the logout dialog")); 35 36 package->addDirectoryDefinition("wallpapers", QStringLiteral("wallpapers/"), i18n("Wallpaper packages")); 37 38 package->addDirectoryDefinition("widgets", QStringLiteral("widgets/"), i18n("Images for widgets")); 39 package->addFileDefinition("widgets/background", QStringLiteral("widgets/background.svg"), i18n("Background image for widgets")); 40 package->addFileDefinition("widgets/background", QStringLiteral("widgets/background.svgz"), i18n("Background image for widgets")); 41 package->addFileDefinition("widgets/clock", QStringLiteral("widgets/clock.svg"), i18n("Analog clock face")); 42 package->addFileDefinition("widgets/clock", QStringLiteral("widgets/clock.svgz"), i18n("Analog clock face")); 43 package->addFileDefinition("widgets/panel-background", QStringLiteral("widgets/panel-background.svg"), i18n("Background image for panels")); 44 package->addFileDefinition("widgets/panel-background", QStringLiteral("widgets/panel-background.svgz"), i18n("Background image for panels")); 45 package->addFileDefinition("widgets/plot-background", QStringLiteral("widgets/plot-background.svg"), i18n("Background for graphing widgets")); 46 package->addFileDefinition("widgets/plot-background", QStringLiteral("widgets/plot-background.svgz"), i18n("Background for graphing widgets")); 47 package->addFileDefinition("widgets/tooltip", QStringLiteral("widgets/tooltip.svg"), i18n("Background image for tooltips")); 48 package->addFileDefinition("widgets/tooltip", QStringLiteral("widgets/tooltip.svgz"), i18n("Background image for tooltips")); 49 50 package->addDirectoryDefinition("opaque/dialogs", QStringLiteral("opaque/dialogs/"), i18n("Opaque images for dialogs")); 51 package->addFileDefinition("opaque/dialogs/background", QStringLiteral("opaque/dialogs/background.svg"), i18n("Opaque generic dialog background")); 52 package->addFileDefinition("opaque/dialogs/background", QStringLiteral("opaque/dialogs/background.svgz"), i18n("Opaque generic dialog background")); 53 package->addFileDefinition("opaque/dialogs/shutdowndialog", 54 QStringLiteral("opaque/dialogs/shutdowndialog.svg"), 55 i18n("Opaque theme for the logout dialog")); 56 package->addFileDefinition("opaque/dialogs/shutdowndialog", 57 QStringLiteral("opaque/dialogs/shutdowndialog.svgz"), 58 i18n("Opaque theme for the logout dialog")); 59 60 package->addDirectoryDefinition("opaque/widgets", QStringLiteral("opaque/widgets/"), i18n("Opaque images for widgets")); 61 package->addFileDefinition("opaque/widgets/panel-background", 62 QStringLiteral("opaque/widgets/panel-background.svg"), 63 i18n("Opaque background image for panels")); 64 package->addFileDefinition("opaque/widgets/panel-background", 65 QStringLiteral("opaque/widgets/panel-background.svgz"), 66 i18n("Opaque background image for panels")); 67 package->addFileDefinition("opaque/widgets/tooltip", QStringLiteral("opaque/widgets/tooltip.svg"), i18n("Opaque background image for tooltips")); 68 package->addFileDefinition("opaque/widgets/tooltip", QStringLiteral("opaque/widgets/tooltip.svgz"), i18n("Opaque background image for tooltips")); 69 70 package->addFileDefinition("colors", QStringLiteral("colors"), i18n("KColorScheme configuration file")); 71 72 QStringList mimetypes; 73 mimetypes << QStringLiteral("image/svg+xml"); 74 package->setDefaultMimeTypes(mimetypes); 75 } 76 }; 77 78 K_PLUGIN_CLASS_WITH_JSON(ThemePackage, "plasma_theme_packagestructure.json") 79 80 #include "plasma_theme_packagestructure.moc" 81