33#include " CodeEditor.h"
44
55#include < QFileDialog>
6- #include < QAbstractItemView>
76#include < QFileInfo>
7+ #include < QFileIconProvider>
8+ #include < QTreeView>
89
910Tree::Tree (QSplitter *splitter, MainWindow *mainWindow) : QObject(splitter), mainWindow(mainWindow)
1011{
@@ -22,6 +23,9 @@ Tree::~Tree() {}
2223void Tree::setupModel ()
2324{
2425 model->setRootPath (getDirectoryPath ());
26+ model->setIconProvider (new QFileIconProvider);
27+ model->setFilter (QDir::AllEntries | QDir::Hidden | QDir::NoDotAndDotDot);
28+
2529}
2630
2731void Tree::setupTree ()
@@ -34,6 +38,9 @@ void Tree::setupTree()
3438 tree->setSortingEnabled (false );
3539 tree->sortByColumn (1 , Qt::AscendingOrder);
3640
41+ tree->setContextMenuPolicy (Qt::CustomContextMenu);
42+ connect (tree, &QTreeView::customContextMenuRequested, this , &Tree::showContextMenu);
43+
3744 for (int i = 1 ; i <= 3 ; ++i)
3845 {
3946 tree->setColumnHidden (i, true );
@@ -52,8 +59,20 @@ void Tree::openFile(const QModelIndex &index)
5259 QString filePath = model->filePath (index);
5360 QFileInfo fileInfo (filePath);
5461
55- if (fileInfo.isFile ()) // Ensure it's a file, not a folder
62+ // Ensure it's a file, not a folder before loading
63+ if (fileInfo.isFile ())
5664 {
5765 mainWindow->loadFileInEditor (filePath);
5866 }
5967}
68+
69+ void Tree::showContextMenu (const QPoint &pos)
70+ {
71+ // TO_DO: Implement delete a file
72+ // TO_DO: Implement rename a file
73+ // TO_DO: Implement create a new file
74+ // TO_DO: Implement create a new folder
75+
76+ // use pos param for testing purpose for now
77+ tree->indexAt (pos);
78+ }
0 commit comments