void Plot::mouseClick (int button, QPoint p) { if (! g_symbol) return; if (_plotSettings.selected) { _plotSettings.selected->click(_plotSettings.status, button, p); return; } QHashIterator<QString, Marker *> it(_plotSettings.markers); while (it.hasNext()) { it.next(); Marker *co = it.value(); if (co->readOnly()) continue; if (! co->isSelected(p)) continue; _plotSettings.selected = co; _plotSettings.selected->click(_plotSettings.status, button, p); return; } }
void Plot::mouseMove (QPoint p) { // qDebug() << "mouse move"; if (! _plotSettings.info) return; if (! g_symbol) return; if (_plotSettings.selected) { _plotSettings.selected->move(_plotSettings.status, p); return; } QHashIterator<QString, Marker *> it2(_plotSettings.markers); while (it2.hasNext()) { it2.next(); Marker *m = it2.value(); if (! m->isSelected(p)) continue; QStringList info; info << _plotSettings.name; if (! m->info(info)) continue; _plotInfo->setData(info); replot(); return; } int index = (int) invTransform(QwtPlot::xBottom, p.x()); QStringList info; info << _plotSettings.name; _dateScaleDraw->info(index, info); QHashIterator<QString, Curve *> it(_plotSettings.curves); while (it.hasNext()) { it.next(); Curve *curve = it.value(); curve->info(index, info); } _plotInfo->setData(info); replot(); }
int MarkerSell::click (PluginData *pd) { if (! pd->data) return 0; Marker *sell = (Marker *) pd->data; switch ((PlotStatus::Key) pd->status) { case PlotStatus::_SELECTED: { switch (pd->button) { case Qt::LeftButton: if (sell->isGrabSelected(pd->point)) { pd->status = PlotStatus::_MOVE; return 1; } if (! sell->isSelected(pd->point)) { pd->status = PlotStatus::_NONE; sell->setSelected(FALSE); Plot *tplot = (Plot *) sell->plot(); tplot->unselectMarker(); sell->plot()->replot(); return 1; } break; case Qt::RightButton: { Plot *p = (Plot *) sell->plot(); p->showMarkerMenu(); break; } default: break; } break; } case PlotStatus::_MOVE: { switch (pd->button) { case Qt::LeftButton: pd->status = PlotStatus::_SELECTED; return 1; default: break; } break; } default: // _None { switch (pd->button) { case Qt::LeftButton: { if (sell->isSelected(pd->point)) { pd->status = PlotStatus::_SELECTED; sell->setSelected(TRUE); Plot *tplot = (Plot *) sell->plot(); tplot->selectMarker(sell->ID()); sell->plot()->replot(); return 1; } break; } default: break; } break; } } return 1; }
int MarkerRetracement::click (PluginData *pd) { if (! pd->data) return 0; Marker *m = (Marker *) pd->data; switch (pd->status) { case PlotStatus::_SELECTED: { switch (pd->button) { case Qt::LeftButton: { int grab = m->isGrabSelected(pd->point); if (grab) { pd->status = PlotStatus::_MOVE; if (grab == 2) pd->status = PlotStatus::_MOVE2; return 1; } if (! m->isSelected(pd->point)) { pd->status = PlotStatus::_NONE; m->setSelected(FALSE); Plot *tplot = (Plot *) m->plot(); tplot->unselectMarker(); m->plot()->replot(); return 1; } break; } case Qt::RightButton: { Plot *p = (Plot *) m->plot(); p->showMarkerMenu(); break; } default: break; } break; } case PlotStatus::_MOVE: case PlotStatus::_CREATE_MOVE: { switch (pd->button) { case Qt::LeftButton: if (pd->status == PlotStatus::_CREATE_MOVE) { pd->status = PlotStatus::_MOVE2; emit signalMessage(tr("Select lowest ending point...")); return 1; } pd->status = PlotStatus::_SELECTED; return 1; default: break; } break; } case PlotStatus::_MOVE2: { switch (pd->button) { case Qt::LeftButton: pd->status = PlotStatus::_SELECTED; return 1; default: break; } break; } default: // _None { switch (pd->button) { case Qt::LeftButton: { if (m->isSelected(pd->point)) { pd->status = PlotStatus::_SELECTED; m->setSelected(TRUE); Plot *tplot = (Plot *) m->plot(); tplot->selectMarker(m->ID()); m->plot()->replot(); return 1; } break; } default: break; } break; } } return 1; }