chengxr 1 rok temu
rodzic
commit
f7dc0cd130

+ 2 - 1
QFD/CCanvas/CLineItem.cpp

@@ -1,11 +1,12 @@
 #include "CLineItem.h"
 
+#include <QPen>
+
 CLineItem::CLineItem(QGraphicsItem *parent) : CLineItem(QPointF(), QPointF(), parent) { }
 
 CLineItem::CLineItem(const QPointF &startPos, const QPointF &endPos, QGraphicsItem *parent)
     : CPathItem(parent), m_startPos(startPos), m_endPos(endPos)
 {
-    setNormalLineColor(Qt::gray);
     updatePath();
 }
 

+ 6 - 0
QFD/CCanvas/CNodeItem.cpp

@@ -17,6 +17,12 @@ CNodeItem::CNodeItem(const CNodeData data, CNodeItem *parent) : QObject(parent),
     m_lineItem = new CLineItem(m_rectItem);
     updateItemsGeometry();
     connectSignalsAndSlots();
+
+    //    m_textItem->setDefaultTextColor(Qt::white);
+    m_rectItem->setNormalFillColor(QColor("#ddddff"));
+    m_lineItem->setNormalLineColor(QColor("#ddddff"));
+    m_lineItem->setLineWidth(2);
+    m_lineItem->setBrush(Qt::NoBrush);
 }
 
 CNodeData CNodeItem::data() const

+ 2 - 3
QFD/CCanvas/CPathItem.cpp

@@ -1,6 +1,7 @@
 #include "CPathItem.h"
 
 #include <QPen>
+#include <QPainter>
 
 CPathItem::CPathItem(QGraphicsItem *parent) : QGraphicsPathItem(parent)
 {
@@ -80,7 +81,5 @@ void CPathItem::applySettings()
     pen.setColor(m_highlighted ? m_highlightLineColor : m_normalLineColor);
     setPen(pen);
 
-    QBrush brush = this->brush();
-    brush.setColor(m_highlighted ? m_highlightFillColor : m_normalFillColor);
-    setBrush(brush);
+    setBrush(m_highlighted ? m_highlightFillColor : m_normalFillColor);
 }

+ 2 - 2
QFD/CCanvas/CPathItem.h

@@ -12,7 +12,7 @@ public:
     void setLineWidth(int w);
 
     QColor normaLineColor() const;
-    void setNormalLineColor(QColor c);
+    virtual void setNormalLineColor(QColor c);
 
     QColor highlightLineColor() const;
     void setHighlightLineColor(QColor c);
@@ -31,7 +31,7 @@ public:
 private:
     void applySettings();
 
-private:
+protected:
     int m_lineWidth = 1;
 
     QColor m_normalLineColor    = Qt::gray;

+ 13 - 0
QFD/CCanvas/CRectItem.cpp

@@ -4,6 +4,7 @@
 
 #include <QGraphicsSceneContextMenuEvent>
 #include <QMenu>
+#include <QPainter>
 
 #include <QDebug>
 
@@ -98,6 +99,18 @@ QAction *CRectItem::editAction() const
     return m_edit;
 }
 
+QRectF CRectItem::boundingRect() const
+{
+    return m_rect;
+}
+
+void CRectItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+    painter->setPen(pen());
+    painter->setBrush(Qt::blue);
+    QGraphicsPathItem::paint(painter, option, widget);
+}
+
 void CRectItem::slotSelect()
 {
     qDebug() << __FUNCTION__ << __LINE__ << endl;

+ 4 - 0
QFD/CCanvas/CRectItem.h

@@ -38,6 +38,10 @@ public:
     QAction *removeAction() const;
     QAction *editAction() const;
 
+    QRectF boundingRect() const override;
+
+    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = nullptr) override;
+
 private slots:
     void slotSelect();
 

+ 10 - 0
QFD/CCanvas/CTextItem.cpp

@@ -3,6 +3,7 @@
 #include <QKeyEvent>
 #include <QGraphicsSceneMouseEvent>
 #include <QTextDocument>
+#include <QPainter>
 
 #include <QDebug>
 
@@ -46,6 +47,7 @@ void CTextItem::beginEditing()
 void CTextItem::endEditing()
 {
     setTextInteractionFlags(Qt::NoTextInteraction);
+
     setSelected(false);
     clearFocus();
 
@@ -53,6 +55,9 @@ void CTextItem::endEditing()
         emit sigTextChanged();
         m_textChanged = false;
     }
+
+    // 没找到取消文字选中状态的方法, 暂且用这个吧, 这回触发数据库保存操作
+    setPlainText(toPlainText());
 }
 
 bool CTextItem::isEditing() const
@@ -86,6 +91,11 @@ QSizeF CTextItem::textSize(const QString t, qreal width)
     return i->document()->size();
 }
 
+void CTextItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+{
+    QGraphicsTextItem::paint(painter, option, widget);
+}
+
 void CTextItem::slotTextChanged()
 {
     m_textChanged = true;

+ 2 - 0
QFD/CCanvas/CTextItem.h

@@ -27,6 +27,8 @@ public:
 
     static QSizeF textSize(const QString t, qreal width = -1);
 
+    void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
+
 public slots:
     void slotTextChanged();
 

+ 0 - 1
QFD/widgets/IndexSystemWidget.cpp

@@ -123,7 +123,6 @@ void IndexSystemWidget::slotCreateRootNode()
 
 void IndexSystemWidget::slotEditNode(CNodeData n)
 {
-    qDebug() << __FUNCTION__ << __LINE__ << n.name << endl;
     m_editNode->setNode(n);
     m_editNode->show();
 }

BIN
bin/QtNodesd.exp