10#include <QtCore/QLineF>
12#include <QtGui/QMouseEvent>
13#include <QtGui/QTouchEvent>
14#include <QtGui/QKeyEvent>
15#include <QtGui/QGuiApplication>
16#include <QtGui/QStyleHints>
18#include <QtQuick/QQuickView>
19#include <QtQuick/QQuickItem>
27 m_contentItem(view->contentItem()),
31 m_lastClickedItem(
nullptr)
34 m_nameDisplayTimer.setSingleShot(
true);
35 m_nameDisplayTimer.setInterval(QGuiApplication::styleHints()->mouseDoubleClickInterval());
36 connect(&m_nameDisplayTimer, &QTimer::timeout,
this, &InspectTool::showItemName);
41 m_hoverHighlight->setVisible(
true);
46 m_hoverHighlight->setVisible(
false);
51 m_mousePosition = event->position();
52 if (event->button() == Qt::LeftButton) {
54 m_hoverHighlight->setVisible(
false);
60 m_mousePosition = event->position();
61 if (event->button() == Qt::LeftButton) {
63 m_hoverHighlight->setVisible(
false);
74 m_mousePosition = event->position();
75 QQuickItem *item = inspector()->topVisibleItemAt(event->position().toPoint());
76 if (!item || item == m_lastClickedItem) {
77 m_hoverHighlight->setVisible(
false);
79 m_hoverHighlight->setItem(item);
80 m_hoverHighlight->setVisible(
true);
86 const auto &touchPoints = event->points();
88 switch (event->type()) {
89 case QEvent::TouchBegin:
90 if (touchPoints.size() == 1 && (event->touchPointStates() & QEventPoint::State::Pressed)) {
91 m_mousePosition = touchPoints.first().position();
97 case QEvent::TouchUpdate: {
98 if (touchPoints.size() > 1)
100 else if ((touchPoints.size() == 1) && (event->touchPointStates() & QEventPoint::State::Updated))
101 m_mousePosition = touchPoints.first().position();
104 case QEvent::TouchEnd: {
105 if (touchPoints.size() == 1 && m_tapEvent) {
107 bool doubleTap = event->timestamp() - m_touchTimestamp
108 <
static_cast<ulong>(QGuiApplication::styleHints()->mouseDoubleClickInterval());
110 m_nameDisplayTimer.stop();
115 m_touchTimestamp = event->timestamp();
126 if (m_lastClickedItem != inspector()->topVisibleItemAt(m_mousePosition))
128 QList<QQuickItem*> items = inspector()->itemsAt(m_mousePosition);
129 for (
int i = 0; i < items.size(); i++) {
130 if (m_lastItem == items[i]) {
131 if (i + 1 < items.size())
132 m_lastItem = items[i+1];
134 m_lastItem = items[0];
135 globalInspector()->setSelectedItems(QList<QQuickItem*>() << m_lastItem);
144 if (!inspector()->topVisibleItemAt(m_mousePosition))
146 m_lastClickedItem = inspector()->topVisibleItemAt(m_mousePosition);
147 m_lastItem = m_lastClickedItem;
148 globalInspector()->setSelectedItems(QList<QQuickItem*>() << m_lastClickedItem);
149 if (m_lastClickedItem == inspector()->topVisibleItemAt(m_mousePosition)) {
150 m_nameDisplayTimer.start();
158 globalInspector()->showSelectedItemName(m_lastItem, m_mousePosition);
175#include "moc_inspecttool.cpp"
QQuickItem * overlay() const
Combined button and popup list for selecting options.