void LiveSelectionTool::createContextMenu(const QList<QGraphicsItem*> &itemList, QPoint globalPos) { QMenu contextMenu; connect(&contextMenu, SIGNAL(hovered(QAction*)), this, SLOT(contextMenuElementHovered(QAction*))); m_contextMenuItemList = itemList; contextMenu.addAction(tr("Items")); contextMenu.addSeparator(); int shortcutKey = Qt::Key_1; int i = 0; foreach (QGraphicsItem * const item, itemList) { QString itemTitle = titleForItem(item); QAction *elementAction = contextMenu.addAction(itemTitle, this, SLOT(contextMenuElementSelected())); if (inspector()->selectedItems().contains(item)) { QFont boldFont = elementAction->font(); boldFont.setBold(true); elementAction->setFont(boldFont); } elementAction->setData(i); if (shortcutKey <= Qt::Key_9) { elementAction->setShortcut(QKeySequence(shortcutKey)); shortcutKey++; } ++i; }
bool QQuickViewInspector::syncSelectedItems(const QList<QQuickItem *> &items) { bool selectionChanged = false; // Disconnect and remove items that are no longer selected foreach (const QPointer<QQuickItem> &item, m_selectedItems) { if (!item) // Don't see how this can happen due to handling of destroyed() continue; if (items.contains(item)) continue; selectionChanged = true; item->disconnect(this); m_selectedItems.removeOne(item); delete m_highlightItems.take(item); } // Connect and add newly selected items foreach (QQuickItem *item, items) { if (m_selectedItems.contains(item)) continue; selectionChanged = true; connect(item, SIGNAL(destroyed(QObject*)), this, SLOT(removeFromSelectedItems(QObject*))); m_selectedItems.append(item); SelectionHighlight *selectionHighlightItem; selectionHighlightItem = new SelectionHighlight(titleForItem(item), item, m_overlay); m_highlightItems.insert(item, selectionHighlightItem); } return selectionChanged; }
bool SGViewInspector::mouseMoveEvent(QMouseEvent *event) { if (QSGItem *item = topVisibleItemAt(event->pos())) m_view->setToolTip(titleForItem(item)); else m_view->setToolTip(QString()); return AbstractViewInspector::mouseMoveEvent(event); }
void LiveSelectionTool::createContextMenu(QList<QGraphicsItem*> itemList, QPoint globalPos) { if (!QDeclarativeViewObserverPrivate::get(observer())->mouseInsideContextItem()) return; QMenu contextMenu; connect(&contextMenu, SIGNAL(hovered(QAction*)), this, SLOT(contextMenuElementHovered(QAction*))); m_contextMenuItemList = itemList; contextMenu.addAction("Items"); contextMenu.addSeparator(); int shortcutKey = Qt::Key_1; bool addKeySequence = true; int i = 0; foreach (QGraphicsItem * const item, itemList) { QString itemTitle = titleForItem(item); QAction *elementAction = contextMenu.addAction(itemTitle, this, SLOT(contextMenuElementSelected())); if (observer()->selectedItems().contains(item)) { QFont boldFont = elementAction->font(); boldFont.setBold(true); elementAction->setFont(boldFont); } elementAction->setData(i); if (addKeySequence) elementAction->setShortcut(QKeySequence(shortcutKey)); shortcutKey++; if (shortcutKey > Qt::Key_9) addKeySequence = false; ++i; }