diff --git a/app/kdevelop! b/app/kdevelop! --- a/app/kdevelop! +++ b/app/kdevelop! @@ -43,8 +43,9 @@ exit 6 fi -if ! [ "$(which qdbus)" ]; then - echo "Error: The qdbus utility is missing." +# find qdbus, try also alternative name qdbus-qt5 +if ! [ "$(which qdbus-qt5 2> /dev/null)$(which qdbus 2> /dev/null)" ]; then + echo "Error: The qdbus (or qdbus-qt5) utility is missing." exit 7 fi diff --git a/kdevplatform/util/kdevplatform_shell_environment.sh b/kdevplatform/util/kdevplatform_shell_environment.sh --- a/kdevplatform/util/kdevplatform_shell_environment.sh +++ b/kdevplatform/util/kdevplatform_shell_environment.sh @@ -68,20 +68,29 @@ } # Check if all required tools are there (on the host machine) -checkToolsInPath sed qdbus ls cut dirname mktemp basename readlink hostname +checkToolsInPath sed ls cut dirname mktemp basename readlink hostname + +# special handling for qdbus variants +_qdbus=qdbus +if ! [ "$(which $_qdbus 2> /dev/null)" ]; then + _qdbus=qdbus-qt5 + if ! [ "$(which $_qdbus 2> /dev/null)" ]; then + echo "The utility qdbus (or qdbus-qt5) is not in your path, the shell integration will not work properly." + fi +fi if ! [ "$KDEV_SSH_FORWARD_CHAIN" ]; then # Check for additional utilities that are required on the client machine checkToolsInPath kioclient5 fi # Queries the session name from the running application instance function getSessionName { - echo "$(qdbus $KDEV_DBUS_ID /org/kdevelop/SessionController org.kdevelop.SessionController.sessionName)" + echo "$($_qdbus $KDEV_DBUS_ID /org/kdevelop/SessionController org.kdevelop.SessionController.sessionName)" } function getSessionDir { - echo "$(qdbus $KDEV_DBUS_ID /org/kdevelop/SessionController org.kdevelop.SessionController.sessionDir)" + echo "$($_qdbus $KDEV_DBUS_ID /org/kdevelop/SessionController org.kdevelop.SessionController.sessionDir)" } function getCurrentShellEnvPath { @@ -268,7 +277,7 @@ # Opens a document in internally in the application function openDocument { - RESULT=$(qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.openDocumentSimple $1) + RESULT=$($_qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.openDocumentSimple $1) if [[ "$RESULT" != "true" ]]; then echo "Failed to open $1" fi @@ -281,7 +290,7 @@ else arr=("$1") fi - RESULT=$(qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.openDocumentsSimple "(" $arr ")") + RESULT=$($_qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.openDocumentsSimple "(" $arr ")") if [[ "$RESULT" != "true" ]]; then echo "Failed to open $1" fi @@ -295,7 +304,7 @@ if ! [ "$WD" ]; then WD=$(pwd) fi - RESULT=$(qdbus $KDEV_DBUS_ID /org/kdevelop/ExternalScriptPlugin org.kdevelop.ExternalScriptPlugin.executeCommand "$CMD" "$WD") + RESULT=$($_qdbus $KDEV_DBUS_ID /org/kdevelop/ExternalScriptPlugin org.kdevelop.ExternalScriptPlugin.executeCommand "$CMD" "$WD") if [[ "$RESULT" != "true" ]]; then echo "Execution failed" fi @@ -309,35 +318,35 @@ if ! [ "$WD" ]; then WD=$(pwd) fi - RESULT=$(qdbus $KDEV_DBUS_ID /org/kdevelop/ExternalScriptPlugin org.kdevelop.ExternalScriptPlugin.executeCommandSync "$CMD" "$WD") + RESULT=$($_qdbus $KDEV_DBUS_ID /org/kdevelop/ExternalScriptPlugin org.kdevelop.ExternalScriptPlugin.executeCommandSync "$CMD" "$WD") echo "$RESULT" } # Getter functions: function getActiveDocument { - qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.activeDocumentPath $@ + $_qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.activeDocumentPath $@ } function getOpenDocuments { - qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.activeDocumentPaths + $_qdbus $KDEV_DBUS_ID /org/kdevelop/DocumentController org.kdevelop.DocumentController.activeDocumentPaths } function raise! { - qdbus $KDEV_DBUS_ID /kdevelop/MainWindow org.kdevelop.MainWindow.ensureVisible + $_qdbus $KDEV_DBUS_ID /kdevelop/MainWindow org.kdevelop.MainWindow.ensureVisible } function bdir! { - TARG=$(qdbus $KDEV_DBUS_ID /org/kdevelop/ProjectController org.kdevelop.ProjectController.mapSourceBuild "$(pwd)" false) + TARG=$($_qdbus $KDEV_DBUS_ID /org/kdevelop/ProjectController org.kdevelop.ProjectController.mapSourceBuild "$(pwd)" false) if [ "$TARG" ]; then cd $TARG else echo "Got no path" fi } function project! { - TARG=$(qdbus $KDEV_DBUS_ID /org/kdevelop/ProjectController org.kdevelop.ProjectController.mapSourceBuild "$(pwd)" true) + TARG=$($_qdbus $KDEV_DBUS_ID /org/kdevelop/ProjectController org.kdevelop.ProjectController.mapSourceBuild "$(pwd)" true) if [ "$TARG" ]; then cd $TARG else @@ -349,7 +358,7 @@ # Main functions: function raise! { - qdbus $KDEV_DBUS_ID /kdevelop/MainWindow org.kdevelop.MainWindow.ensureVisible + $_qdbus $KDEV_DBUS_ID /kdevelop/MainWindow org.kdevelop.MainWindow.ensureVisible } function sync! { @@ -565,7 +574,7 @@ LOCATION="$LOCATION;$(mapFileToClient $LOC)" done - qdbus $KDEV_DBUS_ID /org/kdevelop/GrepViewPlugin org.kdevelop.GrepViewPlugin.startSearch "$PATTERN" "$LOCATION" true + $_qdbus $KDEV_DBUS_ID /org/kdevelop/GrepViewPlugin org.kdevelop.GrepViewPlugin.startSearch "$PATTERN" "$LOCATION" true } function dsearch! { @@ -594,7 +603,7 @@ LOCATION="$LOCATION;$(mapFileToClient $LOC)" done - qdbus $KDEV_DBUS_ID /org/kdevelop/GrepViewPlugin org.kdevelop.GrepViewPlugin.startSearch "$PATTERN" "$LOCATION" false + $_qdbus $KDEV_DBUS_ID /org/kdevelop/GrepViewPlugin org.kdevelop.GrepViewPlugin.startSearch "$PATTERN" "$LOCATION" false } ##### SSH DBUS FORWARDING --------------------------------------------------------------------------------------------------------------------