Most of this code (except for asyncCall is the same in all cases).
It would make sense to factor it out into a separate function which might e.g. take an argument that is passed to emitNewData.
If you do just this you might still need two function (one for int overload that passed progress percents, one for the other call with QStrings).
It might be possible to unify it more but at leat do that...
One should register objects before registering the service as the service might become visible to the bus in an inconsistent state (i.e. show up before the objects are registered)
This is a lie.
QDBusInterface constructor blocks introspecting DBus. You probably want to use an interface generated from an XML file to avoid this.
What's the point of the event loop?
You're leaking the watcher, call watcher->deleteLater() in the finished handler
This probably wants to be a QElapsedTimer
Why do we need connect to finished signal if in the line above you wait for call to finish with call.waitForFinished() that function blocks until call is done.
Actually yes, it is currently broke, however it does not matter, because I am just using this function to show the auth agent and if you notice line 383 externalcommand.cpp, to display some log message. Oh, now I get why it was reporting ""Unable to obtain Administrative privileges, the action can not be executed!!";"