25 , m_viewManager(viewManager)
27 , m_baseLayer(m_viewManager->activeLayer())
34 setObjectName(
"clones_array_dialog");
38 m_page->setObjectName(
"clones_array");
40 m_page->columnAngle->setRange(-360, 360);
42 m_page->rowAngle->setRange(-360, 360);
46 resize(
m_page->sizeHint());
200 if (!
m_viewManager->blockUntilOperationsFinished(image))
return;
207 int columnXOffset =
m_page->columnXOffset->value();
208 int columnYOffset =
m_page->columnYOffset->value();
209 int rowXOffset =
m_page->rowXOffset->value();
210 int rowYOffset =
m_page->rowYOffset->value();
211 bool rowPreference = !
m_page->columnPreference->isChecked();
213 int startColumn = -
m_page->numNegativeColumns->value();
214 int startRow = -
m_page->numNegativeRows->value();
216 int endColumn =
m_page->numPositiveColumns->value() - 1;
217 int endRow =
m_page->numPositiveRows->value() - 1;
219 QString positiveGroupName = i18n(
"+ Array of %1",
m_baseLayer->
name());
225 if (startRow < 0 || startColumn < 0) {
226 QString negativeGroupName = i18n(
"- Array of %1",
m_baseLayer->
name());
231 for (
int row = endRow; row >= startRow; row--) {
232 for (
int col = endColumn; col >= startColumn; col--) {
233 if (!col && !row)
continue;
235 bool choosePositiveGroup = rowPreference ? row > 0 || (row == 0 && col > 0) : col > 0 || (col == 0 && row > 0);
236 KisNodeSP parent = choosePositiveGroup ? positiveGroupLayer : negativeGroupLayer;
239 QString cloneName = i18n(
"Clone %1, %2", col, row);
241 clone->setX(-row * rowXOffset + col * columnXOffset);
242 clone->setY(-row * rowYOffset + col * columnYOffset);