summaryrefslogtreecommitdiffstats
path: root/scribus/newfile.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/newfile.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/newfile.cpp')
-rw-r--r--scribus/newfile.cpp677
1 files changed, 677 insertions, 0 deletions
diff --git a/scribus/newfile.cpp b/scribus/newfile.cpp
new file mode 100644
index 0000000..b4c2770
--- /dev/null
+++ b/scribus/newfile.cpp
@@ -0,0 +1,677 @@
+/*
+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 "newfile.h"
+
+#include <QFormLayout>
+#include <QGridLayout>
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QSpacerItem>
+#include <QListWidgetItem>
+#include <QFrame>
+#include <QGroupBox>
+#include <QLabel>
+#include <QSpinBox>
+#include <QCheckBox>
+#include <QTabWidget>
+#include <QPushButton>
+#include <QPixmap>
+#include <QToolTip>
+#include <QDir>
+#include <QPoint>
+#if QT_VERSION >= 0x040300
+ #include <QFileDialog>
+#else
+ #include "customfdialog.h"
+#endif
+
+#include "fileloader.h"
+#include "prefsfile.h"
+#include "units.h"
+#include "pagesize.h"
+#include "marginwidget.h"
+#include "scconfig.h"
+#include "scribuscore.h"
+#include "prefsmanager.h"
+#include "pagelayout.h"
+#include "pagestructs.h"
+#include "commonstrings.h"
+#include "scrspinbox.h"
+#include "sccombobox.h"
+#include "util_icon.h"
+
+PageLayoutsWidget::PageLayoutsWidget(QWidget* parent) : QListWidget(parent)
+{
+ setDragEnabled(false);
+ setViewMode(QListView::IconMode);
+ setFlow(QListView::LeftToRight);
+ setSortingEnabled(false);
+ setWrapping(false);
+ setWordWrap(true);
+ setAcceptDrops(false);
+ setDropIndicatorShown(false);
+ setDragDropMode(QAbstractItemView::NoDragDrop);
+ setResizeMode(QListView::Adjust);
+ setSelectionMode(QAbstractItemView::SingleSelection);
+ setFocusPolicy(Qt::NoFocus);
+ setIconSize(QSize(32, 32));
+ clear();
+ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
+}
+
+void PageLayoutsWidget::arrangeIcons()
+{
+ QListWidgetItem* ic;
+ int startY = 5;
+ int startX = 5;
+ setResizeMode(QListView::Fixed);
+ int maxSizeY = 0;
+ for (int cc = 0; cc < count(); ++cc)
+ {
+ ic = item(cc);
+ QRect ir = visualItemRect(ic);
+ setPositionForIndex(QPoint(startX, startY), indexFromItem(ic));
+ startX += ir.width()+5;
+ maxSizeY = qMax(maxSizeY, ir.height());
+ }
+ maxX = startX;
+ maxY = maxSizeY+10;
+}
+
+const QSize PageLayoutsWidget::minimumSizeHint()
+{
+ return QSize(maxX, maxY);
+}
+
+NewDoc::NewDoc( QWidget* parent, const QStringList& recentDocs, bool startUp, QString lang ) : QDialog( parent )
+{
+ setObjectName(QString::fromLocal8Bit("NewDocumentWindow"));
+ setModal(true);
+ prefsManager=PrefsManager::instance();
+ m_tabSelected = 0;
+ m_onStartup = startUp;
+ m_unitIndex = prefsManager->appPrefs.docUnitIndex;
+ m_unitRatio = unitGetRatioFromIndex(m_unitIndex);
+ m_unitSuffix = unitGetSuffixFromIndex(m_unitIndex);
+ m_orientation = prefsManager->appPrefs.pageOrientation;
+ setWindowTitle( tr( "New Document" ) );
+ setWindowIcon(QIcon(loadIcon("AppIcon.png")));
+ TabbedNewDocLayout = new QVBoxLayout( this );
+ TabbedNewDocLayout->setMargin(10);
+ TabbedNewDocLayout->setSpacing(5);
+ if (startUp)
+ tabWidget = new QTabWidget( this );
+ createNewDocPage();
+ if (startUp)
+ {
+ tabWidget->addTab(newDocFrame, tr("&New Document"));
+ createNewFromTempPage();
+ nftGui->setupSettings(lang);
+ tabWidget->addTab(newFromTempFrame, tr("New &from Template"));
+ createOpenDocPage();
+ tabWidget->addTab(openDocFrame, tr("Open &Existing Document"));
+ recentDocList=recentDocs;
+ createRecentDocPage();
+ tabWidget->addTab(recentDocFrame, tr("Open Recent &Document"));
+ TabbedNewDocLayout->addWidget(tabWidget);
+ }
+ else
+ TabbedNewDocLayout->addWidget(newDocFrame);
+
+ Layout1 = new QHBoxLayout;
+ Layout1->setSpacing( 5 );
+ Layout1->setMargin( 0 );
+ if (startUp)
+ {
+ startUpDialog = new QCheckBox( tr( "Do not show this dialog again" ), this );
+ startUpDialog->setChecked(!prefsManager->appPrefs.showStartupDialog);
+ Layout1->addWidget( startUpDialog );
+ }
+ QSpacerItem* spacer = new QSpacerItem( 2, 2, QSizePolicy::Expanding, QSizePolicy::Minimum );
+ Layout1->addItem( spacer );
+ OKButton = new QPushButton( CommonStrings::tr_OK, this );
+ OKButton->setDefault( true );
+ Layout1->addWidget( OKButton );
+ CancelB = new QPushButton( CommonStrings::tr_Cancel, this );
+ CancelB->setAutoDefault( false );
+ Layout1->addWidget( CancelB );
+ TabbedNewDocLayout->addLayout( Layout1 );
+ //tooltips
+ pageSizeComboBox->setToolTip( tr( "Document page size, either a standard size or a custom size" ) );
+ pageOrientationComboBox->setToolTip( tr( "Orientation of the document's pages" ) );
+ widthSpinBox->setToolTip( tr( "Width of the document's pages, editable if you have chosen a custom page size" ) );
+ heightSpinBox->setToolTip( tr( "Height of the document's pages, editable if you have chosen a custom page size" ) );
+ pageCountSpinBox->setToolTip( tr( "Initial number of pages of the document" ) );
+ unitOfMeasureComboBox->setToolTip( tr( "Default unit of measurement for document editing" ) );
+ autoTextFrame->setToolTip( tr( "Create text frames automatically when new pages are added" ) );
+ numberOfCols->setToolTip( tr( "Number of columns to create in automatically created text frames" ) );
+ Distance->setToolTip( tr( "Distance between automatically created columns" ) );
+
+ // signals and slots connections
+ connect( OKButton, SIGNAL( clicked() ), this, SLOT( ExitOK() ) );
+ connect( CancelB, SIGNAL( clicked() ), this, SLOT( reject() ) );
+ connect(pageSizeComboBox, SIGNAL(activated(const QString &)), this, SLOT(setPageSize(const QString &)));
+ connect(pageOrientationComboBox, SIGNAL(activated(int)), this, SLOT(setOrientation(int)));
+ connect(unitOfMeasureComboBox, SIGNAL(activated(int)), this, SLOT(setUnit(int)));
+ connect(Distance, SIGNAL(valueChanged(double)), this, SLOT(setDistance(double)));
+ connect(autoTextFrame, SIGNAL(clicked()), this, SLOT(handleAutoFrame()));
+ connect(layoutsView, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ connect(layoutsView, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ connect(layoutsView, SIGNAL(itemActivated(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ connect(layoutsView, SIGNAL(itemPressed(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ if (startUp)
+ {
+ connect(nftGui, SIGNAL(leaveOK()), this, SLOT(ExitOK()));
+ connect(recentDocListBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(recentDocListBox_doubleClicked()));
+ }
+
+// setMinimumSize(minimumSizeHint());
+// setMaximumSize(minimumSizeHint());
+// resize(minimumSizeHint());
+}
+
+void NewDoc::createNewDocPage()
+{
+ newDocFrame = new QFrame(this);
+
+ pageSizeGroupBox = new QGroupBox(newDocFrame );
+ pageSizeGroupBox->setTitle( tr( "Document Layout" ) );
+ pageSizeGroupBoxLayout = new QGridLayout( pageSizeGroupBox );
+ pageSizeGroupBoxLayout->setMargin(10);
+ pageSizeGroupBoxLayout->setSpacing(5);
+ pageSizeGroupBoxLayout->setAlignment( Qt::AlignTop );
+
+ layoutsView = new PageLayoutsWidget( pageSizeGroupBox );
+ layoutsView->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Maximum);
+ for (int pg = 0; pg < prefsManager->appPrefs.pageSets.count(); ++pg)
+ {
+ QListWidgetItem *ic;
+ QString psname=CommonStrings::translatePageSetString(prefsManager->appPrefs.pageSets[pg].Name);
+ if (pg == 0)
+ {
+ ic = new QListWidgetItem( QIcon(loadIcon("32/page-simple.png")), psname, layoutsView );
+ ic->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ }
+ else if (pg == 1)
+ {
+ ic = new QListWidgetItem( QIcon(loadIcon("32/page-doublesided.png")), psname, layoutsView );
+ ic->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ }
+ else if (pg == 2)
+ {
+ ic = new QListWidgetItem( QIcon(loadIcon("32/page-3fold.png")), psname, layoutsView );
+ ic->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ }
+ else if (pg == 3)
+ {
+ ic = new QListWidgetItem( QIcon(loadIcon("32/page-4fold.png")), psname, layoutsView );
+ ic->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ }
+ else
+ {
+ ic = new QListWidgetItem( QIcon(loadIcon("32/page-simple.png")), psname, layoutsView );
+ ic->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+ }
+ }
+ layoutsView->arrangeIcons();
+ pageSizeGroupBoxLayout->addWidget( layoutsView, 0, 0, 5, 1 );
+ layoutsView->arrangeIcons();
+
+
+ TextLabel1 = new QLabel( tr( "&Size:" ), pageSizeGroupBox );
+ pageSizeGroupBoxLayout->addWidget( TextLabel1, 0, 1 );
+ PageSize ps(prefsManager->appPrefs.pageSize);
+ pageSizeComboBox = new QComboBox( pageSizeGroupBox );
+ pageSizeComboBox->addItems(ps.sizeTRList());
+ pageSizeComboBox->addItem( CommonStrings::trCustomPageSize );
+ pageSizeComboBox->setEditable(false);
+ TextLabel1->setBuddy(pageSizeComboBox);
+ pageSizeGroupBoxLayout->addWidget(pageSizeComboBox, 0, 2 );
+ TextLabel2 = new QLabel( tr( "Orie&ntation:" ), pageSizeGroupBox );
+ pageSizeGroupBoxLayout->addWidget( TextLabel2, 1, 1 );
+ pageOrientationComboBox = new QComboBox( pageSizeGroupBox );
+ pageOrientationComboBox->addItem( tr( "Portrait" ) );
+ pageOrientationComboBox->addItem( tr( "Landscape" ) );
+ pageOrientationComboBox->setEditable(false);
+ pageOrientationComboBox->setCurrentIndex(prefsManager->appPrefs.pageOrientation);
+ TextLabel2->setBuddy(pageOrientationComboBox);
+ pageSizeGroupBoxLayout->addWidget( pageOrientationComboBox, 1, 2 );
+
+ TextLabel1_2 = new QLabel( tr( "&Width:" ), pageSizeGroupBox );
+ pageSizeGroupBoxLayout->addWidget(TextLabel1_2, 2, 1 );
+ widthSpinBox = new ScrSpinBox( 1, 16777215, pageSizeGroupBox, m_unitIndex );
+ widthSpinBox->setSuffix(m_unitSuffix);
+ TextLabel1_2->setBuddy(widthSpinBox);
+ pageSizeGroupBoxLayout->addWidget(widthSpinBox, 2, 2 );
+ TextLabel2_2 = new QLabel( tr( "&Height:" ), pageSizeGroupBox );
+ pageSizeGroupBoxLayout->addWidget(TextLabel2_2, 3, 1 );
+ heightSpinBox = new ScrSpinBox( 1, 16777215, pageSizeGroupBox, m_unitIndex );
+ heightSpinBox->setSuffix(m_unitSuffix);
+ TextLabel2_2->setBuddy(heightSpinBox);
+ pageSizeGroupBoxLayout->addWidget(heightSpinBox, 3, 2 );
+ layoutLabel1 = new QLabel( pageSizeGroupBox );
+ layoutLabel1->setText( tr( "First Page is:" ) );
+ pageSizeGroupBoxLayout->addWidget( layoutLabel1, 4, 1 );
+ firstPage = new ScComboBox( pageSizeGroupBox );
+ firstPage->clear();
+ pageSizeGroupBoxLayout->addWidget( firstPage, 4, 2 );
+ selectItem(prefsManager->appPrefs.FacingPages);
+ firstPage->setCurrentIndex(prefsManager->appPrefs.pageSets[prefsManager->appPrefs.FacingPages].FirstPage);
+
+ MarginStruct marg(prefsManager->appPrefs.margins);
+ marginGroup = new MarginWidget(newDocFrame, tr( "Margin Guides" ), &marg, m_unitIndex );
+ marginGroup->setPageWidthHeight(prefsManager->appPrefs.PageWidth, prefsManager->appPrefs.PageHeight);
+ marginGroup->setFacingPages(!(prefsManager->appPrefs.FacingPages == singlePage));
+ widthSpinBox->setValue(prefsManager->appPrefs.PageWidth * m_unitRatio);
+ heightSpinBox->setValue(prefsManager->appPrefs.PageHeight * m_unitRatio);
+ QStringList pageSizes=ps.sizeList();
+ int sizeIndex=pageSizes.indexOf(ps.nameTR());
+ if (sizeIndex!=-1)
+ pageSizeComboBox->setCurrentIndex(sizeIndex);
+ else
+ pageSizeComboBox->setCurrentIndex(pageSizeComboBox->count()-1);
+ marginGroup->setPageSize(pageSizeComboBox->currentText());
+ setDocLayout(prefsManager->appPrefs.FacingPages);
+ setSize(prefsManager->appPrefs.pageSize);
+ setOrientation(prefsManager->appPrefs.pageOrientation);
+ marginGroup->setNewBleeds(prefsManager->appPrefs.bleeds);
+ marginGroup->setMarginPreset(prefsManager->appPrefs.marginPreset);
+
+ optionsGroupBox = new QGroupBox( newDocFrame );
+ optionsGroupBox->setTitle( tr( "Options" ) );
+ optionsGroupBoxLayout = new QFormLayout( optionsGroupBox );
+ optionsGroupBoxLayout->setSpacing( 5 );
+ optionsGroupBoxLayout->setMargin( 10 );
+ optionsGroupBoxLayout->setAlignment( Qt::AlignTop );
+ optionsGroupBoxLayout->setFormAlignment(Qt::AlignLeft | Qt::AlignTop);
+ optionsGroupBoxLayout->setLabelAlignment(Qt::AlignLeft);
+ pageCountLabel = new QLabel( tr( "N&umber of Pages:" ), optionsGroupBox );
+
+ pageCountSpinBox = new QSpinBox( optionsGroupBox );
+ pageCountSpinBox->setMaximum( 10000 );
+ pageCountSpinBox->setMinimum( 1 );
+ pageCountLabel->setBuddy(pageCountSpinBox);
+ unitOfMeasureLabel = new QLabel( tr( "&Default Unit:" ), optionsGroupBox );
+ unitOfMeasureComboBox = new QComboBox( optionsGroupBox );
+ unitOfMeasureComboBox->addItems(unitGetTextUnitList());
+ unitOfMeasureComboBox->setCurrentIndex(m_unitIndex);
+ unitOfMeasureComboBox->setEditable(false);
+ unitOfMeasureLabel->setBuddy(unitOfMeasureComboBox);
+ optionsGroupBoxLayout->addRow( pageCountLabel, pageCountSpinBox);
+ optionsGroupBoxLayout->addRow( unitOfMeasureLabel, unitOfMeasureComboBox );
+
+ autoTextFrame = new QCheckBox( optionsGroupBox );
+ autoTextFrame->setText( tr( "&Automatic Text Frames" ) );
+ optionsGroupBoxLayout->addRow( autoTextFrame );
+ TextLabel3 = new QLabel( tr( "Colu&mns:" ), optionsGroupBox );
+ numberOfCols = new QSpinBox( optionsGroupBox );
+ numberOfCols->setButtonSymbols( QSpinBox::UpDownArrows );
+ numberOfCols->setMinimum( 1 );
+ numberOfCols->setValue( 1 );
+ TextLabel3->setBuddy(numberOfCols);
+ optionsGroupBoxLayout->addRow( TextLabel3, numberOfCols );
+
+ TextLabel4 = new QLabel( tr( "&Gap:" ), optionsGroupBox );
+ Distance = new ScrSpinBox( 0, 1000, optionsGroupBox, m_unitIndex );
+ Distance->setValue(11 * m_unitRatio);
+ m_distance = 11;
+ optionsGroupBoxLayout->addRow( TextLabel4, Distance );
+ TextLabel4->setBuddy(Distance);
+
+ TextLabel3->setEnabled(false);
+ TextLabel4->setEnabled(false);
+ Distance->setEnabled(false);
+ numberOfCols->setEnabled(false);
+ startDocSetup = new QCheckBox( optionsGroupBox );
+ startDocSetup->setText( tr( "Show Document Settings After Creation" ) );
+ startDocSetup->setChecked(false);
+ optionsGroupBoxLayout->addRow( startDocSetup );
+ NewDocLayout = new QGridLayout( newDocFrame );
+ NewDocLayout->setMargin(10);
+ NewDocLayout->setSpacing(5);
+ NewDocLayout->addWidget( marginGroup, 1, 0 );
+ NewDocLayout->addWidget( optionsGroupBox, 1, 1 );
+ NewDocLayout->addWidget( pageSizeGroupBox, 0, 0, 1, 2);
+}
+
+void NewDoc::createNewFromTempPage()
+{
+ newFromTempFrame = new QFrame(this);
+ verticalLayout = new QVBoxLayout(newFromTempFrame);
+ nftGui = new nftwidget(newFromTempFrame);
+ verticalLayout->addWidget(nftGui);
+}
+
+void NewDoc::createOpenDocPage()
+{
+ PrefsContext* docContext = prefsManager->prefsFile->getContext("docdirs", false);
+ QString docDir = ".";
+ QString prefsDocDir=prefsManager->documentDir();
+ if (!prefsDocDir.isEmpty())
+ docDir = docContext->get("docsopen", prefsDocDir);
+ else
+ docDir = docContext->get("docsopen", ".");
+ QString formats(FileLoader::getLoadFilterString());
+ formats.remove("PDF (*.pdf *.PDF);;");
+ openDocFrame = new QFrame(this);
+ openDocLayout = new QVBoxLayout(openDocFrame);
+ openDocLayout->setMargin(5);
+ openDocLayout->setSpacing(5);
+ m_selectedFile = "";
+#if QT_VERSION >= 0x040300
+ fileDialog = new QFileDialog(openDocFrame, tr("Open"), docDir, formats);
+ fileDialog->setFileMode(QFileDialog::ExistingFile);
+ fileDialog->setAcceptMode(QFileDialog::AcceptOpen);
+ fileDialog->setReadOnly(true);
+#else
+ fileDialog = new CustomFDialog(openDocFrame, docDir, tr("Open"), formats, fdNone);
+#endif
+ fileDialog->setSizeGripEnabled(false);
+ fileDialog->setModal(false);
+ QList<QPushButton *> b = fileDialog->findChildren<QPushButton *>();
+ QListIterator<QPushButton *> i(b);
+ while (i.hasNext())
+ i.next()->setVisible(false);
+ fileDialog->setWindowFlags(Qt::Widget);
+ openDocLayout->addWidget(fileDialog);
+#if QT_VERSION >= 0x040300
+ connect(fileDialog, SIGNAL(filesSelected(const QStringList &)), this, SLOT(openFile()));
+#else
+ connect(fileDialog, SIGNAL(fileSelected (const QString &)), this, SLOT(openFile()));
+#endif
+}
+
+void NewDoc::openFile()
+{
+ ExitOK();
+}
+
+void NewDoc::createRecentDocPage()
+{
+ recentDocFrame = new QFrame(this);
+ recentDocLayout = new QVBoxLayout(recentDocFrame);
+ recentDocLayout->setMargin(5);
+ recentDocLayout->setSpacing(5);
+ recentDocListBox = new QListWidget(recentDocFrame);
+ recentDocLayout->addWidget(recentDocListBox);
+ uint max = qMin(prefsManager->appPrefs.RecentDCount, recentDocList.count());
+ for (uint m = 0; m < max; ++m)
+ recentDocListBox->addItem( QDir::toNativeSeparators(recentDocList[m]) );
+ if (max>0)
+ recentDocListBox->setCurrentRow(0);
+}
+
+void NewDoc::setWidth(double)
+{
+ m_pageWidth = widthSpinBox->value() / m_unitRatio;
+ marginGroup->setPageWidth(m_pageWidth);
+ QString psText=pageSizeComboBox->currentText();
+ if (psText!=CommonStrings::trCustomPageSize && psText!=CommonStrings::customPageSize)
+ pageSizeComboBox->setCurrentIndex(pageSizeComboBox->count()-1);
+ int newOrientation = (widthSpinBox->value() > heightSpinBox->value()) ? landscapePage : portraitPage;
+ if (newOrientation != m_orientation)
+ {
+ pageOrientationComboBox->blockSignals(true);
+ pageOrientationComboBox->setCurrentIndex(newOrientation);
+ pageOrientationComboBox->blockSignals(false);
+ m_orientation = newOrientation;
+ }
+}
+
+void NewDoc::setHeight(double)
+{
+ m_pageHeight = heightSpinBox->value() / m_unitRatio;
+ marginGroup->setPageHeight(m_pageHeight);
+ QString psText=pageSizeComboBox->currentText();
+ if (psText!=CommonStrings::trCustomPageSize && psText!=CommonStrings::customPageSize)
+ pageSizeComboBox->setCurrentIndex(pageSizeComboBox->count()-1);
+ int newOrientation = (widthSpinBox->value() > heightSpinBox->value()) ? landscapePage : portraitPage;
+ if (newOrientation != m_orientation)
+ {
+ pageOrientationComboBox->blockSignals(true);
+ pageOrientationComboBox->setCurrentIndex(newOrientation);
+ pageOrientationComboBox->blockSignals(false);
+ m_orientation = newOrientation;
+ }
+}
+
+void NewDoc::selectItem(uint nr)
+{
+ disconnect(layoutsView, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ disconnect(layoutsView, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ disconnect(layoutsView, SIGNAL(itemActivated(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ disconnect(layoutsView, SIGNAL(itemPressed(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ if (nr > 0)
+ {
+ firstPage->setEnabled(true);
+ firstPage->clear();
+ QStringList::Iterator pNames;
+ for(pNames = prefsManager->appPrefs.pageSets[nr].pageNames.begin(); pNames != prefsManager->appPrefs.pageSets[nr].pageNames.end(); ++pNames )
+ {
+ firstPage->addItem(CommonStrings::translatePageSetLocString((*pNames)));
+ }
+ }
+ else
+ {
+ firstPage->clear();
+ firstPage->addItem(" ");
+ firstPage->setEnabled(false);
+ }
+ layoutsView->setCurrentRow(nr);
+ layoutsView->item(nr)->setSelected(true);
+ connect(layoutsView, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ connect(layoutsView, SIGNAL(itemDoubleClicked(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ connect(layoutsView, SIGNAL(itemActivated(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+ connect(layoutsView, SIGNAL(itemPressed(QListWidgetItem *)), this, SLOT(itemSelected(QListWidgetItem* )));
+}
+
+void NewDoc::itemSelected(QListWidgetItem* ic)
+{
+ if (ic == 0)
+ return;
+ selectItem(layoutsView->row(ic));
+ setDocLayout(layoutsView->row(ic));
+}
+
+void NewDoc::handleAutoFrame()
+{
+ if (autoTextFrame->isChecked())
+ {
+ TextLabel3->setEnabled(true);
+ TextLabel4->setEnabled(true);
+ Distance->setEnabled(true);
+ numberOfCols->setEnabled(true);
+ }
+ else
+ {
+ TextLabel3->setEnabled(false);
+ TextLabel4->setEnabled(false);
+ Distance->setEnabled(false);
+ numberOfCols->setEnabled(false);
+ }
+}
+
+void NewDoc::setDistance(double)
+{
+ m_distance = Distance->value() / m_unitRatio;
+}
+
+void NewDoc::setUnit(int newUnitIndex)
+{
+ disconnect(widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setWidth(double)));
+ disconnect(heightSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setHeight(double)));
+ widthSpinBox->setNewUnit(newUnitIndex);
+ heightSpinBox->setNewUnit(newUnitIndex);
+ Distance->setNewUnit(newUnitIndex);
+ m_unitRatio = unitGetRatioFromIndex(newUnitIndex);
+ m_unitIndex = newUnitIndex;
+/*
+double oldUnitRatio = unitRatio;
+ double val, oldB, oldBM, oldH, oldHM;
+ int decimals;
+ widthSpinBox->getValues(&oldB, &oldBM, &decimals, &val);
+ oldB /= oldUnitRatio;
+ oldBM /= oldUnitRatio;
+ heightSpinBox->getValues(&oldH, &oldHM, &decimals, &val);
+ oldH /= oldUnitRatio;
+ oldHM /= oldUnitRatio;
+
+ unitIndex = newUnitIndex;
+ unitRatio = unitGetRatioFromIndex(newUnitIndex);
+ decimals = unitGetDecimalsFromIndex(newUnitIndex);
+ if (pageOrientationComboBox->currentItem() == portraitPage)
+ {
+ widthSpinBox->setValues(oldB * unitRatio, oldBM * unitRatio, decimals, pageWidth * unitRatio);
+ heightSpinBox->setValues(oldH * unitRatio, oldHM * unitRatio, decimals, pageHeight * unitRatio);
+ }
+ else
+ {
+ widthSpinBox->setValues(oldB * unitRatio, oldBM * unitRatio, decimals, pageHeight * unitRatio);
+ heightSpinBox->setValues(oldH * unitRatio, oldHM * unitRatio, decimals, pageWidth * unitRatio);
+ }
+ Distance->setValue(Dist * unitRatio);
+ unitSuffix = unitGetSuffixFromIndex(newUnitIndex);
+ widthSpinBox->setSuffix(unitSuffix);
+ heightSpinBox->setSuffix(unitSuffix);
+ Distance->setSuffix( unitSuffix );
+*/
+ marginGroup->setNewUnit(m_unitIndex);
+ marginGroup->setPageHeight(m_pageHeight);
+ marginGroup->setPageWidth(m_pageWidth);
+ connect(widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setWidth(double)));
+ connect(heightSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setHeight(double)));
+
+}
+
+void NewDoc::ExitOK()
+{
+ m_pageWidth = widthSpinBox->value() / m_unitRatio;
+ m_pageHeight = heightSpinBox->value() / m_unitRatio;
+ m_bleedBottom = marginGroup->bottomBleed();
+ m_bleedTop = marginGroup->topBleed();
+ m_bleedLeft = marginGroup->leftBleed();
+ m_bleedRight = marginGroup->rightBleed();
+ if (m_onStartup)
+ {
+ m_tabSelected = tabWidget->currentIndex();
+ if (m_tabSelected == NewDoc::NewFromTemplateTab) // new doc from template
+ {
+ if (nftGui->currentDocumentTemplate)
+ {
+ m_selectedFile = QDir::fromNativeSeparators(nftGui->currentDocumentTemplate->file);
+ m_selectedFile = QDir::cleanPath(m_selectedFile);
+ }
+ }
+ else if (m_tabSelected == NewDoc::OpenExistingTab) // open existing doc
+ {
+#if QT_VERSION >= 0x040300
+ QStringList files = fileDialog->selectedFiles();
+ if (files.count() != 0)
+ m_selectedFile = QDir::fromNativeSeparators(files[0]);
+#else
+ m_selectedFile = QDir::fromNativeSeparators(fileDialog->selectedFile());
+#endif
+ }
+ else if (m_tabSelected == NewDoc::OpenRecentTab) // open recent doc
+ {
+ if (recentDocListBox->currentItem() != NULL)
+ {
+ QString fileName(recentDocListBox->currentItem()->text());
+ if (!fileName.isEmpty())
+ m_selectedFile = QDir::fromNativeSeparators(fileName);
+ }
+ }
+ }
+ else
+ m_tabSelected = NewDoc::NewDocumentTab;
+ accept();
+}
+
+void NewDoc::setOrientation(int ori)
+{
+ disconnect(widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setWidth(double)));
+ disconnect(heightSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setHeight(double)));
+ if (ori != m_orientation)
+ {
+ double w = widthSpinBox->value(), h = heightSpinBox->value();
+ widthSpinBox->setValue((ori == portraitPage) ? qMin(w, h) : qMax(w, h));
+ heightSpinBox->setValue((ori == portraitPage) ? qMax(w, h) : qMin(w, h));
+ }
+ // #869 pv - defined constants added + code repeat (check w/h)
+ (ori == portraitPage) ? m_orientation = portraitPage : m_orientation = landscapePage;
+ if (pageSizeComboBox->currentText() == CommonStrings::trCustomPageSize)
+ {
+ if (widthSpinBox->value() > heightSpinBox->value())
+ pageOrientationComboBox->setCurrentIndex(landscapePage);
+ else
+ pageOrientationComboBox->setCurrentIndex(portraitPage);
+ }
+ // end of #869
+ marginGroup->setPageHeight(m_pageHeight);
+ marginGroup->setPageWidth(m_pageWidth);
+ connect(widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setWidth(double)));
+ connect(heightSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setHeight(double)));
+}
+
+void NewDoc::setPageSize(const QString &size)
+{
+ if (size == CommonStrings::trCustomPageSize)
+ setSize(size);
+ else
+ {
+ setSize(size);
+ setOrientation(pageOrientationComboBox->currentIndex());
+ }
+ marginGroup->setPageSize(size);
+}
+
+void NewDoc::setSize(QString gr)
+{
+ m_pageWidth = widthSpinBox->value() / m_unitRatio;
+ m_pageHeight = heightSpinBox->value() / m_unitRatio;
+
+ disconnect(widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setWidth(double)));
+ disconnect(heightSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setHeight(double)));
+ if (gr==CommonStrings::trCustomPageSize || gr==CommonStrings::customPageSize)
+ {
+ widthSpinBox->setEnabled(true);
+ heightSpinBox->setEnabled(true);
+ }
+ else
+ {
+ PageSize *ps2=new PageSize(gr);
+ if (pageOrientationComboBox->currentIndex() == portraitPage)
+ {
+ m_pageWidth = ps2->width();
+ m_pageHeight = ps2->height();
+ } else {
+ m_pageWidth = ps2->height();
+ m_pageHeight = ps2->width();
+ }
+ delete ps2;
+ }
+ widthSpinBox->setValue(m_pageWidth * m_unitRatio);
+ heightSpinBox->setValue(m_pageHeight * m_unitRatio);
+ marginGroup->setPageHeight(m_pageHeight);
+ marginGroup->setPageWidth(m_pageWidth);
+ connect(widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setWidth(double)));
+ connect(heightSpinBox, SIGNAL(valueChanged(double)), this, SLOT(setHeight(double)));
+}
+
+void NewDoc::setDocLayout(int layout)
+{
+ marginGroup->setFacingPages(!(layout == singlePage));
+ m_choosenLayout = layout;
+ firstPage->setCurrentIndex(prefsManager->appPrefs.pageSets[m_choosenLayout].FirstPage);
+}
+
+void NewDoc::recentDocListBox_doubleClicked()
+{
+ /* Yep. There is nothing to solve. ScribusMainWindow handles all
+ openings etc. It's Franz's programming style ;) */
+ ExitOK();
+}