diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -14,7 +14,6 @@ # add_definitions( -DKDESRCDIR=${CMAKE_CURRENT_SOURCE_DIR} ) if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION) - set(PLASMA_NO_PACKAGEKIT TRUE) set(PLASMA_NO_PACKAGE_EXTRADATA TRUE) endif() diff --git a/src/plasma/CMakeLists.txt b/src/plasma/CMakeLists.txt --- a/src/plasma/CMakeLists.txt +++ b/src/plasma/CMakeLists.txt @@ -8,25 +8,15 @@ set(CMAKE_AUTOMOC_RELAXED_MODE ON) if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION) - set(PLASMA_NO_PACKAGEKIT TRUE) set(PLASMA_NO_PACKAGE_EXTRADATA TRUE) endif() -if(NOT HAVE_X11) - set(PLASMA_NO_PACKAGEKIT TRUE) -endif() - #find_package(KdepimLibs 4.5.60) #find_package(Gpgme) #set_package_properties(KDEPIMLIBS PROPERTIES DESCRIPTION "KDE PIM libraries" # URL "http://www.kde.org" TYPE OPTIONAL # PURPOSE "Needed for building several Plasma DataEngines") -if(NOT PLASMA_NO_PACKAGEKIT) - add_definitions(-DPLASMA_ENABLE_PACKAGEKIT_SUPPORT=1) - set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} Qt5::DBus) -endif() - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-plasma.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-plasma.h) #FIXME: gpgme++ is in kdepimlibs, must move somewhere else! @@ -41,7 +31,6 @@ plasma.cpp pluginloader.cpp version.cpp - private/componentinstaller.cpp #applets,containments,corona applet.cpp diff --git a/src/plasma/private/componentinstaller.cpp b/src/plasma/private/componentinstaller.cpp deleted file mode 100644 --- a/src/plasma/private/componentinstaller.cpp +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2011 Kevin Kofler - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#include "private/componentinstaller_p.h" - -#include -#include -#include -#include -#include -#include - -namespace Plasma -{ - -class ComponentInstallerPrivate -{ -public: -#ifdef PLASMA_ENABLE_PACKAGEKIT_SUPPORT - QSet alreadyPrompted; -#endif -}; - -class ComponentInstallerSingleton -{ -public: - ComponentInstaller self; -}; - -Q_GLOBAL_STATIC(ComponentInstallerSingleton, privateComponentInstallerSelf) - -ComponentInstaller *ComponentInstaller::self() -{ - return &privateComponentInstallerSelf()->self; -} - -ComponentInstaller::ComponentInstaller() - : d(new ComponentInstallerPrivate) -{ -} - -ComponentInstaller::~ComponentInstaller() -{ - delete d; -} - -void ComponentInstaller::installMissingComponent(const QString &type, - const QString &name, - QWidget *parent, bool force) -{ -#ifdef PLASMA_ENABLE_PACKAGEKIT_SUPPORT - QString searchString = type + QLatin1Char('-') + name; - - if (!force) { - if (d->alreadyPrompted.contains(searchString)) { - return; - } - } - - d->alreadyPrompted.insert(searchString); - - QDBusInterface packageKit(QStringLiteral("org.freedesktop.PackageKit"), - QStringLiteral("/org/freedesktop/PackageKit"), - QStringLiteral("org.freedesktop.PackageKit.Modify")); - // We don't check packageKit.isValid() because the service is activated on - // demand, so it will show up as "not valid". - WId wid = 0; - if (parent) { - wid = parent->winId(); - } - QStringList resources; - resources.append(searchString); - packageKit.asyncCall(QStringLiteral("InstallResources"), (unsigned int) wid, - QLatin1String("plasma-service"), resources, QString()); -#else - Q_UNUSED(type); - Q_UNUSED(name); - Q_UNUSED(parent); - Q_UNUSED(force); -#endif -} - -} // namespace Plasma diff --git a/src/plasma/private/componentinstaller_p.h b/src/plasma/private/componentinstaller_p.h deleted file mode 100644 --- a/src/plasma/private/componentinstaller_p.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2011 Kevin Kofler - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Library General Public License as - * published by the Free Software Foundation; either version 2, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details - * - * You should have received a copy of the GNU Library General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ - -#ifndef PLASMA_COMPONENTINSTALLER_H -#define PLASMA_COMPONENTINSTALLER_H - -class QString; -class QWidget; - -namespace Plasma -{ - -class ComponentInstallerPrivate; - -/** - * @class ComponentInstaller plasma/private/componentinstaller_p.h - * - * @short This class provides a generic API for installation of components. - * - * @internal - * - * Plasma::ComponentInstaller allows searching for a missing data or script - * engine by name, and allowing the user to install the missing service. - * Currently, PackageKit is supported as the mechanism to install components, - * but more mechanisms could be supported in the future through the same API. - * - * @since 4.8 - */ -class ComponentInstaller -{ -public: - /** - * Singleton pattern accessor. - */ - static ComponentInstaller *self(); - - /** - * Installs a missing component asynchronously. - * - * By default, this method will cache requested components and not - * prompt again for the same engine in the same session. The force - * parameter can be used to disable this mechanism, e.g. when the user - * just installed a new widget written in a scripting language, and so - * is likely to want the script engine installed after all. - * - * In the case of on-demand installation, this will unfortunately not - * allow the call which triggered the missing component lookup to - * succeed, but we cannot afford to block all of Plasma until the - * mechanism is done installing the service. - * - * This function does nothing if PackageKit integration was disabled at - * compile time. - * - * @param type the type of the component, should be "scriptengine" or - * "dataengine" - * @param name the name of the component - * @param parent a parent widget, used to set the wid for PackageKit - * @param force whether to always prompt, even if recently prompted - */ - void installMissingComponent(const QString &type, const QString &name, - QWidget *parent = nullptr, bool force = false); - -private: - /** - * Default constructor. The singleton method self() is the - * preferred access mechanism. - */ - ComponentInstaller(); - ~ComponentInstaller(); - - ComponentInstallerPrivate *const d; - - friend class ComponentInstallerSingleton; -}; - -} // namespace Plasma - -#endif // multiple inclusion guard diff --git a/src/plasma/private/dataenginemanager.cpp b/src/plasma/private/dataenginemanager.cpp --- a/src/plasma/private/dataenginemanager.cpp +++ b/src/plasma/private/dataenginemanager.cpp @@ -28,7 +28,6 @@ #include "datacontainer.h" #include "pluginloader.h" -#include "private/componentinstaller_p.h" #include "private/dataengine_p.h" #include "private/datacontainer_p.h" #include "scripting/scriptengine.h" @@ -134,9 +133,6 @@ DataEngine *engine = PluginLoader::self()->loadDataEngine(name); if (!engine) { qCDebug(LOG_PLASMA) << "Can't find a dataengine named" << name; - // Try installing the engine. However, it's too late for this request. - ComponentInstaller::self()->installMissingComponent(QStringLiteral("dataengine"), name); - return d->nullEngine(); } diff --git a/src/plasma/scripting/scriptengine.cpp b/src/plasma/scripting/scriptengine.cpp --- a/src/plasma/scripting/scriptengine.cpp +++ b/src/plasma/scripting/scriptengine.cpp @@ -25,7 +25,6 @@ #include "applet.h" #include "dataengine.h" #include "package.h" -#include "private/componentinstaller_p.h" #include "scripting/appletscript.h" #include "scripting/dataenginescript.h" #include "debug_p.h"