diff options
author | saturneric <[email protected]> | 2024-01-08 07:22:03 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-01-08 07:22:03 +0000 |
commit | ba7dd4ef022b19e307557561e2c8d788768c5026 (patch) | |
tree | d270d4b5219b15bac24c2343261f7b25bf29f99a /src | |
parent | feat: improve tool menus and icons (diff) | |
download | GpgFrontend-ba7dd4ef022b19e307557561e2c8d788768c5026.tar.gz GpgFrontend-ba7dd4ef022b19e307557561e2c8d788768c5026.zip |
feat: select a directory before entering into the File Browser
Diffstat (limited to 'src')
-rw-r--r-- | src/ui/widgets/FilePage.cpp | 4 | ||||
-rw-r--r-- | src/ui/widgets/FilePage.h | 2 | ||||
-rw-r--r-- | src/ui/widgets/FileTreeView.cpp | 6 | ||||
-rw-r--r-- | src/ui/widgets/FileTreeView.h | 2 | ||||
-rw-r--r-- | src/ui/widgets/TextEdit.cpp | 9 | ||||
-rw-r--r-- | src/ui/widgets/TextEdit.h | 2 |
6 files changed, 16 insertions, 9 deletions
diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp index 71961c25..08534dcb 100644 --- a/src/ui/widgets/FilePage.cpp +++ b/src/ui/widgets/FilePage.cpp @@ -39,10 +39,10 @@ namespace GpgFrontend::UI { -FilePage::FilePage(QWidget* parent) +FilePage::FilePage(QWidget* parent, const QString& target_path) : QWidget(parent), ui_(GpgFrontend::SecureCreateSharedObject<Ui_FilePage>()), - file_tree_view_(new FileTreeView(this)) { + file_tree_view_(new FileTreeView(this, target_path)) { ui_->setupUi(this); ui_->trewViewLayout->addWidget(file_tree_view_); diff --git a/src/ui/widgets/FilePage.h b/src/ui/widgets/FilePage.h index c1c9dc39..da5370a2 100644 --- a/src/ui/widgets/FilePage.h +++ b/src/ui/widgets/FilePage.h @@ -48,7 +48,7 @@ class FilePage : public QWidget { * * @param parent */ - explicit FilePage(QWidget* parent = nullptr); + explicit FilePage(QWidget* parent, const QString&); /** * @brief Get the Selected object diff --git a/src/ui/widgets/FileTreeView.cpp b/src/ui/widgets/FileTreeView.cpp index 79db51ac..8139fbf9 100644 --- a/src/ui/widgets/FileTreeView.cpp +++ b/src/ui/widgets/FileTreeView.cpp @@ -33,9 +33,11 @@ namespace GpgFrontend::UI { -FileTreeView::FileTreeView(QWidget* parent) : QTreeView(parent) { +FileTreeView::FileTreeView(QWidget* parent, const QString& target_path) + : QTreeView(parent) { dir_model_ = new QFileSystemModel(); - dir_model_->setRootPath(QDir::currentPath()); + dir_model_->setRootPath(target_path.isEmpty() ? QDir::currentPath() + : target_path); dir_model_->setFilter(QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot); this->setModel(dir_model_); diff --git a/src/ui/widgets/FileTreeView.h b/src/ui/widgets/FileTreeView.h index 94fdb3de..5d013ae4 100644 --- a/src/ui/widgets/FileTreeView.h +++ b/src/ui/widgets/FileTreeView.h @@ -33,7 +33,7 @@ namespace GpgFrontend::UI { class FileTreeView : public QTreeView { Q_OBJECT public: - explicit FileTreeView(QWidget* parent); + explicit FileTreeView(QWidget* parent, const QString& target_path); /** * @brief Get the Current Path object diff --git a/src/ui/widgets/TextEdit.cpp b/src/ui/widgets/TextEdit.cpp index 079a8496..2bc25376 100644 --- a/src/ui/widgets/TextEdit.cpp +++ b/src/ui/widgets/TextEdit.cpp @@ -106,8 +106,13 @@ void TextEdit::slotNewHelpTab(const QString& title, const QString& path) const { tab_widget_->setCurrentIndex(tab_widget_->count() - 1); } -void TextEdit::SlotNewFileTab() const { - auto* page = new FilePage(qobject_cast<QWidget*>(parent())); +void TextEdit::SlotNewFileTab() { + auto const target_dir = QFileDialog::getExistingDirectory( + this, _("Open Directory"), QDir::home().path(), + QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); + if (target_dir.isEmpty()) return; + + auto* page = new FilePage(qobject_cast<QWidget*>(parent()), target_dir); auto index = tab_widget_->addTab(page, QString()); tab_widget_->setTabIcon(index, QIcon(":file-browser.png")); tab_widget_->setCurrentIndex(tab_widget_->count() - 1); diff --git a/src/ui/widgets/TextEdit.h b/src/ui/widgets/TextEdit.h index 994e8a64..4eb1d537 100644 --- a/src/ui/widgets/TextEdit.h +++ b/src/ui/widgets/TextEdit.h @@ -171,7 +171,7 @@ class TextEdit : public QWidget { /** * New File Tab to do file operation */ - void SlotNewFileTab() const; + void SlotNewFileTab(); /** * @details put a * in front of current tabs title, if current textedit is |