aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2025-01-26 18:52:33 +0000
committersaturneric <[email protected]>2025-01-26 18:52:33 +0000
commit3aa7e3221436599a6e1461bb71f2fce9cef7c2ac (patch)
treec07c3701a05bbee4f6975ca790dc5a5a84bac593
parentfix: improve code compatibility (diff)
downloadGpgFrontend-3aa7e3221436599a6e1461bb71f2fce9cef7c2ac.tar.gz
GpgFrontend-3aa7e3221436599a6e1461bb71f2fce9cef7c2ac.zip
feat: add ui ability to switch batch mode
-rw-r--r--src/ui/widgets/FilePage.cpp7
-rw-r--r--src/ui/widgets/FilePage.h6
-rw-r--r--src/ui/widgets/FileTreeView.cpp8
-rw-r--r--src/ui/widgets/FileTreeView.h6
-rw-r--r--ui/FilePage.ui3
5 files changed, 20 insertions, 10 deletions
diff --git a/src/ui/widgets/FilePage.cpp b/src/ui/widgets/FilePage.cpp
index 309bf376..fb27163f 100644
--- a/src/ui/widgets/FilePage.cpp
+++ b/src/ui/widgets/FilePage.cpp
@@ -42,6 +42,8 @@ FilePage::FilePage(QWidget* parent, const QString& target_path)
ui_->setupUi(this);
ui_->trewViewLayout->addWidget(file_tree_view_);
+ ui_->batchModeButton->setToolTip(tr("Switch Batch Mode"));
+
connect(ui_->upPathButton, &QPushButton::clicked, file_tree_view_,
&FileTreeView::SlotUpLevel);
connect(ui_->refreshButton, &QPushButton::clicked, this,
@@ -73,9 +75,6 @@ FilePage::FilePage(QWidget* parent, const QString& target_path)
option_popup_menu_->addAction(show_system_act);
ui_->optionsButton->setMenu(option_popup_menu_);
- connect(ui_->batchModeButton, &QToolButton::toggled, this,
- [this](bool checked) { emit SignalSetBatchMode(checked); });
-
connect(ui_->pathEdit, &QLineEdit::textChanged, [=]() {
auto path = ui_->pathEdit->text();
auto dir = QDir(path);
@@ -109,6 +108,8 @@ FilePage::FilePage(QWidget* parent, const QString& target_path)
connect(this, &FilePage::SignalMainWindowUpdateBasicOperaMenu,
UISignalStation::GetInstance(),
&UISignalStation::SignalMainWindowUpdateBasicOperaMenu);
+ connect(ui_->batchModeButton, &QToolButton::toggled, file_tree_view_,
+ &FileTreeView::SlotSwitchBatchMode);
}
auto FilePage::GetSelected() const -> QStringList {
diff --git a/src/ui/widgets/FilePage.h b/src/ui/widgets/FilePage.h
index ae84e246..b302740b 100644
--- a/src/ui/widgets/FilePage.h
+++ b/src/ui/widgets/FilePage.h
@@ -102,12 +102,6 @@ class FilePage : public QWidget {
*/
void SignalMainWindowUpdateBasicOperaMenu(unsigned int);
- /**
- * @brief
- *
- */
- void SignalSetBatchMode(bool);
-
protected:
/**
* @brief
diff --git a/src/ui/widgets/FileTreeView.cpp b/src/ui/widgets/FileTreeView.cpp
index d50f8726..616cffb4 100644
--- a/src/ui/widgets/FileTreeView.cpp
+++ b/src/ui/widgets/FileTreeView.cpp
@@ -49,7 +49,7 @@ FileTreeView::FileTreeView(QWidget* parent, const QString& target_path)
slot_create_popup_menu();
this->setContextMenuPolicy(Qt::CustomContextMenu);
- this->setSelectionMode(QAbstractItemView::MultiSelection);
+ this->setSelectionMode(QAbstractItemView::SingleSelection);
connect(this, &QWidget::customContextMenuRequested, this,
&FileTreeView::slot_show_custom_context_menu);
@@ -439,4 +439,10 @@ void FileTreeView::slot_adjust_column_widths() {
}
}
+void FileTreeView::SlotSwitchBatchMode(bool batch) {
+ this->setSelectionMode(batch ? QAbstractItemView::MultiSelection
+ : QAbstractItemView::SingleSelection);
+ selectionModel()->clearSelection();
+}
+
} // namespace GpgFrontend::UI
diff --git a/src/ui/widgets/FileTreeView.h b/src/ui/widgets/FileTreeView.h
index 0c9c0749..333e06bc 100644
--- a/src/ui/widgets/FileTreeView.h
+++ b/src/ui/widgets/FileTreeView.h
@@ -193,6 +193,12 @@ class FileTreeView : public QTreeView {
*/
void SlotOpenSelectedItemBySystemApplication();
+ /**
+ * @brief
+ *
+ */
+ void SlotSwitchBatchMode(bool);
+
private slots:
/**
diff --git a/ui/FilePage.ui b/ui/FilePage.ui
index 69143680..b9ae7043 100644
--- a/ui/FilePage.ui
+++ b/ui/FilePage.ui
@@ -143,6 +143,9 @@
</item>
<item>
<widget class="QToolButton" name="batchModeButton">
+ <property name="toolTip">
+ <string>Switch Batch Mode</string>
+ </property>
<property name="text">
<string>...</string>
</property>