summaryrefslogtreecommitdiffstats
path: root/scribus/movepage.cpp
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/movepage.cpp
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/movepage.cpp')
-rw-r--r--scribus/movepage.cpp155
1 files changed, 155 insertions, 0 deletions
diff --git a/scribus/movepage.cpp b/scribus/movepage.cpp
new file mode 100644
index 0000000..e48c5c7
--- /dev/null
+++ b/scribus/movepage.cpp
@@ -0,0 +1,155 @@
+/*
+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 "movepage.h"
+#include <QPixmap>
+#include <QLabel>
+#include <QSpinBox>
+#include <QComboBox>
+#include <QPushButton>
+
+#include "commonstrings.h"
+#include "util_icon.h"
+
+/*
+ * Constructs a MovePages which is a child of 'parent', with the
+ * name 'name' and widget flags set to 'f'
+ *
+ * The dialog will by default be modeless, unless you set 'modal' to
+ * true to construct a modal dialog.
+ */
+MovePages::MovePages( QWidget* parent, int currentPage, int maxPages, bool moving ) : QDialog( parent )
+{
+ move = moving;
+ setWindowTitle (move ? tr("Move Pages") : tr("Copy Page"));
+ setWindowIcon(loadIcon("AppIcon.png"));
+ setModal(true);
+ dialogLayout = new QVBoxLayout( this );
+ dialogLayout->setSpacing( 5 );
+ dialogLayout->setMargin( 10 );
+ fromToLayout = new QGridLayout();
+ fromToLayout->setSpacing( 5 );
+ fromToLayout->setMargin( 5 );
+ moveLabel = new QLabel( (move ? tr("Move Page(s)") : tr("Copy Page")) + ":", this );
+ fromPageData = new QSpinBox(this);
+ fromPageData->setMinimum(1);
+ fromPageData->setMaximum(maxPages);
+ fromPageData->setValue( currentPage );
+ uint currentRow = 0;
+ fromToLayout->addWidget( moveLabel, currentRow, 0);
+ fromToLayout->addWidget( fromPageData, currentRow, 1);
+
+ if (move)
+ {
+ toLabel = new QLabel( tr("To:"), this );
+ toPageData = new QSpinBox( this );
+ toPageData->setMinimum(1);
+ toPageData->setMaximum(maxPages);
+ toPageData->setValue( currentPage );
+ fromToLayout->addWidget( toLabel, currentRow, 2);
+ fromToLayout->addWidget( toPageData, currentRow, 3);
+ }
+ else
+ {
+ numberOfCopiesLabel = new QLabel( tr("Number of Copies:"), this );
+ numberOfCopiesData = new QSpinBox(this );
+ numberOfCopiesData->setMinimum(1);
+ numberOfCopiesData->setMaximum(999);
+ ++currentRow;
+ fromToLayout->addWidget(numberOfCopiesLabel, currentRow, 0);
+ fromToLayout->addWidget(numberOfCopiesData, currentRow, 1);
+ }
+ ++currentRow;
+ mvWhereData = new QComboBox( this );
+ mvWhereData->addItem( tr("Before Page"));
+ mvWhereData->addItem( tr("After Page"));
+ mvWhereData->addItem( tr("At End"));
+ mvWhereData->setCurrentIndex(2);
+ mvWherePageData = new QSpinBox( this );
+ mvWherePageData->setMinimum(1);
+ mvWherePageData->setMaximum(maxPages);
+ mvWherePageData->setValue( currentPage );
+ mvWherePageData->setDisabled( true );
+ fromToLayout->addWidget( mvWhereData, currentRow, 0 );
+ fromToLayout->addItem(new QSpacerItem(moveLabel->fontMetrics().width( tr( "Move Page(s):" )), 0), currentRow, 1);
+ fromToLayout->addWidget( mvWherePageData, currentRow, 2 );
+// fromToLayout->addColumnSpacing(0, moveLabel->fontMetrics().width( tr( "Move Page(s):" )));
+ dialogLayout->addLayout( fromToLayout );
+
+ okCancelLayout = new QHBoxLayout();
+ okCancelLayout->setSpacing( 6 );
+ okCancelLayout->setMargin( 0 );
+ QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+ okCancelLayout->addItem( spacer );
+ okButton = new QPushButton( CommonStrings::tr_OK, this );
+ okButton->setDefault( true );
+ okCancelLayout->addWidget(okButton);
+ cancelButton = new QPushButton( CommonStrings::tr_Cancel, this );
+ okCancelLayout->addWidget(cancelButton);
+ dialogLayout->addLayout( okCancelLayout );
+ setMaximumSize(sizeHint());
+
+ // signals and slots connections
+ if (move)
+ connect( toPageData, SIGNAL( editingFinished() ), this, SLOT( toChanged() ) );
+ connect( mvWhereData, SIGNAL( activated(int) ), this, SLOT( mvWherePageDataDisable(int) ) );
+ connect( fromPageData, SIGNAL( editingFinished() ), this, SLOT( fromChanged() ) );
+ connect( okButton, SIGNAL( clicked() ), this, SLOT( accept() ) );
+ connect( cancelButton, SIGNAL( clicked() ), this, SLOT( reject() ) );
+}
+
+void MovePages::fromChanged()
+{
+ if (move)
+ {
+ int pageNumber=fromPageData->value();
+ if (pageNumber > toPageData->value())
+ toPageData->setValue(pageNumber);
+ if ((pageNumber == 1) && (toPageData->value() == toPageData->maximum()))
+ toPageData->setValue(toPageData->maximum()-1);
+ }
+}
+
+void MovePages::toChanged()
+{
+ int pageNumber=toPageData->value();
+ if (pageNumber < fromPageData->value())
+ fromPageData->setValue(pageNumber);
+ if ((fromPageData->value() == 1) && (pageNumber == toPageData->maximum()))
+ fromPageData->setValue(2);
+}
+
+void MovePages::mvWherePageDataDisable(int index)
+{
+ mvWherePageData->setDisabled((index==2));
+}
+
+
+const int MovePages::getFromPage()
+{
+ return fromPageData->value();
+}
+
+const int MovePages::getToPage()
+{
+ return toPageData->value();
+}
+
+const int MovePages::getWhere()
+{
+ return mvWhereData->currentIndex();
+}
+
+const int MovePages::getWherePage()
+{
+ return mvWherePageData->value();
+}
+
+const int MovePages::getCopyCount()
+{
+ return numberOfCopiesData->value();
+}