Skip to content

Commit

Permalink
chore: add Open interface and script tweak
Browse files Browse the repository at this point in the history
- add Open dbus interface
  • Loading branch information
kegechen committed Jun 14, 2024
1 parent 83c2a17 commit a301078
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 10 deletions.
3 changes: 3 additions & 0 deletions assets/dbus/org.freedesktop.FileManager1.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,8 @@
<method name="Trash">
<arg name="URIs" type="as" direction="in"/>
</method>
<method name="Open">
<arg name="Args" type="as" direction="in"/>
</method>
</interface>
</node>
16 changes: 6 additions & 10 deletions assets/scripts/dde-file-manager
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later

f="${1#file://}"
args=""
for arg in "$@"; do
args+="$arg,"
done

# dde-file-manager --show-item xxx
if [[ "$1" == "--show-item" ]]; then
dbus-send --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems "array:string:${@:2}" "string:"
# dde-file-manager /path/to/xxx or file:///path/to/xxx
elif [ -e "$f" ]; then
dbus-send --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems "array:string:$f" "string:"
else
exec /usr/libexec/dde-file-manager "$@"
fi
args=${args%,}

dbus-send --print-reply --dest=org.freedesktop.FileManager1 /org/freedesktop/FileManager1 org.freedesktop.FileManager1.Open array:string:"$args"
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,11 @@ void FileManager1DBus::Trash(const QStringList &URIs)
QJsonDocument doc(argsObj);
QProcess::startDetached("dde-file-manager", QStringList() << "--event" << doc.toJson());
}

void FileManager1DBus::Open(const QStringList &Args)
{
if (QProcess::startDetached("file-manager.sh", QStringList() << Args))
return;

QProcess::startDetached("dde-file-manager", QStringList() << Args);
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public slots:
void ShowItemProperties(const QStringList &URIs, const QString &StartupId);
void ShowItems(const QStringList &URIs, const QString &StartupId);
void Trash(const QStringList &URIs);
void Open(const QStringList &Args);
};

#endif // FILEMANAGER1DBUS_H

0 comments on commit a301078

Please sign in to comment.