Skip to content

Commit 0b917a4

Browse files
committed
feat: use DDesktopServices to open files and folders
Replace dde-file-manager command line calls with DDesktopServices::showFolder and DDesktopServices::showFileItem for better integration. Sync from master commit #333. Log: 改用DDesktopService的方法打开文件或文件夹 Influence: 使用DTK标准接口打开文件管理器,提升系统集成性
1 parent 081a60c commit 0b917a4

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

src/views/termwidget.cpp

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -518,29 +518,30 @@ inline void TermWidget::onPaste()
518518
inline void TermWidget::onOpenFileInFileManager()
519519
{
520520
qCDebug(views) << "Enter TermWidget::onOpenFileInFileManager";
521-
//DDesktopServices::showFolder(QUrl::fromLocalFile(workingDirectory()));
522521

523-
//打开文件夹的方式 和 打开文件夹 并勾选文件的方式 如下
524-
//dde-file-manager -n /data/home/lx777/my-wjj/git/2020-08/18-zoudu/build-deepin-terminal-unknown-Debug
525-
//dde-file-manager --show-item a.pdf
526-
527-
QProcess process;
528522
//未选择内容
529523
if (selectedText().isEmpty()) {
530-
qCDebug(views) << "Branch: selectedText is empty, starting dde-file-manager with workingDirectory";
531-
process.startDetached("dde-file-manager", {"-n", workingDirectory()});
524+
qCDebug(views) << "Branch: selectedText is empty, using DDesktopServices::showFolder";
525+
DDesktopServices::showFolder(QUrl::fromLocalFile(workingDirectory()));
532526
return;
533527
}
534528

535529
QFileInfo fi(workingDirectory() + "/" + selectedText());
536-
//选择的内容是文件或者文件夹
537-
if (fi.isFile() || fi.isDir()) {
538-
qCDebug(views) << "Branch: selectedText is a file or directory, starting dde-file-manager with --show-item";
539-
process.startDetached("dde-file-manager", {"--show-item", workingDirectory() + "/" + selectedText()});
530+
//选择的内容是文件夹
531+
if (fi.isDir()) {
532+
qCDebug(views) << "Branch: selectedText is a directory, using DDesktopServices::showFolder";
533+
DDesktopServices::showFolder(QUrl::fromLocalFile(fi.filePath()));
534+
return;
535+
} else if (fi.isFile()) {
536+
//选择的内容是文件
537+
qCDebug(views) << "Branch: selectedText is a file, using DDesktopServices::showFileItem";
538+
DDesktopServices::showFileItem(QUrl::fromLocalFile(fi.filePath()));
540539
return;
541540
}
541+
542542
//选择的文本不是文件也不是文件夹
543-
process.startDetached("dde-file-manager", {"-n", workingDirectory()});
543+
qCDebug(views) << "Branch: selectedText is not a file or directory, using DDesktopServices::showFolder";
544+
DDesktopServices::showFolder(QUrl::fromLocalFile(workingDirectory()));
544545
}
545546

546547
/*** 修复 bug 28162 鼠标左右键一起按终端会退出 ***/

0 commit comments

Comments
 (0)