LAMPCAE/src/PostInterface/DialogFileDirectory.h

310 lines
6.4 KiB
C
Raw Normal View History

2023-05-08 06:32:41 +00:00
#ifndef _FILEDIRECTORY_DIALOG_H_
#define _FILEDIRECTORY_DIALOG_H_
#include "PostInterfaceAPI.h"
#include <QDialog>
#include <QFileDialog>
#include <QTreeWidget>
#include <QDirModel>
namespace Ui { class FileDirectoryDialog; }
class POSTINTERFACEAPI FileDirectoryDialog : public QDialog
{
Q_OBJECT
public:
/**
* @brief
* @param parent-,
* @since Version: 1.0.0
**/
FileDirectoryDialog(QWidget *parent = nullptr);
/**
* @brief
* @since Version: 1.0.0
**/
~FileDirectoryDialog();
/**
* @brief (/)
* @return
* @since Version: 1.0.0
**/
QString getCurrentFullPath();
/**
* @brief
* @param path-
* @return true-,false-
* @since Version: 1.0.0
**/
static bool isGourpFiles(const QString path);
/**
* @brief
* @param filterString-
* @note (*.) plot3D(*.xyz *.x)
* @since Version: 1.0.0
**/
void iniFileFilterType(QString filterString);
/**
* @brief
* @param filterString-
* @note (*.) plot3D(*.xyz *.x)
* @since Version: 1.0.0
**/
void iniFileFilterType(QStringList filters);
private:
/**
* @brief
* @param dirStr-
* @since Version: 1.0.0
**/
void initWin(QString dirStr);
/**
* @brief Ui
* @since Version: 1.0.0
**/
void initUi();
/**
* @brief
* @since Version: 1.0.0
**/
void SetDirectoryForDrives();
/**
* @brief
* @param record
* @since Version: 1.0.0
**/
void openFilePath(bool recordHistory);
/**
* @brief
* @since Version: 1.0.0
**/
void BuildFilePathTree();
/**
* @brief
* @since Version: 1.0.0
**/
void refreshRightView();
/**
* @brief
* @param dirName-
* @since Version: 1.0.0
**/
void GetFileList(QString dirName);
/**
* @brief
* @param filter-
* @return
* @since Version: 1.0.0
**/
QStringList GetFilterFromString(const QString& filter);
/**
* @brief /
* @param curPath-
* @return
* @since Version: 1.0.0
**/
QString appendSlash(QString curPath);
/**
* @brief
* @param fileName-
* @return
* @since Version: 1.0.0
**/
QString GetFileExt(QString fileName);
/**
* @brief
* @param index-
* @return
* @since Version: 1.0.0
**/
QString FindFullFilename(const QModelIndex& index);
/**
* @brief
* @since Version: 1.0.0
**/
void enterDirectory();
/**
* @brief
* @param filter-
* @since Version: 1.0.0
**/
void filterChange(QString filter);
private slots:
/**
* @brief
* @since Version: 1.0.0
**/
void onCancelClicked();
/**
* @brief
* @since Version: 1.0.0
**/
void onOkClicked();
/**
* @brief
* @since Version: 1.0.0
**/
void onFilterChange(QString filter);
/**
* @brief
* @since Version: 1.0.0
**/
void onDoubleClickedObject(QTreeWidgetItem* pitem, int column);
/**
* @brief ()
* @param model index
* @since Version: 1.0.0
**/
void pathTreeViewDoubleClick(const QModelIndex&);
/**
* @brief
* @param model index
* @since Version: 1.0.0
**/
void func_PathTreeViewDoubleClick(const QModelIndex& index);
void unix_PathTreeViewDoubleClick(QString itemName);
/**
* @brief
* @since Version: 1.0.0
**/
void onItemSelectionChanged();
/**
* @brief
* @since Version: 1.0.0
**/
void onUpPushButtonClicked();
/**
* @brief 退
* @since Version: 1.0.0
**/
void onBackClicked();
/**
* @brief
* @since Version: 1.0.0
**/
void onFrontClicked();
private:
Ui::FileDirectoryDialog* _ui;
/**
* @brief 退
* @brief 退
* @since Version: 1.0.0
**/
QVector<QString> _pathBackVec{};
QVector<QString> _pathFrontVec{};
/**
* @brief
* @since Version: 1.0.0
**/
QString _currentFilePath;
/**
* @brief
* @since Version: 1.0.0
**/
QDirModel* _dirModel;
/**
* @brief "我的文档"
* @brief "桌面"
* @brief Unix
* @since Version: 1.0.0
**/
QString _docPath;
QString _deskTopPath;
QString userPath,rootPath,userName,rootName;
/**
* @brief
* @since Version: 1.0.0
**/
QModelIndex _currentIndex;
/**
* @brief key12 ...datvalue
* @since Version: 1.0.0
**/
QMap<QString, QVector<QString>> _fileGroup;
/**
* @brief ;
* @since Version: 1.0.0
**/
QString _selectionText;
/**
* @brief
* @since Version: 1.0.0
**/
QStringList _filterList;
/**
* @brief
* @since Version: 1.0.0
**/
QTreeWidget* _fileTree;
/**
* @brief
* @since Version: 1.0.0
**/
QTreeWidgetItem* _builtinItem;
/**
* @brief key12@data,valuedat,
* @since Version: 1.0.0
**/
QHash<QString, int> _headFile;
/**
* @brief
* @since Version: 1.0.0
**/
QVector<QString> _fileList;
/**
* @brief QTreeView
* @since Version: 1.0.0
**/
QString _treeWidgetFilename;
/**
* @brief
* @since Version: 1.0.0
**/
const static QString fatherNodeText;
const static QString splitExt;
};
#endif