DSCAnalysisTool/src/ui/leftwidget.h
2025-12-11 16:15:36 +08:00

65 lines
1.7 KiB
C++

#ifndef LEFTWIDGET_H
#define LEFTWIDGET_H
#include <QWidget>
#include <QDockWidget>
#include <qmenu.h>
#include <qtreewidget.h>
#include <QTreeWidgetItem>
#include <QMenu>
#include <QAction>
#include "global.h"
class LeftWidget:public QDockWidget
{
Q_OBJECT
public:
LeftWidget(QWidget *parent = nullptr);
void reloadFileName();
void reloadFileTree();
QString filePathCheck(const QString fileName,const QString folderPath);
// 确认删除文件
void confirmDelete(bool enabled);
signals:
void sigSendAnalysisFileName(const QString&);
void sigDeleteActionTriggered(const QString&);
private:
void initData();
void initFileName(QTreeWidgetItem*,const QString &folderPath);
void expandAll(QTreeWidgetItem* item);
void clearAllChildItems(QTreeWidgetItem* parentItem);
QFileInfoList scanDirRecursively(const QString &rootPath);
void buildFileTree(QTreeWidgetItem *parentItem, const QString &dirPath);
void saveExpandedState();
void restoreExpandedState();
void expandAndSelectItem(const QString &path);
bool removeDir(const QString &dirPath);
private slots:
void slotTreeWidgetItemClicked(QTreeWidgetItem *item, int column);
void slotShowContextMenu(const QPoint &pos);
void slotDeleteActionTriggered();
void slotCreateFolderActionTriggered();
private:
QTreeWidget *_treeWidget;
QTreeWidgetItem *_analysisStateItem,
*_baseLineItem,
*_sampleDataItem;
QMenu *_contextMenu;
QAction *_deleteFileAction;
QAction *_createFolderAction;
QString _deleteFileActionFilePath;
// 保存展开状态的列表
QStringList _expandedPaths;
};
#endif // LEFTWIDGET_H