void GeneralCardItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
    if (Config.FreeChoose && Qt::RightButton == event->button()) {
        FreeChooseDialog *general_changer = new FreeChooseDialog(QApplication::focusWidget());
        connect(general_changer, SIGNAL(general_chosen(QString)), this, SLOT(changeGeneral(QString)));
        general_changer->exec();
        general_changer->deleteLater();
        return;
    }
    if (frozen) return;

    QPointF totalMove = mapToParent(event->pos()) - _m_lastMousePressScenePos;
    if (totalMove.x() * totalMove.x() + totalMove.y() * totalMove.y() < _S_MOVE_JITTER_TOLERANCE)
        emit clicked();
    else
        emit released();

    if (auto_back) {
        goBack(true, false);
    }
}
Example #2
0
CardItem::CardItem(const QString &general_name)
    :card(NULL), filtered_card(NULL), auto_back(true), frozen(false)
{
    changeGeneral(general_name);
}