aboutsummaryrefslogtreecommitdiffstats
path: root/src/ui/widgets/FilePage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/widgets/FilePage.cpp')
-rw-r--r--src/ui/widgets/FilePage.cpp21
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();