#ifndef LEFTWIDGET_H #define LEFTWIDGET_H #include #include #include #include #include #include #include #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