11// Copyright Copyright (c) Kang Lin studio, All Rights Reserved
22// Author Kang Lin <kl222@126.com>
33
4+ #include < QInputDialog>
5+ #include < QMenu>
6+ #include < QDesktopServices>
7+ #include < QLoggingCategory>
48#include " FrmFileTransfer.h"
59#include " ui_FrmFileTransfer.h"
610
11+ static Q_LOGGING_CATEGORY (log, " FileTransfer.Widget" )
712CFrmFileTransfer::CFrmFileTransfer(QWidget *parent)
813 : QWidget(parent)
914 , ui(new Ui::CFrmFileTransfer)
@@ -15,6 +20,7 @@ CFrmFileTransfer::CFrmFileTransfer(QWidget *parent)
1520
1621 m_pModelLocalDir->setFilter (QDir::Dirs | QDir::NoDotAndDotDot);
1722 ui->tvLocal ->setModel (m_pModelLocalDir);
23+ ui->tvLocal ->setContextMenuPolicy (Qt::CustomContextMenu);
1824 check = connect (ui->tvLocal , &QTreeView::clicked,
1925 this , &CFrmFileTransfer::slotLocalClicked);
2026 Q_ASSERT (check);
@@ -28,6 +34,7 @@ CFrmFileTransfer::CFrmFileTransfer(QWidget *parent)
2834
2935 m_pModelLocalFile->setFilter (QDir::Files);
3036 ui->tabLocal ->setModel (m_pModelLocalFile);
37+ ui->tabLocal ->setContextMenuPolicy (Qt::CustomContextMenu);
3138 ui->tabLocal ->setShowGrid (false );
3239 ui->tabLocal ->verticalHeader ()->hide ();
3340 ui->tabLocal ->horizontalHeader ()->setSectionResizeMode (
@@ -67,3 +74,58 @@ void CFrmFileTransfer::on_cbLocal_currentTextChanged(const QString &text)
6774 ui->tvLocal ->setCurrentIndex (idx);
6875 slotLocalClicked (idx);
6976}
77+
78+ void CFrmFileTransfer::on_tvLocal_customContextMenuRequested (const QPoint &pos)
79+ {
80+ qDebug (log) << Q_FUNC_INFO;
81+ QMenu menu;
82+ menu.addAction (QIcon::fromTheme (" folder-open" ), tr (" Open" ),
83+ this , SLOT (slotTreeLocalOpen ()));
84+ menu.addAction (QIcon::fromTheme (" document-new" ), tr (" New folder" ),
85+ this , SLOT (slotTreeLocalNew ()));
86+ menu.addAction (QIcon::fromTheme (" remove" ), tr (" Delete" ),
87+ this , SLOT (slotTreeLocalDelete ()));
88+ menu.addAction (tr (" Rename" ),
89+ this , SLOT (slotTreeLocalRename ()));
90+ menu.exec (mapToGlobal (pos));
91+ }
92+
93+ void CFrmFileTransfer::on_tabLocal_customContextMenuRequested (const QPoint &pos)
94+ {
95+ qDebug (log) << Q_FUNC_INFO;
96+ }
97+
98+ void CFrmFileTransfer::slotTreeLocalOpen ()
99+ {
100+ auto idx = ui->tvLocal ->currentIndex ();
101+ auto szPath = m_pModelLocalDir->filePath (idx);
102+ QDesktopServices::openUrl (QUrl (szPath));
103+ }
104+
105+ void CFrmFileTransfer::slotTreeLocalUpload ()
106+ {
107+
108+ }
109+
110+ void CFrmFileTransfer::slotTreeLocalAddToList ()
111+ {
112+
113+ }
114+
115+ void CFrmFileTransfer::slotTreeLocalNew ()
116+ {
117+ QString szPath = QInputDialog::getText (this , tr (" New foler" ), tr (" New folder" ));
118+ if (szPath.isEmpty ()) return ;
119+ }
120+
121+ void CFrmFileTransfer::slotTreeLocalRename ()
122+ {
123+
124+ }
125+
126+ void CFrmFileTransfer::slotTreeLocalDelete ()
127+ {
128+ auto idx = ui->tvLocal ->currentIndex ();
129+ auto szPath = m_pModelLocalDir->filePath (idx);
130+ m_pModelLocalDir->remove (idx);
131+ }
0 commit comments