void HTMLWidget::khtmlMouseMoveEvent(khtml::MouseMoveEvent *e) { if ( s->currentMouseMode == MouseModeRegionSelection && d->firstSelectionPoint.hasCoordinates() ) { runScript2Coordinates( QString::fromLatin1("kmapPixelToLatLng(%1, %2);") .arg(e->x()) .arg(e->y()), &d->intermediateSelectionPoint); d->intermediateSelectionScreenPoint = QPoint(e->x(), e->y()); kDebug()<<d->firstSelectionScreenPoint<<QLatin1String(" " )<<d->intermediateSelectionScreenPoint; qreal lonWest, latNorth, lonEast, latSouth; if (d->firstSelectionScreenPoint.x() < d->intermediateSelectionScreenPoint.x()) { lonWest = d->firstSelectionPoint.lon(); lonEast = d->intermediateSelectionPoint.lon(); } else { lonEast = d->firstSelectionPoint.lon(); lonWest = d->intermediateSelectionPoint.lon(); } if (d->firstSelectionScreenPoint.y() < d->intermediateSelectionScreenPoint.y()) { latNorth = d->firstSelectionPoint.lat(); latSouth = d->intermediateSelectionPoint.lat(); } else { latNorth = d->intermediateSelectionPoint.lat(); latSouth = d->firstSelectionPoint.lat(); } runScript( QString::fromLatin1("kmapSetTemporarySelectionRectangle(%1, %2, %3, %4);") .arg(lonWest) .arg(latNorth) .arg(lonEast) .arg(latSouth) ); } slotScanForJSMessages(); KHTMLPart::khtmlMouseMoveEvent(e); }
HTMLWidget::HTMLWidget(QWidget* const parent) : KHTMLPart(parent), d(new HTMLWidgetPrivate()), s(0) { d->parent = parent; widget()->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // create a timer for monitoring for javascript events, but do not start it yet: d->javascriptScanTimer = new QTimer(this); d->javascriptScanTimer->setSingleShot(false); d->javascriptScanTimer->setInterval(300); connect(d->javascriptScanTimer, SIGNAL(timeout()), this, SLOT(slotScanForJSMessages())); connect(this, SIGNAL(completed()), this, SLOT(slotHTMLCompleted())); if (d->parent) { d->parent->installEventFilter(this); } }
void HTMLWidget::mouseReleaseEvent(QMouseEvent* e) { if (s->currentMouseMode == MouseModeRegionSelection) { if (!d->firstSelectionPoint.hasCoordinates()) { runScript2Coordinates(QString::fromLatin1("kgeomapPixelToLatLng(%1, %2);") .arg(e->x()) .arg(e->y()), &d->firstSelectionPoint); d->firstSelectionScreenPoint = QPoint(e->x(), e->y()); } else { runScript2Coordinates(QString::fromLatin1("kgeomapPixelToLatLng(%1, %2);") .arg(e->x()) .arg(e->y()), &d->intermediateSelectionPoint); d->intermediateSelectionScreenPoint = QPoint(e->x(), e->y()); qreal lonWest, latNorth, lonEast, latSouth; if (d->firstSelectionScreenPoint.x() < d->intermediateSelectionScreenPoint.x()) { lonWest = d->firstSelectionPoint.lon(); lonEast = d->intermediateSelectionPoint.lon(); } else { lonEast = d->firstSelectionPoint.lon(); lonWest = d->intermediateSelectionPoint.lon(); } if (d->firstSelectionScreenPoint.y() < d->intermediateSelectionScreenPoint.y()) { latNorth = d->firstSelectionPoint.lat(); latSouth = d->intermediateSelectionPoint.lat(); } else { latNorth = d->intermediateSelectionPoint.lat(); latSouth = d->firstSelectionPoint.lat(); } runScript(QLatin1String("kgeomapRemoveTemporarySelectionRectangle();")); runScript(QString::fromLatin1("kgeomapSetSelectionRectangle(%1, %2, %3, %4);") .arg(lonWest) .arg(latNorth) .arg(lonEast) .arg(latSouth)); const GeoCoordinates::Pair selectionCoordinates( GeoCoordinates(latNorth, lonWest), GeoCoordinates(latSouth, lonEast) ); d->firstSelectionPoint.clear(); d->intermediateSelectionPoint.clear(); emit(selectionHasBeenMade(selectionCoordinates)); } } slotScanForJSMessages(QString::fromLatin1("(event)")); QWebView::mouseReleaseEvent(e); }
void HTMLWidget::mousePressEvent(QMouseEvent* e) { slotScanForJSMessages(QString::fromLatin1("(event)")); QWebView::mousePressEvent(e); }
void HTMLWidget::khtmlMousePressEvent(khtml::MousePressEvent* e) { slotScanForJSMessages(); KHTMLPart::khtmlMousePressEvent(e); }