diff options
Diffstat (limited to 'src/ui/widgets/FilePage.cpp')
-rw-r--r-- | src/ui/widgets/FilePage.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp index 144de3d8..b5243da0 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,18 @@ void FilePage::slot_open_item() { } } +void FilePage::slot_open_item_by_system_application() { + QFileInfo info(QString::fromStdString(selected_path_.u8string())); + auto q_selected_path = QString::fromStdString(selected_path_.u8string()); + if (info.isDir()) { + const auto file_path = info.filePath().toUtf8().toStdString(); + QDesktopServices::openUrl(QUrl::fromLocalFile(q_selected_path)); + + } else { + QDesktopServices::openUrl(QUrl::fromLocalFile(q_selected_path)); + } +} + void FilePage::slot_rename_item() { auto new_name_path = selected_path_, old_name_path = selected_path_; auto old_name = old_name_path.filename(); |