diff --git a/HanddleAI/HandleAiUi-new/back/fileManager.h b/HanddleAI/HandleAiUi-new/back/fileManager.h
index 02706493..381b8ba0 100644
--- a/HanddleAI/HandleAiUi-new/back/fileManager.h
+++ b/HanddleAI/HandleAiUi-new/back/fileManager.h
@@ -58,8 +58,10 @@ public:
///
///
///
- static void getAllFiles(std::string path, std::vector& files, std::string format)
+ static void getAllFiles(std::string path, std::vector& files, std::string format, int targetDepth = INT_MAX, int depth = 0)
{
+ if (depth >= targetDepth)
+ return;
intptr_t hFile = 0;
struct _finddata_t fileinfo;
std::string p;
@@ -72,7 +74,8 @@ public:
if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
{
files.push_back(p.assign(path).append("\\").append(fileinfo.name));
- getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files, format);
+ depth++;
+ getAllFiles(p.assign(path).append("\\").append(fileinfo.name), files, format, targetDepth ,depth);
}
}
else
@@ -84,6 +87,44 @@ public:
}
}
///
+ /// 获取文件夹下的图片,以vector返回
+ ///
+ ///
+ ///
+ ///
+ static void getAllImages(std::string path, std::vector& files, std::string format, int targetDepth = INT_MAX, int depth = 0)
+ {
+ if (depth >= targetDepth)
+ return;
+ intptr_t hFile = 0;
+ struct _finddata_t fileinfo;
+ std::string p;
+ if ((hFile = _findfirst(p.assign(path).append("\\*" + format).c_str(), &fileinfo)) != -1)
+ {
+ do
+ {
+ if ((fileinfo.attrib & _A_SUBDIR))
+ {
+ if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
+ {
+ std::string filePath = p.assign(path).append("\\").append(fileinfo.name);
+ if (fileManager::isImageFile(filePath) == true)
+ files.push_back(filePath);
+ depth++;
+ getAllFiles(filePath, files, format, targetDepth, depth);
+ }
+ }
+ else
+ {
+ std::string filePath = p.assign(path).append("\\").append(fileinfo.name);
+ if (fileManager::isImageFile(filePath) == true)
+ files.push_back(filePath);
+ }
+ } while (_findnext(hFile, &fileinfo) == 0);
+ _findclose(hFile);
+ }
+ }
+ ///
/// 检查磁盘剩余空间,以GB为单位返回
///
/// example"E://""E://111/222"支持文件夹或者磁盘路径
@@ -191,6 +232,56 @@ public:
}
return true;
}
+ //去除重复分割符
+ static QString normalizePathSeparators(const QString& path) {
+ QString normalizedPath = path;
+
+ // Replace backslashes with forward slashes
+ normalizedPath.replace('\\', '/');
+
+ // Remove consecutive forward slashes
+ QString doubleSlash = "//";
+ while (normalizedPath.contains(doubleSlash)) {
+ normalizedPath.replace(doubleSlash, "/");
+ }
+
+ return normalizedPath;
+ }
+
+ static bool isImageFile(const std::string& filename) {
+ const std::string imageExtensions[] = { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp" };
+
+ std::string lowerFilename = filename;
+ std::transform(lowerFilename.begin(), lowerFilename.end(), lowerFilename.begin(), [](unsigned char c) { return std::tolower(c); });
+
+ for (const std::string& ext : imageExtensions) {
+ if (lowerFilename.size() >= ext.size() &&
+ lowerFilename.compare(lowerFilename.size() - ext.size(), ext.size(), ext) == 0) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ static std::string getFileName(std::string path)
+ {
+ return path.substr(path.find_last_of("\\") + 1, path.find_last_of(".") - path.find_last_of("\\") - 1);
+ }
+ static QString getFileName(const QString& path) {
+ int lastSlashIndex = path.lastIndexOf('/');
+ if (lastSlashIndex == -1) {
+ lastSlashIndex = path.lastIndexOf('\\');
+ }
+
+ int lastDotIndex = path.lastIndexOf('.');
+
+ if (lastDotIndex == -1 || lastDotIndex < lastSlashIndex) {
+ return path.mid(lastSlashIndex + 1);
+ }
+ else {
+ return path.mid(lastSlashIndex + 1, lastDotIndex - lastSlashIndex - 1);
+ }
+ }
};
///
/// 自动删除文件夹,支持按日期删除,按磁盘剩余容量删除,或者两者都是,请在主线程声明qtimer
diff --git a/HanddleAI/HandleAiUi-new/front/pages/historyWidget.h b/HanddleAI/HandleAiUi-new/front/pages/historyWidget.h
new file mode 100644
index 00000000..e27daf12
--- /dev/null
+++ b/HanddleAI/HandleAiUi-new/front/pages/historyWidget.h
@@ -0,0 +1,74 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+class historyWidget :public QWidget
+{
+public:
+ QVBoxLayout* Layout = new QVBoxLayout(this);
+ QHBoxLayout* btnLayout = new QHBoxLayout(this);
+ std::vectorbtns;
+ QLabel* icon, * Title;
+
+ QWidget* widgets = new QWidget();
+ QGridLayout* mainWidgetLayout = new QGridLayout(widgets);
+
+ ImageWidget imageWidget;
+ menuListWidget dirListWidget;
+ historyShowListWidget _historyShowListWidget;
+ historyWidget()
+ {
+ QPalette palette;
+ palette.setColor(QPalette::WindowText, Qt::white);
+ QFont font("微软雅黑", 24, QFont::Bold);
+ QFont font2("微软雅黑", 108, QFont::Bold);
+
+ widgets->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ widgets->setMaximumSize(9999, 9999);
+
+ this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
+ this->setMaximumSize(9999, 9999);
+ this->setObjectName("historyWidget");
+
+ Layout->setContentsMargins(0, 0, 0, 0);
+ Layout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
+
+ Title = new QLabel(u8"历史图片");
+ Title->setFont(font);
+ Title->setPalette(palette);
+ Title->setAlignment(Qt::AlignLeft);
+
+ Layout->addWidget(Title);
+
+ btnLayout->setContentsMargins(0, 0, 0, 0);
+ btnLayout->setAlignment(Qt::AlignLeft);
+
+ Layout->addLayout(btnLayout);
+
+ mainWigetInit();
+ Layout->addWidget(widgets);
+ QObject::connect(&_historyShowListWidget._historyShowListSubThread, &historyShowListSubThread::readImgSignal, &imageWidget, &ImageWidget::showImgOnGraphicsView);
+ }
+ void mainWigetInit()
+ {
+ imageWidget.setTitle("图片查看");
+ mainWidgetLayout->addWidget(&imageWidget , 0, 0);
+ mainWidgetLayout->setColumnStretch(0, 5);
+
+ mainWidgetLayout->addWidget(&dirListWidget, 0, 1);
+ mainWidgetLayout->addWidget(&_historyShowListWidget, 0, 2);
+ mainWidgetLayout->setColumnStretch(1, 1);
+ mainWidgetLayout->setColumnStretch(2, 2);
+
+ dirListWidget.setStyleSheet("background: transparent;");
+ QObject::connect(&dirListWidget, &menuListWidget::switchPathSignal, &_historyShowListWidget, &historyShowListWidget::addImgFromPath);
+ }
+};
+#pragma once
\ No newline at end of file
diff --git a/HanddleAI/HandleAiUi-new/globalStruct.h b/HanddleAI/HandleAiUi-new/globalStruct.h
index 20a799ee..1c18d956 100644
--- a/HanddleAI/HandleAiUi-new/globalStruct.h
+++ b/HanddleAI/HandleAiUi-new/globalStruct.h
@@ -101,10 +101,6 @@ static void cvMatToQPixMap(cv::Mat& src,QPixmap& pixmap)
{
pixmap = QPixmap::fromImage(cvMatToQImage(src));
}
-static std::string getFileName(std::string path)
-{
- return path.substr(path.find_last_of("\\") + 1, path.find_last_of(".") - path.find_last_of("\\") - 1);
-}
Q_DECLARE_METATYPE(imgWidgetShowType)
Q_DECLARE_METATYPE(cv::Mat*)
#pragma once
\ No newline at end of file
diff --git a/HanddleAI/HandleAiUi-new/icon.qrc b/HanddleAI/HandleAiUi-new/icon.qrc
index ad35f767..ad42f0da 100644
--- a/HanddleAI/HandleAiUi-new/icon.qrc
+++ b/HanddleAI/HandleAiUi-new/icon.qrc
@@ -23,6 +23,7 @@
icon/fullscreen-exit.png
icon/minus.png
icon/home.png
+ icon/home2.png
icon/config.png
icon/menu.png
icon/save.png
@@ -33,5 +34,7 @@
icon/loading.gif
icon/sql.png
icon/error.png
+ icon/history.png
+ icon/rollback.png
diff --git a/HanddleAI/HandleAiUi-new/icon/history.png b/HanddleAI/HandleAiUi-new/icon/history.png
new file mode 100644
index 00000000..baa3a5b8
Binary files /dev/null and b/HanddleAI/HandleAiUi-new/icon/history.png differ
diff --git a/HanddleAI/HandleAiUi-new/icon/home2.png b/HanddleAI/HandleAiUi-new/icon/home2.png
new file mode 100644
index 00000000..4245af6d
Binary files /dev/null and b/HanddleAI/HandleAiUi-new/icon/home2.png differ
diff --git a/HanddleAI/HandleAiUi-new/icon/rollback.png b/HanddleAI/HandleAiUi-new/icon/rollback.png
new file mode 100644
index 00000000..2346fdfc
Binary files /dev/null and b/HanddleAI/HandleAiUi-new/icon/rollback.png differ
diff --git a/HanddleAI/HandleAiUi-new/mainwindow.cpp b/HanddleAI/HandleAiUi-new/mainwindow.cpp
index 7c90f6c1..b85e3c4e 100644
--- a/HanddleAI/HandleAiUi-new/mainwindow.cpp
+++ b/HanddleAI/HandleAiUi-new/mainwindow.cpp
@@ -209,6 +209,7 @@ void MainWindow::leftBarInit()
pageWidgets.addWidget(_configSettingWidget);
pageBtns.push_back(configBtn);
+ //手动检测
toolBarButton* manulDet = new toolBarButton(
defaultWidth,
defaultHeight,
@@ -218,6 +219,16 @@ void MainWindow::leftBarInit()
pageWidgets.addWidget(_manualDetWidget);
pageBtns.push_back(manulDet);
+ //历史图片
+ toolBarButton* historyImgs = new toolBarButton(
+ defaultWidth,
+ defaultHeight,
+ QIcon(":/topBar/icon/history.png"),
+ u8"历史图片");
+ _historyWidget = new historyWidget();
+ pageWidgets.addWidget(_historyWidget);
+ pageBtns.push_back(historyImgs);
+
//日志页面
toolBarButton* logBtn = new toolBarButton(
defaultWidth,
@@ -228,6 +239,7 @@ void MainWindow::leftBarInit()
pageWidgets.addWidget(_logWidget);
pageBtns.push_back(logBtn);
+ //SQL
toolBarButton* sqlBtn = new toolBarButton(
defaultWidth,
defaultHeight,
diff --git a/HanddleAI/HandleAiUi-new/mainwindow.h b/HanddleAI/HandleAiUi-new/mainwindow.h
index 55ddff7d..78a14a63 100644
--- a/HanddleAI/HandleAiUi-new/mainwindow.h
+++ b/HanddleAI/HandleAiUi-new/mainwindow.h
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#pragma execution_character_set("utf-8")
@@ -52,6 +53,7 @@ public:
logWidget* _logWidget;
sqlControlWidget* _sqlControlWidget;
manualDetWidget* _manualDetWidget;
+ historyWidget* _historyWidget;
private:
Ui::MainWindow* ui;
fbBridge* fbBridgePtr;
@@ -98,7 +100,6 @@ public slots:
showMinimized();
}
-
void toggleMaximize(toggleMaximizeEnum toggleMaximizeEnumIn = reverse)
{
switch (toggleMaximizeEnumIn)
diff --git a/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h b/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h
index 9e912756..54be4d28 100644
--- a/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h
+++ b/HanddleAI/HandleAiUi-new/uiModule/uiModule_historyListWidget.h
@@ -4,49 +4,152 @@
#include
#include
#include
-class historyItem : public QWidget
+#include
+#include
+class historyItemWidget : public QWidget
{
public:
QGridLayout* layout = new QGridLayout(this);
- QLabel* resultShow = new QLabel("测试测试");
+ QLabel* resultLabel = new QLabel(this);
+ QLabel* fileNameLabel = new QLabel(this);
+ QLabel* filePathHide = new QLabel(this);
+
QLabel* imgShow = new QLabel();
- //QIcon* icon = new QIcon(":/topBar/icon/fullscreen.png");
- historyItem()
+ historyItemWidget(QString title,std::string filePath,QPixmap img , QSize parentSize)
{
- layout->addWidget(resultShow,0,0);
- imgShow->setPixmap(QPixmap(":/topBar/icon/waiting.png"));
+ if (img.isNull())
+ return;
+ QFont font("微软雅黑", 12, QFont::Bold);
+
+ resultLabel->setText(title);
+ resultLabel->setFont(font);
+ resultLabel->setStyleSheet("QLabel { color: white; }");
+ layout->addWidget(resultLabel,0,0);
+
+ filePathHide->setText(QString::fromStdString(filePath));
+ filePathHide->hide();
+ filePathHide->setObjectName("path");
+
+ fileNameLabel->setText(QString::fromStdString(fileManager::getFileName(filePath)));
+ fileNameLabel->setFont(font);
+ fileNameLabel->setStyleSheet("QLabel { color: white; }");
+ layout->addWidget(fileNameLabel, 1, 0);
+
+ int iHeight = img.size().height();
+ int pHeight = (parentSize.height() / 5);
+ double widthScale = iHeight / pHeight;
+
+ img = img.scaled(img.size().width() * widthScale, parentSize.height() / 5, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ imgShow->setPixmap(img);
layout->addWidget(imgShow,0,1);
+ layout->setContentsMargins(0, 0, 0, 0);
}
};
+class historyShowListSubThread : public QThread
+{
+ Q_OBJECT
+public:
+ QMutex queueMutex;
+ QQueue> queue;
+ void run()
+ {
+ while (queue.size() > 0)
+ {
+ queueMutex.lock();
+ std::pair data = queue.dequeue();
+ queueMutex.unlock();
+ if (data.first == 0)
+ {
+ cv::Mat mat = cv::imread(data.second, cv::IMREAD_REDUCED_COLOR_8);
+ if (mat.empty() == true)
+ continue;
+ QPixmap map;
+ cvMatToQPixMap(mat, map);
+ addDataSignal((data.second.find("OK") != std::string::npos), data.second, map);
+ }
+ else if (data.first == 1)
+ {
+ cv::Mat mat = cv::imread(data.second, -1);
+ if (mat.empty() == true)
+ return;
+ QPixmap map;
+ cvMatToQPixMap(mat, map);
+ emit readImgSignal(map);
+ }
+ }
+ }
+public slots:
+ void asyncReadIcons(std::vector files)
+ {
+ for (auto file : files)
+ {
+ queueMutex.lock();
+ queue.enqueue(std::make_pair(0, file));
+ queueMutex.unlock();
+ this->start();
+ }
+ }
+ void asyncReadImg(std::string filePath)
+ {
+ queueMutex.lock();
+ queue.enqueue(std::make_pair(1, filePath));
+ queueMutex.unlock();
+ this->start();
+ }
+signals:
+ void addDataSignal(bool isOk, std::string filePath, QPixmap img);
+ void readImgSignal(QPixmap img);
+};
class historyShowListWidget : public QWidget
{
+ Q_OBJECT
public:
QLabel* title = new QLabel(u8"历史记录");
QListWidget* showDataListWidget = new QListWidget();
QVBoxLayout* layout = new QVBoxLayout(this);
+ historyShowListSubThread _historyShowListSubThread;
historyShowListWidget()
{
QPalette palette;
palette.setColor(QPalette::WindowText, Qt::white);
- QFont font("微软雅黑", 12, QFont::Bold);
+ QFont font("微软雅黑", 16, QFont::Bold);
QHBoxLayout* hLayout = new QHBoxLayout();
title->setPalette(palette);
title->setFont(font);
+ title->setStyleSheet("QLabel { color: white; }");
layout->addWidget(title);
layout->addWidget(showDataListWidget);
this->setStyleSheet("background: transparent;");
-
- //addData();
+ QObject::connect(this, &historyShowListWidget::asyncReadImgSignal, &_historyShowListSubThread, &historyShowListSubThread::asyncReadImg);
+ QObject::connect(this, &historyShowListWidget::asyncReadIconsSignal, &_historyShowListSubThread, &historyShowListSubThread::asyncReadIcons);
+ QObject::connect(&_historyShowListSubThread, &historyShowListSubThread::addDataSignal, this, &historyShowListWidget::addData);
+ QObject::connect(showDataListWidget, &QListWidget::itemClicked, this, &historyShowListWidget::itemClick);
}
- void addData(bool isOk,QPixmap& img)
+public slots:
+ void addImgFromPath(QString path)
{
- QWidget* widget = new historyItem();
+ std::vector files;
+ fileManager::getAllImages(path.toStdString(), files, "",1);
+ if (files.size() == 0)
+ return;
+ showDataListWidget->clear();
+ emit asyncReadIconsSignal(files);
+
+ }
+ void addData(bool isOk, std::string filePath, QPixmap img)
+ {
+ QString title;
+ if (isOk == true)
+ title = "OK";
+ else
+ title = "NG";
+ QWidget* widget = new historyItemWidget(title, filePath, img, size());
QListWidgetItem* item = new QListWidgetItem();
showDataListWidget->addItem(item);
showDataListWidget->setItemWidget(item, widget);
@@ -57,4 +160,23 @@ public:
{
}
-};
\ No newline at end of file
+private slots:
+ void itemClick(QListWidgetItem* item)
+ {
+ QWidget* widget = showDataListWidget->itemWidget(item);
+ const QList labels = widget->findChildren();
+ for (const QLabel* label : labels)
+ {
+ if (label->objectName() == "path")
+ {
+ QString path = label->text();
+ emit asyncReadImgSignal(path.toStdString());
+ }
+ }
+ }
+signals:
+ void asyncReadImgSignal(std::string);
+ void asyncReadIconsSignal(std::vector);
+ void itemClickSignal(QString path);
+};
+#pragma once
\ No newline at end of file
diff --git a/HanddleAI/HandleAiUi-new/uiModule/uiModule_imageView.h b/HanddleAI/HandleAiUi-new/uiModule/uiModule_imageView.h
index 84805a0b..2eecfee2 100644
--- a/HanddleAI/HandleAiUi-new/uiModule/uiModule_imageView.h
+++ b/HanddleAI/HandleAiUi-new/uiModule/uiModule_imageView.h
@@ -173,6 +173,7 @@ private:
QMutex mutex;
};
class ImageWidget : public QWidget {
+ Q_OBJECT
public:
ImageWidget(QWidget* parent = nullptr) : QWidget(parent) {
QVBoxLayout* layout = new QVBoxLayout(this);
@@ -236,6 +237,7 @@ public:
void setTitle(const QString& text) {
label->setText(text);
}
+public slots:
//set不一定显示,要根据当前显示的类型决定
void setOriImg(QPixmap oriImgInput)
{
diff --git a/HanddleAI/HandleAiUi-new/uiModule/uiModule_menuListWdiget.h b/HanddleAI/HandleAiUi-new/uiModule/uiModule_menuListWdiget.h
new file mode 100644
index 00000000..4503f6f0
--- /dev/null
+++ b/HanddleAI/HandleAiUi-new/uiModule/uiModule_menuListWdiget.h
@@ -0,0 +1,134 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+class toolItemWidget :public QWidget
+{
+public:
+ QHBoxLayout* layout = new QHBoxLayout(this);
+ fancyButton* returnBtn;
+ fancyButton* homeBtn;
+ QLabel* dirLabel = new QLabel();
+ toolItemWidget(QString title)
+ {
+ QFont font("微软雅黑", 24, QFont::Bold);
+ QPalette palette;
+ palette.setColor(QPalette::WindowText, Qt::white);
+
+ returnBtn = new fancyButton(40,40, QIcon(":/topBar/icon/rollback.png"),"返回上一级");
+ layout->addWidget(returnBtn);
+
+ homeBtn = new fancyButton(40, 40, QIcon(":/topBar/icon/home2.png"), "返回目录");
+ layout->addWidget(homeBtn);
+
+ dirLabel->setText(title);
+ dirLabel->setFont(font);
+ dirLabel->setStyleSheet("QLabel { color: white; }");
+
+ layout->addWidget(dirLabel);
+ layout->setAlignment(Qt::AlignLeft);
+ layout->setContentsMargins(0, 0, 0, 0);
+ }
+};
+
+class menuListWidget : public QListWidget
+{
+ Q_OBJECT
+public:
+ QString basePath = bridge.back.json.imgSavePath;
+ menuListWidget()
+ {
+ _toolItemWidget = new toolItemWidget(basePath);
+ pathList.append(basePath);
+ refreshListWidget();
+ targetDepth = pathList.size();
+ _toolItemWidget->returnBtn->setDisabled(true);
+ _toolItemWidget->homeBtn->setDisabled(true);
+ QObject::connect(this, &QListWidget::itemClicked, this, &menuListWidget::itemClick);
+ //jumpWithPath("D://////CCD/yuantu/2024-06-04/23H/TEST");
+ }
+ void addTools(QString title)
+ {
+ QListWidgetItem* item = new QListWidgetItem();
+ this->addItem(item);
+ if (_toolItemWidget != nullptr)
+ delete _toolItemWidget;
+ _toolItemWidget = new toolItemWidget(title);
+ item->setSizeHint(_toolItemWidget->sizeHint());
+ QObject::connect(_toolItemWidget->returnBtn, &QPushButton::clicked, this, &menuListWidget::returnLast);
+ QObject::connect(_toolItemWidget->homeBtn, &QPushButton::clicked, this, &menuListWidget::toMenu);
+ this->setItemWidget(item, _toolItemWidget);
+ }
+ void returnLast()
+ {
+ if (depth <= targetDepth)
+ return;
+ depth--;
+ pathList.removeLast();
+ refreshListWidget();
+ if (depth <= targetDepth)
+ {
+ _toolItemWidget->returnBtn->setDisabled(true);
+ _toolItemWidget->homeBtn->setDisabled(true);
+ }
+ }
+ void refreshListWidget()
+ {
+ this->clear();
+ addTools(pathList.last());
+ QString path;
+ for (auto p : pathList)
+ path.append(p + "/");
+ QFont font("微软雅黑", 18, QFont::Bold);
+ std::vector result = fileManager::getAllDirs(path);
+ for (auto dirName : result)
+ {
+ QListWidgetItem* item = new QListWidgetItem(QString::fromStdString(dirName));
+ item->setFont(font);
+ item->setForeground(QBrush(QColor(Qt::white)));
+ this->addItem(item);
+ }
+ emit switchPathSignal(path);
+ }
+ void toMenu()
+ {
+ jumpWithPath(basePath);
+ }
+ void jumpWithPath(QString path)
+ {
+ //分割字符串
+ path = fileManager::normalizePathSeparators(path);
+ QStringList list = path.split("/");
+ if (list.size() == 0)
+ list = path.split("\\");
+ if (list.size() == 0)
+ return;
+
+ //写入
+ pathList.clear();
+ depth = list.size() - 1;
+ for (auto str : list)
+ pathList.append(str);
+
+ refreshListWidget();
+ }
+private:
+ toolItemWidget* _toolItemWidget = nullptr;
+ int depth = 0,targetDepth = 0;
+ QLinkedList pathList;
+private slots:
+ void itemClick(QListWidgetItem* item)
+ {
+ if (item->text().isEmpty())
+ return;
+ pathList.append(item->text());
+ depth++;
+ refreshListWidget();
+ }
+signals:
+ void switchPathSignal(QString path);
+};
+#pragma once
\ No newline at end of file
diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.exp b/lib/Hd_3DCameraLMI_module_PointLazer.exp
index 6a8fa414..d8e955a0 100644
Binary files a/lib/Hd_3DCameraLMI_module_PointLazer.exp and b/lib/Hd_3DCameraLMI_module_PointLazer.exp differ
diff --git a/lib/Hd_3DCameraLMI_module_PointLazer.lib b/lib/Hd_3DCameraLMI_module_PointLazer.lib
index 36c75b14..b04150d6 100644
Binary files a/lib/Hd_3DCameraLMI_module_PointLazer.lib and b/lib/Hd_3DCameraLMI_module_PointLazer.lib differ
diff --git a/lib/Hd_DalsaCamera_module.exp b/lib/Hd_DalsaCamera_module.exp
index da2ea450..27cfbc16 100644
Binary files a/lib/Hd_DalsaCamera_module.exp and b/lib/Hd_DalsaCamera_module.exp differ
diff --git a/lib/Hd_DalsaCamera_module.lib b/lib/Hd_DalsaCamera_module.lib
index cc2d36e5..9c451b2e 100644
Binary files a/lib/Hd_DalsaCamera_module.lib and b/lib/Hd_DalsaCamera_module.lib differ
diff --git a/lib/Hd_FinsTcp_module.exp b/lib/Hd_FinsTcp_module.exp
index 26d6e581..8842446e 100644
Binary files a/lib/Hd_FinsTcp_module.exp and b/lib/Hd_FinsTcp_module.exp differ
diff --git a/lib/Hd_FinsTcp_module.lib b/lib/Hd_FinsTcp_module.lib
index a50e177e..f679fdae 100644
Binary files a/lib/Hd_FinsTcp_module.lib and b/lib/Hd_FinsTcp_module.lib differ
diff --git a/lib/Hd_MvCamera_module_GENTL.exp b/lib/Hd_MvCamera_module_GENTL.exp
index 6429d839..ebd6dce5 100644
Binary files a/lib/Hd_MvCamera_module_GENTL.exp and b/lib/Hd_MvCamera_module_GENTL.exp differ
diff --git a/lib/Hd_MvCamera_module_GENTL.lib b/lib/Hd_MvCamera_module_GENTL.lib
index a65c613a..578b535e 100644
Binary files a/lib/Hd_MvCamera_module_GENTL.lib and b/lib/Hd_MvCamera_module_GENTL.lib differ
diff --git a/lib/Hd_MvCamera_module_GIGE.exp b/lib/Hd_MvCamera_module_GIGE.exp
index 08f548f7..1d1dc4c0 100644
Binary files a/lib/Hd_MvCamera_module_GIGE.exp and b/lib/Hd_MvCamera_module_GIGE.exp differ
diff --git a/lib/Hd_MvCamera_module_GIGE.lib b/lib/Hd_MvCamera_module_GIGE.lib
index b1396b9b..f5ba12df 100644
Binary files a/lib/Hd_MvCamera_module_GIGE.lib and b/lib/Hd_MvCamera_module_GIGE.lib differ
diff --git a/lib/Hd_ResultsSummary_module.exp b/lib/Hd_ResultsSummary_module.exp
index e310258b..98647907 100644
Binary files a/lib/Hd_ResultsSummary_module.exp and b/lib/Hd_ResultsSummary_module.exp differ
diff --git a/lib/Hd_ResultsSummary_module.lib b/lib/Hd_ResultsSummary_module.lib
index a61fbd40..ff33633f 100644
Binary files a/lib/Hd_ResultsSummary_module.lib and b/lib/Hd_ResultsSummary_module.lib differ
diff --git a/lib/Hd_SocketModule_ModbusTcp.exp b/lib/Hd_SocketModule_ModbusTcp.exp
index 49ff857d..30c37bd2 100644
Binary files a/lib/Hd_SocketModule_ModbusTcp.exp and b/lib/Hd_SocketModule_ModbusTcp.exp differ
diff --git a/lib/Hd_SocketModule_ModbusTcp.lib b/lib/Hd_SocketModule_ModbusTcp.lib
index 5ec47732..7d987e79 100644
Binary files a/lib/Hd_SocketModule_ModbusTcp.lib and b/lib/Hd_SocketModule_ModbusTcp.lib differ