void ResizeGesture::mouseReleaseEvent(QMouseEvent *m) { adjustBounds(m); if (m_doc->m_Selection->count() != 0) { PageItem* currItem = m_doc->m_Selection->itemAt(0); // qDebug() << "ResizeGesture::release: new bounds" << m_bounds; if (m_bounds != m_mousePressBounds) { doResize(m->modifiers() & Qt::AltModifier); m_doc->setRedrawBounding(currItem); if (currItem->asImageFrame()) currItem->AdjustPictScale(); } m_view->resetMousePressed(); // necessary since mousebutton is still recorded pressed, and otherwise checkchanges() will do nothing // we must check changes on whole selection otherwise resize operation won't undo correctly on groups if (m_bounds != m_mousePressBounds) { for (int i = 0; i < m_doc->m_Selection->count(); ++i) m_doc->m_Selection->itemAt(i)->checkChanges(); m_doc->invalidateRegion(m_mousePressBounds.unite(m_bounds)); m_doc->regionsChanged()->update(m_mousePressBounds.unite(m_bounds)); m_doc->changed(); } } // qDebug() << "ResizeGesture::release: transaction" << m_transactionStarted; if (m_transactionStarted) { m_transactionStarted->commit(); delete m_transactionStarted; m_transactionStarted = NULL; } m->accept(); m_canvas->update(); m_view->stopGesture(); }