Files
ctdocpp/include/FileTreeWidget.h
TIPC1110 a32f79f6d5 feat: Implement core functionality for DTC C/C++ IDE
- Added ProjectManager class to handle project operations including opening, closing, building, and running projects.
- Introduced SyntaxHighlighter class for syntax highlighting in C and C++ files.
- Developed TerminalWidget for command execution and output display.
- Created TextEditor with line numbering and auto-indentation features.
- Established main application entry point in main.cpp.
- Designed UI layout for MainWindow using Qt Designer.
2025-07-04 12:23:20 +07:00

48 lines
1.2 KiB
C++

#pragma once
#include <QtWidgets/QTreeWidget>
#include <QtWidgets/QTreeWidgetItem>
#include <QtWidgets/QMenu>
#include <QtCore/QFileSystemWatcher>
#include <QtCore/QDir>
class FileTreeWidget : public QTreeWidget
{
Q_OBJECT
public:
explicit FileTreeWidget(QWidget *parent = nullptr);
~FileTreeWidget();
void setRootPath(const QString &path);
QString rootPath() const;
void refreshTree();
signals:
void fileSelected(const QString &filePath);
void fileDoubleClicked(const QString &filePath);
void directorySelected(const QString &dirPath);
private slots:
void onItemClicked(QTreeWidgetItem *item, int column);
void onItemDoubleClicked(QTreeWidgetItem *item, int column);
void onCustomContextMenu(const QPoint &point);
void onDirectoryChanged(const QString &path);
void newFile();
void newFolder();
void deleteItem();
void renameItem();
private:
void populateTree(const QString &path, QTreeWidgetItem *parent = nullptr);
void setupContextMenu();
QString getItemPath(QTreeWidgetItem *item) const;
bool isDirectory(QTreeWidgetItem *item) const;
QString m_rootPath;
QFileSystemWatcher *m_fileWatcher;
QMenu *m_contextMenu;
QTreeWidgetItem *m_contextItem;
};