void TileStampManager::createQuickStamp(int index) { TileStamp stamp = stampFromContext(mToolManager.selectedTool()); if (stamp.isEmpty()) return; setQuickStamp(index, stamp); }
void TileStampManager::newStamp() { TileStamp stamp = stampFromContext(mToolManager.selectedTool()); if (stamp.isEmpty()) return; mTileStampModel->addStamp(stamp); }
void TileStampManager::extendQuickStamp(int index) { TileStamp quickStamp = mQuickStamps[index]; if (quickStamp.isEmpty()) createQuickStamp(index); else addVariation(quickStamp); }
void TileStampManager::eraseQuickStamp(int index) { const TileStamp stamp = mQuickStamps.at(index); if (!stamp.isEmpty()) { mQuickStamps[index] = TileStamp(); if (!mQuickStamps.contains(stamp)) mTileStampModel->removeStamp(stamp); } }
void TileStampManager::addVariation(const TileStamp &targetStamp) { TileStamp stamp = stampFromContext(mToolManager.selectedTool()); if (stamp.isEmpty()) return; if (stamp == targetStamp) // avoid easy mistake of adding duplicates return; foreach (const TileStampVariation &variation, stamp.variations()) mTileStampModel->addVariation(targetStamp, variation); }
void StampBrush::endCapture() { if (mBrushBehavior != Capture) return; mBrushBehavior = Free; TileStamp stamp = mCaptureStampHelper.endCapture(*mapDocument(), tilePosition()); if (!stamp.isEmpty()) emit stampChanged(TileStamp(stamp)); else updatePreview(); }
void TileStampsDock::newStamp() { TileStamp stamp = mTileStampManager->createStamp(); if (isVisible() && !stamp.isEmpty()) { QModelIndex stampIndex = mTileStampModel->index(stamp); if (stampIndex.isValid()) { QModelIndex viewIndex = mProxyModel->mapFromSource(stampIndex); mTileStampView->setCurrentIndex(viewIndex); mTileStampView->edit(viewIndex); } } }
void AbstractTileFillTool::mouseReleased(QGraphicsSceneMouseEvent *event) { if (event->button() == Qt::RightButton && mCaptureStampHelper.isActive()) { clearOverlay(); TileStamp stamp = mCaptureStampHelper.endCapture(*mapDocument(), tilePosition()); if (!stamp.isEmpty()) emit stampChanged(stamp); return; } event->ignore(); }