// Optimize: cache previous child here to make it faster? How to invalidate? void KstViewWidget::mouseMoveEvent(QMouseEvent *e) { if (_view->viewMode() == KstTopLevelView::DisplayMode) { KstViewObjectPtr vo; if (_view->mouseGrabbed()) { vo = _view->mouseGrabber(); } else { vo = findChildFor(e->pos()); } if (KstApp::inst()->dataMode()) { if (vo.data() != _vo_datamode) { _vo_datamode = vo.data(); paint(); } } else { _vo_datamode = 0L; } if (vo) { //kstdDebug() << "Found mouse handler " << vo->tagName() << endl; vo->mouseMoveEvent(this, e); } else { setCursor(QCursor(Qt::ArrowCursor)); } } else { if ((e->state() & Qt::MouseButtonMask) == 0) { switch (_view->viewMode()) { case KstTopLevelView::LabelMode: setCursor(QCursor(Qt::IbeamCursor)); break; case KstTopLevelView::CreateMode: setCursor(QCursor(Qt::ArrowCursor)); break; default: break; } _view->updateFocus(e->pos()); e->accept(); } else if (e->state() & Qt::LeftButton) { //setCursor(QCursor(Qt::ArrowCursor)); _view->pressMove(e->pos(), e->state() & Qt::ShiftButton, e->state() & Qt::AltButton); e->accept(); } } }
KstBindViewObject::KstBindViewObject(KJS::ExecState *exec, KstViewObjectPtr d, const char *name) : KstBindObject(exec, d.data(), name ? name : "ViewObject") { KJS::Object o(this); addBindings(exec, o); }