void Palette::mousePressEvent(QMouseEvent* ev) { dragStartPosition = ev->pos(); if (_selectable) { int i = idx(dragStartPosition); if (i == -1) return; if (i != selectedIdx) { update(idxRect(i) | idxRect(selectedIdx)); selectedIdx = i; } emit boxClicked(i); } }
void Palette::leaveEvent(QEvent*) { if (currentIdx != -1) { QRect r = idxRect(currentIdx); currentIdx = -1; update(r); } }
void Palette::mousePressEvent(QMouseEvent* ev) { dragStartPosition = ev->pos(); dragIdx = idx(dragStartPosition); if (dragIdx == -1) return; if (_selectable) { if (dragIdx != selectedIdx) { update(idxRect(dragIdx) | idxRect(selectedIdx)); selectedIdx = dragIdx; } emit boxClicked(dragIdx); } PaletteCell* cell = cells[dragIdx]; if (cell && (cell->tag == "ShowMore")) emit displayMore(_name); }
void Palette::mouseMoveEvent(QMouseEvent* ev) { if ((currentIdx != -1) && (dragIdx == currentIdx) && (ev->buttons() & Qt::LeftButton) && (ev->pos() - dragStartPosition).manhattanLength() > QApplication::startDragDistance()) { PaletteCell* cell = cells[currentIdx]; if (cell && cell->element) { QDrag* drag = new QDrag(this); QMimeData* mimeData = new QMimeData; Element* el = cell->element; qreal mag = PALETTE_SPATIUM * extraMag / gscore->spatium(); QPointF spos = QPointF(dragStartPosition) / mag; spos -= QPointF(cells[currentIdx]->x, cells[currentIdx]->y); // DEBUG: spos.setX(0.0); mimeData->setData(mimeSymbolFormat, el->mimeData(spos)); drag->setMimeData(mimeData); dragSrcIdx = currentIdx; emit startDragElement(el); if (_readOnly) { drag->start(Qt::CopyAction); } else { /*Qt::DropAction action = */ drag->start(Qt::DropActions(Qt::CopyAction | Qt::MoveAction)); } } } else { QRect r; if (currentIdx != -1) r = idxRect(currentIdx); currentIdx = idx(ev->pos()); if (currentIdx != -1) { if (cells[currentIdx] == 0) currentIdx = -1; else r |= idxRect(currentIdx); } update(r); } }