diff --git a/Gui/Control/FileControl.cpp b/Gui/Control/FileControl.cpp index c4cd2e7..dd9f37b 100644 --- a/Gui/Control/FileControl.cpp +++ b/Gui/Control/FileControl.cpp @@ -1,6 +1,7 @@ #include "FileControl.h" #include +#include #include #include #include @@ -11,6 +12,7 @@ #include #include +#include "GuiUtil/Public.h" #include "ui_FileControl.h" FileManager::FileManager(QWidget* parent) : QWidget(parent), ui(new Ui::FileManager) @@ -99,6 +101,7 @@ void FileManager::InitMenu() { menu_ = new QMenu(ui->tableWidget); menu_->addAction(tr("Filter"), this, &FileManager::ShowFilterForm); + menu_->addAction(tr("FullPath"), this, &FileManager::CopyFullPath); menu_->addSeparator(); } @@ -405,6 +408,28 @@ void FileManager::ShowFilterForm() } } +void FileManager::CopyFullPath() +{ + int row = ui->tableWidget->currentRow(); + if (row < 0) { + return; + } + QClipboard* clip = QApplication::clipboard(); + + bool found = false; + QString key = ui->tableWidget->item(row, 1)->text(); + for (const auto& d : currentInfo_.vec) { + if (d.name == key) { + clip->setText(d.fullPath); + found = true; + return; + } + } + if (!found) { + FTCommon::msg(this, QString(tr("%1 not found.")).arg(key)); + } +} + QString FileManager::GetRoot() { if (isRemote_) { diff --git a/Gui/Control/FileControl.h b/Gui/Control/FileControl.h index bd23485..c04016c 100644 --- a/Gui/Control/FileControl.h +++ b/Gui/Control/FileControl.h @@ -54,6 +54,7 @@ private: void FilterFile(const QStringList& selectedTypes); void GenFilter(); void ShowFilterForm(); + void CopyFullPath(); public slots: void evtHome();