提交 bcb09309 编写于 作者: X xifeng001

完善拖动图标

上级 0714fe65
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/error.png</file>
<file>icon/channelSegmentTool.png</file>
<file>icon/channelSegmentDrag.png</file>
</qresource>
</RCC>
......@@ -10,7 +10,8 @@ YDChannelSegmentationPlugin::YDChannelSegmentationPlugin(QWidget *parent)
setEditor(this);
setControlName(tr("通道切分"));
setControlType(0);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/channelSegmentTool.png"));
setDrawIcon(QPixmap(":/icon/channelSegmentDrag.png"));
}
YDChannelSegmentationPlugin::~YDChannelSegmentationPlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/error.png</file>
<file>icon/collectImageTool.png</file>
<file>icon/collectImageDrag.png</file>
</qresource>
</RCC>
......@@ -9,7 +9,8 @@ YDCollectImagePlugin::YDCollectImagePlugin(QWidget *parent) : QWidget(parent) {
setEditor(this);
setControlName(tr("采集图像"));
setControlType(0);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/collectImageTool.png"));
setDrawIcon(QPixmap(":/icon/collectImageDrag.png"));
}
YDCollectImagePlugin::~YDCollectImagePlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/error.png</file>
<file>icon/colorToGrayTool.png</file>
<file>icon/colorToGrayDrag.png</file>
</qresource>
</RCC>
......@@ -9,7 +9,8 @@ YDColorToGrayPlugin::YDColorToGrayPlugin(QWidget *parent) : QWidget(parent) {
setEditor(this);
setControlName(tr("彩色转灰"));
setControlType(0);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/colorToGrayTool.png"));
setDrawIcon(QPixmap(":/icon/colorToGrayDrag.png"));
}
YDColorToGrayPlugin::~YDColorToGrayPlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/error.png</file>
<file>icon/conditionalBranchTool.png</file>
<file>icon/conditionalBranchDrag.png</file>
</qresource>
</RCC>
......@@ -10,7 +10,8 @@ YDConditionalBranchPlugin::YDConditionalBranchPlugin(QWidget *parent)
setEditor(this);
setControlName(tr("条件分支"));
setControlType(2);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/conditionalBranchTool.png"));
setDrawIcon(QPixmap(":/icon/conditionalBranchDrag.png"));
}
YDConditionalBranchPlugin::~YDConditionalBranchPlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/error.png</file>
<file>icon/imageOperatTool.png</file>
<file>icon/imageOperatDrag.png</file>
</qresource>
</RCC>
......@@ -10,7 +10,8 @@ YDImageOperationPlugin::YDImageOperationPlugin(QWidget *parent)
setEditor(this);
setControlName(tr("图像运算"));
setControlType(0);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/imageOperatTool.png"));
setDrawIcon(QPixmap(":/icon/imageOperatDrag.png"));
}
YDImageOperationPlugin::~YDImageOperationPlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/error.png</file>
<file>icon/circular.png</file>
<file>icon/curve.png</file>
<file>icon/diamond.png</file>
......@@ -9,5 +7,7 @@
<file>icon/rectangle.png</file>
<file>icon/rotate.png</file>
<file>icon/zoom.png</file>
<file>icon/pretreatmentTool.png</file>
<file>icon/pretreatmenDrag.png</file>
</qresource>
</RCC>
......@@ -9,7 +9,8 @@ YDPretreatmentPlugin::YDPretreatmentPlugin(QWidget *parent) : QWidget(parent) {
setEditor(this);
setControlName(tr("预先处理"));
setControlType(0);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/pretreatmentTool.png"));
setDrawIcon(QPixmap(":/icon/pretreatmenDrag.png"));
}
YDPretreatmentPlugin::~YDPretreatmentPlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
......@@ -85,6 +85,9 @@ void YDPropertyDlg::setTextList(const QStringList &list) {
ui->lineEdit_angle->setText(list[index++]);
} else if (list[1] == "3") {
ui->btn_circular->setChecked(true);
ui->lineEdit_cirCenterX->setText(list[index++]);
ui->lineEdit_cirCenterY->setText(list[index++]);
ui->lineEdit_radius->setText(list[index++]);
} else if (list[1] == "4") {
ui->btn_Irregular->setChecked(true);
}
......@@ -119,6 +122,8 @@ QStringList YDPropertyDlg::getTextList() {
} else if (ui->btn_circular->isChecked()) {
list << "3";
ui->stackedWidget->setCurrentIndex(3);
list << ui->lineEdit_cirCenterX->text() << ui->lineEdit_cirCenterY->text()
<< ui->lineEdit_radius->text();
} else if (ui->btn_Irregular->isChecked()) {
list << "4";
ui->stackedWidget->setCurrentIndex(4);
......@@ -635,8 +640,10 @@ void YDPropertyDlg::slotShowMousePos(QPointF point) {
QString("x=%1,y=%2")
.arg(QString::number(point.x()), QString::number(point.y())));
if (point.x() >= 0 && point.y() >= 0 && !m_matImage.empty()) {
cv::Vec3b intensity = m_matImage.at<cv::Vec3b>(point.y(), point.x());
if (point.x() >= 0 && point.y() >= 0 && point.x() <= m_matImage.cols &&
point.y() <= m_matImage.rows && !m_matImage.empty()) {
cv::Vec3b intensity =
m_matImage.at<cv::Vec3b>(point.toPoint().y(), point.toPoint().x());
if (m_matImage.channels() == 3) {
ui->label_rgb->setText(QString("R=%1,G=%2,B=%3")
.arg(QString::number(intensity[0]),
......
<RCC>
<qresource prefix="/">
<file>icon/resolutionScaleTool.png</file>
<file>icon/resolutionScaleDrag.png</file>
</qresource>
</RCC>
......@@ -10,7 +10,8 @@ YDResolutionScalePlugin::YDResolutionScalePlugin(QWidget *parent)
setEditor(this);
setControlName(tr("分辨率缩放"));
setControlType(0);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/resolutionScaleTool.png"));
setDrawIcon(QPixmap(":/icon/resolutionScaleDrag.png"));
}
YDResolutionScalePlugin::~YDResolutionScalePlugin() {}
......
......@@ -80,3 +80,6 @@ LIBS +=$$PWD/../YDVisualPattern/YDCVLib/opencv4/x64/mingw/lib/libopencv_*.dll.a
FORMS += \
property/YDPropertyDlg.ui
RESOURCES += \
Resources.qrc
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/error.png</file>
<file>icon/saveImageTool.png</file>
<file>icon/saveImageDrag.png</file>
</qresource>
</RCC>
......@@ -9,7 +9,8 @@ YDSaveImagePlugin::YDSaveImagePlugin(QWidget *parent) : QWidget(parent) {
setEditor(this);
setControlName(tr("存储图像"));
setControlType(0);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/saveImageTool.png"));
setDrawIcon(QPixmap(":/icon/saveImageDrag.png"));
}
YDSaveImagePlugin::~YDSaveImagePlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/circular.png</file>
<file>icon/curve.png</file>
<file>icon/diamond.png</file>
<file>icon/error.png</file>
<file>icon/null.png</file>
<file>icon/rectangle.png</file>
<file>icon/rotate.png</file>
<file>icon/zoom.png</file>
<file>icon/shapeMatchingTool.png</file>
<file>icon/shapeMatchingDrag.png</file>
</qresource>
</RCC>
......@@ -10,7 +10,8 @@ YDShapeMatchingPlugin::YDShapeMatchingPlugin(QWidget *parent)
setEditor(this);
setControlName(tr("形状匹配"));
setControlType(1);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/shapeMatchingTool.png"));
setDrawIcon(QPixmap(":/icon/shapeMatchingDrag.png"));
}
YDShapeMatchingPlugin::~YDShapeMatchingPlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
......@@ -157,7 +157,8 @@ void YDPropertyDlg::slotShowMousePos(QPointF point) {
QString("x=%1,y=%2")
.arg(QString::number(point.x()), QString::number(point.y())));
if (point.x() >= 0 && point.y() >= 0 && !m_matImage.empty()) {
if (point.x() >= 0 && point.y() >= 0 && point.x() <= m_matImage.cols &&
point.y() <= m_matImage.rows && !m_matImage.empty()) {
cv::Vec3b intensity = m_matImage.at<cv::Vec3b>(point.y(), point.x());
if (m_matImage.channels() == 3) {
ui->label_rgb->setText(QString("R=%1,G=%2,B=%3")
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/circular.png</file>
<file>icon/curve.png</file>
<file>icon/diamond.png</file>
<file>icon/error.png</file>
<file>icon/null.png</file>
<file>icon/rectangle.png</file>
<file>icon/rotate.png</file>
<file>icon/zoom.png</file>
<file>icon/startCycleTool.png</file>
<file>icon/startCycleDrag.png</file>
</qresource>
</RCC>
......@@ -9,7 +9,8 @@ YDStartCyclePlugin::YDStartCyclePlugin(QWidget *parent) : QWidget(parent) {
setEditor(this);
setControlName(tr("开始循环"));
setControlType(2);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/startCycleTool.png"));
setDrawIcon(QPixmap(":/icon/startCycleDrag.png"));
}
YDStartCyclePlugin::~YDStartCyclePlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/circular.png</file>
<file>icon/curve.png</file>
<file>icon/diamond.png</file>
<file>icon/error.png</file>
<file>icon/null.png</file>
<file>icon/rectangle.png</file>
<file>icon/rotate.png</file>
<file>icon/zoom.png</file>
<file>icon/stopCycleTool.png</file>
<file>icon/stopCycleDrag.png</file>
</qresource>
</RCC>
......@@ -9,7 +9,8 @@ YDStopCyclePlugin::YDStopCyclePlugin(QWidget *parent) : QWidget(parent) {
setEditor(this);
setControlName(tr("停止循环"));
setControlType(2);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/stopCycleTool.png"));
setDrawIcon(QPixmap(":/icon/stopCycleDrag.png"));
}
YDStopCyclePlugin::~YDStopCyclePlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
......@@ -10,6 +10,8 @@ CONFIG += c++17
TARGET = YDVisualPattern
RC_FILE = ../icon.rc
include(singleapplication/singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QApplication
......@@ -79,6 +81,7 @@ SOURCES += \
widget/base/YDNameLineEdit.cpp \
widget/dialog/YDChangeProcessNameDlg.cpp \
widget/dialog/YDModifyToolNameDlg.cpp \
widget/dialog/YDShowMessage.cpp \
widget/module/YDConditionTreeWidget.cpp \
widget/module/YDModuleListWidget.cpp \
widget/module/YDModuleTreeWidget.cpp \
......@@ -104,6 +107,7 @@ HEADERS += \
widget/base/YDNameLineEdit.h \
widget/dialog/YDChangeProcessNameDlg.h \
widget/dialog/YDModifyToolNameDlg.h \
widget/dialog/YDShowMessage.h \
widget/module/YDConditionTreeWidget.h \
widget/module/YDModuleListWidget.h \
widget/module/YDModuleTreeWidget.h \
......
//#include "YDLogger.h"
//#include <QDateTime>
//#include <chrono>
//#include <iostream>
//#include <memory>
//#include <string>
//#include "widget/YDShowMessage.h"
// YDLogger *YDLogger::s_instance = nullptr;
// YDLogger::YDLogger()
// : m_msg{nullptr},
// m_traceStr{YDLogger::tr("[追踪]")},
// m_debugStr{YDLogger::tr("[调试]")},
// m_infoStr{YDLogger::tr("[信息]")},
// m_warnStr{YDLogger::tr("[警告]")},
// m_errorStr{YDLogger::tr("[错误]")},
// m_fatalStr{YDLogger::tr("[致命]")} {
// Q_ASSERT(s_instance == nullptr);
// s_instance = this;
// try {
// m_consoleLog = spdlog::stdout_color_st("LoggerName1");
// m_consoleLog->set_pattern("%Y-%m-%d %H:%M:%S.%f <thread %t> [%l] [%@]
// %v");
// // with timestamp,
// // thread_id,
// // filename and
// // line number
// std::string level = "info";
// if (level == "trace") {
// m_consoleLog->set_level(spdlog::level::trace);
// m_consoleLog->flush_on(spdlog::level::trace);
// } else if (level == "debug") {
// m_consoleLog->set_level(spdlog::level::debug);
// m_consoleLog->flush_on(spdlog::level::debug);
// } else if (level == "info") {
// m_consoleLog->set_level(spdlog::level::info);
// m_consoleLog->flush_on(spdlog::level::info);
// } else if (level == "warn") {
// m_consoleLog->set_level(spdlog::level::warn);
// m_consoleLog->flush_on(spdlog::level::warn);
// } else if (level == "error") {
// m_consoleLog->set_level(spdlog::level::err);
// m_consoleLog->flush_on(spdlog::level::err);
// }
// } catch (const spdlog::spdlog_ex &ex) {
// std::cout << "Log initialization failed: " << ex.what() << std::endl;
// }
//}
// YDLogger::~YDLogger() {
// Q_ASSERT(s_instance == this);
// s_instance = nullptr;
// spdlog::drop_all();
// }
// std::shared_ptr<spdlog::logger> YDLogger::getConsoleLogger() {
// Q_ASSERT(s_instance != nullptr);
// return s_instance->m_consoleLog;
// }
// void YDLogger::setMessageWidget(YDShowMessage *w) {
// Q_ASSERT(w != nullptr);
// s_instance->m_msg = w;
// }
// void YDLogger::log(const QString &str, LogLevel level) {
// Q_ASSERT(s_instance != nullptr);
// std::lock_guard<std::mutex> lock(s_instance->m_mutex);
// Q_UNUSED(lock)
// QString time = QDateTime::currentDateTime().toString("[yyyy-MM-dd
// hh:mm:ss]");
// switch (level) {
// case LogLevel::Trace: {
// s_instance->m_msg->setShowMessage(
// QString("%1 %2 %3").arg(time, s_instance->m_traceStr, str), level);
// } break;
// case LogLevel::Debug: {
// s_instance->m_msg->setShowMessage(
// QString("%1 %2 %3").arg(time, s_instance->m_debugStr, str), level);
// } break;
// case LogLevel::Info: {
// s_instance->m_msg->setShowMessage(
// QString("%1 %2 %3").arg(time, s_instance->m_infoStr, str), level);
// } break;
// case LogLevel::Warning: {
// s_instance->m_msg->setShowMessage(
// QString("%1 %2 %3").arg(time, s_instance->m_warnStr, str), level);
// } break;
// case LogLevel::Error: {
// s_instance->m_msg->setShowMessage(
// QString("%1 %2 %3").arg(time, s_instance->m_errorStr, str), level);
// } break;
// case LogLevel::Fatal: {
// s_instance->m_msg->setShowMessage(
// QString("%1 %2 %3").arg(time, s_instance->m_fatalStr, str), level);
// } break;
// default:
// break;
// }
//}
// void YDLogger::trace(const QString &str) { log(str, LogLevel::Trace); }
// void YDLogger::info(const QString &str) { log(str, LogLevel::Info); }
// void YDLogger::debug(const QString &str) { log(str, LogLevel::Debug); }
// void YDLogger::warn(const QString &str) { log(str, LogLevel::Warning); }
// void YDLogger::err(const QString &str) { log(str, LogLevel::Error); }
// void YDLogger::critical(const QString &str) { log(str, LogLevel::Fatal); }
#include "YDLogger.h"
#include <QDateTime>
#include <chrono>
#include <iostream>
#include <memory>
#include <string>
#include "widget/dialog/YDShowMessage.h"
YDLogger *YDLogger::s_instance = nullptr;
YDLogger::YDLogger()
: m_msg{nullptr},
m_traceStr{YDLogger::tr("[追踪]")},
m_debugStr{YDLogger::tr("[调试]")},
m_infoStr{YDLogger::tr("[信息]")},
m_warnStr{YDLogger::tr("[警告]")},
m_errorStr{YDLogger::tr("[错误]")},
m_fatalStr{YDLogger::tr("[致命]")} {
Q_ASSERT(s_instance == nullptr);
s_instance = this;
try {
m_consoleLog = spdlog::stdout_color_st("LoggerName1");
m_consoleLog->set_pattern("%Y-%m-%d %H:%M:%S.%f <thread %t> [%l] [%@] %v");
std::string level = "info";
if (level == "trace") {
m_consoleLog->set_level(spdlog::level::trace);
m_consoleLog->flush_on(spdlog::level::trace);
} else if (level == "debug") {
m_consoleLog->set_level(spdlog::level::debug);
m_consoleLog->flush_on(spdlog::level::debug);
} else if (level == "info") {
m_consoleLog->set_level(spdlog::level::info);
m_consoleLog->flush_on(spdlog::level::info);
} else if (level == "warn") {
m_consoleLog->set_level(spdlog::level::warn);
m_consoleLog->flush_on(spdlog::level::warn);
} else if (level == "error") {
m_consoleLog->set_level(spdlog::level::err);
m_consoleLog->flush_on(spdlog::level::err);
}
} catch (const spdlog::spdlog_ex &ex) {
std::cout << "Log initialization failed: " << ex.what() << std::endl;
}
}
YDLogger::~YDLogger() {
Q_ASSERT(s_instance == this);
s_instance = nullptr;
spdlog::drop_all();
}
std::shared_ptr<spdlog::logger> YDLogger::getConsoleLogger() {
Q_ASSERT(s_instance != nullptr);
return s_instance->m_consoleLog;
}
void YDLogger::setMessageWidget(YDShowMessage *w) {
Q_ASSERT(w != nullptr);
s_instance->m_msg = w;
}
void YDLogger::log(const QString &str, LogLevel level) {
Q_ASSERT(s_instance != nullptr);
std::lock_guard<std::mutex> lock(s_instance->m_mutex);
Q_UNUSED(lock)
QString time = QDateTime::currentDateTime().toString("[yyyy-MM-dd hh:mm:ss]");
switch (level) {
case LogLevel::Trace: {
s_instance->m_msg->setShowMessage(
QString("%1 %2 %3").arg(time, s_instance->m_traceStr, str), level);
} break;
case LogLevel::Debug: {
s_instance->m_msg->setShowMessage(
QString("%1 %2 %3").arg(time, s_instance->m_debugStr, str), level);
} break;
case LogLevel::Info: {
s_instance->m_msg->setShowMessage(
QString("%1 %2 %3").arg(time, s_instance->m_infoStr, str), level);
} break;
case LogLevel::Warning: {
s_instance->m_msg->setShowMessage(
QString("%1 %2 %3").arg(time, s_instance->m_warnStr, str), level);
} break;
case LogLevel::Error: {
s_instance->m_msg->setShowMessage(
QString("%1 %2 %3").arg(time, s_instance->m_errorStr, str), level);
} break;
case LogLevel::Fatal: {
s_instance->m_msg->setShowMessage(
QString("%1 %2 %3").arg(time, s_instance->m_fatalStr, str), level);
} break;
default:
break;
}
}
void YDLogger::trace(const QString &str) { log(str, LogLevel::Trace); }
void YDLogger::info(const QString &str) { log(str, LogLevel::Info); }
void YDLogger::debug(const QString &str) { log(str, LogLevel::Debug); }
void YDLogger::warn(const QString &str) { log(str, LogLevel::Warning); }
void YDLogger::err(const QString &str) { log(str, LogLevel::Error); }
void YDLogger::critical(const QString &str) { log(str, LogLevel::Fatal); }
......@@ -3,7 +3,7 @@
#include <QCoreApplication>
#include <mutex>
/*
#include "YDGlobal.h"
#include "spdlog/async.h"
#include "spdlog/sinks/basic_file_sink.h"
......@@ -11,14 +11,14 @@
#include "spdlog/sinks/stdout_color_sinks.h"
#include "spdlog/spdlog.h"
class YDShowMessage;
class QWidget;
class YDShowMessage;
class QWidget;
class YDLogger {
Q_DECLARE_TR_FUNCTIONS(YDLogger)
public:
YDLogger();
~YDLogger();
class YDLogger {
Q_DECLARE_TR_FUNCTIONS(YDLogger)
public:
YDLogger();
~YDLogger();
public:
static std::shared_ptr<spdlog::logger> getConsoleLogger();
......@@ -46,20 +46,4 @@
QString m_fatalStr;
};
#define TRACE(...) \
SPDLOG_LOGGER_CALL(YDLogger::getConsoleLogger().get(), spdlog::level::trace, \
__VA_ARGS__)
#define DEBUG(...) \
SPDLOG_LOGGER_CALL(YDLogger::getConsoleLogger().get(), spdlog::level::debug, \
__VA_ARGS__)
#define INFO(...) \
SPDLOG_LOGGER_CALL(YDLogger::getConsoleLogger().get(), spdlog::level::info, \
__VA_ARGS__)
#define WARN(...) \
SPDLOG_LOGGER_CALL(YDLogger::getConsoleLogger().get(), spdlog::level::warn, \
__VA_ARGS__)
#define ERROR(...) \
SPDLOG_LOGGER_CALL(YDLogger::getConsoleLogger().get(), spdlog::level::err, \
__VA_ARGS__)
*/
#endif // YDLOGGER_H
......@@ -25,5 +25,6 @@
<file>resource/icon/narrow.png</file>
<file>resource/icon/reduction.png</file>
<file>resource/icon/self-adaption.png</file>
<file>resource/icon/tool.png</file>
</qresource>
</RCC>
......@@ -32,8 +32,8 @@ int main(int argc, char *argv[]) {
YDHelper ydhelper;
Q_UNUSED(ydhelper);
// YDLogger ydlogger;
// Q_UNUSED(ydlogger);
YDLogger ydlogger;
Q_UNUSED(ydlogger);
YDPluginManager ydpluginManager;
Q_UNUSED(ydpluginManager);
......@@ -41,6 +41,7 @@ int main(int argc, char *argv[]) {
Q_UNUSED(ydproject);
MainWindow w;
YDLogger::setMessageWidget(w.getLogWidget());
w.showMaximized();
return a.exec();
}
#include "mainwindow.h"
#include <QBuffer>
#include <QDebug>
#include <QDir>
#include <QFileDialog>
#include <QFileInfo>
#include <QImageReader>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
......@@ -15,18 +17,21 @@
#include <QVBoxLayout>
#include "common/YDHelper.h"
#include "common/YDLogger.h"
#include "common/YDPluginManager.h"
#include "common/YDProjectManage.h"
#include "ui_mainwindow.h"
#include "widget/base/YDDockWidget.h"
#include "widget/base/YDGraphicsView.h"
#include "widget/dialog/YDChangeProcessNameDlg.h"
#include "widget/dialog/YDShowMessage.h"
#include "widget/module/YDTabWidget.h"
#include "widget/module/YDToolBoxModel.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent),
ui(new Ui::MainWindow),
m_logDlg{new YDShowMessage(this)},
m_toolModel{new YDToolBoxModel(this)},
m_imageView{new YDGraphicsView(this)},
m_changeProcessNameDlg{nullptr} {
......@@ -43,6 +48,8 @@ MainWindow::MainWindow(QWidget *parent)
MainWindow::~MainWindow() { delete ui; }
YDShowMessage *MainWindow::getLogWidget() const { return m_logDlg; }
void MainWindow::initUi() {
ui->statusbar->showMessage("宇道-视图软件");
setDockNestingEnabled(true);
......@@ -85,6 +92,11 @@ void MainWindow::initUi() {
QVBoxLayout *vlay = new QVBoxLayout(ui->widget);
vlay->addWidget(m_imageView);
vlay->setContentsMargins(1, 1, 1, 1);
QVBoxLayout *logLayout = new QVBoxLayout(ui->widget_2);
logLayout->setSpacing(0);
logLayout->setContentsMargins(2, 0, 4, 1);
logLayout->addWidget(m_logDlg);
}
void MainWindow::initConnect() {
......@@ -128,7 +140,7 @@ bool MainWindow::loadPlugin() {
QStandardItem *items =
m_toolModel->item(basePlugin->getControlType(), 0);
QStandardItem *item = new QStandardItem(
QIcon(":/resource/icon/subMenu.png"), basePlugin->getControlName());
QIcon(basePlugin->getControlIcon()), basePlugin->getControlName());
items->appendRow(item);
isExist = true;
......@@ -147,6 +159,8 @@ void MainWindow::createNewProject() {
YDTabWidget *widget = new YDTabWidget(ui->tabWidget);
widget->setTabTitleName("Task1");
ui->tabWidget->addTab(widget, "Task1");
YDProjectManage::setProjectName("");
YDLogger::info(tr("新建项目成功"));
}
void MainWindow::openProject() {
......@@ -190,6 +204,9 @@ void MainWindow::openProject() {
// qDebug() << __FUNCTION__ << __LINE__ << jsonArray;
file.close();
QFileInfo fileInfo(fileName);
YDLogger::info(QString(tr("打开项目: %1成功"))
.arg(fileInfo.fileName().split(".").at(0)));
for (int i = ui->tabWidget->count() - 1; i >= 0; i--) {
YDTabWidget *widget = static_cast<YDTabWidget *>(ui->tabWidget->widget(i));
widget->removeSelectProcess();
......@@ -267,6 +284,10 @@ void MainWindow::saveProject(QString fileName) {
qDebug() << __func__ << jsonArray;
file.write(data);
file.close();
QFileInfo fileInfo(fileName);
YDLogger::info(QString(tr("保存项目: %1成功"))
.arg(fileInfo.fileName().split(".").at(0)));
}
void MainWindow::saveAsProject() { saveProject(""); }
......@@ -487,3 +508,15 @@ void MainWindow::startPasteToolItem(const QModelIndex &index,
pasteWidget->setPasteItem(index, jsonArray);
}
}
void MainWindow::on_a_execution_triggered() {}
void MainWindow::on_a_singleExec_triggered() {
YDTabWidget *widget =
static_cast<YDTabWidget *>(ui->tabWidget->currentWidget());
QJsonObject jsonObj;
jsonObj.insert("task_list_num", ui->tabWidget->currentIndex());
jsonObj.insert("task_tree", widget->getProcessExecList());
qDebug() << __FUNCTION__ << jsonObj;
}
......@@ -5,9 +5,10 @@
#include "pluginBase/YDPluginBase.h"
class YDShowMessage;
class YDToolBoxModel;
class QStandardItemModel;
class YDGraphicsView;
class QStandardItemModel;
class YDChangeProcessNameDlg;
QT_BEGIN_NAMESPACE
......@@ -23,6 +24,8 @@ class MainWindow : public QMainWindow {
MainWindow(QWidget *parent = nullptr);
~MainWindow();
YDShowMessage *getLogWidget() const;
private slots:
void on_a_newProject_triggered();
......@@ -69,6 +72,10 @@ class MainWindow : public QMainWindow {
void startPasteToolItem(const QModelIndex &index, const QString &processName,
const QString &toolName);
void on_a_execution_triggered();
void on_a_singleExec_triggered();
private:
void initUi();
void initConnect();
......@@ -83,6 +90,7 @@ class MainWindow : public QMainWindow {
private:
Ui::MainWindow *ui;
YDShowMessage *m_logDlg; //日志信息
YDToolBoxModel *m_toolModel;
YDGraphicsView *m_imageView;
YDChangeProcessNameDlg *m_changeProcessNameDlg;
......
......@@ -158,7 +158,7 @@
<number>0</number>
</property>
<item>
<widget class="QTextEdit" name="textEdit"/>
<widget class="QWidget" name="widget_2" native="true"/>
</item>
</layout>
</widget>
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -41,6 +41,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -76,14 +80,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
#include "YDGraphicsView.h"
#include <QBuffer>
#include <QDebug>
#include <QGraphicsPixmapItem>
#include <QGraphicsScene>
......@@ -74,7 +75,7 @@ void YDGraphicsView::setSceneImage(cv::Mat mat) {
m_pixmapItem = m_imageScene->addPixmap(QPixmap::fromImage(m_image));
}
slotAdaptImage();
} else {
} else if (m_pixmapItem) {
m_imageScene->removeItem(m_pixmapItem);
if (m_pixmapItem) {
delete m_pixmapItem;
......
#include "YDShowMessage.h"
#include <QTextEdit>
#include <QVBoxLayout>
YDShowMessage::YDShowMessage(QWidget *parent)
: QDialog{parent},
m_logText{new QTextEdit(this)},
m_traceColor{"#4C4C4C"},
m_debugColor{"#0053AE"},
m_infoColor{"#006000"},
m_warnColor{"#808000"},
m_errorColor{"#800000"},
m_fatalColor{"#FF0000"} {
setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0);
layout->addWidget(m_logText);
m_logText->setReadOnly(true);
m_logText->setWordWrapMode(QTextOption::WordWrap);
m_logText->setStyleSheet("font-size:16px;");
m_logText->moveCursor(QTextCursor::End);
}
void YDShowMessage::setShowMessage(const QString &info, const LogLevel &level) {
switch (level) {
case Trace:
m_logText->append(
QString("<font color=%1>%2</font>").arg(m_traceColor, info));
break;
case Debug:
m_logText->append(
QString("<font color=%1>%2</font>").arg(m_debugColor, info));
break;
case Info:
m_logText->append(
QString("<font color=%1>%2</font>").arg(m_infoColor, info));
break;
case Warning:
m_logText->append(
QString("<font color=%1>%2</font>").arg(m_warnColor, info));
break;
case Error:
m_logText->append(
QString("<font color=%1>%2</font>").arg(m_errorColor, info));
break;
case Fatal:
m_logText->append(
QString("<font color=%1>%2</font>").arg(m_fatalColor, info));
break;
}
}
#ifndef YDSHOWMESSAGE_H
#define YDSHOWMESSAGE_H
#include <QDialog>
#include "common/YDGlobal.h"
class QTextEdit;
class YDShowMessage : public QDialog {
Q_OBJECT
public:
YDShowMessage(QWidget *parent = nullptr);
void setShowMessage(const QString &info, const LogLevel &level);
private:
QTextEdit *m_logText;
QString m_traceColor;
QString m_debugColor;
QString m_infoColor;
QString m_warnColor;
QString m_errorColor;
QString m_fatalColor;
};
#endif // YDSHOWMESSAGE_H
......@@ -369,7 +369,7 @@ void YDModuleListWidget::startDrag(Qt::DropActions) {
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setHotSpot({0, 0});
drag->setPixmap(plugin->getControlIcon());
drag->setPixmap(plugin->getDrawIcon());
if (drag->exec(Qt::MoveAction) == Qt::MoveAction) {
auto w = itemWidget(item);
......
......@@ -381,6 +381,92 @@ QJsonArray YDModuleTreeWidget::getProcessListData() {
}
allItems++;
}
return jsonArray;
}
QJsonArray YDModuleTreeWidget::getExecListData() {
QJsonArray jsonArray;
QTreeWidgetItemIterator allItems(this);
int taskId = 1;
while (*allItems) {
QJsonObject jsonObj;
YDModuleWidget *widget =
static_cast<YDModuleWidget *>(itemWidget((*allItems), 0));
YDPluginBase *pluginBase =
YDPluginManager::getPluginWidget(widget->getControlName());
int itemNum = (*allItems)->childCount();
QModelIndex index = indexFromItem((*allItems));
QStringList paramList;
pluginBase->getPropertyParamList(m_tabName, widget->getToolName(),
paramList);
// jsonObj.insert("toolName", widget->getToolName());
// jsonObj.insert("controlName", widget->getControlName());
// jsonObj.insert("activeFlag", widget->getActiveFlag());
jsonObj.insert("task_class", taskId++);
jsonObj.insert("task_id", taskId++);
if (!index.parent().isValid()) {
jsonArray.append(jsonObj);
}
while (itemNum > 0) {
QString listNum = "";
QJsonArray subArray;
QList<qint16> moudleList;
for (int i = 0; i < itemNum; i++) {
QJsonObject subObject;
QTreeWidgetItem *item = (*allItems)->child(i);
YDModuleWidget *subWidget =
static_cast<YDModuleWidget *>(itemWidget(item, 0));
YDPluginBase *subPlugin =
YDPluginManager::getPluginWidget(subWidget->getControlName());
subPlugin->getPropertyParamList(m_tabName, subWidget->getToolName(),
paramList);
// subObject.insert("toolName", subWidget->getToolName());
// subObject.insert("controlName", subWidget->getControlName());
// subObject.insert("activeFlag", subWidget->getActiveFlag());
subObject.insert("task_class", taskId++);
subObject.insert("task_id", taskId++);
subArray.append(subObject);
if (i == 0) {
QModelIndex tmpIndex = indexFromItem(item).parent();
listNum = QString::number(tmpIndex.row());
while (tmpIndex.isValid()) {
moudleList.push_front(tmpIndex.row());
tmpIndex = tmpIndex.parent();
}
}
}
int tmpNum = itemNum;
for (int i = 0; i < tmpNum; i++) {
allItems++;
itemNum = (*allItems)->childCount();
if (itemNum > 0) {
break;
}
}
QList<QJsonObject> subObjList;
subObjList.append(jsonArray.at(moudleList.at(0)).toObject());
for (int l = 1; l < moudleList.size(); l++) {
QJsonObject tmpObj = subObjList.last();
QJsonArray tmpArray = tmpObj["sub_task"].toArray();
subObjList.append(tmpArray.at(moudleList.at(l)).toObject());
}
subObjList.last().insert("sub_task", subArray);
for (int j = subObjList.size() - 2; j >= 0; --j) {
QJsonObject tmpObj = subObjList.at(j);
QJsonArray tmpArray = tmpObj["sub_task"].toArray();
tmpArray.removeAt(moudleList.at(j + 1));
tmpArray.insert(moudleList.at(j + 1), subObjList[j + 1]);
subObjList[j].insert("sub_task", tmpArray);
}
jsonArray.removeAt(moudleList.first());
jsonArray.insert(moudleList.first(), subObjList.first());
}
allItems++;
}
qDebug() << __FUNCTION__ << jsonArray;
return jsonArray;
}
......@@ -511,8 +597,8 @@ void YDModuleTreeWidget::setPasteItem(const QModelIndex &index,
}
YDModuleWidget *widget =
new YDModuleWidget(QPixmap(":/resource/icon/add.png"), pixmap,
processName, json["toolNotes"].toString(), this);
new YDModuleWidget(pluginBase->getControlIcon(), pixmap, processName,
json["toolNotes"].toString(), this);
widget->setExecTime(json["execTime"].toString());
widget->setToolType(json["toolType"].toString().toInt());
widget->setControlName(json["controlName"].toString());
......@@ -558,7 +644,7 @@ void YDModuleTreeWidget::addTreeItem1(const QJsonObject &json) {
pluginBase->addProcessTool(m_tabName, json["toolName"].toString());
YDModuleWidget *widget = new YDModuleWidget(
QPixmap(":/resource/icon/add.png"), pixmap, json["toolName"].toString(),
pluginBase->getControlIcon(), pixmap, json["toolName"].toString(),
json["toolNotes"].toString(), this);
widget->setToolType(json["toolType"].toInt());
widget->setControlName(json["controlName"].toString());
......@@ -604,7 +690,7 @@ void YDModuleTreeWidget::addTreeItem2(const QString &parentStr,
pluginBase->addProcessTool(m_tabName, json["toolName"].toString());
YDModuleWidget *widget = new YDModuleWidget(
QPixmap(":/resource/icon/add.png"), pixmap, json["toolName"].toString(),
pluginBase->getControlIcon(), pixmap, json["toolName"].toString(),
json["toolNotes"].toString(), this);
widget->setToolType(json["toolType"].toInt());
widget->setControlName(json["controlName"].toString());
......@@ -729,11 +815,11 @@ void YDModuleTreeWidget::dropEvent(QDropEvent *e) {
if (controlName == tr("条件分支")) {
QString processName = pluginBase->addProcessTool(m_tabName, tr("如果"));
YDModuleWidget *widget = new YDModuleWidget(
QPixmap(":/resource/icon/add.png"), pluginBase->getControlIcon(),
pluginBase->getControlIcon(), QPixmap(":/resource/icon/error.png"),
processName, "", this);
processName = pluginBase->addProcessTool(m_tabName, tr("否则"));
YDModuleWidget *widget1 = new YDModuleWidget(
QPixmap(":/resource/icon/add.png"), pluginBase->getControlIcon(),
pluginBase->getControlIcon(), QPixmap(":/resource/icon/error.png"),
processName, "", this);
widget->setToolType(pluginBase->getControlType());
......@@ -753,7 +839,7 @@ void YDModuleTreeWidget::dropEvent(QDropEvent *e) {
QString processName =
pluginBase->addProcessTool(m_tabName, controlName);
YDModuleWidget *widget = new YDModuleWidget(
QPixmap(":/resource/icon/add.png"), pluginBase->getControlIcon(),
pluginBase->getControlIcon(), QPixmap(":/resource/icon/error.png"),
processName, "", this);
widget->setToolType(pluginBase->getControlType());
widget->setControlName(controlName);
......@@ -792,7 +878,7 @@ void YDModuleTreeWidget::startDrag(Qt::DropActions supportedActions) {
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->setHotSpot({0, 0});
drag->setPixmap(plugin->getControlIcon());
drag->setPixmap(plugin->getDrawIcon());
if (drag->exec(Qt::MoveAction) == Qt::MoveAction) {
if (item->childCount() == 0 && widget->getControlName() != tr("条件分支") &&
......@@ -959,20 +1045,21 @@ void YDModuleTreeWidget::addTreeChildrenItem(const QModelIndex &index,
QString toolName = json["toolName"].toString();
nameMap.insert(toolName, toolName);
auto pluginBase =
YDPluginManager::getPluginWidget(json["controlName"].toString());
if (!pluginBase) {
continue;
}
if (isPaste) {
auto pluginBase =
YDPluginManager::getPluginWidget(json["controlName"].toString());
if (pluginBase) {
QString controlName =
json["controlName"].toString() == tr("条件分支")
? (json["controlEditFlag"].toBool() ? tr("如果") : tr("否则"))
: json["controlName"].toString();
toolName = pluginBase->addProcessTool(m_tabName, controlName);
nameMap.insert(json["toolName"].toString(), toolName);
}
QString controlName =
json["controlName"].toString() == tr("条件分支")
? (json["controlEditFlag"].toBool() ? tr("如果") : tr("否则"))
: json["controlName"].toString();
toolName = pluginBase->addProcessTool(m_tabName, controlName);
nameMap.insert(json["toolName"].toString(), toolName);
}
YDModuleWidget *widget =
new YDModuleWidget(QPixmap(":/resource/icon/add.png"), pixmap, toolName,
new YDModuleWidget(pluginBase->getControlIcon(), pixmap, toolName,
json["toolNotes"].toString(), this);
widget->setExecTime(json["execTime"].toString());
widget->setToolType(json["toolType"].toString().toInt());
......@@ -991,6 +1078,11 @@ void YDModuleTreeWidget::addTreeItem(const QModelIndex &index,
QTreeWidgetItem *Item = nullptr;
YDModuleWidget *selWidget =
static_cast<YDModuleWidget *>(itemWidget(sourceItem, 0));
auto pluginBase =
YDPluginManager::getPluginWidget(selWidget->getControlName());
if (!pluginBase) {
return;
}
if (-1 == index.row()) {
Item = new QTreeWidgetItem(this);
} else {
......@@ -1020,7 +1112,7 @@ void YDModuleTreeWidget::addTreeItem(const QModelIndex &index,
}
YDModuleWidget *widget =
new YDModuleWidget(QPixmap(":/resource/icon/add.png"), pixmap,
new YDModuleWidget(pluginBase->getControlIcon(), pixmap,
selWidget->getToolName(), selWidget->getNotes(), this);
widget->setExecTime(selWidget->getExecTime());
widget->setToolType(selWidget->getToolType());
......
......@@ -29,6 +29,7 @@ class YDModuleTreeWidget : public QTreeWidget {
void setTabTitleName(const QString &name);
void changeTabTitleName(const QString &oldName, const QString &newName);
QJsonArray getProcessListData();
QJsonArray getExecListData();
QJsonArray getSelTreeListData(const QModelIndex &selIndex);
QJsonArray getCopyItem(const QString &toolName);
void setPasteItem(const QModelIndex &index, const QJsonArray &jsonArray);
......@@ -48,7 +49,9 @@ class YDModuleTreeWidget : public QTreeWidget {
void getDataLinkNameList(const QString &controlName, const QString &toolName,
QStringList &nameList, QStringList &typeList);
void addTreeChildrenItem(const QModelIndex &index,
const QJsonArray &jsonArray, const QString &destControlName, bool isPaste = false);
const QJsonArray &jsonArray,
const QString &destControlName,
bool isPaste = false);
void addTreeItem(const QModelIndex &index, QTreeWidgetItem *sourceItem);
void recursionRemoveItem(QTreeWidgetItem *item, QModelIndex index,
bool flag = true);
......
......@@ -65,6 +65,10 @@ QJsonArray YDTabWidget::getProcessList() {
return m_treeWidget->getProcessListData();
}
QJsonArray YDTabWidget::getProcessExecList() {
return m_treeWidget->getExecListData();
}
int YDTabWidget::judgeProcessListEmpty() {
return m_treeWidget->topLevelItemCount();
}
......
......@@ -25,6 +25,7 @@ class YDTabWidget : public QWidget {
void setTabTitleName(const QString &name);
void changeTabTitleName(const QString &oldName, const QString &newName);
QJsonArray getProcessList();
QJsonArray getProcessExecList();
int judgeProcessListEmpty();
QJsonArray getCopyItem(const QString &toolName);
void setPasteItem(const QModelIndex &index, const QJsonArray &jsonArray);
......
......@@ -30,8 +30,7 @@ void YDToolTreeView::startDrag(Qt::DropActions supportedActions) {
if (plugin) {
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
// qDebug() << __FUNCTION__ << plugin->getControlIcon().isNull();
drag->setPixmap(plugin->getControlIcon());
drag->setPixmap(plugin->getDrawIcon());
drag->exec(supportedActions);
} else {
......
<RCC>
<qresource prefix="/">
<file>icon/add.png</file>
<file>icon/circular.png</file>
<file>icon/curve.png</file>
<file>icon/diamond.png</file>
<file>icon/error.png</file>
<file>icon/null.png</file>
<file>icon/rectangle.png</file>
<file>icon/rotate.png</file>
<file>icon/zoom.png</file>
<file>icon/waitDelayTool.png</file>
<file>icon/waitDelayDrag.png</file>
</qresource>
</RCC>
......@@ -9,7 +9,8 @@ YDWaitDelayPlugin::YDWaitDelayPlugin(QWidget *parent) : QWidget(parent) {
setEditor(this);
setControlName(tr("等待延时"));
setControlType(2);
setControlIcon(QPixmap(":/icon/error.png"));
setControlIcon(QPixmap(":/icon/waitDelayTool.png"));
setDrawIcon(QPixmap(":/icon/waitDelayDrag.png"));
}
YDWaitDelayPlugin::~YDWaitDelayPlugin() {}
......
......@@ -4,6 +4,8 @@
YDPluginBase::YDPluginBase() : m_widget{nullptr}, m_name{""}, m_type{0} {
m_processName.clear();
m_preview = QPixmap();
m_drawPix = QPixmap();
}
YDPluginBase::~YDPluginBase() {}
......@@ -16,6 +18,10 @@ QPixmap YDPluginBase::getControlIcon() const { return m_preview; }
void YDPluginBase::setControlIcon(const QPixmap &icon) { m_preview = icon; }
QPixmap YDPluginBase::getDrawIcon() const { return m_drawPix; }
void YDPluginBase::setDrawIcon(const QPixmap &icon) { m_drawPix = icon; }
qint16 YDPluginBase::getControlType() const { return m_type; }
void YDPluginBase::setControlType(qint16 type) { m_type = type; }
......
......@@ -28,6 +28,10 @@ class YDPluginBase {
QPixmap getControlIcon() const;
void setControlIcon(const QPixmap& icon);
//拖动图片
QPixmap getDrawIcon() const;
void setDrawIcon(const QPixmap& icon);
//分类
qint16 getControlType() const;
void setControlType(qint16 type);
......@@ -63,14 +67,13 @@ class YDPluginBase {
virtual void getPropertyImagePath(const QString&, const QString&,
QString&) = 0;
protected:
QPixmap m_preview;
private:
QWidget* m_widget;
QString m_name;
QMap<QString, controlParam> m_processName;
qint16 m_type;
QPixmap m_preview;
QPixmap m_drawPix;
QVariantMap m_paramMap;
};
......
IDI_ICON1 ICON DISCARDABLE "logo.ico"
\ No newline at end of file
logo.ico

66.1 KB

Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册