コード例 #1
0
ファイル: scgvisualobject.cpp プロジェクト: mcdir/sui
void SCgVisualObject::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
    mColor = scg_cfg_get_value_color(isSelected() ? scg_key_element_color_selected : scg_key_element_color_normal);
    if (mTextItem != 0)
        mTextItem->setDefaultTextColor(scg_cfg_get_value_color(isSelected() ? scg_key_element_font_color_selected : scg_key_element_font_color_normal));

    QGraphicsItem::hoverLeaveEvent(event);
}
コード例 #2
0
ファイル: scgvisualcontrol.cpp プロジェクト: mcdir/sui
void SCgVisualControl::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
    mBackColor = scg_cfg_get_value_color(isSelected() ? scg_key_control_backcolor_selected : scg_key_control_backcolor_normal);
    mColor = scg_cfg_get_value_color(isSelected() ? scg_key_control_color_selected : scg_key_control_color_normal);
    mTextItem->setDefaultTextColor(scg_cfg_get_value_color(scg_key_control_font_color));

    QGraphicsItem::hoverLeaveEvent(event);
}
コード例 #3
0
ファイル: scgtextitem.cpp プロジェクト: BABANIA/kbe
void SCgTextItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
{
    if (!isSelected())
        setDefaultTextColor(scg_cfg_get_value_color(scg_text_element_color_normal));
    else
        setDefaultTextColor(scg_cfg_get_value_color(scg_text_element_color_selected));

    QGraphicsTextItem::hoverLeaveEvent(event);
}
コード例 #4
0
ファイル: scgobject.cpp プロジェクト: DenisKlimenko/kbe
QVariant SCgObject::itemChange(GraphicsItemChange change, const QVariant &value)
{
    // item selection changed
    if (change == QGraphicsItem::ItemSelectedHasChanged)
    {
        if (isSelected())
        {
            mColor = scg_cfg_get_value_color(scg_key_element_color_selected);//QColor(255, 128, 64);
            //setCursor(QCursor(Qt::SizeAllCursor));
        }
        else
        {
            mColor = scg_cfg_get_value_color(scg_key_element_color_normal);//QColor(0, 0, 0);
            //setCursor(QCursor(Qt::ArrowCursor));
        }
    }

    // move to correct position automaticly
    if (change == QGraphicsItem::ItemParentChange && scene())
    {
        // we need to set this flag to prevent processing ItemPositionHasChanged,
        // because item position at this moment not actual
        mParentChanging = true;
        QGraphicsItem* newParent = value.value<QGraphicsItem*>();
        if(newParent)
            setPos(newParent->mapFromScene(scenePos()));
        else
            setPos(scenePos());
    }

    if (change == QGraphicsItem::ItemParentHasChanged)
    {
        // now item position has valid value
        mParentChanging = false;
        updateConnected();
    }

    // Change stacking order
    if (scene() && change == QGraphicsItem::ItemSelectedHasChanged
                && isSelected() && scene()->selectedItems().size() == 1)
    {
        QGraphicsItem* top = this;
        QList<QGraphicsItem*> lst = scene()->items();
        foreach(QGraphicsItem* it, lst)
        {
            if(it != this &&
               it->type() == type() &&
               it->parentItem() == parentItem())
            {
                it->stackBefore(top);
                top = it;
            }
        }
    }
コード例 #5
0
ファイル: scgvisualobject.cpp プロジェクト: mcdir/sui
void SCgVisualObject::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
    if (!isSelected())
    {
        mColor = scg_cfg_get_value_color(scg_key_element_color_highlight);
        if (mTextItem != 0)
            mTextItem->setDefaultTextColor(scg_cfg_get_value_color(scg_key_element_font_color_highlight));
    }

    QGraphicsItem::hoverEnterEvent(event);
}
コード例 #6
0
ファイル: scgvisualcontrol.cpp プロジェクト: mcdir/sui
void SCgVisualControl::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
    if (!isSelected() && mTextItem)
    {
        mBackColor = scg_cfg_get_value_color(scg_key_control_backcolor_highlight);
        mColor = scg_cfg_get_value_color(scg_key_control_color_highlight);
        mTextItem->setDefaultTextColor(scg_cfg_get_value_color(scg_key_control_font_color));
    }

    QGraphicsItem::hoverEnterEvent(event);
}
コード例 #7
0
ファイル: scgvisualobject.cpp プロジェクト: mcdir/sui
QVariant SCgVisualObject::itemChange(GraphicsItemChange change, const QVariant &value)
{
    // item selection changed
    if (change == QGraphicsItem::ItemSelectedHasChanged)
    {
        if (mTextItem != 0)
            mTextItem->setDefaultTextColor(scg_cfg_get_value_color(isSelected() ? scg_key_element_font_color_selected : scg_key_element_font_color_normal));

        mColor = scg_cfg_get_value_color(isSelected() ? scg_key_element_color_selected : scg_key_element_color_normal);
    }

    return QGraphicsItem::itemChange(change, value);
}
コード例 #8
0
ファイル: scgvisualcontrol.cpp プロジェクト: mcdir/sui
QVariant SCgVisualControl::itemChange(GraphicsItemChange change, const QVariant &value)
{
    if (change == QGraphicsItem::ItemSelectedHasChanged)
    {
        mBackColor = scg_cfg_get_value_color(isSelected() ? scg_key_control_backcolor_selected : scg_key_control_backcolor_normal);
        mColor = scg_cfg_get_value_color(isSelected() ? scg_key_control_color_selected : scg_key_control_color_normal);
        mTextItem->setDefaultTextColor(scg_cfg_get_value_color(scg_key_control_font_color));

        return QVariant();
    }

    return SCgVisualObject::itemChange(change, value);
}
コード例 #9
0
ファイル: scgnode.cpp プロジェクト: DenisKlimenko/kbe
void SCgNode::setIdtfValue(const QString &idtf)
{
    mIdtfValue = idtf;
    if (idtf != "")
    {
        if (!mTextItem)
        {
            mTextItem = new SCgNodeTextItem(idtf,this);

            QFont font("Times New Roman [Arial]", 10, 10, false);
            font.setBold(true);
            font.setItalic(true);

            mTextItem->setFont(font);
            mTextItem->setParentItem(this);
            mTextItem->setZValue(7);
            mTextItem->setDefaultTextColor(scg_cfg_get_value_color(scg_text_element_color_normal));
        }

        mTextItem->setPlainText(mIdtfValue);
    }
    else if (mTextItem)
    {
        delete mTextItem;
        mTextItem = 0;
    }

    positionChanged();
}
コード例 #10
0
ファイル: scgtextitem.cpp プロジェクト: BABANIA/kbe
void SCgTextItem::hoverEnterEvent(QGraphicsSceneHoverEvent *event)
{
    if (!isSelected())
        setDefaultTextColor(scg_cfg_get_value_color(scg_text_element_color_highlight));

    QGraphicsTextItem::hoverEnterEvent(event);
}
コード例 #11
0
ファイル: scgtextitem.cpp プロジェクト: BABANIA/kbe
QVariant SCgTextItem::itemChange(GraphicsItemChange change, const QVariant &value)
{
    if (change == QGraphicsItem::ItemSelectedHasChanged)
    {
        if (isSelected())
        {
            setDefaultTextColor(scg_cfg_get_value_color(scg_text_element_color_selected));
        }
        else
        {
            setDefaultTextColor(scg_cfg_get_value_color(scg_text_element_color_normal));
        }
    }

    return QGraphicsTextItem::itemChange(change, value);
}
コード例 #12
0
ファイル: scgvisualcontrol.cpp プロジェクト: mcdir/sui
SCgVisualControl::SCgVisualControl(QGraphicsScene *scene) :
    SCgVisualObject(scene),
    mDragLength(-1.f)
{
    mBackColor = scg_cfg_get_value_color(scg_key_control_backcolor_normal);
    mColor = scg_cfg_get_value_color(scg_key_control_color_normal);

#if ENABLE_VISUAL_EFFECTS_SUPPORT
    if (scg_cfg_get_value_uint(scg_key_effects_enabled) != 0)
    {
        QGraphicsDropShadowEffect *effect = new QGraphicsDropShadowEffect(this);
        effect->setOffset(3, 3);
        setGraphicsEffect(effect);
    }
#endif
}
コード例 #13
0
ファイル: scgvisualcontrol.cpp プロジェクト: mcdir/sui
void SCgVisualControl::_update(SCgObjectObserver::UpdateEventType eventType, SCgObject *object)
{
    if (eventType == SCgObjectObserver::IdentifierChanged)
    {
        if (mTextItem == 0)
        {
            QFont font(scg_cfg_get_value_string(scg_key_control_font_name),
                       scg_cfg_get_value_uint(scg_key_control_font_size),
                       10, false);
            font.setBold(true);
            //font.setItalic(true);

            mTextItem = new QGraphicsTextItem(this);
            mTextItem->setFont(font);
            mTextItem->setDefaultTextColor(scg_cfg_get_value_color(scg_key_control_font_color));
        }

        mTextItem->setPlainText(object->identifier());
        QRectF textBound = mTextItem->boundingRect();
        baseObject()->setSize(QSizeF(textBound.width() + 10, textBound.height() + 10));
        mTextItem->setPos(-textBound.width() / 2.f, -textBound.height() / 2.f);

        return;
    }

    SCgVisualObject::_update(eventType, object);
}
コード例 #14
0
ファイル: scgobject.cpp プロジェクト: DenisKlimenko/kbe
SCgObject::SCgObject(QGraphicsItem *parent, QGraphicsScene *scene) :
        QGraphicsItem(parent, scene),
        mConstType(SCgAlphabet::ConstUnknown),
        mIsBoundingBoxVisible(false),
        mTextItem(0),
        mIsDead(false),
        mParentChanging(false)
{
    mColor = scg_cfg_get_value_color(scg_key_element_color_normal);

    setFlags(QGraphicsItem::ItemIsSelectable
    		| QGraphicsItem::ItemIsFocusable
    		| QGraphicsItem::ItemSendsGeometryChanges);
    setAcceptHoverEvents(true);
}
コード例 #15
0
ファイル: scgvisualobject.cpp プロジェクト: mcdir/sui
SCgVisualObject::SCgVisualObject(QGraphicsScene *scene) :
        QGraphicsItem(0, scene),
        mIsBoundingBoxVisible(false),
        mTextItem(0),
        mParentChanging(false),
        mBaseObject(0)
{
    mColor = scg_cfg_get_value_color(scg_key_element_color_normal);

    setFlags(QGraphicsItem::ItemIsSelectable
            | QGraphicsItem::ItemIsFocusable
            | QGraphicsItem::ItemSendsGeometryChanges);
    //Do not set this flag. All position and geometry manipulations are hand made.
    setFlag(QGraphicsItem::ItemIsMovable, false);
    setAcceptHoverEvents(true);
}