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.
This commit is contained in:
47
include/FileTreeWidget.h
Normal file
47
include/FileTreeWidget.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#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;
|
||||
};
|
Reference in New Issue
Block a user