1 /**************************************************************************
3 ** This file is part of Qt Creator
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
16 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights. These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
32 **************************************************************************/
34 #include "anchorlinehandleitem.h"
36 #include <formeditoritem.h>
40 namespace QmlDesigner {
42 AnchorLineHandleItem::AnchorLineHandleItem(QGraphicsItem *parent, const AnchorLineController &anchorLineController)
43 : QGraphicsPathItem(parent),
44 m_anchorLineControllerData(anchorLineController.weakPointer())
46 setFlag(QGraphicsItem::ItemIsMovable, true);
50 void AnchorLineHandleItem::setHandlePath(const QPainterPath & path)
56 QRectF AnchorLineHandleItem::boundingRect() const
58 return QGraphicsPathItem::boundingRect();
61 QPainterPath AnchorLineHandleItem::shape() const
63 return QGraphicsPathItem::shape();
66 AnchorLineController AnchorLineHandleItem::anchorLineController() const
68 Q_ASSERT(!m_anchorLineControllerData.isNull());
69 return AnchorLineController(m_anchorLineControllerData.toStrongRef());
72 AnchorLine::Type AnchorLineHandleItem::anchorLine() const
75 return AnchorLine::Top;
78 return AnchorLine::Left;
81 return AnchorLine::Right;
84 return AnchorLine::Bottom;
86 return AnchorLine::Invalid;
89 AnchorLineHandleItem* AnchorLineHandleItem::fromGraphicsItem(QGraphicsItem *item)
91 return qgraphicsitem_cast<AnchorLineHandleItem*>(item);
94 bool AnchorLineHandleItem::isTopHandle() const
96 return anchorLineController().isTopHandle(this);
99 bool AnchorLineHandleItem::isLeftHandle() const
101 return anchorLineController().isLeftHandle(this);
104 bool AnchorLineHandleItem::isRightHandle() const
106 return anchorLineController().isRightHandle(this);
109 bool AnchorLineHandleItem::isBottomHandle() const
111 return anchorLineController().isBottomHandle(this);
114 AnchorLine::Type AnchorLineHandleItem::anchorLineType() const
117 return AnchorLine::Top;
119 if (isBottomHandle())
120 return AnchorLine::Bottom;
123 return AnchorLine::Left;
126 return AnchorLine::Right;
129 return AnchorLine::Invalid;
132 QPointF AnchorLineHandleItem::itemSpacePosition() const
134 return parentItem()->mapToItem(anchorLineController().formEditorItem(), pos());
137 void AnchorLineHandleItem::setHiglighted(bool highlight)
141 pen.setColor(QColor(108, 141, 221));
143 setBrush(QColor(108, 141, 221, 140));
146 pen.setColor(QColor(108, 141, 221));
148 setBrush(QColor(108, 141, 221, 60));
152 } // namespace QmlDesigner