summaryrefslogtreecommitdiffstats
path: root/scribus/multipleduplicate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scribus/multipleduplicate.cpp')
-rw-r--r--scribus/multipleduplicate.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/scribus/multipleduplicate.cpp b/scribus/multipleduplicate.cpp
new file mode 100644
index 0000000..cd3fbab
--- /dev/null
+++ b/scribus/multipleduplicate.cpp
@@ -0,0 +1,85 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+#include "multipleduplicate.h"
+
+#include <QGroupBox>
+#include <QLabel>
+#include <QPushButton>
+#include <QRadioButton>
+#include <QSpinBox>
+#include <QTabWidget>
+
+#include "scrspinbox.h"
+#include "units.h"
+#include "usertaskstructs.h"
+
+MultipleDuplicate::MultipleDuplicate( int unitIndex, QWidget* parent, Qt::WFlags fl )
+ : QDialog(parent, fl),
+ m_unitIndex(unitIndex)
+{
+ setupUi(this);
+ //set tab order
+ QWidget::setTabOrder(createGapRadioButton, horizShiftSpinBox);
+ QWidget::setTabOrder(horizShiftSpinBox, vertShiftSpinBox);
+ QWidget::setTabOrder(gridColsSpinBox, horizRCGapSpinBox);
+ QWidget::setTabOrder(horizRCGapSpinBox, vertRCGapSpinBox);
+ QWidget::setTabOrder(vertRCGapSpinBox, rotationSpinBox);
+
+ //set up mspinboxes
+ horizShiftSpinBox->setNewUnit(unitIndex);
+ vertShiftSpinBox->setNewUnit(unitIndex);
+ horizRCGapSpinBox->setNewUnit(unitIndex);
+ vertRCGapSpinBox->setNewUnit(unitIndex);
+ horizShiftSpinBox->setMinimum(-1000);
+ vertShiftSpinBox->setMinimum(-1000);
+ horizRCGapSpinBox->setMinimum(-1000);
+ vertRCGapSpinBox->setMinimum(-1000);
+ horizShiftSpinBox->setMaximum(1000);
+ vertShiftSpinBox->setMaximum(1000);
+ horizRCGapSpinBox->setMaximum(1000);
+ vertRCGapSpinBox->setMaximum(1000);
+
+ rotationSpinBox->setValues(-180.0, 180.0, 6, 0.0);
+ rotationSpinBox->setDecimals(1);
+ rotationSpinBox->setNewUnit(6);
+
+ createGapRadioButton->setChecked(true);
+ setCopiesGap();
+ // signals and slots connections
+ connect(createGapRadioButton, SIGNAL(clicked()), this, SLOT(setCopiesGap()));
+ connect(shiftCreatedItemsRadioButton, SIGNAL(clicked()), this, SLOT(setCopiesShift()));
+}
+
+MultipleDuplicate::~MultipleDuplicate()
+{
+}
+
+void MultipleDuplicate::setCopiesShift()
+{
+ horizShiftLabel->setText( tr("&Horizontal Shift:"));
+ vertShiftLabel->setText( tr("&Vertical Shift:"));
+}
+
+void MultipleDuplicate::setCopiesGap()
+{
+ horizShiftLabel->setText( tr("&Horizontal Gap:"));
+ vertShiftLabel->setText( tr("&Vertical Gap:"));
+}
+
+void MultipleDuplicate::getMultiplyData(ItemMultipleDuplicateData& mdData)
+{
+ mdData.type = tabWidget->currentIndex();
+ mdData.copyCount = numberOfCopiesSpinBox->value();
+ mdData.copyShiftOrGap = createGapRadioButton->isChecked() ? 1 : 0;
+ mdData.copyShiftGapH = horizShiftSpinBox->value();
+ mdData.copyShiftGapV = vertShiftSpinBox->value();
+ mdData.copyRotation = rotationSpinBox->value();
+ mdData.gridRows = gridRowsSpinBox->value();
+ mdData.gridCols = gridColsSpinBox->value();
+ mdData.gridGapH = horizRCGapSpinBox->value();
+ mdData.gridGapV = vertRCGapSpinBox->value();
+}