diff options
author | Saturneric <[email protected]> | 2023-07-12 11:48:54 +0000 |
---|---|---|
committer | Saturneric <[email protected]> | 2023-07-12 11:48:54 +0000 |
commit | 4daddcf9db3bb5e7d5f449aaef1ef4e22600eb31 (patch) | |
tree | e99290d26bc0ca335698ee82b6a4d8415873106a | |
parent | feat: add system requirement (diff) | |
download | GpgFrontend-4daddcf9db3bb5e7d5f449aaef1ef4e22600eb31.tar.gz GpgFrontend-4daddcf9db3bb5e7d5f449aaef1ef4e22600eb31.zip |
feat: support opening file with system default app
-rw-r--r-- | src/ui/widgets/FilePage.cpp | 20 | ||||
-rw-r--r-- | src/ui/widgets/FilePage.h | 6 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp index 144de3d8..59c4d0e0 100644 --- a/src/ui/widgets/FilePage.cpp +++ b/src/ui/widgets/FilePage.cpp @@ -249,14 +249,23 @@ void FilePage::create_popup_menu() { connect(ui_->actionCompressFiles, &QAction::triggered, this, &FilePage::slot_compress_files); + ui_->actionOpenWithSystemDefaultApplication->setText( + _("Open with Default System Application")); + connect(ui_->actionOpenWithSystemDefaultApplication, &QAction::triggered, + this, &FilePage::slot_open_item_by_system_application); + auto new_item_action_menu = new QMenu(this); new_item_action_menu->setTitle(_("New")); new_item_action_menu->addAction(ui_->actionCreateEmptyFile); new_item_action_menu->addAction(ui_->actionMakeDirectory); popup_menu_->addAction(ui_->actionOpenFile); + popup_menu_->addAction(ui_->actionOpenWithSystemDefaultApplication); + + popup_menu_->addSeparator(); popup_menu_->addMenu(new_item_action_menu); popup_menu_->addSeparator(); + popup_menu_->addAction(ui_->actionRenameFile); popup_menu_->addAction(ui_->actionDeleteFile); popup_menu_->addAction(ui_->actionCompressFiles); @@ -349,6 +358,17 @@ void FilePage::slot_open_item() { } } +void FilePage::slot_open_item_by_system_application() { + QFileInfo info(QString::fromStdString(selected_path_.u8string())); + if (info.isDir()) { + const auto file_path = info.filePath().toUtf8().toStdString(); + QDesktopServices::openUrl(QUrl::fromLocalFile(file_path.c_str())); + + } else { + QDesktopServices::openUrl(QUrl::fromLocalFile(selected_path_.c_str())); + } +} + void FilePage::slot_rename_item() { auto new_name_path = selected_path_, old_name_path = selected_path_; auto old_name = old_name_path.filename(); diff --git a/src/ui/widgets/FilePage.h b/src/ui/widgets/FilePage.h index 8e278de7..74548b13 100644 --- a/src/ui/widgets/FilePage.h +++ b/src/ui/widgets/FilePage.h @@ -114,6 +114,12 @@ class FilePage : public QWidget { * @brief * */ + void slot_open_item_by_system_application(); + + /** + * @brief + * + */ void slot_rename_item(); /** |