davidedmundson created this revision. Restricted Application added projects: Plasma, Frameworks. Restricted Application added subscribers: Frameworks, plasma-devel.
REVISION SUMMARY This patch allows adding runners which, rather than being in-process receive a search term and provide results over DBus. A metadata file should be installed with metadata for the service and path, and the remote app should implement the supplied interface. By using metadata files all the current krunner architecture and config management works seamlessly, and it allows the possibility for a runner to be DBus activated if it wants to be. The goal of this patch is threefold: - To make it considerably easier to write runners where the data exists in an already running application. The plasma-browser-integration is a good example, it currently has it's own custom protocol, and ends up sending data on all the tabs only to filter it inside krunner, somewhat wasteful. With this adding searchable tabs to konversation (for example) would be a ten minute patch. - Make it easy to write a runner in any other language. An app just needs to speak DBus with no other dependencies. Potentially even shipped via the store. - This approach could work for runners in sandboxes. TEST PLAN Wrote new sample app Got my runner showing results Brief profiling had roundtrip time as 0ms. REPOSITORY R308 KRunner BRANCH master REVISION DETAIL https://phabricator.kde.org/D6390 AFFECTED FILES src/CMakeLists.txt src/data/org.kde.krunner1.xml src/data/servicetypes/plasma-runner.desktop src/dbusrunner.cpp src/dbusrunner_p.h src/dbusutils_p.h src/runnermanager.cpp To: davidedmundson, #plasma Cc: plasma-devel, #frameworks, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart, lukas