aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2023-07-12 11:48:54 +0000
committerSaturneric <[email protected]>2023-07-12 11:48:54 +0000
commit4daddcf9db3bb5e7d5f449aaef1ef4e22600eb31 (patch)
treee99290d26bc0ca335698ee82b6a4d8415873106a
parentfeat: add system requirement (diff)
downloadGpgFrontend-4daddcf9db3bb5e7d5f449aaef1ef4e22600eb31.tar.gz
GpgFrontend-4daddcf9db3bb5e7d5f449aaef1ef4e22600eb31.zip
feat: support opening file with system default app
-rw-r--r--src/ui/widgets/FilePage.cpp20
-rw-r--r--src/ui/widgets/FilePage.h6
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();
/**