Browse Source

Merge branch 'master' of http://101.43.129.26:10880/chengxr/QFD2

youcai luo 1 year ago
parent
commit
072c873c59

+ 2 - 0
QFD/CCanvas/CCanvas.pri

@@ -4,11 +4,13 @@ HEADERS += \
     $$PWD/CMind.h \
     $$PWD/CMindView.h \
     $$PWD/CNode.h \
+    $$PWD/CPathItem.h \
     $$PWD/CRectItem.h
 
 SOURCES += \
     $$PWD/CMind.cpp \
     $$PWD/CMindView.cpp \
     $$PWD/CNode.cpp \
+    $$PWD/CPathItem.cpp \
     $$PWD/CRectItem.cpp
 

+ 5 - 5
QFD/CCanvas/CMind.cpp

@@ -54,12 +54,12 @@ CNodeData CMind::node(int number) const
     return m_nodeList[i];
 }
 
-bool CMind::containsNode(int n) const
+bool CMind::containsNode(int number) const
 {
-    return numberList().contains(n);
+    return numberList().contains(number);
 }
 
-CNodeData CMind::createNode(int pNumber)
+CNodeData CMind::createNode(int pNumber) const
 {
     CNodeData n;
     if (containsNode(pNumber) || (pNumber < 0 && m_nodeList.count() <= 0)) {
@@ -104,9 +104,9 @@ void CMind::removeNode(int number)
     }
 }
 
-bool CMind::hasAncestor(int childId, int ancestorNumber) const
+bool CMind::hasAncestor(int childNumber, int ancestorNumber) const
 {
-    CNodeData c = node(childId);
+    CNodeData c = node(childNumber);
     if (c.isValid()) {
         if (c.hasParent() && c.pNumber == ancestorNumber) {
             return true;

+ 3 - 3
QFD/CCanvas/CMind.h

@@ -36,15 +36,15 @@ public:
 
     CNodeData node(int number) const;
 
-    bool containsNode(int n) const;
+    bool containsNode(int number) const;
 
     /// 指定父节点, 创建节点
-    CNodeData createNode(int pNumber = -1);
+    CNodeData createNode(int pNumber = -1) const;
 
     void addNode(CNodeData n);
     void removeNode(int number);
 
-    bool hasAncestor(int childId, int ancestorNumber) const;
+    bool hasAncestor(int childNumber, int ancestorNumber) const;
 
 private:
     QList<int> numberList() const;  // 节点编号列表

+ 48 - 0
QFD/CCanvas/CPathItem.cpp

@@ -0,0 +1,48 @@
+#include "CPathItem.h"
+
+#include <QPen>
+
+CPathItem::CPathItem(QGraphicsItem *parent) : QGraphicsPathItem(parent) { }
+
+int CPathItem::lineWidth() const
+{
+    QPen pen = this->pen();
+    return pen.width();
+}
+
+void CPathItem::setLineWidth(int width)
+{
+    QPen pen = this->pen();
+    pen.setWidth(width);
+    setPen(pen);
+}
+
+QColor CPathItem::lineColor() const
+{
+    QPen pen = this->pen();
+    return pen.color();
+}
+
+void CPathItem::setLineColor(QColor color)
+{
+    QPen pen = this->pen();
+    pen.setColor(color);
+    setPen(pen);
+}
+
+QColor CPathItem::fillColor() const
+{
+    QBrush brush = this->brush();
+    return brush.color();
+}
+
+void CPathItem::setFillColor(QColor color)
+{
+    setBrush(color);
+}
+
+void CPathItem::setHighlighted(bool highlighted)
+{
+    setLineColor(highlighted ? Qt::blue : Qt::transparent);
+    setFillColor(highlighted ? Qt::gray : Qt::white);
+}

+ 23 - 0
QFD/CCanvas/CPathItem.h

@@ -0,0 +1,23 @@
+#ifndef CPATHITEM_H
+#define CPATHITEM_H
+
+#include <QGraphicsPathItem>
+
+class CPathItem : public QGraphicsPathItem
+{
+public:
+    CPathItem(QGraphicsItem *parent = nullptr);
+
+    int lineWidth() const;
+    void setLineWidth(int width);
+
+    QColor lineColor() const;
+    void setLineColor(QColor color);
+
+    QColor fillColor() const;
+    void setFillColor(QColor color);
+
+    virtual void setHighlighted(bool highlighted);
+};
+
+#endif  // CPATHITEM_H

+ 1 - 1
QFD/CCanvas/CRectItem.cpp

@@ -1,5 +1,5 @@
 #include "CRectItem.h"
 
-CRectItem::CRectItem(QGraphicsItem *parent) : QGraphicsPathItem(parent) { }
+CRectItem::CRectItem(QGraphicsItem *parent) : CPathItem(parent) { }
 
 void CRectItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { }

+ 2 - 2
QFD/CCanvas/CRectItem.h

@@ -1,9 +1,9 @@
 #ifndef CRECTITEM_H
 #define CRECTITEM_H
 
-#include <QGraphicsPathItem>
+#include "CPathItem.h"
 
-class CRectItem : public QGraphicsPathItem
+class CRectItem : public CPathItem
 {
 public:
     explicit CRectItem(QGraphicsItem *parent = nullptr);