bool LevelMoverTool::canMoveColumns(const TPoint &pos) { TXsheet *xsh = getViewer()->getXsheet(); if (pos.x < 0) return false; if (pos.x != m_lastPos.x) { int count = 0; // controlla il tipo for (int i = 0; i < m_range.lx; i++) { int srcIndex = m_lastPos.x + i; int dstIndex = pos.x + i; TXshColumn *srcColumn = xsh->getColumn(srcIndex); if (srcColumn && srcColumn->isLocked()) continue; TXshColumn *dstColumn = xsh->getColumn(dstIndex); TXshColumn::ColumnType srcType = TXshColumn::eLevelType; if (srcColumn) srcType = srcColumn->getColumnType(); if (srcType == TXshColumn::eZeraryFxType) return false; /* qDebug() << "check: " << srcIndex << ":" << (srcColumn ? QString::number(srcType) : "empty") << " => " << dstIndex << ":" << (dstColumn ? QString::number(dstColumn->getColumnType()) : "empty"); */ if (dstColumn && !dstColumn->isEmpty() && dstColumn->getColumnType() != srcType) { return false; } if (!dstColumn || dstColumn->isLocked() == false) { count++; } } if (count == 0) return false; } return true; }
bool CellsMover::canMoveCells(const TPoint &pos) { TXsheet *xsh = getXsheet(); if (pos.x < 0) return false; if (pos.x != m_startPos.x) { int count = 0; // controlla il tipo int i = 0; while (i < m_rowCount * m_colCount) { TXshColumn::ColumnType srcType = getColumnTypeFromCell(i); int dstIndex = pos.x + i; TXshColumn *dstColumn = xsh->getColumn(dstIndex); if (srcType == TXshColumn::eZeraryFxType) return false; if (dstColumn && !dstColumn->isEmpty() && dstColumn->getColumnType() != srcType) return false; if (!dstColumn || dstColumn->isLocked() == false) count++; i += m_rowCount; } if (count == 0) return false; } if ((m_qualifiers & CellsMover::eInsertCells) || (m_qualifiers & CellsMover::eOverwriteCells)) return true; int count = 0; for (int i = 0; i < m_colCount; i++) { for (int j = 0; j < m_rowCount; j++) { if (!xsh->getCell(pos.y + j, pos.x + i).isEmpty()) return false; count++; } } if (count == 0) return false; return true; }
static inline bool isMeshDeformed(TXsheet *xsh, TStageObject *obj, const ImagePainter::VisualSettings *vs) { const TStageObjectId &parentId = obj->getParent(); if (parentId.isColumn() && obj->getParentHandle()[0] != 'H') { TStageObject *parentObj = xsh->getStageObject(parentId); if (!parentObj->getPlasticSkeletonDeformation()) return false; TXshColumn *parentCol = xsh->getColumn(parentId.getIndex()); return (parentCol->getColumnType() == TXshColumn::eMeshType) && (parentCol != vs->m_plasticVisualSettings.m_showOriginalColumn); } return false; }