Hi,
I've made this patch with some directions from aseigo.
I wanted some kind of autorun settings for specific devices dependant on the
media of optical drives; so i made a patch to recognize X-KDE-Autorun in
.desktop file action entries.
this patch was for 4.5.90 and it builds. couldn't test it's functionality.
it can be tested by adding X-KDE-Autorun=true in a solid/actions/*.desktop file
(in the "open" action eg)
Index: SOURCES/kdebase-workspace-4.5.90-add-autorun-ability.patch
===================================================================
--- SOURCES/kdebase-workspace-4.5.90-add-autorun-ability.patch (revision 0)
+++ SOURCES/kdebase-workspace-4.5.90-add-autorun-ability.patch (revision 0)
@@ -0,0 +1,57 @@
+diff -ru kdebase-workspace-4.5.90_old//plasma/generic/applets/devicenotifier/devicenotifier.cpp kdebase-workspace-4.5.90_new//plasma/generic/applets/devicenotifier/devicenotifier.cpp
+--- kdebase-workspace-4.5.90_old//plasma/generic/applets/devicenotifier/devicenotifier.cpp 2010-12-22 10:55:28.000000000 +0100
++++ kdebase-workspace-4.5.90_new//plasma/generic/applets/devicenotifier/devicenotifier.cpp 2011-01-05 01:55:16.275644602 +0100
+@@ -22,6 +22,8 @@
+ #include "devicenotifier.h"
+
+ //Qt
++#include <QDBusInterface>
++#include <QDBusReply>
+ #include <QGraphicsSceneContextMenuEvent>
+
+ //KDE
+@@ -32,6 +34,8 @@
+ #include <KCModuleProxy>
+ #include <KCModuleInfo>
+ #include <kdesktopfileactions.h>
++#include <KDesktopFile>
++#include <KConfigGroup>
+
+ //Plasma
+ #include <Plasma/ToolTipManager>
+@@ -74,11 +78,20 @@
+ QString lastActionLabel;
+ QStringList currentActions = m_dialog->deviceActions(udi);
+ QStringList newActions = data["predicateFiles"].toStringList();
++ QStringList autorunActions;
+
+ foreach (const QString &desktop, newActions) {
+ QString filePath = KStandardDirs::locate("data", "solid/actions/" + desktop);
++ const KDesktopFile cfg( filePath );
+ QList<KServiceAction> services = KDesktopFileActions::userDefinedServices(filePath, true);
+ numActions += services.size();
++ foreach (const KServiceAction &action, services) {
++ // check which option has autorun
++ const KConfigGroup cg = cfg.actionGroup(action.name());
++ if (cg.readEntry("X-KDE-Autorun", false) && !autorunActions.contains(desktop)) {
++ autorunActions.append(desktop);
++ }
++ }
+
+ if (!currentActions.contains(desktop)) {
+ m_dialog->insertAction(udi, desktop);
+@@ -89,6 +102,14 @@
+ }
+ }
+
++ if (!autorunActions.isEmpty()) {
++ //KDesktopFileActions::executeService(KUrl::List(), autorunActions.first());
++ kDebug() << "DeviceNotifier:: call Solid Ui Server with params :" << udi << "," << autorunActions;
++ QDBusInterface soliduiserver("org.kde.kded", "/modules/soliduiserver", "org.kde.SolidUiServer");
++ QDBusReply<void> reply = soliduiserver.call("showActionsDialog", udi, autorunActions);
++ return;
++ }
++
+ foreach (const QString &action, currentActions) {
+ if (!newActions.contains(action)) {
+ m_dialog->removeAction(udi, action);
Index: SPECS/kdebase4-workspace.spec
===================================================================
--- SPECS/kdebase4-workspace.spec (revision 628654)
+++ SPECS/kdebase4-workspace.spec (working copy)
@@ -17,7 +17,7 @@
%if %branch
Release: %mkrel -c %kde_snapshot 1
%else
-Release: %mkrel 5
+Release: %mkrel 6
%endif
Epoch: 2
Group: Graphical desktop/KDE
@@ -42,6 +42,7 @@
Patch25: kdebase-workspace-4.4.0-kdm-fix-defaults.patch
Patch26: kdebase-workspace-4.4.0-simpleapplet-mandriva-defaults.patch
Patch31: kdebase-workspace-4.3.98-plasma-konsole.patch
+Patch32: kdebase-workspace-4.5.90-add-autorun-ability.patch
# Backports
# Trunk
# Testing
@@ -1527,6 +1528,7 @@
%patch13 -p0 -b .startup-sound
%patch19 -p0
%patch26 -p0
+%patch32 -p1
%build
%cmake_kde4 -DKDE4_XDMCP:BOOL=ON
_______________________________________________
Plasma-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/plasma-devel