SVN commit 1169970 by kuemmel: enable shortcuts on moved plots BUG: 249253 M +3 -0 plotrenderitem.cpp M +6 -0 view.cpp M +13 -3 viewitem.cpp M +1 -0 viewitem.h --- branches/work/kst/portto4/kst/src/libkstapp/plotrenderitem.cpp #1169969:1169970 @@ -642,6 +642,9 @@ setFocus(Qt::MouseFocusReason); + // Qt bug (Windows only?): http://bugreports.qt.nokia.com/browse/QTBUG-8188 + //bool foc = hasFocus(); // foc is false in the second tab + updateCursor(event->pos()); const QPointF p = plotItem()->mapToProjection(event->pos()); --- branches/work/kst/portto4/kst/src/libkstapp/view.cpp #1169969:1169970 @@ -258,7 +258,13 @@ if (!viewItem) continue; +#ifdef Q_OS_WIN + // Qt bug (Windows only?): http://bugreports.qt.nokia.com/browse/QTBUG-8188 + // also see PlotRenderItem::hoverEnterEvent + if (viewItem && viewItem->tryShortcut(e->key())) { +#else if (viewItem && viewItem->hasFocus() && viewItem->tryShortcut(e->key())) { +#endif return true; } } --- branches/work/kst/portto4/kst/src/libkstapp/viewitem.cpp #1169969:1169970 @@ -123,7 +123,8 @@ _customLayoutAction = new QAction(tr("Custom"), this); connect(_customLayoutAction, SIGNAL(triggered()), this, SLOT(createCustomLayout())); - setAcceptDrops(true); + // only drop plots onto TabBar + setAcceptDrops(false); } @@ -416,11 +417,11 @@ } void ViewItem::setParentView(View* parentView) { -#ifdef KST_DISBALE_QOBJECT_PARENT _parentView = parentView; -#else +#ifndef KST_DISBALE_QOBJECT_PARENT parentView()->setParent(parent); #endif + reRegisterShortcut(); updateRelativeSize(); } @@ -1837,6 +1838,15 @@ } +void ViewItem::reRegisterShortcut() { + QHashIterator it(_shortcutMap); + while (it.hasNext()) { + it.next(); + _parentView->grabShortcut(it.key()); + } +} + + bool ViewItem::tryShortcut(const QString &shortcut) { if (!_shortcutMap.contains(shortcut)) return false; --- branches/work/kst/portto4/kst/src/libkstapp/viewitem.h #1169969:1169970 @@ -245,6 +245,7 @@ GripMode nextGripMode(GripMode currentMode) const; void addTitle(QMenu *menu) const; void registerShortcut(QAction *action); + void reRegisterShortcut(); QString descriptionTip() const;