1、恢复模板加载功能

修改模板查找方式 使用模板名替换ID
修改engine模块内添加删除逻辑 (原有的存在bug)
master
bob.pan 5 years ago
parent 9acbdfb7e8
commit 13785f3d5a

@ -18,16 +18,16 @@
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
<property name="leftMargin"> <property name="leftMargin">
<number>2</number> <number>5</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>2</number> <number>5</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>2</number> <number>5</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>2</number> <number>5</number>
</property> </property>
<item> <item>
<widget class="QTableWidget" name="tableWidget"> <widget class="QTableWidget" name="tableWidget">

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DeviceDlg</class>
<widget class="QDialog" name="DeviceDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>280</width>
<height>181</height>
</rect>
</property>
<property name="windowTitle">
<string>设备信息</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="3">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>名称:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>描述:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="lineEdit_2"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>类型:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBox"/>
</item>
</layout>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>97</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="1">
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>取消</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

@ -1,110 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DeviceListDialog</class>
<widget class="QDialog" name="DeviceListDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>630</width>
<height>387</height>
</rect>
</property>
<property name="windowTitle">
<string>设备信息</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>设备:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>搜索</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>68</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<column>
<property name="text">
<string>编号</string>
</property>
</column>
<column>
<property name="text">
<string>名称</string>
</property>
</column>
<column>
<property name="text">
<string>描述</string>
</property>
</column>
<column>
<property name="text">
<string>类型</string>
</property>
</column>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>408</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_5">
<property name="text">
<string>确定</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

@ -1,118 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>DeviceMgrDialog</class>
<widget class="QDialog" name="DeviceMgrDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>630</width>
<height>387</height>
</rect>
</property>
<property name="windowTitle">
<string>设备管理</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>设备:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit"/>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>搜索</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>应用</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QTableWidget" name="tableWidget">
<column>
<property name="text">
<string>编号</string>
</property>
</column>
<column>
<property name="text">
<string>名称</string>
</property>
</column>
<column>
<property name="text">
<string>描述</string>
</property>
</column>
<column>
<property name="text">
<string>类型</string>
</property>
</column>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>218</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_3">
<property name="text">
<string>新增</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>编辑</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_5">
<property name="text">
<string>删除</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_6">
<property name="text">
<string>关闭</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

@ -1,155 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'DeviceMgrDlg.ui'
**
** Created by: Qt User Interface Compiler version 5.9.4
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_DEVICEMGRDLG_H
#define UI_DEVICEMGRDLG_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QTableWidget>
#include <QtWidgets/QVBoxLayout>
QT_BEGIN_NAMESPACE
class Ui_DeviceMgrDialog
{
public:
QVBoxLayout *verticalLayout;
QHBoxLayout *horizontalLayout;
QLabel *label;
QLineEdit *lineEdit;
QPushButton *pushButton;
QPushButton *pushButton_2;
QTableWidget *tableWidget;
QHBoxLayout *horizontalLayout_2;
QSpacerItem *horizontalSpacer;
QPushButton *pushButton_3;
QPushButton *pushButton_4;
QPushButton *pushButton_5;
QPushButton *pushButton_6;
void setupUi(QDialog *DeviceMgrDialog)
{
if (DeviceMgrDialog->objectName().isEmpty())
DeviceMgrDialog->setObjectName(QStringLiteral("DeviceMgrDialog"));
DeviceMgrDialog->resize(630, 387);
verticalLayout = new QVBoxLayout(DeviceMgrDialog);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
label = new QLabel(DeviceMgrDialog);
label->setObjectName(QStringLiteral("label"));
horizontalLayout->addWidget(label);
lineEdit = new QLineEdit(DeviceMgrDialog);
lineEdit->setObjectName(QStringLiteral("lineEdit"));
horizontalLayout->addWidget(lineEdit);
pushButton = new QPushButton(DeviceMgrDialog);
pushButton->setObjectName(QStringLiteral("pushButton"));
horizontalLayout->addWidget(pushButton);
pushButton_2 = new QPushButton(DeviceMgrDialog);
pushButton_2->setObjectName(QStringLiteral("pushButton_2"));
horizontalLayout->addWidget(pushButton_2);
verticalLayout->addLayout(horizontalLayout);
tableWidget = new QTableWidget(DeviceMgrDialog);
if (tableWidget->columnCount() < 4)
tableWidget->setColumnCount(4);
QTableWidgetItem *__qtablewidgetitem = new QTableWidgetItem();
tableWidget->setHorizontalHeaderItem(0, __qtablewidgetitem);
QTableWidgetItem *__qtablewidgetitem1 = new QTableWidgetItem();
tableWidget->setHorizontalHeaderItem(1, __qtablewidgetitem1);
QTableWidgetItem *__qtablewidgetitem2 = new QTableWidgetItem();
tableWidget->setHorizontalHeaderItem(2, __qtablewidgetitem2);
QTableWidgetItem *__qtablewidgetitem3 = new QTableWidgetItem();
tableWidget->setHorizontalHeaderItem(3, __qtablewidgetitem3);
tableWidget->setObjectName(QStringLiteral("tableWidget"));
verticalLayout->addWidget(tableWidget);
horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
horizontalSpacer = new QSpacerItem(218, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
pushButton_3 = new QPushButton(DeviceMgrDialog);
pushButton_3->setObjectName(QStringLiteral("pushButton_3"));
horizontalLayout_2->addWidget(pushButton_3);
pushButton_4 = new QPushButton(DeviceMgrDialog);
pushButton_4->setObjectName(QStringLiteral("pushButton_4"));
horizontalLayout_2->addWidget(pushButton_4);
pushButton_5 = new QPushButton(DeviceMgrDialog);
pushButton_5->setObjectName(QStringLiteral("pushButton_5"));
horizontalLayout_2->addWidget(pushButton_5);
pushButton_6 = new QPushButton(DeviceMgrDialog);
pushButton_6->setObjectName(QStringLiteral("pushButton_6"));
horizontalLayout_2->addWidget(pushButton_6);
verticalLayout->addLayout(horizontalLayout_2);
retranslateUi(DeviceMgrDialog);
QMetaObject::connectSlotsByName(DeviceMgrDialog);
} // setupUi
void retranslateUi(QDialog *DeviceMgrDialog)
{
DeviceMgrDialog->setWindowTitle(QApplication::translate("DeviceMgrDialog", "\350\256\276\345\244\207\347\256\241\347\220\206", Q_NULLPTR));
label->setText(QApplication::translate("DeviceMgrDialog", "\350\256\276\345\244\207\357\274\232", Q_NULLPTR));
pushButton->setText(QApplication::translate("DeviceMgrDialog", "\346\220\234\347\264\242", Q_NULLPTR));
pushButton_2->setText(QApplication::translate("DeviceMgrDialog", "\345\272\224\347\224\250", Q_NULLPTR));
QTableWidgetItem *___qtablewidgetitem = tableWidget->horizontalHeaderItem(0);
___qtablewidgetitem->setText(QApplication::translate("DeviceMgrDialog", "\347\274\226\345\217\267", Q_NULLPTR));
QTableWidgetItem *___qtablewidgetitem1 = tableWidget->horizontalHeaderItem(1);
___qtablewidgetitem1->setText(QApplication::translate("DeviceMgrDialog", "\345\220\215\347\247\260", Q_NULLPTR));
QTableWidgetItem *___qtablewidgetitem2 = tableWidget->horizontalHeaderItem(2);
___qtablewidgetitem2->setText(QApplication::translate("DeviceMgrDialog", "\346\217\217\350\277\260", Q_NULLPTR));
QTableWidgetItem *___qtablewidgetitem3 = tableWidget->horizontalHeaderItem(3);
___qtablewidgetitem3->setText(QApplication::translate("DeviceMgrDialog", "\347\261\273\345\236\213", Q_NULLPTR));
pushButton_3->setText(QApplication::translate("DeviceMgrDialog", "\346\226\260\345\242\236", Q_NULLPTR));
pushButton_4->setText(QApplication::translate("DeviceMgrDialog", "\347\274\226\350\276\221", Q_NULLPTR));
pushButton_5->setText(QApplication::translate("DeviceMgrDialog", "\345\210\240\351\231\244", Q_NULLPTR));
pushButton_6->setText(QApplication::translate("DeviceMgrDialog", "\345\205\263\351\227\255", Q_NULLPTR));
} // retranslateUi
};
namespace Ui {
class DeviceMgrDialog: public Ui_DeviceMgrDialog {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_DEVICEMGRDLG_H

@ -19,7 +19,6 @@
#include <QtWidgets/QHBoxLayout> #include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView> #include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel> #include <QtWidgets/QLabel>
#include <QtWidgets/QListWidget>
#include <QtWidgets/QMainWindow> #include <QtWidgets/QMainWindow>
#include <QtWidgets/QPushButton> #include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem> #include <QtWidgets/QSpacerItem>
@ -27,6 +26,7 @@
#include <QtWidgets/QStatusBar> #include <QtWidgets/QStatusBar>
#include <QtWidgets/QTableWidget> #include <QtWidgets/QTableWidget>
#include <QtWidgets/QTextEdit> #include <QtWidgets/QTextEdit>
#include <QtWidgets/QToolBar>
#include <QtWidgets/QWidget> #include <QtWidgets/QWidget>
#include "lpTreeWidget.h" #include "lpTreeWidget.h"
#include "lpimgviewer.h" #include "lpimgviewer.h"
@ -36,7 +36,9 @@ QT_BEGIN_NAMESPACE
class Ui_MainFrame class Ui_MainFrame
{ {
public: public:
QAction *actionTest; QAction *actionadd;
QAction *actiondel;
QAction *actionsave;
QWidget *centralwidget; QWidget *centralwidget;
QGridLayout *gridLayout_2; QGridLayout *gridLayout_2;
QHBoxLayout *horizontalLayout_2; QHBoxLayout *horizontalLayout_2;
@ -55,18 +57,11 @@ public:
lpImgViewer *gv_output; lpImgViewer *gv_output;
QWidget *layoutWidget1; QWidget *layoutWidget1;
QHBoxLayout *horizontalLayout_5; QHBoxLayout *horizontalLayout_5;
QGroupBox *groupBox;
QGridLayout *gridLayout_6;
QGridLayout *gridLayout;
QHBoxLayout *horizontalLayout;
QPushButton *pushButton_8;
QSpacerItem *horizontalSpacer_3;
QPushButton *pushButton_next;
QListWidget *listWidget;
QGroupBox *groupBox_3; QGroupBox *groupBox_3;
QGridLayout *gridLayout_7; QGridLayout *gridLayout_7;
QTextEdit *textEdit; QTextEdit *textEdit;
QHBoxLayout *horizontalLayout_6; QHBoxLayout *horizontalLayout_6;
QPushButton *m_pbLoadImage;
QSpacerItem *horizontalSpacer_2; QSpacerItem *horizontalSpacer_2;
QPushButton *pushButton_5; QPushButton *pushButton_5;
QLabel *label_pixel_info; QLabel *label_pixel_info;
@ -79,29 +74,26 @@ public:
QGridLayout *gridLayout_4; QGridLayout *gridLayout_4;
QTableWidget *tableWidget; QTableWidget *tableWidget;
QStatusBar *statusBar; QStatusBar *statusBar;
QToolBar *toolBar;
void setupUi(QMainWindow *MainFrame) void setupUi(QMainWindow *MainFrame)
{ {
if (MainFrame->objectName().isEmpty()) if (MainFrame->objectName().isEmpty())
MainFrame->setObjectName(QStringLiteral("MainFrame")); MainFrame->setObjectName(QStringLiteral("MainFrame"));
MainFrame->setWindowModality(Qt::ApplicationModal); MainFrame->setWindowModality(Qt::ApplicationModal);
MainFrame->resize(963, 664); MainFrame->resize(1050, 755);
actionTest = new QAction(MainFrame); actionadd = new QAction(MainFrame);
actionTest->setObjectName(QStringLiteral("actionTest")); actionadd->setObjectName(QStringLiteral("actionadd"));
QIcon icon; actiondel = new QAction(MainFrame);
QString iconThemeName = QStringLiteral("1"); actiondel->setObjectName(QStringLiteral("actiondel"));
if (QIcon::hasThemeIcon(iconThemeName)) { actionsave = new QAction(MainFrame);
icon = QIcon::fromTheme(iconThemeName); actionsave->setObjectName(QStringLiteral("actionsave"));
} else {
icon.addFile(QStringLiteral(":/img/resource/save.png"), QSize(), QIcon::Normal, QIcon::Off);
}
actionTest->setIcon(icon);
centralwidget = new QWidget(MainFrame); centralwidget = new QWidget(MainFrame);
centralwidget->setObjectName(QStringLiteral("centralwidget")); centralwidget->setObjectName(QStringLiteral("centralwidget"));
gridLayout_2 = new QGridLayout(centralwidget); gridLayout_2 = new QGridLayout(centralwidget);
gridLayout_2->setSpacing(0); gridLayout_2->setSpacing(5);
gridLayout_2->setObjectName(QStringLiteral("gridLayout_2")); gridLayout_2->setObjectName(QStringLiteral("gridLayout_2"));
gridLayout_2->setContentsMargins(0, 0, 0, 0); gridLayout_2->setContentsMargins(5, 5, 5, 5);
horizontalLayout_2 = new QHBoxLayout(); horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2")); horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
m_pbSaveBtn = new QPushButton(centralwidget); m_pbSaveBtn = new QPushButton(centralwidget);
@ -109,9 +101,9 @@ public:
QFont font; QFont font;
font.setPointSize(11); font.setPointSize(11);
m_pbSaveBtn->setFont(font); m_pbSaveBtn->setFont(font);
QIcon icon1; QIcon icon;
icon1.addFile(QStringLiteral(":/img/resource/save.png"), QSize(), QIcon::Normal, QIcon::Off); icon.addFile(QStringLiteral(":/img/resource/save.png"), QSize(), QIcon::Normal, QIcon::Off);
m_pbSaveBtn->setIcon(icon1); m_pbSaveBtn->setIcon(icon);
m_pbSaveBtn->setIconSize(QSize(20, 20)); m_pbSaveBtn->setIconSize(QSize(20, 20));
m_pbSaveBtn->setFlat(true); m_pbSaveBtn->setFlat(true);
@ -131,9 +123,19 @@ public:
splitter_3 = new QSplitter(centralwidget); splitter_3 = new QSplitter(centralwidget);
splitter_3->setObjectName(QStringLiteral("splitter_3")); splitter_3->setObjectName(QStringLiteral("splitter_3"));
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(splitter_3->sizePolicy().hasHeightForWidth());
splitter_3->setSizePolicy(sizePolicy);
splitter_3->setOrientation(Qt::Horizontal); splitter_3->setOrientation(Qt::Horizontal);
treeWidget = new LpTreeWidget(splitter_3); treeWidget = new LpTreeWidget(splitter_3);
treeWidget->setObjectName(QStringLiteral("treeWidget")); treeWidget->setObjectName(QStringLiteral("treeWidget"));
QSizePolicy sizePolicy1(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy1.setHorizontalStretch(3);
sizePolicy1.setVerticalStretch(0);
sizePolicy1.setHeightForWidth(treeWidget->sizePolicy().hasHeightForWidth());
treeWidget->setSizePolicy(sizePolicy1);
QFont font1; QFont font1;
font1.setFamily(QStringLiteral("Consolas")); font1.setFamily(QStringLiteral("Consolas"));
font1.setPointSize(11); font1.setPointSize(11);
@ -141,6 +143,11 @@ public:
splitter_3->addWidget(treeWidget); splitter_3->addWidget(treeWidget);
splitter_2 = new QSplitter(splitter_3); splitter_2 = new QSplitter(splitter_3);
splitter_2->setObjectName(QStringLiteral("splitter_2")); splitter_2->setObjectName(QStringLiteral("splitter_2"));
QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy2.setHorizontalStretch(8);
sizePolicy2.setVerticalStretch(0);
sizePolicy2.setHeightForWidth(splitter_2->sizePolicy().hasHeightForWidth());
splitter_2->setSizePolicy(sizePolicy2);
splitter_2->setOrientation(Qt::Vertical); splitter_2->setOrientation(Qt::Vertical);
frame = new QFrame(splitter_2); frame = new QFrame(splitter_2);
frame->setObjectName(QStringLiteral("frame")); frame->setObjectName(QStringLiteral("frame"));
@ -183,44 +190,6 @@ public:
horizontalLayout_5->setSpacing(1); horizontalLayout_5->setSpacing(1);
horizontalLayout_5->setObjectName(QStringLiteral("horizontalLayout_5")); horizontalLayout_5->setObjectName(QStringLiteral("horizontalLayout_5"));
horizontalLayout_5->setContentsMargins(0, 0, 0, 0); horizontalLayout_5->setContentsMargins(0, 0, 0, 0);
groupBox = new QGroupBox(layoutWidget1);
groupBox->setObjectName(QStringLiteral("groupBox"));
gridLayout_6 = new QGridLayout(groupBox);
gridLayout_6->setObjectName(QStringLiteral("gridLayout_6"));
gridLayout_6->setContentsMargins(1, 1, 1, 1);
gridLayout = new QGridLayout();
gridLayout->setObjectName(QStringLiteral("gridLayout"));
gridLayout->setContentsMargins(2, 2, 2, 2);
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
pushButton_8 = new QPushButton(groupBox);
pushButton_8->setObjectName(QStringLiteral("pushButton_8"));
horizontalLayout->addWidget(pushButton_8);
horizontalSpacer_3 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_3);
pushButton_next = new QPushButton(groupBox);
pushButton_next->setObjectName(QStringLiteral("pushButton_next"));
horizontalLayout->addWidget(pushButton_next);
gridLayout->addLayout(horizontalLayout, 1, 0, 1, 1);
listWidget = new QListWidget(groupBox);
listWidget->setObjectName(QStringLiteral("listWidget"));
gridLayout->addWidget(listWidget, 0, 0, 1, 2);
gridLayout_6->addLayout(gridLayout, 0, 0, 1, 1);
horizontalLayout_5->addWidget(groupBox);
groupBox_3 = new QGroupBox(layoutWidget1); groupBox_3 = new QGroupBox(layoutWidget1);
groupBox_3->setObjectName(QStringLiteral("groupBox_3")); groupBox_3->setObjectName(QStringLiteral("groupBox_3"));
gridLayout_7 = new QGridLayout(groupBox_3); gridLayout_7 = new QGridLayout(groupBox_3);
@ -233,6 +202,11 @@ public:
horizontalLayout_6 = new QHBoxLayout(); horizontalLayout_6 = new QHBoxLayout();
horizontalLayout_6->setObjectName(QStringLiteral("horizontalLayout_6")); horizontalLayout_6->setObjectName(QStringLiteral("horizontalLayout_6"));
m_pbLoadImage = new QPushButton(groupBox_3);
m_pbLoadImage->setObjectName(QStringLiteral("m_pbLoadImage"));
horizontalLayout_6->addWidget(m_pbLoadImage);
horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_6->addItem(horizontalSpacer_2); horizontalLayout_6->addItem(horizontalSpacer_2);
@ -249,7 +223,6 @@ public:
horizontalLayout_5->addWidget(groupBox_3); horizontalLayout_5->addWidget(groupBox_3);
horizontalLayout_5->setStretch(0, 1); horizontalLayout_5->setStretch(0, 1);
horizontalLayout_5->setStretch(1, 1);
splitter->addWidget(layoutWidget1); splitter->addWidget(layoutWidget1);
gridLayout_3->addWidget(splitter, 1, 0, 1, 1); gridLayout_3->addWidget(splitter, 1, 0, 1, 1);
@ -325,6 +298,13 @@ public:
statusBar = new QStatusBar(MainFrame); statusBar = new QStatusBar(MainFrame);
statusBar->setObjectName(QStringLiteral("statusBar")); statusBar->setObjectName(QStringLiteral("statusBar"));
MainFrame->setStatusBar(statusBar); MainFrame->setStatusBar(statusBar);
toolBar = new QToolBar(MainFrame);
toolBar->setObjectName(QStringLiteral("toolBar"));
MainFrame->addToolBar(Qt::TopToolBarArea, toolBar);
toolBar->addAction(actionadd);
toolBar->addAction(actiondel);
toolBar->addAction(actionsave);
retranslateUi(MainFrame); retranslateUi(MainFrame);
@ -334,15 +314,15 @@ public:
void retranslateUi(QMainWindow *MainFrame) void retranslateUi(QMainWindow *MainFrame)
{ {
MainFrame->setWindowTitle(QApplication::translate("MainFrame", "\346\240\207\345\256\232", Q_NULLPTR)); MainFrame->setWindowTitle(QApplication::translate("MainFrame", "\346\240\207\345\256\232", Q_NULLPTR));
actionTest->setText(QApplication::translate("MainFrame", "test", Q_NULLPTR)); actionadd->setText(QApplication::translate("MainFrame", "add", Q_NULLPTR));
actiondel->setText(QApplication::translate("MainFrame", "del", Q_NULLPTR));
actionsave->setText(QApplication::translate("MainFrame", "save", Q_NULLPTR));
m_pbSaveBtn->setText(QApplication::translate("MainFrame", "\344\277\235\345\255\230", Q_NULLPTR)); m_pbSaveBtn->setText(QApplication::translate("MainFrame", "\344\277\235\345\255\230", Q_NULLPTR));
label_SaveStatus->setText(QString()); label_SaveStatus->setText(QString());
QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem(); QTreeWidgetItem *___qtreewidgetitem = treeWidget->headerItem();
___qtreewidgetitem->setText(0, QApplication::translate("MainFrame", "\350\247\243\345\206\263\346\226\271\346\241\210\350\265\204\346\272\220\347\256\241\347\220\206", Q_NULLPTR)); ___qtreewidgetitem->setText(0, QApplication::translate("MainFrame", "\350\247\243\345\206\263\346\226\271\346\241\210\350\265\204\346\272\220\347\256\241\347\220\206", Q_NULLPTR));
groupBox->setTitle(QApplication::translate("MainFrame", "\345\257\274\345\205\245\345\233\276\347\211\207\357\274\232", Q_NULLPTR));
pushButton_8->setText(QApplication::translate("MainFrame", "\346\213\215\346\221\204", Q_NULLPTR));
pushButton_next->setText(QApplication::translate("MainFrame", ">", Q_NULLPTR));
groupBox_3->setTitle(QApplication::translate("MainFrame", "\350\276\223\345\207\272\347\273\223\346\236\234\357\274\232", Q_NULLPTR)); groupBox_3->setTitle(QApplication::translate("MainFrame", "\350\276\223\345\207\272\347\273\223\346\236\234\357\274\232", Q_NULLPTR));
m_pbLoadImage->setText(QApplication::translate("MainFrame", "\345\212\240\350\275\275\345\233\276\345\203\217", Q_NULLPTR));
pushButton_5->setText(QApplication::translate("MainFrame", "\346\270\205\347\251\272\347\273\223\346\236\234", Q_NULLPTR)); pushButton_5->setText(QApplication::translate("MainFrame", "\346\270\205\347\251\272\347\273\223\346\236\234", Q_NULLPTR));
label_pixel_info->setText(QApplication::translate("MainFrame", "Pixel info: ...", Q_NULLPTR)); label_pixel_info->setText(QApplication::translate("MainFrame", "Pixel info: ...", Q_NULLPTR));
groupBox_2->setTitle(QApplication::translate("MainFrame", "\347\256\227\346\263\225\345\210\227\350\241\250", Q_NULLPTR)); groupBox_2->setTitle(QApplication::translate("MainFrame", "\347\256\227\346\263\225\345\210\227\350\241\250", Q_NULLPTR));
@ -361,6 +341,7 @@ public:
___qtablewidgetitem5->setText(QApplication::translate("MainFrame", "\347\261\273\345\236\213", Q_NULLPTR)); ___qtablewidgetitem5->setText(QApplication::translate("MainFrame", "\347\261\273\345\236\213", Q_NULLPTR));
QTableWidgetItem *___qtablewidgetitem6 = tableWidget->horizontalHeaderItem(3); QTableWidgetItem *___qtablewidgetitem6 = tableWidget->horizontalHeaderItem(3);
___qtablewidgetitem6->setText(QApplication::translate("MainFrame", "\345\200\274", Q_NULLPTR)); ___qtablewidgetitem6->setText(QApplication::translate("MainFrame", "\345\200\274", Q_NULLPTR));
toolBar->setWindowTitle(QApplication::translate("MainFrame", "toolBar", Q_NULLPTR));
} // retranslateUi } // retranslateUi
}; };

@ -57,7 +57,7 @@ public:
if (ParamDlg->objectName().isEmpty()) if (ParamDlg->objectName().isEmpty())
ParamDlg->setObjectName(QStringLiteral("ParamDlg")); ParamDlg->setObjectName(QStringLiteral("ParamDlg"));
ParamDlg->setWindowModality(Qt::ApplicationModal); ParamDlg->setWindowModality(Qt::ApplicationModal);
ParamDlg->resize(279, 294); ParamDlg->resize(279, 304);
QFont font; QFont font;
font.setFamily(QStringLiteral("Arial")); font.setFamily(QStringLiteral("Arial"));
font.setPointSize(10); font.setPointSize(10);
@ -66,7 +66,7 @@ public:
ParamDlg->setFont(font); ParamDlg->setFont(font);
gridLayout_2 = new QGridLayout(ParamDlg); gridLayout_2 = new QGridLayout(ParamDlg);
gridLayout_2->setObjectName(QStringLiteral("gridLayout_2")); gridLayout_2->setObjectName(QStringLiteral("gridLayout_2"));
gridLayout_2->setContentsMargins(2, 2, 2, 2); gridLayout_2->setContentsMargins(5, 5, 5, 5);
gridLayout = new QGridLayout(); gridLayout = new QGridLayout();
gridLayout->setObjectName(QStringLiteral("gridLayout")); gridLayout->setObjectName(QStringLiteral("gridLayout"));
label_6 = new QLabel(ParamDlg); label_6 = new QLabel(ParamDlg);

@ -87,7 +87,7 @@ public:
RoiDlg->setFont(font); RoiDlg->setFont(font);
gridLayout_3 = new QGridLayout(RoiDlg); gridLayout_3 = new QGridLayout(RoiDlg);
gridLayout_3->setObjectName(QStringLiteral("gridLayout_3")); gridLayout_3->setObjectName(QStringLiteral("gridLayout_3"));
gridLayout_3->setContentsMargins(1, 1, 1, 1); gridLayout_3->setContentsMargins(5, 5, 5, 5);
horizontalSpacer_5 = new QSpacerItem(649, 27, QSizePolicy::Expanding, QSizePolicy::Minimum); horizontalSpacer_5 = new QSpacerItem(649, 27, QSizePolicy::Expanding, QSizePolicy::Minimum);
gridLayout_3->addItem(horizontalSpacer_5, 1, 0, 1, 1); gridLayout_3->addItem(horizontalSpacer_5, 1, 0, 1, 1);

@ -3,8 +3,8 @@
#include "colossusbase.h" #include "colossusbase.h"
#include <QHeaderView> #include <QHeaderView>
#pragma execution_character_set("utf-8") #pragma execution_character_set("utf-8")
typedef QMap<int, PLP_DETECTOR_TASK> TaskMap; //typedef QMap<int, PLP_DETECTOR_TASK> TaskMap;
typedef QMap<QString, PLP_DETECTOR_TASK> TaskMapStr; //typedef QMap<QString, PLP_DETECTOR_TASK> TaskMapStr;
QString showVariant(const AlgoParamType type, const QVariant &var) { QString showVariant(const AlgoParamType type, const QVariant &var) {
switch (type) switch (type)
@ -132,26 +132,25 @@ CMainFrame::CMainFrame(QWidget *parent)
connect(ui->tableWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(OnParamListPopMenu(const QPoint&))); connect(ui->tableWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(OnParamListPopMenu(const QPoint&)));
connect(ui->tableWidget, SIGNAL(cellChanged(int, int)), this, SLOT(OnCellChanged(int, int))); connect(ui->tableWidget, SIGNAL(cellChanged(int, int)), this, SLOT(OnCellChanged(int, int)));
connect(ui->tableWidget, SIGNAL(cellClicked(int, int)), this, SLOT(OnCellClicked(int, int))); connect(ui->tableWidget, SIGNAL(cellClicked(int, int)), this, SLOT(OnCellClicked(int, int)));
connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(OnListItemClick())); // connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(OnListItemClick()));
connect(ui->listWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(OnListItemDoubleClick())); // connect(ui->listWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(OnListItemDoubleClick()));
ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu); // ui->listWidget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->listWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(OnListWidgetPopMenu(const QPoint&))); // connect(ui->listWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(OnListWidgetPopMenu(const QPoint&)));
ui->gv_input->setContextMenuPolicy(Qt::CustomContextMenu); ui->gv_input->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->gv_input, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(OnGvInputWidgetPopMenu(const QPoint&))); connect(ui->gv_input, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(OnGvInputWidgetPopMenu(const QPoint&)));
connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(OnClearResult())); connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(OnClearResult()));
connect(ui->pushButton_8, SIGNAL(clicked()), this, SLOT(OnSnapImage())); connect(ui->m_pbLoadImage, SIGNAL(clicked()), this, SLOT(onLoadImage()));
//connect(ui->menubar, SIGNAL(triggered(QAction *)), this, SLOT(OnMainMenuTrigger(QAction*))); //connect(ui->menubar, SIGNAL(triggered(QAction *)), this, SLOT(OnMainMenuTrigger(QAction*)));
connect(ui->m_pbSaveBtn, SIGNAL(clicked()), this, SLOT(OnTrigger())); connect(ui->m_pbSaveBtn, SIGNAL(clicked()), this, SLOT(OnTrigger()));
connect(this, SIGNAL(sgShowStatus(QString)), this, SLOT(OnShowStatus(QString))); connect(this, SIGNAL(sgShowStatus(QString)), this, SLOT(OnShowStatus(QString)));
ui->gv_input->setInfoLabel(ui->label_pixel_info); ui->gv_input->setInfoLabel(ui->label_pixel_info);
connect(ui->pushButton_next, SIGNAL(clicked()), this, SLOT(OnNextBtnClick())); //connect(ui->pushButton_next, SIGNAL(clicked()), this, SLOT(OnNextBtnClick()));
connect(ui->gv_input, SIGNAL(imgScaled(QTransform, QPointF)), ui->gv_output, SLOT(scaleImg(QTransform, QPointF))); connect(ui->gv_input, SIGNAL(imgScaled(QTransform, QPointF)), ui->gv_output, SLOT(scaleImg(QTransform, QPointF)));
connect(ui->gv_input, SIGNAL(imgMoved(QPointF)), ui->gv_output, SLOT(moveImg(QPointF))); connect(ui->gv_input, SIGNAL(imgMoved(QPointF)), ui->gv_output, SLOT(moveImg(QPointF)));
@ -266,121 +265,57 @@ bool CMainFrame::InitGraphView()
ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents);
ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents); ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeToContents);
ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents); ui->tableWidget_2->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents);
ui->listWidget->clear(); // ui->listWidget->clear();
ui->textEdit->setWordWrapMode(QTextOption::NoWrap); ui->textEdit->setWordWrapMode(QTextOption::NoWrap);
//int nSolutionCount = m_pSolutionMgr->GetSolutionCount(); { /*获取所有的solution*/
//if (nSolutionCount > 0) QMap<QString, IDetectorSolution*> tmp = m_pSolutionMgr->GetAllSolutions();
{ for (QMap<QString, IDetectorSolution*>::iterator it = tmp.begin(); it!= tmp.end(); ++it)
QMap<int, IDetectorSolution*> tmp = m_pSolutionMgr->GetAllSolutions();
for (QMap<int, IDetectorSolution*>::iterator it = tmp.begin();it!= tmp.end();++it)
{ {
IDetectorSolution* tmpSolution = *it; IDetectorSolution* tmpSolution = *it;
if (tmpSolution != nullptr) if (tmpSolution != nullptr)
{ {
PLP_DETECTOR_SOLUTION pSolutionInfo = tmpSolution->GetSolutionInfo(); PLP_DETECTOR_SOLUTION pSolutionInfo = tmpSolution->GetSolutionInfo();
QTreeWidgetItem *solutionItem = NULL; QTreeWidgetItem *solutionItem = NULL;
QString strText = pSolutionInfo->strName;// +tr("(√)");
if (m_pSolutionMgr->GetRunSolution() && m_pSolutionMgr->GetRunSolution()->GetID() == tmpSolution->GetID())
{
QString strText = pSolutionInfo->strName + tr("(√)");
solutionItem = new QTreeWidgetItem(ui->treeWidget, QStringList(strText)); solutionItem = new QTreeWidgetItem(ui->treeWidget, QStringList(strText));
}
else
{
solutionItem = new QTreeWidgetItem(ui->treeWidget, QStringList(pSolutionInfo->strName));
}
solutionItem->setData(0, Qt::UserRole, tmpSolution->GetID()); solutionItem->setData(0, Qt::UserRole, tmpSolution->GetID());
solutionItem->setData(1, Qt::UserRole, SOLUTION); solutionItem->setData(1, Qt::UserRole, SOLUTION);
solutionItem->setData(2, Qt::UserRole, it.key());
QStringList strKeys = tmpSolution->GetAllTaskNames(); QMap<QString, IDetectorTask*> mItemMap = tmpSolution->GetAllTasks();
QMap<int, TaskMapStr> m_tmpMap; /*设置template模板在最前面*/
for (int n = 0; n < strKeys.size();n++) QMap<QString, IDetectorTask*>::iterator it = mItemMap.find("template");
{ if (it != mItemMap.end())
IDetectorTask* pTask = tmpSolution->GetTask(strKeys[n]);
if (pTask)
{
PLP_DETECTOR_TASK pTaskInfo = pTask->GetTaskInfo();
int ID = pTaskInfo->nCameraID;
int TaskID = pTask->GetID();
QString strKey = strKeys[n];
pTaskInfo->nID = TaskID;
if (m_tmpMap.contains(ID))
{
QMap<int, TaskMapStr>::iterator item = m_tmpMap.find(ID);
(*item)[strKey] = pTaskInfo;
}
else
{
TaskMapStr Itemtmp;
Itemtmp[strKey] = pTaskInfo;
m_tmpMap[ID] = Itemtmp;
}
}
}
for (QMap<int, TaskMapStr>::iterator its = m_tmpMap.begin(); its != m_tmpMap.end(); ++its)
{
int camID = its.key();
QString strStationName = QString(QObject::tr("工位%1")).arg(camID);
QTreeWidgetItem *childItem = new QTreeWidgetItem(solutionItem, QStringList(strStationName));
childItem->setData(0, Qt::UserRole, tmpSolution->GetID());
childItem->setData(1, Qt::UserRole, SOLUTION);
solutionItem->addChild(childItem);
TaskMapStr tmp = *its;
int nFirstID = 0;
QString strFirstName;
for(TaskMapStr::iterator it = tmp.begin(); it != tmp.end();++it)
{ {
if ((*it)->strName.contains("TEMPLATE")) int nID = (*it)->GetTaskInfo()->nID;
{ QString strName = (*it)->GetTaskInfo()->strName;
nFirstID = (*it)->nID; QTreeWidgetItem *TaskItem = new QTreeWidgetItem(solutionItem, QStringList(strName));
strFirstName = (*it)->strName; TaskItem->setData(0, Qt::UserRole, nID);
break; TaskItem->setData(1, Qt::UserRole, Task);
} solutionItem->addChild(TaskItem);
}
if (nFirstID != 0){
QTreeWidgetItem *firstTaskItem = new QTreeWidgetItem(childItem, QStringList(strFirstName));
firstTaskItem->setData(0, Qt::UserRole, nFirstID);
firstTaskItem->setData(1, Qt::UserRole, Task);
childItem->addChild(firstTaskItem);
} }
for (QMap<QString, IDetectorTask*>::iterator its = mItemMap.begin(); its != mItemMap.end(); ++its)
for (TaskMapStr::iterator itItem = tmp.begin(); itItem != tmp.end(); ++itItem)
{
if (nFirstID!=0 &&((*itItem)->strName.contains("TEMPLATE")))
{ {
int nID = (*its)->GetTaskInfo()->nID;
QString strName = (*its)->GetTaskInfo()->strName;
if(strName.contains("template")||strName == "template")
continue; continue;
} QTreeWidgetItem *TaskItem = new QTreeWidgetItem(solutionItem, QStringList(strName));
QTreeWidgetItem *TaskItem = new QTreeWidgetItem(childItem, QStringList((*itItem)->strName)); TaskItem->setData(0, Qt::UserRole, nID);
TaskItem->setData(0, Qt::UserRole, (*itItem)->nID);
TaskItem->setData(1, Qt::UserRole, Task); TaskItem->setData(1, Qt::UserRole, Task);
childItem->addChild(TaskItem); solutionItem->addChild(TaskItem);
}
}
//if (i == 0)
{
ui->treeWidget->setCurrentItem(solutionItem);
} }
if (m_pSolutionMgr->GetRunSolution() && m_pSolutionMgr->GetRunSolution()->GetID() == tmpSolution->GetID())
{
ui->treeWidget->setCurrentItem(solutionItem);
ui->treeWidget->expandItem(solutionItem); ui->treeWidget->expandItem(solutionItem);
ui->treeWidget->setCurrentItem(solutionItem); ui->treeWidget->setCurrentItem(solutionItem);
} }
} }
} }
}
m_TaskChangeList.clear(); m_TaskChangeList.clear();
if (!InitCurrentTask()) if (!InitCurrentTask())
return true; return true;
return true; return true;
} }
@ -395,7 +330,7 @@ bool CMainFrame::InitCurrentTask()
ui->tableWidget_2->setRowCount(0); ui->tableWidget_2->setRowCount(0);
ui->tableWidget_2->clearContents(); ui->tableWidget_2->clearContents();
ui->listWidget->clear(); // ui->listWidget->clear();
ui->gv_input->clear(); ui->gv_input->clear();
ui->gv_output->clear(); ui->gv_output->clear();
@ -441,7 +376,6 @@ bool CMainFrame::InitCurrentTask()
} }
ui->tableWidget_2->setItem(i, 1, new QTableWidgetItem(QObject::tr(lppAlgo[i]->GetAlgorithmInfo()->strName.toStdString().c_str()))); ui->tableWidget_2->setItem(i, 1, new QTableWidgetItem(QObject::tr(lppAlgo[i]->GetAlgorithmInfo()->strName.toStdString().c_str())));
//ui->tableWidget_2->setItem(i, 2, new QTableWidgetItem(lppAlgo[i]->GetAlgorithmInfo()->strDescription));
ui->tableWidget_2->setItem(i, 2, new QTableWidgetItem(QString::number(lppAlgo[i]->GetAlgorithmInfo()->nRoiID))); ui->tableWidget_2->setItem(i, 2, new QTableWidgetItem(QString::number(lppAlgo[i]->GetAlgorithmInfo()->nRoiID)));
if (i == 0) if (i == 0)
@ -477,7 +411,7 @@ bool CMainFrame::InitCurrentSolution(QTreeWidgetItem* pItem, IDetectorSolution*
QStringList strKey = pSolution->GetAllTaskNames(); QStringList strKey = pSolution->GetAllTaskNames();
for (int n = 0; n < strKey.size(); n++) for (int n = 0; n < strKey.size(); n++)
{ {
IDetectorTask* pTask = pSolution->GetTask(strKey[n]); IDetectorTask* pTask = pSolution->GetTaskByName(strKey[n]);
if (pTask) if (pTask)
{ {
PLP_DETECTOR_TASK pTaskInfo = pTask->GetTaskInfo(); PLP_DETECTOR_TASK pTaskInfo = pTask->GetTaskInfo();
@ -489,28 +423,6 @@ bool CMainFrame::InitCurrentSolution(QTreeWidgetItem* pItem, IDetectorSolution*
pItem->addChild(TaskItem); pItem->addChild(TaskItem);
} }
} }
// int nTaskCount = pSolution->EnumTask(NULL, 0);
// if (nTaskCount > 0)
// {
// IDetectorTask** lppTask = new IDetectorTask*[nTaskCount];
// nTaskCount = pSolution->EnumTask(lppTask, nTaskCount);
// for (int i = 0; i < nTaskCount; i++)
// {
// if (lppTask[i])
// {
// PLP_DETECTOR_TASK pTaskInfo = lppTask[i]->GetTaskInfo();
//
// QTreeWidgetItem *TaskItem = new QTreeWidgetItem(pItem, QStringList(pTaskInfo->strName));
// TaskItem->setData(0, Qt::UserRole, lppTask[i]->GetID());
// TaskItem->setData(1, Qt::UserRole, Task);
//
// pItem->addChild(TaskItem);
// }
// }
//
// delete[] lppTask;
// }
return true; return true;
} }
@ -526,7 +438,8 @@ bool CMainFrame::OnSetRunSolution()
{ {
if (pRunSolution->GetID() == m_pCurrentSolution->GetID()) if (pRunSolution->GetID() == m_pCurrentSolution->GetID())
{ {
m_pSolutionMgr->SetRunSolution(LP_DETECTOR_INVALID_ID); QString strName = pRunSolution->GetSolutionName();
m_pSolutionMgr->SetRunSolution(strName);
ui->treeWidget->currentItem()->setText(0, m_pCurrentSolution->GetSolutionInfo()->strName); ui->treeWidget->currentItem()->setText(0, m_pCurrentSolution->GetSolutionInfo()->strName);
return true; return true;
} }
@ -536,14 +449,14 @@ bool CMainFrame::OnSetRunSolution()
for (int i = 0; i < nItemCount; i++) for (int i = 0; i < nItemCount; i++)
{ {
QTreeWidgetItem* pItem = ui->treeWidget->topLevelItem(i); QTreeWidgetItem* pItem = ui->treeWidget->topLevelItem(i);
if (pItem->data(0, Qt::UserRole).toInt() == pRunSolution->GetID()) if (pItem->data(0, Qt::UserRole).toString() == pRunSolution->GetSolutionName())
{ {
pItem->setText(0, pRunSolution->GetSolutionInfo()->strName); pItem->setText(0, pRunSolution->GetSolutionInfo()->strName);
break; break;
} }
} }
m_pSolutionMgr->SetRunSolution(m_pCurrentSolution->GetID()); m_pSolutionMgr->SetRunSolution(m_pCurrentSolution->GetSolutionName());
QString strText = m_pCurrentSolution->GetSolutionInfo()->strName + tr("(√)"); QString strText = m_pCurrentSolution->GetSolutionInfo()->strName + tr("(√)");
ui->treeWidget->currentItem()->setText(0, strText); ui->treeWidget->currentItem()->setText(0, strText);
return true; return true;
@ -551,7 +464,7 @@ bool CMainFrame::OnSetRunSolution()
} }
else else
{ {
m_pSolutionMgr->SetRunSolution(m_pCurrentSolution->GetID()); m_pSolutionMgr->SetRunSolution(m_pCurrentSolution->GetSolutionName());
QString strText = m_pCurrentSolution->GetSolutionInfo()->strName + tr("(√)"); QString strText = m_pCurrentSolution->GetSolutionInfo()->strName + tr("(√)");
ui->treeWidget->currentItem()->setText(0, strText); ui->treeWidget->currentItem()->setText(0, strText);
return true; return true;
@ -573,25 +486,20 @@ bool CMainFrame::OnBatchLoadImage(bool bReLoad)
return false; return false;
} }
{ // ui->listWidget->clear();
// ui->listWidget->setSpacing(12);
} // ui->listWidget->setMovement(QListView::Static);
// ui->listWidget->setViewMode(QListView::IconMode);
ui->listWidget->clear(); // ui->listWidget->setWrapping(false);
ui->listWidget->setSpacing(12); // ui->listWidget->setFlow(QListView::LeftToRight);
ui->listWidget->setMovement(QListView::Static);
ui->listWidget->setViewMode(QListView::IconMode);
ui->listWidget->setWrapping(false);
ui->listWidget->setFlow(QListView::LeftToRight);
// ui->listWidget->setIconSize(QSize(75, 75));
for (int i = 0; i < strFileNamesList.size(); i++) // for (int i = 0; i < strFileNamesList.size(); i++)
{ // {
QListWidgetItem* item = new QListWidgetItem("Test", ui->listWidget); // QListWidgetItem* item = new QListWidgetItem("Test", ui->listWidget);
item->setData(Qt::UserRole, strFileNamesList.at(i)); // item->setData(Qt::UserRole, strFileNamesList.at(i));
item->setText(strFileNamesList.at(i).split("/").last()); // item->setText(strFileNamesList.at(i).split("/").last());
ui->listWidget->addItem(item); // ui->listWidget->addItem(item);
} // }
QString strFileName = strFileNamesList[0]; QString strFileName = strFileNamesList[0];
std::string strpath = strFileName.toLocal8Bit().toStdString();//中文路径支持 std::string strpath = strFileName.toLocal8Bit().toStdString();//中文路径支持
@ -607,13 +515,13 @@ bool CMainFrame::OnBatchLoadImage(bool bReLoad)
bool CMainFrame::OnCopyFileTitle() bool CMainFrame::OnCopyFileTitle()
{ {
QListWidgetItem* item = ui->listWidget->currentItem(); // QListWidgetItem* item = ui->listWidget->currentItem();
if (item) // if (item)
{ // {
QClipboard *clipboard = QApplication::clipboard(); // QClipboard *clipboard = QApplication::clipboard();
clipboard->setText(item->text()); // clipboard->setText(item->text());
} // }
return true; return true;
} }
@ -661,7 +569,7 @@ bool CMainFrame::InitCurrentNode()
if (m_pCurrentSolution) if (m_pCurrentSolution)
m_pCurrentSolution->ClearUserParamValue(); m_pCurrentSolution->ClearUserParamValue();
int nSolutionID = currentItem->data(0, Qt::UserRole).toInt(); QString nSolutionID = currentItem->data(0, Qt::UserRole).toString();
m_pCurrentSolution = m_pSolutionMgr->GetSolutionByID(nSolutionID); m_pCurrentSolution = m_pSolutionMgr->GetSolutionByID(nSolutionID);
if (!m_pCurrentSolution) if (!m_pCurrentSolution)
return false; return false;
@ -673,13 +581,14 @@ bool CMainFrame::InitCurrentNode()
{ {
if (currentItem->parent()) if (currentItem->parent())
{ {
int nSolutionID = currentItem->parent()->data(0, Qt::UserRole).toInt(); QString nSolutionID = currentItem->parent()->data(2, Qt::UserRole).toString();
m_pCurrentSolution = m_pSolutionMgr->GetSolutionByID(nSolutionID); m_pCurrentSolution = m_pSolutionMgr->GetSolutionByID(nSolutionID);
if (!m_pCurrentSolution) if (!m_pCurrentSolution)
return false; return false;
QString strName = currentItem->data(0,Qt::DisplayRole).toString();
int nTaskID = currentItem->data(0, Qt::UserRole).toInt(); int nTaskID = currentItem->data(0, Qt::UserRole).toInt();
m_pCurrentTask = m_pCurrentSolution->GetTask(nTaskID); m_pCurrentTask = m_pCurrentSolution->GetTaskByName(strName);
if (!m_pCurrentTask) if (!m_pCurrentTask)
return false; return false;
} }
@ -1184,25 +1093,10 @@ bool CMainFrame::OnListWidgetPopMenu(const QPoint&)
menu.clear(); menu.clear();
return false; return false;
} }
// if (selectedAction == deleteAction)
// {
// if (ui->listWidget->currentItem())
// {
// ui->listWidget->removeItemWidget(ui->listWidget->currentItem());
// delete ui->listWidget->currentItem();
// }
// }
// else
if (selectedAction == batchLoadImgAction) if (selectedAction == batchLoadImgAction)
{ {
OnBatchLoadImage(); OnBatchLoadImage();
} }
// else if (selectedAction == copyTitleAction)
// {
// OnCopyFileTitle();
// }
menu.clear(); menu.clear();
return true; return true;
} }
@ -1255,24 +1149,24 @@ bool CMainFrame::OnListItemDoubleClick()
bool CMainFrame::OnListItemClick() bool CMainFrame::OnListItemClick()
{ {
if (m_pCurrentTask) // if (m_pCurrentTask)
{ // {
QListWidgetItem* item = ui->listWidget->currentItem(); // QListWidgetItem* item = ui->listWidget->currentItem();
//
if (item) // if (item)
{ // {
QString strFilePath = item->data(Qt::UserRole).toString(); // QString strFilePath = item->data(Qt::UserRole).toString();
std::string strpath = strFilePath.toLocal8Bit().toStdString(); // std::string strpath = strFilePath.toLocal8Bit().toStdString();
m_pCurrentTask->GetTaskInfo()->templateImg = cv::imread(strpath, 0); // m_pCurrentTask->GetTaskInfo()->templateImg = cv::imread(strpath, 0);
//
if (ColossusBase::showImage(m_pCurrentTask->GetTaskInfo()->templateImg, ui->gv_input)) // if (ColossusBase::showImage(m_pCurrentTask->GetTaskInfo()->templateImg, ui->gv_input))
{ // {
m_pCurrentTask->GetTaskInfo()->strImageName = strFilePath.split("/").last(); // m_pCurrentTask->GetTaskInfo()->strImageName = strFilePath.split("/").last();
} // }
} // }
//
return true; // return true;
} // }
return false; return false;
} }
@ -1754,14 +1648,14 @@ void CMainFrame::OnCellChanged(int row, int column)
bool CMainFrame::OnNextBtnClick() bool CMainFrame::OnNextBtnClick()
{ {
int index = ui->listWidget->currentRow(); // int index = ui->listWidget->currentRow();
int maxindex = ui->listWidget->count()-1; // int maxindex = ui->listWidget->count()-1;
//
if (index < maxindex) // if (index < maxindex)
{ // {
ui->listWidget->setCurrentRow(index + 1); // ui->listWidget->setCurrentRow(index + 1);
OnListItemClick(); // OnListItemClick();
} // }
return OnRunAlgo(); return OnRunAlgo();
} }
@ -1852,8 +1746,30 @@ void CMainFrame::closeEvent(QCloseEvent *event)
SystemStateInfo::bParamStateFlag = false; SystemStateInfo::bParamStateFlag = false;
} }
if (m_pSolutionMgr && m_pSolutionMgr->GetRunSolution()) { if (m_pSolutionMgr && m_pSolutionMgr->GetRunSolution()) {
m_pSolutionMgr->SetRunSolution(m_pSolutionMgr->GetRunSolution()->GetID()); m_pSolutionMgr->SetRunSolution(m_pSolutionMgr->GetRunSolution()->GetSolutionName());
} }
//OnManualTrigger(); //OnManualTrigger();
QMainWindow::closeEvent(event); QMainWindow::closeEvent(event);
} }
Q_SLOT void CMainFrame::onLoadImage()
{
if (!currentTask())
return ;
QString strDefaultDirPath = m_pCurrentTask->GetTaskInfo()->strDirPath;
QStringList strFileNamesList = QFileDialog::getOpenFileNames(this, "open file", strDefaultDirPath, "Images (*.bmp *.png *.xpm *.jpg)");
if (strFileNamesList.size() <= 0)
{
return ;
}
QString strFileName = strFileNamesList[0];
std::string strpath = strFileName.toLocal8Bit().toStdString();//中文路径支持
m_pCurrentTask->GetTaskInfo()->templateImg = cv::imread(strpath, CV_LOAD_IMAGE_GRAYSCALE);
oldMat = m_pCurrentTask->GetTaskInfo()->templateImg;
if (ColossusBase::showImage(m_pCurrentTask->GetTaskInfo()->templateImg, ui->gv_input))
{
m_pCurrentTask->GetTaskInfo()->strImageName = strFileName.split("/").last();
}
}

@ -42,6 +42,7 @@ public:
QString genInfo(); QString genInfo();
virtual void closeEvent(QCloseEvent *event); virtual void closeEvent(QCloseEvent *event);
Q_SLOT void onLoadImage();
QString GetParamTypeStr(AlgoParamType type); QString GetParamTypeStr(AlgoParamType type);
signals: signals:
void sgShowStatus(QString); void sgShowStatus(QString);

@ -9,8 +9,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>963</width> <width>1050</width>
<height>664</height> <height>755</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -19,19 +19,19 @@
<widget class="QWidget" name="centralwidget"> <widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin"> <property name="leftMargin">
<number>0</number> <number>5</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>0</number> <number>5</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>0</number> <number>5</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>0</number> <number>5</number>
</property> </property>
<property name="spacing"> <property name="spacing">
<number>0</number> <number>5</number>
</property> </property>
<item row="0" column="0"> <item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
@ -46,7 +46,7 @@
<string>保存</string> <string>保存</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../src/lpbdesigner/image.qrc"> <iconset>
<normaloff>:/img/resource/save.png</normaloff>:/img/resource/save.png</iconset> <normaloff>:/img/resource/save.png</normaloff>:/img/resource/save.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
@ -84,10 +84,22 @@
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="QSplitter" name="splitter_3"> <widget class="QSplitter" name="splitter_3">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
<widget class="LpTreeWidget" name="treeWidget"> <widget class="LpTreeWidget" name="treeWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>3</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font"> <property name="font">
<font> <font>
<family>Consolas</family> <family>Consolas</family>
@ -101,6 +113,12 @@
</column> </column>
</widget> </widget>
<widget class="QSplitter" name="splitter_2"> <widget class="QSplitter" name="splitter_2">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>8</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
@ -175,81 +193,10 @@
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="layoutWidget1"> <widget class="QWidget" name="layoutWidget1">
<layout class="QHBoxLayout" name="horizontalLayout_5" stretch="1,1"> <layout class="QHBoxLayout" name="horizontalLayout_5" stretch="1">
<property name="spacing"> <property name="spacing">
<number>1</number> <number>1</number>
</property> </property>
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>导入图片:</string>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<property name="leftMargin">
<number>1</number>
</property>
<property name="topMargin">
<number>1</number>
</property>
<property name="rightMargin">
<number>1</number>
</property>
<property name="bottomMargin">
<number>1</number>
</property>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="pushButton_8">
<property name="text">
<string>拍摄</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton_next">
<property name="text">
<string>&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="0" colspan="2">
<widget class="QListWidget" name="listWidget"/>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item> <item>
<widget class="QGroupBox" name="groupBox_3"> <widget class="QGroupBox" name="groupBox_3">
<property name="title"> <property name="title">
@ -273,6 +220,13 @@
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_6"> <layout class="QHBoxLayout" name="horizontalLayout_6">
<item>
<widget class="QPushButton" name="m_pbLoadImage">
<property name="text">
<string>加载图像</string>
</property>
</widget>
</item>
<item> <item>
<spacer name="horizontalSpacer_2"> <spacer name="horizontalSpacer_2">
<property name="orientation"> <property name="orientation">
@ -439,13 +393,33 @@
</layout> </layout>
</widget> </widget>
<widget class="QStatusBar" name="statusBar"/> <widget class="QStatusBar" name="statusBar"/>
<action name="actionTest"> <widget class="QToolBar" name="toolBar">
<property name="icon"> <property name="windowTitle">
<iconset theme="1" resource="../src/lpbdesigner/image.qrc"> <string>toolBar</string>
<normaloff>:/img/resource/save.png</normaloff>:/img/resource/save.png</iconset> </property>
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionadd"/>
<addaction name="actiondel"/>
<addaction name="actionsave"/>
</widget>
<action name="actionadd">
<property name="text">
<string>add</string>
</property> </property>
</action>
<action name="actiondel">
<property name="text">
<string>del</string>
</property>
</action>
<action name="actionsave">
<property name="text"> <property name="text">
<string>test</string> <string>save</string>
</property> </property>
</action> </action>
</widget> </widget>
@ -462,7 +436,7 @@
</customwidget> </customwidget>
</customwidgets> </customwidgets>
<resources> <resources>
<include location="../src/lpbdesigner/image.qrc"/> <include location="image.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>

@ -10,7 +10,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>279</width> <width>279</width>
<height>294</height> <height>304</height>
</rect> </rect>
</property> </property>
<property name="font"> <property name="font">
@ -26,16 +26,16 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout_2" rowstretch="100,1,0"> <layout class="QGridLayout" name="gridLayout_2" rowstretch="100,1,0">
<property name="leftMargin"> <property name="leftMargin">
<number>2</number> <number>5</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>2</number> <number>5</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>2</number> <number>5</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>2</number> <number>5</number>
</property> </property>
<item row="0" column="1"> <item row="0" column="1">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">

@ -23,16 +23,16 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout_3"> <layout class="QGridLayout" name="gridLayout_3">
<property name="leftMargin"> <property name="leftMargin">
<number>1</number> <number>5</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>1</number> <number>5</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>1</number> <number>5</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>1</number> <number>5</number>
</property> </property>
<item row="1" column="0"> <item row="1" column="0">
<spacer name="horizontalSpacer_5"> <spacer name="horizontalSpacer_5">

@ -468,7 +468,7 @@ bool CDetectorAlgorithm::SerializeToJson(QJsonDocument* pJsonDocument, QJsonArra
{ {
cv::Mat matResult = p->value.value<cv::Mat>(); cv::Mat matResult = p->value.value<cv::Mat>();
//QString strExePath = QCoreApplication::applicationDirPath(); //QString strExePath = QCoreApplication::applicationDirPath();
QString strFilePath = m_pTask->GetPath();// strExePath + LP_DETECTOR_BUSSINESS_IN_PARAM_FILE_DIR; QString strFilePath = m_pTask->GetPath()+"/";// strExePath + LP_DETECTOR_BUSSINESS_IN_PARAM_FILE_DIR;
QString strName = QString("%1_%2_%3_%4").arg(m_pTask->GetParentSolution()->GetID()).arg(m_pTask->GetID()).arg(m_nID).arg(p->nID); QString strName = QString("%1_%2_%3_%4").arg(m_pTask->GetParentSolution()->GetID()).arg(m_pTask->GetID()).arg(m_nID).arg(p->nID);
QString strFileName = strName + "_in" + ".bmp"; QString strFileName = strName + "_in" + ".bmp";
QString strFileName2 = strFileName; QString strFileName2 = strFileName;
@ -881,7 +881,7 @@ bool CDetectorAlgorithm::SerializeFromJson(QJsonObject* pJsonObject)
case LP_MAT: case LP_MAT:
{ {
//QString strExePath = QCoreApplication::applicationDirPath(); //QString strExePath = QCoreApplication::applicationDirPath();
QString strFilePath = m_pTask->GetPath(); //strExePath + LP_DETECTOR_BUSSINESS_IN_PARAM_FILE_DIR; QString strFilePath = m_pTask->GetPath() + "/"; //strExePath + LP_DETECTOR_BUSSINESS_IN_PARAM_FILE_DIR;
QString strFileName = jsonObject.value("param_file_path").toString(); QString strFileName = jsonObject.value("param_file_path").toString();
strFilePath += strFileName; strFilePath += strFileName;
QFile file(strFilePath); QFile file(strFilePath);
@ -1195,8 +1195,8 @@ bool CDetectorAlgorithm::Load(QString dllPath)
} }
else else
{ {
//QString strExePath = QCoreApplication::applicationDirPath(); QString strExePath = QCoreApplication::applicationDirPath();
QString strDefaultFilePath = m_pTask->GetPath();// strExePath + LP_DETECTOR_BUSSINESS_CONFIG_ALGO_DIR + strFileName; QString strDefaultFilePath = strExePath + LP_DETECTOR_BUSSINESS_CONFIG_ALGO_DIR + strFileName;
QFile defaultFile(strDefaultFilePath); QFile defaultFile(strDefaultFilePath);
if (defaultFile.exists()) if (defaultFile.exists())
@ -1850,7 +1850,7 @@ bool CDetectorAlgorithm::ImportParam(QJsonArray paramArray)//导入参数
//QString strExePath = QCoreApplication::applicationDirPath(); //QString strExePath = QCoreApplication::applicationDirPath();
QString strFilePath = m_pTask->GetPath(); //strExePath + LP_DETECTOR_BUSSINESS_IMAGE_DIR; QString strFilePath = m_pTask->GetPath() + "/"; //strExePath + LP_DETECTOR_BUSSINESS_IMAGE_DIR;
QString strFileName = strFilePath + QString::number(param.nID) + ".bmp"; QString strFileName = strFilePath + QString::number(param.nID) + ".bmp";
std::string strpath = strFileName.toLocal8Bit().toStdString(); std::string strpath = strFileName.toLocal8Bit().toStdString();
roiData.img = cv::imread(strpath, CV_LOAD_IMAGE_UNCHANGED); roiData.img = cv::imread(strpath, CV_LOAD_IMAGE_UNCHANGED);
@ -1988,7 +1988,7 @@ QByteArray CDetectorAlgorithm::ExportParam()
LP_DETECTOR_ROI_DATA roiData = p->value.value<LP_DETECTOR_ROI_DATA>(); LP_DETECTOR_ROI_DATA roiData = p->value.value<LP_DETECTOR_ROI_DATA>();
QString strExePath = m_pTask->GetPath(); //QCoreApplication::applicationDirPath(); // QString strExePath = m_pTask->GetPath(); //QCoreApplication::applicationDirPath();
QString strFilePath = m_pTask->GetPath()+"/"; //strExePath + "/" + "images/"; QString strFilePath = m_pTask->GetPath()+"/"; //strExePath + "/" + "images/";
QString strFileName = strFilePath + QString::number(p->nID) + ".bmp"; QString strFileName = strFilePath + QString::number(p->nID) + ".bmp";
std::string strpath = strFileName.toLocal8Bit().toStdString(); std::string strpath = strFileName.toLocal8Bit().toStdString();

@ -44,7 +44,7 @@ bool CDetectorEngine::detect(cv::Mat srcImg, QString modeName, AlgResultCallBack
IDetectorSolution* pSolution = m_SolutionMgr.GetRunSolution(); IDetectorSolution* pSolution = m_SolutionMgr.GetRunSolution();
if (pSolution) if (pSolution)
{ {
IDetectorTask* pTask = pSolution->GetTask(modeName); IDetectorTask* pTask = pSolution->GetTaskByName(modeName);
if (pTask) if (pTask)
{ {
pTask->GetTaskInfo()->detectImg = srcImg; pTask->GetTaskInfo()->detectImg = srcImg;

@ -40,6 +40,11 @@ PLP_DETECTOR_SOLUTION Solution::GetSolutionInfo()
return &m_tSolutionInfo; return &m_tSolutionInfo;
} }
QString Solution::GetSolutionName()
{
return m_tSolutionInfo.strName;
}
IDetectorTask* Solution::AddTask(const PLP_DETECTOR_TASK pTask, QString strPath) IDetectorTask* Solution::AddTask(const PLP_DETECTOR_TASK pTask, QString strPath)
{ {
if (NULL == pTask) if (NULL == pTask)
@ -51,7 +56,6 @@ IDetectorTask* Solution::AddTask(const PLP_DETECTOR_TASK pTask, QString strPath)
{ {
p->SetID(++m_nBaseID); p->SetID(++m_nBaseID);
p->LoadFile(strPath); p->LoadFile(strPath);
m_TaskMapByID.insert(p->GetID(), p);
m_TaskMapByName.insert(p->GetTaskInfo()->strName, p); m_TaskMapByName.insert(p->GetTaskInfo()->strName, p);
return p; return p;
} }
@ -72,7 +76,6 @@ bool Solution::AddTaskByCopy(IDetectorTask* pSrc)
{ {
p->SetID(++m_nBaseID); p->SetID(++m_nBaseID);
p->Copy(pSrc); p->Copy(pSrc);
m_TaskMapByID.insert(p->GetID(), p);
m_TaskMapByName.insert(p->GetTaskInfo()->strName, p); m_TaskMapByName.insert(p->GetTaskInfo()->strName, p);
return true; return true;
} }
@ -81,7 +84,17 @@ bool Solution::AddTaskByCopy(IDetectorTask* pSrc)
return false; return false;
} }
IDetectorTask* Solution::AddTask(const PLP_DETECTOR_TASK pTask, bool bRet /*= true*/) bool Solution::SetRunTask(QString strName)
{
QMap<QString, IDetectorTask *>::iterator it = m_TaskMapByName.find(strName);
if (it != m_TaskMapByName.end())
{
return true;
}
return false;
}
IDetectorTask* Solution::AddTask(const PLP_DETECTOR_TASK pTask)
{ {
if (NULL == pTask) if (NULL == pTask)
return NULL; return NULL;
@ -91,7 +104,6 @@ IDetectorTask* Solution::AddTask(const PLP_DETECTOR_TASK pTask, bool bRet /*= tr
if (p->Initialize(this, m_pAlgoLibMgr) && p->SetTaskInfo(pTask)) if (p->Initialize(this, m_pAlgoLibMgr) && p->SetTaskInfo(pTask))
{ {
p->SetID(++m_nBaseID); p->SetID(++m_nBaseID);
m_TaskMapByID.insert(p->GetID(), p);
m_TaskMapByName.insert(p->GetTaskInfo()->strName, p); m_TaskMapByName.insert(p->GetTaskInfo()->strName, p);
return p; return p;
} }
@ -100,38 +112,12 @@ IDetectorTask* Solution::AddTask(const PLP_DETECTOR_TASK pTask, bool bRet /*= tr
return NULL; return NULL;
} }
bool Solution::SetRunTask(int nCameraID, QString strTaskName)
{
QMap<QString, IDetectorTask*>::iterator it = m_TaskMapByName.find(strTaskName);
if (it != m_TaskMapByName.end())
{
m_CurRunTaskMap[nCameraID] = *it;
return true;
}
return false;
}
bool Solution::DeleteTask(int nTaskID)
{
QMap<int, IDetectorTask*>::iterator it = m_TaskMapByID.find(nTaskID);
if (it != m_TaskMapByID.end()){
QString strName = (*it)->GetTaskInfo()->strName;
m_TaskMapByName.remove(strName);
(*it)->RemoveFile();
delete *it;
*it = nullptr;
m_TaskMapByID.erase(it);
return true;
}
return true;
}
bool Solution::DeleteTask(QString strName) bool Solution::DeleteTask(QString strName)
{ {
QMap<QString, IDetectorTask*>::iterator its = m_TaskMapByName.find(strName); QMap<QString, IDetectorTask*>::iterator its = m_TaskMapByName.find(strName);
if (its != m_TaskMapByName.end()) if (its != m_TaskMapByName.end())
{ {
int nID = (*its)->GetID(); int nID = (*its)->GetID();
m_TaskMapByID.remove(nID);
(*its)->RemoveFile(); (*its)->RemoveFile();
delete *its; delete *its;
m_TaskMapByName.erase(its); m_TaskMapByName.erase(its);
@ -140,20 +126,7 @@ bool Solution::DeleteTask(QString strName)
return false; return false;
} }
IDetectorTask* Solution::GetTask(int nTaskID) IDetectorTask* Solution::GetTaskByName(QString strName)
{
QMap<int, IDetectorTask*>::iterator it = m_TaskMapByID.find(nTaskID);
if (it != m_TaskMapByID.end()){
if ((*it) != nullptr)
return *it;
else
return nullptr;
}
return nullptr;
}
IDetectorTask* Solution::GetTask(QString strName)
{ {
QMap<QString, IDetectorTask*>::iterator its = m_TaskMapByName.find(strName); QMap<QString, IDetectorTask*>::iterator its = m_TaskMapByName.find(strName);
if (its != m_TaskMapByName.end()) if (its != m_TaskMapByName.end())
@ -185,14 +158,11 @@ void Solution::Release()
void Solution::CleanUp() void Solution::CleanUp()
{ {
for (QMap<int, IDetectorTask*>::iterator it = m_TaskMapByID.begin(); it != m_TaskMapByID.end(); ++it) for (QMap<QString, IDetectorTask*>::iterator it = m_TaskMapByName.begin(); it != m_TaskMapByName.end(); ++it)
{ {
if (*it) if (*it)
(*it)->Release(); (*it)->Release();
} }
m_TaskMapByID.clear();
m_TaskMapByName.clear();
m_CurRunTaskMap.clear();
} }
bool Solution::CheckTask(int nTaskID, QString strTaskName) bool Solution::CheckTask(int nTaskID, QString strTaskName)
@ -244,7 +214,7 @@ bool Solution::SaveFileEx(const QString& strPath)
dir.setPath(strPath); dir.setPath(strPath);
for (QMap<int, IDetectorTask*>::iterator iter = m_TaskMapByID.begin(); iter != m_TaskMapByID.end(); ++iter) { for (QMap<QString, IDetectorTask*>::iterator iter = m_TaskMapByName.begin(); iter != m_TaskMapByName.end(); ++iter) {
if (*iter) { if (*iter) {
CDetectorTask *p = (CDetectorTask*)*iter; CDetectorTask *p = (CDetectorTask*)*iter;
@ -323,7 +293,7 @@ bool Solution::LoadFileEx(const QString& strPath)
if (infoObj.isEmpty()) if (infoObj.isEmpty())
return false; return false;
//解析solution基本信息 //解析solution基本信息
m_tSolutionInfo.strName = infoObj.value("solution_name").toString(); //m_tSolutionInfo.strName = infoObj.value("solution_name").toString();
m_tSolutionInfo.nType = infoObj.value("solution_type").toInt(0); m_tSolutionInfo.nType = infoObj.value("solution_type").toInt(0);
m_tSolutionInfo.strDescription = infoObj.value("solution_description").toString(); m_tSolutionInfo.strDescription = infoObj.value("solution_description").toString();
m_nID = infoObj.value("solution_id").toInt(); m_nID = infoObj.value("solution_id").toInt();
@ -346,7 +316,7 @@ bool Solution::LoadFileEx(const QString& strPath)
if (!pTask) if (!pTask)
{ {
qWarning("load task: %s fail", strTaskPath); qWarning("load task: %s fail", strTaskPath);
DeleteTask(pTask->GetID()); DeleteTask(taskName);
pTask = NULL; pTask = NULL;
continue; continue;
} }
@ -360,67 +330,6 @@ bool Solution::LoadFileEx(const QString& strPath)
return true; return true;
} }
// bool Solution::SaveFile(const QString& strPath)
// {
// QJsonDocument document;
// QJsonObject jsonObject;
//
// if (!SerializeToJson(jsonObject)) {
// return false;
// }
//
// document.setObject(jsonObject);
// QByteArray byteArray = document.toJson();
// if (byteArray.isEmpty())
// return false;
//
// QFile file(strPath);
// if (file.open(QFile::WriteOnly | QFile::Text))
// {
// file.write(byteArray);
// file.flush();
// file.close();
// return true;
// }
//
// return false;
// }
// bool Solution::LoadFile(const QString& strPath)
// {
// QJsonDocument document;
// QJsonParseError parse_error;
//
// QFile solutionFile(strPath);
// if (!solutionFile.open(QFile::ReadOnly))
// {
// return false;
// }
//
// QByteArray byteArray;
// byteArray = solutionFile.readAll();
// if (byteArray.isEmpty())
// return false;
//
// document = QJsonDocument::fromJson(byteArray, &parse_error);
// if (parse_error.error == QJsonParseError::NoError)
// {
// if (!document.isEmpty() && !document.isNull())
// {
// if (document.isObject())
// {
// QJsonObject solutionJsonObject = document.object();
// if (!SerializeFromJson(&solutionJsonObject))
// {
// return false;
// }
// }
// }
// }
//
// return true;
// }
bool Solution::SerializeToJson(QJsonObject& jsonObject) bool Solution::SerializeToJson(QJsonObject& jsonObject)
{ {
jsonObject.insert("solution_name", m_tSolutionInfo.strName); jsonObject.insert("solution_name", m_tSolutionInfo.strName);
@ -429,7 +338,7 @@ bool Solution::SerializeToJson(QJsonObject& jsonObject)
jsonObject.insert("solution_id", m_nID); jsonObject.insert("solution_id", m_nID);
QJsonArray TaskArray; QJsonArray TaskArray;
for (QMap<int, IDetectorTask*>::iterator iter = m_TaskMapByID.begin(); iter != m_TaskMapByID.end(); ++iter){ for (QMap<QString, IDetectorTask*>::iterator iter = m_TaskMapByName.begin(); iter != m_TaskMapByName.end(); ++iter){
if (*iter) if (*iter)
{ {
QJsonObject taskObject; QJsonObject taskObject;
@ -492,7 +401,7 @@ IDetectorSolution* Solution::Copy()
if (!pNewSolution->SetSolutionInfo(&m_tSolutionInfo)) if (!pNewSolution->SetSolutionInfo(&m_tSolutionInfo))
return NULL; return NULL;
for (QMap<int, IDetectorTask*>::iterator iter = m_TaskMapByID.begin(); iter != m_TaskMapByID.end(); ++iter) for (QMap<QString, IDetectorTask*>::iterator iter = m_TaskMapByName.begin(); iter != m_TaskMapByName.end(); ++iter)
{ {
IDetectorTask* pTask = *iter; IDetectorTask* pTask = *iter;
if (pTask) if (pTask)
@ -505,7 +414,7 @@ IDetectorSolution* Solution::Copy()
} }
} }
} }
pNewSolution->m_CurRunTaskMap = m_CurRunTaskMap; pNewSolution->m_TaskMapByName = m_TaskMapByName;
return pNewSolution; return pNewSolution;
} }
@ -529,16 +438,6 @@ bool Solution::GetModifyFlag()
return m_bIsModify; return m_bIsModify;
} }
IDetectorTask* Solution::GetTaskByCameraID(int nCameraID)
{
QMap<int, IDetectorTask*>::iterator iter = m_CurRunTaskMap.find(nCameraID);
if (iter != m_CurRunTaskMap.end())
{
return *iter;
}
return nullptr;
}
bool Solution::Copy(IDetectorSolution* pSrcSolution, bool bRet /* = true */) bool Solution::Copy(IDetectorSolution* pSrcSolution, bool bRet /* = true */)
{ {
@ -578,7 +477,7 @@ IDetectorTask* Solution::AddAndCopyTask(IDetectorTask* pSrcTask, LP_DETECTOR_TAS
void Solution::LoadUserParamValue() void Solution::LoadUserParamValue()
{ {
for (QMap<int, IDetectorTask*>::iterator iter = m_TaskMapByID.begin(); iter != m_TaskMapByID.end(); ++iter) for (QMap<QString, IDetectorTask*>::iterator iter = m_TaskMapByName.begin(); iter != m_TaskMapByName.end(); ++iter)
{ {
if (nullptr != *iter) if (nullptr != *iter)
{ {
@ -590,7 +489,7 @@ void Solution::LoadUserParamValue()
void Solution::SaveUserParamValue() void Solution::SaveUserParamValue()
{ {
for (QMap<int, IDetectorTask*>::iterator iter = m_TaskMapByID.begin(); iter != m_TaskMapByID.end(); ++iter) for (QMap<QString, IDetectorTask*>::iterator iter = m_TaskMapByName.begin(); iter != m_TaskMapByName.end(); ++iter)
{ {
if (nullptr != *iter) if (nullptr != *iter)
{ {
@ -602,7 +501,7 @@ void Solution::SaveUserParamValue()
void Solution::ClearUserParamValue() void Solution::ClearUserParamValue()
{ {
for (QMap<int, IDetectorTask*>::iterator iter = m_TaskMapByID.begin(); iter != m_TaskMapByID.end(); ++iter) for (QMap<QString, IDetectorTask*>::iterator iter = m_TaskMapByName.begin(); iter != m_TaskMapByName.end(); ++iter)
{ {
if (nullptr != *iter) if (nullptr != *iter)
{ {
@ -617,9 +516,9 @@ QStringList Solution::GetAllTaskNames()
return m_TaskMapByName.keys(); return m_TaskMapByName.keys();
} }
QMap<int, IDetectorTask*> Solution::GetRunningTask() QMap<QString, IDetectorTask*> Solution::GetAllTasks()
{ {
return m_CurRunTaskMap; return m_TaskMapByName;
} }

@ -8,59 +8,55 @@ class Solution : public IDetectorSolution
public: public:
Solution(); Solution();
virtual ~Solution(); virtual ~Solution();
virtual IDetectorTask* AddTask(const PLP_DETECTOR_TASK pTask);
virtual bool DeleteTask(QString strName);
virtual IDetectorTask* GetTaskByName(QString strName);
virtual QStringList GetAllTaskNames();
virtual QMap<QString, IDetectorTask*> GetAllTasks();
virtual bool SetSolutionInfo(const PLP_DETECTOR_SOLUTION pSolution); virtual bool SetSolutionInfo(const PLP_DETECTOR_SOLUTION pSolution);
virtual PLP_DETECTOR_SOLUTION GetSolutionInfo(); virtual PLP_DETECTOR_SOLUTION GetSolutionInfo();
virtual IDetectorTask* AddTask(const PLP_DETECTOR_TASK pTask, bool bRet = true); virtual QString GetSolutionName();
bool AddTaskByCopy(IDetectorTask* pSrc);
virtual bool SetRunTask(int nCameraID, QString strTaskName);
IDetectorTask* AddTask(const PLP_DETECTOR_TASK pTask, QString strPath);
virtual bool DeleteTask(int nTaskID);
bool DeleteTask(QString strName);
virtual IDetectorTask* GetTask(int nTaskID);
IDetectorTask* GetTask(QString strName);
virtual void Release();
virtual int GetID() const; virtual int GetID() const;
void SetID(int nID); virtual void Release();
virtual int GetTaskBaseID() const; virtual IDetectorSolution* Copy();
virtual bool GetRunState(); virtual bool GetRunState();
virtual void SetRunState(bool bRun); virtual void SetRunState(bool bRun);
virtual bool GetModifyFlag(); virtual bool GetModifyFlag();
virtual void SetModifyFlag(bool bModify); virtual void SetModifyFlag(bool bModify);
virtual IDetectorTask* GetTaskByCameraID(int nCameraID);
bool Initialize(IAlgorithmLibMgr* pAlgoLibMgr);
void CleanUp();
virtual IDetectorSolution* Copy();
virtual bool Copy(IDetectorSolution* pSrcSolution, bool bRet = true); virtual bool Copy(IDetectorSolution* pSrcSolution, bool bRet = true);
virtual IDetectorTask* AddAndCopyTask(IDetectorTask* pSrcTask, LP_DETECTOR_TASK tTaskInfo); virtual IDetectorTask* AddAndCopyTask(IDetectorTask* pSrcTask, LP_DETECTOR_TASK tTaskInfo);
virtual int GetTaskBaseID() const;
virtual bool SaveFileEx(const QString& strPath);
virtual bool SaveFileEx(const QString& strPath, QStringList sTaskNames);
virtual bool LoadFileEx(const QString& strPath);
virtual void SaveUserParamValue(); virtual void SaveUserParamValue();
virtual void LoadUserParamValue(); virtual void LoadUserParamValue();
virtual void ClearUserParamValue(); virtual void ClearUserParamValue();
virtual QStringList GetAllTaskNames(); public:
virtual QMap<int, IDetectorTask*> GetRunningTask(); bool Initialize(IAlgorithmLibMgr* pAlgoLibMgr);
bool CheckTask(int nTaskID, QString strTaskName); void CleanUp();
virtual bool SaveFileEx(const QString& strPath); void SetID(int nID);
virtual bool SaveFileEx(const QString& strPath, QStringList sTaskNames); bool AddTaskByCopy(IDetectorTask* pSrc);
virtual bool LoadFileEx(const QString& strPath); virtual bool SetRunTask(QString strName);
//virtual bool SaveFile(const QString& strPath); IDetectorTask* AddTask(const PLP_DETECTOR_TASK pTask, QString strPath);
// virtual bool LoadFile(const QString& strPath); bool CheckTask(int nTaskID, QString strTaskName);
bool SerializeToJson(QJsonObject& jsonObject); bool SerializeToJson(QJsonObject& jsonObject);
bool SerializeFromJson(QJsonObject* pJsonObject); bool SerializeFromJson(QJsonObject* jsonObject);
private: private:
int m_nID; int m_nID{ 0 };
int m_nBaseID; int m_nBaseID{ 0 };
bool m_bIsRun; bool m_bIsRun{ 0 };
bool m_bIsModify; bool m_bIsModify{ 0 };
LP_DETECTOR_SOLUTION m_tSolutionInfo; LP_DETECTOR_SOLUTION m_tSolutionInfo;
QMap<QString, IDetectorTask*> m_TaskMapByName; QMap<QString, IDetectorTask*> m_TaskMapByName;
QMap<int, IDetectorTask*> m_TaskMapByID;
QMap<int, IDetectorTask*> m_CurRunTaskMap;//CamID(int),TaskPtr(IDetectorTask*)
IAlgorithmLibMgr* m_pAlgoLibMgr; IAlgorithmLibMgr* m_pAlgoLibMgr;
QMutex m_mutex; QMutex m_mutex;
QStringList m_tasklist;//task名列表 QStringList m_tasklist;//task名列表
}; };

@ -19,7 +19,7 @@ bool CDetectorSolutionMgr::Initialize(IAlgorithmLibMgr* pAlgoLibMgr)
return true; return true;
} }
IDetectorSolution* CDetectorSolutionMgr::AddSolution(const PLP_DETECTOR_SOLUTION pSolution, bool bRet/* = true */) IDetectorSolution* CDetectorSolutionMgr::AddSolution(const PLP_DETECTOR_SOLUTION pSolution)
{ {
if (NULL == pSolution) if (NULL == pSolution)
return NULL; return NULL;
@ -29,7 +29,7 @@ IDetectorSolution* CDetectorSolutionMgr::AddSolution(const PLP_DETECTOR_SOLUTION
if (p->Initialize(m_pAlgoLibMgr) && p->SetSolutionInfo(pSolution)) if (p->Initialize(m_pAlgoLibMgr) && p->SetSolutionInfo(pSolution))
{ {
p->SetID(++m_nBaseID); p->SetID(++m_nBaseID);
m_vecSolution.insert(m_nBaseID, p); m_vecSolution.insert(pSolution->strName, p);
return p; return p;
} }
@ -37,12 +37,12 @@ IDetectorSolution* CDetectorSolutionMgr::AddSolution(const PLP_DETECTOR_SOLUTION
return NULL; return NULL;
} }
bool CDetectorSolutionMgr::DeleteSolutionByID(int nSolutionID) bool CDetectorSolutionMgr::DeleteSolutionByID(QString strName)
{ {
if (m_nRunSolutionID == nSolutionID) if (m_nRunSolutionID == strName)
m_nRunSolutionID = LP_DETECTOR_INVALID_ID; m_nRunSolutionID.clear();
QMap<int, IDetectorSolution *>::iterator it = m_vecSolution.find(nSolutionID); QMap<QString, IDetectorSolution *>::iterator it = m_vecSolution.find(strName);
if (it != m_vecSolution.end()) if (it != m_vecSolution.end())
{ {
m_vecSolution.erase(it); m_vecSolution.erase(it);
@ -51,11 +51,12 @@ bool CDetectorSolutionMgr::DeleteSolutionByID(int nSolutionID)
return false; return false;
} }
IDetectorSolution* CDetectorSolutionMgr::GetSolutionByID(int nSolutionID)
IDetectorSolution* CDetectorSolutionMgr::GetSolutionByID(QString strName)
{ {
if (nSolutionID == 0) if (strName.isEmpty())
return m_vecSolution.first(); return nullptr;
QMap<int, IDetectorSolution *>::iterator it = m_vecSolution.find(nSolutionID); QMap<QString, IDetectorSolution *>::iterator it = m_vecSolution.find(strName);
if (it != m_vecSolution.end()) if (it != m_vecSolution.end())
{ {
(*it)->SetRunState(true); (*it)->SetRunState(true);
@ -69,30 +70,14 @@ int CDetectorSolutionMgr::GetSolutionCount()
return m_vecSolution.size(); return m_vecSolution.size();
} }
QMap<int, IDetectorSolution*> CDetectorSolutionMgr::GetAllSolutions() QMap<QString, IDetectorSolution*> CDetectorSolutionMgr::GetAllSolutions()
{ {
return m_vecSolution; return m_vecSolution;
} }
bool CDetectorSolutionMgr::CheckSolution(int nSolutionID, QString strSolutionName)
{
for (QMap<int, IDetectorSolution *>::iterator iter = m_vecSolution.begin();
iter != m_vecSolution.end(); ++iter)
{
if (NULL != *iter)
{
IDetectorSolution *p = *iter;
if (p->GetID() == nSolutionID && p->GetSolutionInfo()->strName == strSolutionName)
return true;
}
}
return false;
}
void CDetectorSolutionMgr::CleanUp() void CDetectorSolutionMgr::CleanUp()
{ {
for (QMap<int, IDetectorSolution *>::iterator iter = m_vecSolution.begin(); for (QMap<QString, IDetectorSolution *>::iterator iter = m_vecSolution.begin();
iter != m_vecSolution.end(); ++iter) iter != m_vecSolution.end(); ++iter)
{ {
if (*iter) if (*iter)
@ -109,7 +94,7 @@ bool CDetectorSolutionMgr::Save()
QJsonDocument document; QJsonDocument document;
QString strExePath = QCoreApplication::applicationDirPath(); QString strExePath = QCoreApplication::applicationDirPath();
/*耗时过长*/ /*耗时过长*/
for (QMap<int, IDetectorSolution *>::iterator iter = m_vecSolution.begin(); for (QMap<QString, IDetectorSolution *>::iterator iter = m_vecSolution.begin();
iter != m_vecSolution.end(); ++iter) iter != m_vecSolution.end(); ++iter)
{ {
if (*iter) if (*iter)
@ -152,11 +137,11 @@ bool CDetectorSolutionMgr::Save()
int nID = strFileName.mid(0, strFileName.indexOf("_")).toInt(); int nID = strFileName.mid(0, strFileName.indexOf("_")).toInt();
QString strSolutionName = strFileName.mid(strFileName.indexOf("_") + 1, strFileName.indexOf(".") - strFileName.indexOf("_") - 1); QString strSolutionName = strFileName.mid(strFileName.indexOf("_") + 1, strFileName.indexOf(".") - strFileName.indexOf("_") - 1);
if (!CheckSolution(nID, strSolutionName)) // if (!CheckSolution(nID, strSolutionName))
{ // {
qWarning() << "SaveAll, remove solution file" << strSolutionName; // qWarning() << "SaveAll, remove solution file" << strSolutionName;
EngineBase::DeleteDir(strSolutionFile); // EngineBase::DeleteDir(strSolutionFile);
} // }
} }
return true; return true;
@ -167,7 +152,7 @@ bool CDetectorSolutionMgr::SaveByNames(QStringList strNames)
QJsonDocument document; QJsonDocument document;
QString strExePath = QCoreApplication::applicationDirPath(); QString strExePath = QCoreApplication::applicationDirPath();
/*耗时过长*/ /*耗时过长*/
for (QMap<int, IDetectorSolution *>::iterator iter = m_vecSolution.begin(); for (QMap<QString, IDetectorSolution *>::iterator iter = m_vecSolution.begin();
iter != m_vecSolution.end(); ++iter) iter != m_vecSolution.end(); ++iter)
{ {
if (*iter) if (*iter)
@ -210,11 +195,11 @@ bool CDetectorSolutionMgr::SaveByNames(QStringList strNames)
int nID = strFileName.mid(0, strFileName.indexOf("_")).toInt(); int nID = strFileName.mid(0, strFileName.indexOf("_")).toInt();
QString strSolutionName = strFileName.mid(strFileName.indexOf("_") + 1, strFileName.indexOf(".") - strFileName.indexOf("_") - 1); QString strSolutionName = strFileName.mid(strFileName.indexOf("_") + 1, strFileName.indexOf(".") - strFileName.indexOf("_") - 1);
if (!CheckSolution(nID, strSolutionName)) // if (!CheckSolution(nID, strSolutionName))
{ // {
qWarning() << "SaveAll, remove solution file" << strSolutionName; // qWarning() << "SaveAll, remove solution file" << strSolutionName;
EngineBase::DeleteDir(strSolutionFile); // EngineBase::DeleteDir(strSolutionFile);
} // }
} }
return true; return true;
} }
@ -229,7 +214,7 @@ bool CDetectorSolutionMgr::Load()
solutionDir.mkdir(strSolutionDirPath); solutionDir.mkdir(strSolutionDirPath);
} }
m_nRunSolutionID = 0; m_nRunSolutionID.clear();
solutionDir.setFilter(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks); solutionDir.setFilter(QDir::Dirs | QDir::Hidden | QDir::NoSymLinks);
solutionDir.setSorting(QDir::Size | QDir::Reversed); solutionDir.setSorting(QDir::Size | QDir::Reversed);
@ -250,12 +235,13 @@ bool CDetectorSolutionMgr::Load()
LP_DETECTOR_SOLUTION solutionInfo; LP_DETECTOR_SOLUTION solutionInfo;
solutionInfo.strName = dirList.at(i).fileName();
Solution* pSolution = (Solution*)AddSolution(&solutionInfo); Solution* pSolution = (Solution*)AddSolution(&solutionInfo);
if (!pSolution->LoadFileEx(strSolutionFile)) if (!pSolution->LoadFileEx(strSolutionFile))
{//有bug {//有bug
qErrnoWarning("load solution: %s fail", strSolutionFile.toLocal8Bit().data()); qErrnoWarning("load solution: %s fail", strSolutionFile.toLocal8Bit().data());
DeleteSolutionByID(pSolution->GetID());// DeleteSolutionByID(solutionInfo.strName);//
pSolution = NULL; pSolution = NULL;
} }
if (pSolution) if (pSolution)
@ -281,10 +267,10 @@ bool CDetectorSolutionMgr::ReLoad()
return Load(); return Load();
} }
bool CDetectorSolutionMgr::SetRunSolution(int nSolutionID) bool CDetectorSolutionMgr::SetRunSolution(QString strName)
{ {
m_nRunSolutionID = nSolutionID; m_nRunSolutionID = strName;
IDetectorSolution* pRunSolution = GetSolutionByID(nSolutionID); IDetectorSolution* pRunSolution = GetSolutionByID(strName);
return true; return true;
} }

@ -8,30 +8,29 @@ class CDetectorSolutionMgr : public IDetectorSolutionMgr
public: public:
CDetectorSolutionMgr(); CDetectorSolutionMgr();
virtual ~CDetectorSolutionMgr(); virtual ~CDetectorSolutionMgr();
IDetectorSolution* AddSolution(const PLP_DETECTOR_SOLUTION pSolution, bool bRet = true); IDetectorSolution* AddSolution(const PLP_DETECTOR_SOLUTION pSolution);
bool DeleteSolutionByID(int nSolutionID); bool DeleteSolutionByID(QString strName);
IDetectorSolution* GetSolutionByID(int nSolutionID); IDetectorSolution* GetSolutionByID(QString strName);
int GetSolutionCount(); int GetSolutionCount();
QMap<int, IDetectorSolution*> GetAllSolutions(); QMap<QString, IDetectorSolution*> GetAllSolutions();
void CleanUp(); void CleanUp();
bool Initialize(IAlgorithmLibMgr* pAlgoLibMgr); bool Initialize(IAlgorithmLibMgr* pAlgoLibMgr);
virtual bool SetRunSolution(int nSolutionID); virtual bool SetRunSolution(QString strName);
virtual IDetectorSolution* GetRunSolution(); virtual IDetectorSolution* GetRunSolution();
virtual IDetectorSolution* AddAndCopySolution(IDetectorSolution* pSrcSolution); virtual IDetectorSolution* AddAndCopySolution(IDetectorSolution* pSrcSolution);
virtual bool CheckSolution(int nSolutionID, QString strSolutionName);
virtual bool Save(); virtual bool Save();
virtual bool SaveByNames(QStringList strNames); virtual bool SaveByNames(QStringList strNames);
virtual bool Load(); virtual bool Load();
virtual bool LoadByNames(QStringList strNames); virtual bool LoadByNames(QStringList strNames);
virtual bool ReLoad(); virtual bool ReLoad();
private: private:
QMap<int,IDetectorSolution*> m_vecSolution; QMap<QString, IDetectorSolution*> m_vecSolution;
int m_nBaseID; int m_nBaseID;
int m_nRunSolutionID; QString m_nRunSolutionID;
IAlgorithmLibMgr* m_pAlgoLibMgr{ NULL }; IAlgorithmLibMgr* m_pAlgoLibMgr{ NULL };
}; };

@ -420,7 +420,7 @@ bool CDetectorTask::SaveFile(const QString& strPath)
return false; return false;
} }
QString strFileName = strFilePath + /*QString::number(m_pSolution->GetID()) + "_" + QString::number(m_nID)*/ + "template.png"; QString strFileName = strFilePath + "/" + /*QString::number(m_pSolution->GetID()) + "_" + QString::number(m_nID)*/ + "template.png";
std::string strpath = strFileName.toLocal8Bit().toStdString(); std::string strpath = strFileName.toLocal8Bit().toStdString();
if (!cv::imwrite(strpath/*strFileName.toLatin1().data()*/, m_tTask.templateImg)) if (!cv::imwrite(strpath/*strFileName.toLatin1().data()*/, m_tTask.templateImg))

@ -78,9 +78,6 @@
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\include\lpdesigner\lpdesigner.h" />
<ClInclude Include="..\..\include\lpdesigner\lpdsgdefine.h" />
<ClInclude Include="..\..\include\lpdesigner\SystemStateInfo.h" />
<CustomBuild Include="..\..\src\lpbdesigner\DsgParamDlg.h"> <CustomBuild Include="..\..\src\lpbdesigner\DsgParamDlg.h">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Identity)...</Message>
@ -94,9 +91,6 @@
<ClInclude Include="..\..\src\lpbdesigner\colossusbase.h" /> <ClInclude Include="..\..\src\lpbdesigner\colossusbase.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgoDlg.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgoDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgorithmParamMgrDlg.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgorithmParamMgrDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_DeviceDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_DeviceListDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_DeviceMgrDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_MainFrame.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_MainFrame.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_ParamDlg.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_ParamDlg.h" />
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_RoiDlg.h" /> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_RoiDlg.h" />
@ -288,36 +282,6 @@
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs> <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command> <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\DeviceDlg.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\DeviceListDlg.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\DeviceMgrDlg.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\..\..\src\lpbdesigner\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
</CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\ParamDlg.ui"> <CustomBuild Include="..\..\src\lpbdesigner\ParamDlg.ui">
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs> <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message> <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>

@ -43,12 +43,6 @@
</Filter> </Filter>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\..\include\lpdesigner\lpdesigner.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\lpdesigner\lpdsgdefine.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\DrawTool.h"> <ClInclude Include="..\..\src\lpbdesigner\DrawTool.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@ -58,9 +52,6 @@
<ClInclude Include="..\..\src\lpbdesigner\SizeHandle.h"> <ClInclude Include="..\..\src\lpbdesigner\SizeHandle.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\include\lpdesigner\SystemStateInfo.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="resource1.h"> <ClInclude Include="resource1.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
@ -70,15 +61,6 @@
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgorithmParamMgrDlg.h"> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_AlgorithmParamMgrDlg.h">
<Filter>Generated Files</Filter> <Filter>Generated Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_DeviceDlg.h">
<Filter>Generated Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_DeviceListDlg.h">
<Filter>Generated Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_DeviceMgrDlg.h">
<Filter>Generated Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_ParamDlg.h"> <ClInclude Include="..\..\src\lpbdesigner\GeneratedFiles\ui_ParamDlg.h">
<Filter>Generated Files</Filter> <Filter>Generated Files</Filter>
</ClInclude> </ClInclude>
@ -132,15 +114,6 @@
<CustomBuild Include="..\..\src\lpbdesigner\AlgorithmParamMgrDlg.ui"> <CustomBuild Include="..\..\src\lpbdesigner\AlgorithmParamMgrDlg.ui">
<Filter>Form Files</Filter> <Filter>Form Files</Filter>
</CustomBuild> </CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\DeviceDlg.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\DeviceListDlg.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\DeviceMgrDlg.ui">
<Filter>Form Files</Filter>
</CustomBuild>
<CustomBuild Include="..\..\src\lpbdesigner\ParamDlg.ui"> <CustomBuild Include="..\..\src\lpbdesigner\ParamDlg.ui">
<Filter>Form Files</Filter> <Filter>Form Files</Filter>
</CustomBuild> </CustomBuild>

Loading…
Cancel
Save