|
@@ -1,9 +1,11 @@
|
|
|
#include "IndexSystemWidget.h"
|
|
|
|
|
|
#include <dbService/ClassSet.h>
|
|
|
+#include <dbService/CNodeDataService.h>
|
|
|
|
|
|
-#include <CCanvas/CMindView.h>
|
|
|
+#include <CMindView.h>
|
|
|
#include <CMind.h>
|
|
|
+#include <CNodeItem.h>
|
|
|
|
|
|
#include <Widgets/Menu.h>
|
|
|
|
|
@@ -13,11 +15,12 @@
|
|
|
|
|
|
#include <QDebug>
|
|
|
|
|
|
-IndexSystemWidget::IndexSystemWidget(ProjectInfo *proj, int type, QWidget *parent) : EvalWidget(proj, type, parent)
|
|
|
+IndexSystemWidget::IndexSystemWidget(ProjectInfo *proj, QWidget *parent) : EvalWidget(proj, parent)
|
|
|
{
|
|
|
setTitle("指标体系设计");
|
|
|
initWidgets();
|
|
|
initLayout();
|
|
|
+ connectSignalsAndSlots();
|
|
|
}
|
|
|
|
|
|
void IndexSystemWidget::initWidgets()
|
|
@@ -30,6 +33,12 @@ void IndexSystemWidget::initLayout()
|
|
|
m_contentLayout->addWidget(m_mindView);
|
|
|
}
|
|
|
|
|
|
+void IndexSystemWidget::connectSignalsAndSlots()
|
|
|
+{
|
|
|
+ connect(m_mindView, &CMindView::sigAddSubNode, this, &IndexSystemWidget::slotAddSubNode);
|
|
|
+ connect(m_mindView->mind(), &CMind::sigRemoveNode, this, &IndexSystemWidget::slotRemoveNode);
|
|
|
+}
|
|
|
+
|
|
|
void IndexSystemWidget::contextMenuEvent(QContextMenuEvent *event)
|
|
|
{
|
|
|
RoundMenu *menu = new RoundMenu();
|
|
@@ -49,6 +58,23 @@ void IndexSystemWidget::contextMenuEvent(QContextMenuEvent *event)
|
|
|
QWidget::contextMenuEvent(event);
|
|
|
}
|
|
|
|
|
|
+void IndexSystemWidget::addNode(CNodeData node)
|
|
|
+{
|
|
|
+ qDebug() << __FUNCTION__ << __LINE__ << node.number << endl;
|
|
|
+ if (m_mindView->mind()->canAddNode(node)) {
|
|
|
+ int id = CNodeDataService().AddCNodeData(node);
|
|
|
+ if (id >= 0) {
|
|
|
+ node.id = id;
|
|
|
+ m_mindView->addNode(node);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void IndexSystemWidget::removeNode(int id)
|
|
|
+{
|
|
|
+ qDebug() << __FUNCTION__ << __LINE__ << id << endl;
|
|
|
+}
|
|
|
+
|
|
|
void IndexSystemWidget::slotSelectAllNodes()
|
|
|
{
|
|
|
qDebug() << __FUNCTION__ << __LINE__ << endl;
|
|
@@ -63,5 +89,21 @@ void IndexSystemWidget::slotCreateRootNode()
|
|
|
{
|
|
|
CNodeData n = CNodeData(m_proj->id, m_type, 0);
|
|
|
n.name = m_proj->projectName;
|
|
|
- m_mindView->addNode(n);
|
|
|
+ addNode(n);
|
|
|
+}
|
|
|
+
|
|
|
+void IndexSystemWidget::slotAddSubNode(int pNumber)
|
|
|
+{
|
|
|
+ if (pNumber < 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ CNodeData data = m_mindView->root()->data();
|
|
|
+ CNodeData n = CNodeData(data.projectId, data.evalType, m_mindView->mind()->maxNumber() + 1, pNumber);
|
|
|
+
|
|
|
+ addNode(n);
|
|
|
+}
|
|
|
+
|
|
|
+void IndexSystemWidget::slotRemoveNode(int id)
|
|
|
+{
|
|
|
+ removeNode(id);
|
|
|
}
|