
- 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.
48 lines
1.2 KiB
C++
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;
|
|
};
|