Merge remote-tracking branch 'origin/KDE/4.8' into frameworks
Conflicts: CMakeLists.txt interfaces/terminal/example/CMakeLists.txt kdecore/CMakeLists.txt kdeui/actions/ktogglefullscreenaction.cpp kdeui/widgets/khelpmenu.cpp kio/kio/accessmanager.cpp kio/kio/accessmanagerreply_p.cpp nepomuk/core/nepomukmainmodel.cpp nepomuk/core/resourcedata.cpp nepomuk/core/resourcemanager.cpp nepomuk/query/andterm_p.h nepomuk/query/comparisonterm.cpp nepomuk/query/comparisonterm_p.h nepomuk/query/literalterm.cpp nepomuk/query/literalterm_p.h nepomuk/query/negationterm.cpp nepomuk/query/negationterm_p.h nepomuk/query/optionalterm.cpp nepomuk/query/optionalterm_p.h nepomuk/query/orterm.cpp nepomuk/query/orterm_p.h nepomuk/query/query.cpp nepomuk/query/resourceterm.cpp nepomuk/query/resourceterm_p.h nepomuk/query/resourcetypeterm.cpp nepomuk/query/resourcetypeterm_p.h nepomuk/query/term_p.h plasma/package.cpp plasma/private/service_p.h plasma/runnermanager.cpp staging/kwidgets/autotests/kiconloader_unittest.cpp tier1/kcoreaddons/src/caching/kshareddatacache.cpp tier1/kdbusaddons/src/kdbusinterprocesslock.cpp tier1/solid/src/solid/backends/fstab/fstabmanager.cpp tier1/solid/src/solid/backends/wmi/wmicdrom.cpp tier1/solid/src/solid/backends/wmi/wmidevice.cpp tier1/solid/src/solid/backends/wmi/wmimanager.cpp tier1/solid/src/solid/backends/wmi/wmiopticaldisc.cpp
This commit is contained in:
commit
9d49500245
@ -1365,6 +1365,10 @@ void Applet::showConfigurationInterface()
|
|||||||
KCModuleProxy *module = new KCModuleProxy(kcm);
|
KCModuleProxy *module = new KCModuleProxy(kcm);
|
||||||
if (module->realModule()) {
|
if (module->realModule()) {
|
||||||
connect(module, SIGNAL(changed(bool)), dialog, SLOT(settingsModified(bool)));
|
connect(module, SIGNAL(changed(bool)), dialog, SLOT(settingsModified(bool)));
|
||||||
|
connect(dialog, SIGNAL(okClicked()),
|
||||||
|
module->realModule(), SLOT(save()));
|
||||||
|
connect(dialog, SIGNAL(applyClicked()),
|
||||||
|
module->realModule(), SLOT(save()));
|
||||||
dialog->addPage(module, module->moduleInfo().moduleName(), module->moduleInfo().icon());
|
dialog->addPage(module, module->moduleInfo().moduleName(), module->moduleInfo().icon());
|
||||||
hasPages = true;
|
hasPages = true;
|
||||||
} else {
|
} else {
|
||||||
@ -1377,6 +1381,10 @@ void Applet::showConfigurationInterface()
|
|||||||
KCModule *module = service->createInstance<KCModule>(dialog, QVariantList(), &error);
|
KCModule *module = service->createInstance<KCModule>(dialog, QVariantList(), &error);
|
||||||
if (module) {
|
if (module) {
|
||||||
connect(module, SIGNAL(changed(bool)), dialog, SLOT(settingsModified(bool)));
|
connect(module, SIGNAL(changed(bool)), dialog, SLOT(settingsModified(bool)));
|
||||||
|
connect(dialog, SIGNAL(okClicked()),
|
||||||
|
module, SLOT(save()));
|
||||||
|
connect(dialog, SIGNAL(applyClicked()),
|
||||||
|
module, SLOT(save()));
|
||||||
dialog->addPage(module, service->name(), service->icon());
|
dialog->addPage(module, service->name(), service->icon());
|
||||||
hasPages = true;
|
hasPages = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -56,7 +56,7 @@ Comment[nn]=KRunner-tillegg
|
|||||||
Comment[pa]=ਕੇਰਨਰ ਪਲੱਗਇਨ
|
Comment[pa]=ਕੇਰਨਰ ਪਲੱਗਇਨ
|
||||||
Comment[pl]=Wtyczka KRunnera
|
Comment[pl]=Wtyczka KRunnera
|
||||||
Comment[pt]='Plugin' do KRunner
|
Comment[pt]='Plugin' do KRunner
|
||||||
Comment[pt_BR]=Plug-in do KRunner
|
Comment[pt_BR]=Plugin do KRunner
|
||||||
Comment[ro]=Modul KRunner
|
Comment[ro]=Modul KRunner
|
||||||
Comment[ru]=Расширение KRunner
|
Comment[ru]=Расширение KRunner
|
||||||
Comment[se]=KRunner-lassemodula
|
Comment[se]=KRunner-lassemodula
|
||||||
|
172
package.cpp
172
package.cpp
@ -35,18 +35,16 @@
|
|||||||
#include <kdesktopfile.h>
|
#include <kdesktopfile.h>
|
||||||
#include <kmimetype.h>
|
#include <kmimetype.h>
|
||||||
#include <kservicetypetrader.h>
|
#include <kservicetypetrader.h>
|
||||||
#include <ktar.h>
|
|
||||||
#include <kzip.h>
|
|
||||||
|
|
||||||
#include "config-plasma.h"
|
#include "config-plasma.h"
|
||||||
|
|
||||||
#ifndef PLASMA_NO_KIO
|
#include <kplugininfo.h>
|
||||||
#include <kio/copyjob.h>
|
#include <kstandarddirs.h>
|
||||||
#include <kio/deletejob.h>
|
#include <ktar.h>
|
||||||
#include <kio/jobclasses.h>
|
#include <ktempdir.h>
|
||||||
#include <kio/job.h>
|
#include <ktemporaryfile.h>
|
||||||
#include <qstandardpaths.h>
|
#include <kzip.h>
|
||||||
#endif
|
#include <kdebug.h>
|
||||||
|
|
||||||
#include "packagestructure.h"
|
#include "packagestructure.h"
|
||||||
#include "pluginloader.h"
|
#include "pluginloader.h"
|
||||||
@ -56,8 +54,6 @@
|
|||||||
namespace Plasma
|
namespace Plasma
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifdef PLASMA_NO_KIO // Provide some convenience for dealing with folders
|
|
||||||
|
|
||||||
bool copyFolder(QString sourcePath, QString targetPath)
|
bool copyFolder(QString sourcePath, QString targetPath)
|
||||||
{
|
{
|
||||||
QDir source(sourcePath);
|
QDir source(sourcePath);
|
||||||
@ -116,8 +112,6 @@ bool removeFolder(QString folderPath)
|
|||||||
return folder.rmdir(folderName);
|
return folder.rmdir(folderName);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // PLASMA_NO_KIO
|
|
||||||
|
|
||||||
Package::Package(PackageStructure *structure)
|
Package::Package(PackageStructure *structure)
|
||||||
: d(new PackagePrivate())
|
: d(new PackagePrivate())
|
||||||
{
|
{
|
||||||
@ -127,6 +121,26 @@ Package::Package(PackageStructure *structure)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Package::Package()
|
||||||
|
: d(new PackagePrivate(PackageStructure::Ptr(0), QString()))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Package::Package(const QString &packageRoot, const QString &package,
|
||||||
|
PackageStructure::Ptr structure)
|
||||||
|
: d(new PackagePrivate(structure, packageRoot + '/' + package))
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Package::Package(const QString &packagePath, PackageStructure::Ptr structure)
|
||||||
|
: d(new PackagePrivate(structure, packagePath))
|
||||||
|
{
|
||||||
|
d->structure = structure;
|
||||||
|
if (d->structure) {
|
||||||
|
d->structure.data()->initPackage(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Package::Package(const Package &other)
|
Package::Package(const Package &other)
|
||||||
: d(other.d)
|
: d(other.d)
|
||||||
{
|
{
|
||||||
@ -809,32 +823,20 @@ bool PackagePrivate::installPackage(const QString &package, const QString &packa
|
|||||||
|
|
||||||
if (archivedPackage) {
|
if (archivedPackage) {
|
||||||
// it's in a temp dir, so just move it over.
|
// it's in a temp dir, so just move it over.
|
||||||
#ifndef PLASMA_NO_KIO
|
|
||||||
KIO::CopyJob *job = KIO::move(KUrl(path), KUrl(targetName), KIO::HideProgressInfo);
|
|
||||||
const bool ok = job->exec();
|
|
||||||
const QString errorString = job->errorString();
|
|
||||||
#else
|
|
||||||
const bool ok = copyFolder(path, targetName);
|
const bool ok = copyFolder(path, targetName);
|
||||||
removeFolder(path);
|
removeFolder(path);
|
||||||
const QString errorString("unknown");
|
|
||||||
#endif
|
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
kWarning() << "Could not move package to destination:" << targetName << " : " << errorString;
|
kWarning() << "Could not move package to destination:" << targetName;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
kDebug() << "************************** 12";
|
||||||
// it's a directory containing the stuff, so copy the contents rather
|
// it's a directory containing the stuff, so copy the contents rather
|
||||||
// than move them
|
// than move them
|
||||||
#ifndef PLASMA_NO_KIO
|
|
||||||
KIO::CopyJob *job = KIO::copy(KUrl(path), KUrl(targetName), KIO::HideProgressInfo);
|
|
||||||
const bool ok = job->exec();
|
|
||||||
const QString errorString = job->errorString();
|
|
||||||
#else
|
|
||||||
const bool ok = copyFolder(path, targetName);
|
const bool ok = copyFolder(path, targetName);
|
||||||
const QString errorString("unknown");
|
kDebug() << "************************** 13";
|
||||||
#endif
|
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
kWarning() << "Could not copy package to destination:" << targetName << " : " << errorString;
|
kWarning() << "Could not copy package to destination:" << targetName;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -846,9 +848,12 @@ bool PackagePrivate::installPackage(const QString &package, const QString &packa
|
|||||||
|
|
||||||
if (!servicePrefix.isEmpty()) {
|
if (!servicePrefix.isEmpty()) {
|
||||||
// and now we register it as a service =)
|
// and now we register it as a service =)
|
||||||
|
kDebug() << "************************** 1";
|
||||||
QString metaPath = targetName + "/metadata.desktop";
|
QString metaPath = targetName + "/metadata.desktop";
|
||||||
|
kDebug() << "************************** 2";
|
||||||
KDesktopFile df(metaPath);
|
KDesktopFile df(metaPath);
|
||||||
KConfigGroup cg = df.desktopGroup();
|
KConfigGroup cg = df.desktopGroup();
|
||||||
|
kDebug() << "************************** 3";
|
||||||
|
|
||||||
// Q: should not installing it as a service disqualify it?
|
// Q: should not installing it as a service disqualify it?
|
||||||
// Q: i don't think so since KServiceTypeTrader may not be
|
// Q: i don't think so since KServiceTypeTrader may not be
|
||||||
@ -859,15 +864,19 @@ bool PackagePrivate::installPackage(const QString &package, const QString &packa
|
|||||||
|
|
||||||
const QString serviceName = servicePrefix + meta.pluginName() + ".desktop";
|
const QString serviceName = servicePrefix + meta.pluginName() + ".desktop";
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
QString service = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1String("/kde5/services/") + serviceName;
|
QString service = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + QLatin1String("/kde5/services/") + serviceName;
|
||||||
#ifndef PLASMA_NO_KIO
|
#ifndef PLASMA_NO_KIO
|
||||||
KIO::FileCopyJob *job = KIO::file_copy(QUrl::fromLocalFile(metaPath), QUrl::fromLocalFile(service), -1, KIO::HideProgressInfo);
|
KIO::FileCopyJob *job = KIO::file_copy(QUrl::fromLocalFile(metaPath), QUrl::fromLocalFile(service), -1, KIO::HideProgressInfo);
|
||||||
const bool ok = job->exec();
|
const bool ok = job->exec();
|
||||||
const QString errorString = job->errorString();
|
const QString errorString = job->errorString();
|
||||||
#else
|
#else
|
||||||
|
=======
|
||||||
|
QString service = KStandardDirs::locateLocal("services", serviceName + ".desktop");
|
||||||
|
kDebug() << "************************** 4";
|
||||||
|
>>>>>>> origin/KDE/4.8
|
||||||
const bool ok = QFile::copy(metaPath, service);
|
const bool ok = QFile::copy(metaPath, service);
|
||||||
const QString errorString("unknown");
|
kDebug() << "************************** 5";
|
||||||
#endif
|
|
||||||
if (ok) {
|
if (ok) {
|
||||||
// the icon in the installed file needs to point to the icon in the
|
// the icon in the installed file needs to point to the icon in the
|
||||||
// installation dir!
|
// installation dir!
|
||||||
@ -879,8 +888,9 @@ bool PackagePrivate::installPackage(const QString &package, const QString &packa
|
|||||||
cg.writeEntry("Icon", iconPath);
|
cg.writeEntry("Icon", iconPath);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
kWarning() << "Could not register package as service (this is not necessarily fatal):" << serviceName << " : " << errorString;
|
kWarning() << "Could not register package as service (this is not necessarily fatal):" << serviceName;
|
||||||
}
|
}
|
||||||
|
kDebug() << "************************** 7";
|
||||||
}
|
}
|
||||||
|
|
||||||
QDBusInterface sycoca("org.kde.kded5", "/kbuildsycoca");
|
QDBusInterface sycoca("org.kde.kded5", "/kbuildsycoca");
|
||||||
@ -919,14 +929,8 @@ bool PackagePrivate::uninstallPackage(const QString &packageName, const QString
|
|||||||
kWarning() << "Unable to remove " << service;
|
kWarning() << "Unable to remove " << service;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef PLASMA_NO_KIO
|
|
||||||
KIO::DeleteJob *job = KIO::del(KUrl(targetName));
|
|
||||||
ok = job->exec();
|
|
||||||
const QString errorString = job->errorString();
|
|
||||||
#else
|
|
||||||
ok = removeFolder(targetName);
|
ok = removeFolder(targetName);
|
||||||
const QString errorString("unknown");
|
const QString errorString("unknown");
|
||||||
#endif
|
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
kWarning() << "Could not delete package from:" << targetName << " : " << errorString;
|
kWarning() << "Could not delete package from:" << targetName << " : " << errorString;
|
||||||
return false;
|
return false;
|
||||||
@ -944,7 +948,99 @@ PackagePrivate::PackagePrivate()
|
|||||||
externalPaths(false),
|
externalPaths(false),
|
||||||
valid(false)
|
valid(false)
|
||||||
{
|
{
|
||||||
|
<<<<<<< HEAD
|
||||||
contentsPrefixPaths << "contents/";
|
contentsPrefixPaths << "contents/";
|
||||||
|
=======
|
||||||
|
QString serviceName("plasma-applet-" + data.pluginName());
|
||||||
|
QString service = KStandardDirs::locateLocal("services", serviceName + ".desktop");
|
||||||
|
|
||||||
|
if (data.pluginName().isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
data.write(service);
|
||||||
|
|
||||||
|
KDesktopFile config(service);
|
||||||
|
KConfigGroup cg = config.desktopGroup();
|
||||||
|
const QString type = data.type().isEmpty() ? "Service" : data.type();
|
||||||
|
cg.writeEntry("Type", type);
|
||||||
|
const QString serviceTypes = data.serviceType().isNull() ? "Plasma/Applet,Plasma/Containment" : data.serviceType();
|
||||||
|
cg.writeEntry("X-KDE-ServiceTypes", serviceTypes);
|
||||||
|
cg.writeEntry("X-KDE-PluginInfo-EnabledByDefault", true);
|
||||||
|
|
||||||
|
QFile icon(iconPath);
|
||||||
|
if (icon.exists()) {
|
||||||
|
//FIXME: the '/' search will break on non-UNIX. do we care?
|
||||||
|
QString installedIcon("plasma_applet_" + data.pluginName() +
|
||||||
|
iconPath.right(iconPath.length() - iconPath.lastIndexOf("/")));
|
||||||
|
cg.writeEntry("Icon", installedIcon);
|
||||||
|
installedIcon = KStandardDirs::locateLocal("icon", installedIcon);
|
||||||
|
QFile::copy(iconPath, installedIcon);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Package::createPackage(const PackageMetadata &metadata,
|
||||||
|
const QString &source,
|
||||||
|
const QString &destination,
|
||||||
|
const QString &icon) // static
|
||||||
|
{
|
||||||
|
Q_UNUSED(icon)
|
||||||
|
if (!metadata.isValid()) {
|
||||||
|
kWarning() << "Metadata file is not complete";
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// write metadata in a temporary file
|
||||||
|
KTemporaryFile metadataFile;
|
||||||
|
if (!metadataFile.open()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
metadata.write(metadataFile.fileName());
|
||||||
|
|
||||||
|
// put everything into a zip archive
|
||||||
|
KZip creation(destination);
|
||||||
|
creation.setCompression(KZip::NoCompression);
|
||||||
|
if (!creation.open(QIODevice::WriteOnly)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
creation.addLocalFile(metadataFile.fileName(), "metadata.desktop");
|
||||||
|
creation.addLocalDirectory(source, "contents");
|
||||||
|
creation.close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
PackagePrivate::PackagePrivate(const PackageStructure::Ptr st, const QString &p)
|
||||||
|
: structure(st),
|
||||||
|
service(0)
|
||||||
|
{
|
||||||
|
if (structure) {
|
||||||
|
if (p.isEmpty()) {
|
||||||
|
structure->setPath(structure->defaultPackageRoot());
|
||||||
|
} else {
|
||||||
|
structure->setPath(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
valid = structure && !structure->path().isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
PackagePrivate::PackagePrivate(const PackageStructure::Ptr st, const QString &packageRoot, const QString &path)
|
||||||
|
: structure(st),
|
||||||
|
service(0)
|
||||||
|
{
|
||||||
|
if (structure) {
|
||||||
|
if (packageRoot.isEmpty()) {
|
||||||
|
structure->setPath(structure->defaultPackageRoot()%"/"%path);
|
||||||
|
} else {
|
||||||
|
structure->setPath(packageRoot%"/"%path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
valid = structure && !structure->path().isEmpty();
|
||||||
|
>>>>>>> origin/KDE/4.8
|
||||||
}
|
}
|
||||||
|
|
||||||
PackagePrivate::PackagePrivate(const PackagePrivate &other)
|
PackagePrivate::PackagePrivate(const PackagePrivate &other)
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
#include "service.h"
|
#include "service.h"
|
||||||
|
|
||||||
#include <QGraphicsWidget>
|
#include <QGraphicsWidget>
|
||||||
#include <QHash>
|
#include <QMap>
|
||||||
#include <QMultiHash>
|
#include <QMultiHash>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QSet>
|
#include <QSet>
|
||||||
@ -114,7 +114,7 @@ public:
|
|||||||
DNSSD::PublicService *publicService;
|
DNSSD::PublicService *publicService;
|
||||||
ServiceProvider *serviceProvider;
|
ServiceProvider *serviceProvider;
|
||||||
QMultiHash<QWidget *, QString> associatedWidgets;
|
QMultiHash<QWidget *, QString> associatedWidgets;
|
||||||
QMultiHash<QGraphicsWidget *, QString> associatedGraphicsWidgets;
|
QMultiHash<QGraphicsObject *, QString> associatedGraphicsWidgets;
|
||||||
QSet<QString> disabledOperations;
|
QSet<QString> disabledOperations;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -293,6 +293,11 @@ bool QueryMatch::operator==(const QueryMatch &other) const
|
|||||||
return (d == other.d);
|
return (d == other.d);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool QueryMatch::operator!=(const QueryMatch &other) const
|
||||||
|
{
|
||||||
|
return (d != other.d);
|
||||||
|
}
|
||||||
|
|
||||||
void QueryMatch::run(const RunnerContext &context) const
|
void QueryMatch::run(const RunnerContext &context) const
|
||||||
{
|
{
|
||||||
//kDebug() << "we run the term" << context->query() << "whose type is" << context->mimetype();
|
//kDebug() << "we run the term" << context->query() << "whose type is" << context->mimetype();
|
||||||
|
@ -85,6 +85,7 @@ class PLASMA_EXPORT QueryMatch
|
|||||||
~QueryMatch();
|
~QueryMatch();
|
||||||
QueryMatch &operator=(const QueryMatch &other);
|
QueryMatch &operator=(const QueryMatch &other);
|
||||||
bool operator==(const QueryMatch &other) const;
|
bool operator==(const QueryMatch &other) const;
|
||||||
|
bool operator!=(const QueryMatch &other) const;
|
||||||
bool operator<(const QueryMatch &other) const;
|
bool operator<(const QueryMatch &other) const;
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,6 +254,11 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!singleRunnerWasLoaded) {
|
||||||
|
// in case we deleted it up above
|
||||||
|
clearSingleRunner();
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
kDebug() << "All runners loaded, total:" << runners.count();
|
kDebug() << "All runners loaded, total:" << runners.count();
|
||||||
#endif
|
#endif
|
||||||
@ -817,7 +822,9 @@ void RunnerManager::reset()
|
|||||||
qDeleteAll(d->oldSearchJobs);
|
qDeleteAll(d->oldSearchJobs);
|
||||||
d->oldSearchJobs.clear();
|
d->oldSearchJobs.clear();
|
||||||
} else {
|
} else {
|
||||||
Weaver::instance()->dequeue();
|
Q_FOREACH(FindMatchesJob *job, d->searchJobs) {
|
||||||
|
Weaver::instance()->dequeue(job);
|
||||||
|
}
|
||||||
d->oldSearchJobs += d->searchJobs;
|
d->oldSearchJobs += d->searchJobs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
21
service.cpp
21
service.cpp
@ -24,6 +24,7 @@
|
|||||||
#include "config-plasma.h"
|
#include "config-plasma.h"
|
||||||
|
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
#include <QGraphicsWidget>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
#include <kdebug.h>
|
#include <kdebug.h>
|
||||||
@ -77,7 +78,7 @@ void ServicePrivate::associatedWidgetDestroyed(QObject *obj)
|
|||||||
|
|
||||||
void ServicePrivate::associatedGraphicsWidgetDestroyed(QObject *obj)
|
void ServicePrivate::associatedGraphicsWidgetDestroyed(QObject *obj)
|
||||||
{
|
{
|
||||||
associatedGraphicsWidgets.remove(static_cast<QGraphicsWidget*>(obj));
|
associatedGraphicsWidgets.remove(static_cast<QGraphicsObject*>(obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ServicePrivate::publish(AnnouncementMethods methods, const QString &name, const KPluginInfo &metadata)
|
void ServicePrivate::publish(AnnouncementMethods methods, const QString &name, const KPluginInfo &metadata)
|
||||||
@ -276,12 +277,22 @@ void Service::disassociateWidget(QWidget *widget)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Service::associateWidget(QGraphicsWidget *widget, const QString &operation)
|
void Service::associateWidget(QGraphicsWidget *widget, const QString &operation)
|
||||||
|
{
|
||||||
|
associateItem(widget, operation);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Service::disassociateWidget(QGraphicsWidget *widget)
|
||||||
|
{
|
||||||
|
disassociateItem(widget);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Service::associateItem(QGraphicsObject *widget, const QString &operation)
|
||||||
{
|
{
|
||||||
if (!widget) {
|
if (!widget) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
disassociateWidget(widget);
|
disassociateItem(widget);
|
||||||
d->associatedGraphicsWidgets.insert(widget, operation);
|
d->associatedGraphicsWidgets.insert(widget, operation);
|
||||||
connect(widget, SIGNAL(destroyed(QObject*)),
|
connect(widget, SIGNAL(destroyed(QObject*)),
|
||||||
this, SLOT(associatedGraphicsWidgetDestroyed(QObject*)));
|
this, SLOT(associatedGraphicsWidgetDestroyed(QObject*)));
|
||||||
@ -289,7 +300,7 @@ void Service::associateWidget(QGraphicsWidget *widget, const QString &operation)
|
|||||||
widget->setEnabled(!d->disabledOperations.contains(operation));
|
widget->setEnabled(!d->disabledOperations.contains(operation));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Service::disassociateWidget(QGraphicsWidget *widget)
|
void Service::disassociateItem(QGraphicsObject *widget)
|
||||||
{
|
{
|
||||||
if (!widget) {
|
if (!widget) {
|
||||||
return;
|
return;
|
||||||
@ -344,7 +355,7 @@ void Service::setOperationEnabled(const QString &operation, bool enable)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QHashIterator<QGraphicsWidget *, QString> it(d->associatedGraphicsWidgets);
|
QHashIterator<QGraphicsObject *, QString> it(d->associatedGraphicsWidgets);
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
it.next();
|
it.next();
|
||||||
if (it.value() == operation) {
|
if (it.value() == operation) {
|
||||||
@ -381,7 +392,7 @@ void Service::setOperationsScheme(QIODevice *xml)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
QHashIterator<QGraphicsWidget *, QString> it(d->associatedGraphicsWidgets);
|
QHashIterator<QGraphicsObject *, QString> it(d->associatedGraphicsWidgets);
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
it.next();
|
it.next();
|
||||||
it.key()->setEnabled(d->config->hasGroup(it.value()));
|
it.key()->setEnabled(d->config->hasGroup(it.value()));
|
||||||
|
40
service.h
40
service.h
@ -29,7 +29,7 @@
|
|||||||
#include <plasma/plasma_export.h>
|
#include <plasma/plasma_export.h>
|
||||||
#include <plasma/plasma.h>
|
#include <plasma/plasma.h>
|
||||||
|
|
||||||
class QGraphicsWidget;
|
class QGraphicsObject;
|
||||||
class QIODevice;
|
class QIODevice;
|
||||||
class QWidget;
|
class QWidget;
|
||||||
class QUrl;
|
class QUrl;
|
||||||
@ -179,27 +179,41 @@ public:
|
|||||||
Q_INVOKABLE void disassociateWidget(QWidget *widget);
|
Q_INVOKABLE void disassociateWidget(QWidget *widget);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Assoicates a widget with an operation, which allows the service to
|
* This method only exists to maintain binary compatibility.
|
||||||
* automatically manage, for example, the enabled state of a widget.
|
|
||||||
*
|
*
|
||||||
* This will remove any previous associations the widget had with
|
* @see associateItem
|
||||||
* operations on this engine.
|
|
||||||
*
|
|
||||||
* @param widget the QGraphicsItem to associate with the service
|
|
||||||
* @param operation the operation to associate the widget with
|
|
||||||
*/
|
*/
|
||||||
Q_INVOKABLE void associateWidget(QGraphicsWidget *widget, const QString &operation);
|
Q_INVOKABLE void associateWidget(QGraphicsWidget *widget, const QString &operation);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Disassociates a widget if it has been associated with an operation
|
* This method only exists to maintain binary compatibility.
|
||||||
* on this service.
|
|
||||||
*
|
*
|
||||||
* This will not change the enabled state of the widget.
|
* @see disassociateItem
|
||||||
*
|
|
||||||
* @param widget the QGraphicsWidget to disassociate.
|
|
||||||
*/
|
*/
|
||||||
Q_INVOKABLE void disassociateWidget(QGraphicsWidget *widget);
|
Q_INVOKABLE void disassociateWidget(QGraphicsWidget *widget);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Associates a graphics item with an operation, which allows the service to
|
||||||
|
* automatically manage, for example, the enabled state of the item.
|
||||||
|
*
|
||||||
|
* This will remove any previous associations the item had with
|
||||||
|
* operations on this engine.
|
||||||
|
*
|
||||||
|
* @param item the QGraphicsObject to associate with the service
|
||||||
|
* @param operation the operation to associate the item with
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE void associateItem(QGraphicsObject *item, const QString &operation);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disassociates a graphics item if it has been associated with an operation
|
||||||
|
* on this service.
|
||||||
|
*
|
||||||
|
* This will not change the enabled state of the item.
|
||||||
|
*
|
||||||
|
* @param widget the QGraphicsItem to disassociate.
|
||||||
|
*/
|
||||||
|
Q_INVOKABLE void disassociateItem(QGraphicsObject *widget);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return a parameter map for the given description
|
* @return a parameter map for the given description
|
||||||
* @param description the configuration values to turn into the parameter map
|
* @param description the configuration values to turn into the parameter map
|
||||||
|
@ -100,7 +100,7 @@ Comment[nl]=Een dummy plugin voor testen
|
|||||||
Comment[pa]=ਟੈਸਟ ਕਰਨ ਲਈ ਫਰਜ਼ੀ ਪਲੱਗਇਨ
|
Comment[pa]=ਟੈਸਟ ਕਰਨ ਲਈ ਫਰਜ਼ੀ ਪਲੱਗਇਨ
|
||||||
Comment[pl]=Prosta wtyczka testowa
|
Comment[pl]=Prosta wtyczka testowa
|
||||||
Comment[pt]=Um 'plugin' de exemplo para testes
|
Comment[pt]=Um 'plugin' de exemplo para testes
|
||||||
Comment[pt_BR]=Um plug-in fictício para testes
|
Comment[pt_BR]=Um plugin fictício para testes
|
||||||
Comment[ro]=Modul fictiv pentru testare
|
Comment[ro]=Modul fictiv pentru testare
|
||||||
Comment[ru]=Расширение для тестирования
|
Comment[ru]=Расширение для тестирования
|
||||||
Comment[se]=Geahččalanlassemodula
|
Comment[se]=Geahččalanlassemodula
|
||||||
|
Loading…
Reference in New Issue
Block a user