diff options
author | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
---|---|---|
committer | craig <craig@11d20701-8431-0410-a711-e3c959e3b870> | 2012-01-01 11:40:09 +0000 |
commit | 7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch) | |
tree | 4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/tabcheckdoc.cpp | |
download | scribus-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/tabcheckdoc.cpp')
-rw-r--r-- | scribus/tabcheckdoc.cpp | 306 |
1 files changed, 306 insertions, 0 deletions
diff --git a/scribus/tabcheckdoc.cpp b/scribus/tabcheckdoc.cpp new file mode 100644 index 0000000..a1971a2 --- /dev/null +++ b/scribus/tabcheckdoc.cpp @@ -0,0 +1,306 @@ +/* +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 "tabcheckdoc.h" + +#include <QGridLayout> +#include <QVBoxLayout> +#include <QHBoxLayout> +#include <QSpacerItem> +#include <QCheckBox> +#include <QGroupBox> +#include <QLabel> +#include <QComboBox> +#include <QPushButton> +#include <QSpinBox> + +#include "prefsstructs.h" +#include "util.h" + +TabCheckDoc::TabCheckDoc( QWidget* parent, CheckerPrefsList prefsData, QString prefProfile ) : QWidget( parent ) +{ + TabCheckDocLayout = new QVBoxLayout(this); + TabCheckDocLayout->setMargin(0); + TabCheckDocLayout->setSpacing(5); + TabCheckDocLayout->setAlignment( Qt::AlignTop ); + curCheckProfile = new QComboBox(this); + curCheckProfile->setEditable(true); + curCheckProfile->setDuplicatesEnabled(false); + + TabCheckDocLayout->addWidget( curCheckProfile ); + ignoreErrors = new QCheckBox( this ); + ignoreErrors->setText( tr( "Ignore all errors" ) ); + TabCheckDocLayout->addWidget( ignoreErrors ); + automaticCheck = new QCheckBox( this ); + automaticCheck->setText( tr( "Automatic check before printing or exporting" ) ); + TabCheckDocLayout->addWidget( automaticCheck ); + missingGlyphs = new QCheckBox( this ); + missingGlyphs->setText( tr( "Check for missing glyphs" ) ); + TabCheckDocLayout->addWidget( missingGlyphs ); + checkOrphans = new QCheckBox( this ); + checkOrphans->setText( tr( "Check for items not on a page" ) ); + TabCheckDocLayout->addWidget( checkOrphans ); + textOverflow = new QCheckBox( this ); + textOverflow->setText( tr( "Check for overflow in text frames" ) ); + TabCheckDocLayout->addWidget( textOverflow ); + tranparentObjects = new QCheckBox( this ); + tranparentObjects->setText( tr( "Check for used transparencies" ) ); + TabCheckDocLayout->addWidget( tranparentObjects ); + missingPictures = new QCheckBox( this ); + missingPictures->setText( tr( "Check for missing images" ) ); + TabCheckDocLayout->addWidget( missingPictures ); + pictResolution = new QGroupBox( this ); + pictResolution->setTitle( tr( "Check image resolution" ) ); + pictResolution->setCheckable( true ); + pictResolutionLayout = new QGridLayout(pictResolution); + pictResolutionLayout->setMargin(10); + pictResolutionLayout->setSpacing(5); + pictResolutionLayout->setAlignment( Qt::AlignTop ); + textLabel1 = new QLabel( pictResolution ); + textLabel1->setText( tr( "Lowest allowed resolution" ) ); + pictResolutionLayout->addWidget( textLabel1, 0, 0 ); + resolutionValue = new QSpinBox( pictResolution ); + resolutionValue->setMaximum( 4800 ); + resolutionValue->setMinimum( 10 ); + resolutionValue->setSuffix( tr( " dpi" ) ); + pictResolutionLayout->addWidget( resolutionValue, 0, 1 ); + textLabel1m = new QLabel( pictResolution ); + textLabel1m->setText( tr( "Highest allowed resolution" ) ); + pictResolutionLayout->addWidget( textLabel1m, 0, 2 ); + resolutionValueM = new QSpinBox( pictResolution ); + resolutionValueM->setMaximum( 4800 ); + resolutionValueM->setMinimum( 10 ); + resolutionValueM->setSuffix( tr( " dpi" ) ); + pictResolutionLayout->addWidget( resolutionValueM, 0, 3 ); + TabCheckDocLayout->addWidget( pictResolution ); + rasterPDF = new QCheckBox( this ); + rasterPDF->setText( tr( "Check for placed PDF Files" ) ); + TabCheckDocLayout->addWidget( rasterPDF ); + checkForGIF = new QCheckBox(this); + checkForGIF->setText( tr("Check for GIF images")); + TabCheckDocLayout->addWidget(checkForGIF); + useAnnotations = new QCheckBox( this ); + useAnnotations->setText( tr( "Check for PDF Annotations and Fields" ) ); + TabCheckDocLayout->addWidget( useAnnotations ); + ignoreOffLayers = new QCheckBox( this ); + ignoreOffLayers->setText( tr( "Ignore non-printable Layers" ) ); + TabCheckDocLayout->addWidget( ignoreOffLayers ); + checkOffConflictLayers = new QCheckBox( this ); + checkOffConflictLayers->setText( tr( "Check for Visible/Printable Mismatch in Layers" ) ); + TabCheckDocLayout->addWidget( checkOffConflictLayers ); + layout1 = new QHBoxLayout; + layout1->setMargin(0); + layout1->setSpacing(5); + QSpacerItem* spacer = new QSpacerItem( 2, 2, QSizePolicy::Expanding, QSizePolicy::Minimum ); + layout1->addItem( spacer ); + addProfile = new QPushButton( tr( "Add Profile" ), this ); + layout1->addWidget( addProfile ); + removeProfile = new QPushButton( tr( "Remove Profile" ), this ); + layout1->addWidget( removeProfile ); + QSpacerItem* spacer2 = new QSpacerItem( 2, 2, QSizePolicy::Expanding, QSizePolicy::Minimum ); + layout1->addItem( spacer2 ); + TabCheckDocLayout->addLayout( layout1 ); + + // switched off as it's called in main prefs classes - PV + //restoreDefaults(&prefsData, prefProfile); + + connect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(setProfile(const QString&))); + connect(curCheckProfile, SIGNAL(editTextChanged(const QString&)), this, SLOT(setProfile(const QString&))); + + connect(ignoreErrors, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(automaticCheck, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(missingGlyphs, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(checkOrphans, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(textOverflow, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(tranparentObjects, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(missingPictures, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(pictResolution, SIGNAL(toggled(bool)), this, SLOT(putProfile())); + connect(useAnnotations, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(rasterPDF, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(checkForGIF, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(resolutionValue, SIGNAL(valueChanged(int)), this, SLOT(putProfile())); + connect(resolutionValueM, SIGNAL(valueChanged(int)), this, SLOT(putProfile())); + connect(ignoreOffLayers, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(checkOffConflictLayers, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(removeProfile, SIGNAL(clicked()), this, SLOT(delProf())); + connect(addProfile, SIGNAL(clicked()), this, SLOT(addProf())); +} + +void TabCheckDoc::restoreDefaults(CheckerPrefsList *prefsData, QString prefProfile) +{ + checkerProfile = *prefsData; + curCheckProfile->clear(); + CheckerPrefsList::Iterator it; + curCheckProfile->clear(); + for (it = checkerProfile.begin(); it != checkerProfile.end(); ++it) + curCheckProfile->addItem(it.key()); + setCurrentComboItem(curCheckProfile, prefProfile); + ignoreErrors->setChecked(checkerProfile[prefProfile].ignoreErrors); + automaticCheck->setChecked(checkerProfile[prefProfile].autoCheck); + missingGlyphs->setChecked(checkerProfile[prefProfile].checkGlyphs); + checkOrphans->setChecked(checkerProfile[prefProfile].checkOrphans); + textOverflow->setChecked(checkerProfile[prefProfile].checkOverflow); + tranparentObjects->setChecked(checkerProfile[prefProfile].checkTransparency); + missingPictures->setChecked(checkerProfile[prefProfile].checkPictures); + pictResolution->setChecked(checkerProfile[prefProfile].checkResolution); + useAnnotations->setChecked(checkerProfile[prefProfile].checkAnnotations); + rasterPDF->setChecked(checkerProfile[prefProfile].checkRasterPDF); + checkForGIF->setChecked(checkerProfile[prefProfile].checkForGIF); + ignoreOffLayers->setChecked(checkerProfile[prefProfile].ignoreOffLayers); + checkOffConflictLayers->setChecked(checkerProfile[prefProfile].checkOffConflictLayers); + resolutionValue->setValue( qRound(checkerProfile[prefProfile].minResolution) ); + resolutionValueM->setValue( qRound(checkerProfile[prefProfile].maxResolution) ); + currentProfile = prefProfile; + if (checkerProfile.count() == 1) + removeProfile->setEnabled(false); + addProfile->setEnabled(false); + tempNewProfileName=""; +} + +void TabCheckDoc::putProfile() +{ + if (checkerProfile.contains(currentProfile)) + { + checkerProfile[currentProfile].ignoreErrors = ignoreErrors->isChecked(); + checkerProfile[currentProfile].autoCheck = automaticCheck->isChecked(); + checkerProfile[currentProfile].checkGlyphs = missingGlyphs->isChecked(); + checkerProfile[currentProfile].checkOrphans = checkOrphans->isChecked(); + checkerProfile[currentProfile].checkOverflow = textOverflow->isChecked(); + checkerProfile[currentProfile].checkPictures = missingPictures->isChecked(); + checkerProfile[currentProfile].checkResolution = pictResolution->isChecked(); + checkerProfile[currentProfile].checkTransparency = tranparentObjects->isChecked(); + checkerProfile[currentProfile].minResolution = resolutionValue->value(); + checkerProfile[currentProfile].maxResolution = resolutionValueM->value(); + checkerProfile[currentProfile].checkAnnotations = useAnnotations->isChecked(); + checkerProfile[currentProfile].checkRasterPDF = rasterPDF->isChecked(); + checkerProfile[currentProfile].checkForGIF = checkForGIF->isChecked(); + checkerProfile[currentProfile].ignoreOffLayers = ignoreOffLayers->isChecked(); + checkerProfile[currentProfile].checkOffConflictLayers = checkOffConflictLayers->isChecked(); + } +} + +void TabCheckDoc::setProfile(const QString& name) +{ + if (checkerProfile.contains(name)) + { + putProfile(); + updateProfile(name); + tempNewProfileName=""; + addProfile->setEnabled(false); + } + else + { + tempNewProfileName=name; + addProfile->setEnabled(true); + } +} + +void TabCheckDoc::updateProfile(const QString& name) +{ + disconnect(ignoreErrors, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(automaticCheck, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(missingGlyphs, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(checkOrphans, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(missingPictures, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(pictResolution, SIGNAL(toggled(bool)), this, SLOT(putProfile())); + disconnect(tranparentObjects, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(resolutionValue, SIGNAL(valueChanged(int)), this, SLOT(putProfile())); + disconnect(resolutionValueM, SIGNAL(valueChanged(int)), this, SLOT(putProfile())); + disconnect(rasterPDF, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(checkForGIF, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(useAnnotations, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(ignoreOffLayers, SIGNAL(clicked()), this, SLOT(putProfile())); + disconnect(checkOffConflictLayers, SIGNAL(clicked()), this, SLOT(putProfile())); + ignoreErrors->setChecked(checkerProfile[name].ignoreErrors); + automaticCheck->setChecked(checkerProfile[name].autoCheck); + missingGlyphs->setChecked(checkerProfile[name].checkGlyphs); + checkOrphans->setChecked(checkerProfile[name].checkOrphans); + textOverflow->setChecked(checkerProfile[name].checkOverflow); + tranparentObjects->setChecked(checkerProfile[name].checkTransparency); + missingPictures->setChecked(checkerProfile[name].checkPictures); + pictResolution->setChecked(checkerProfile[name].checkResolution); + resolutionValue->setValue( qRound(checkerProfile[name].minResolution) ); + resolutionValueM->setValue( qRound(checkerProfile[name].maxResolution) ); + useAnnotations->setChecked(checkerProfile[name].checkAnnotations); + rasterPDF->setChecked(checkerProfile[name].checkRasterPDF); + checkForGIF->setChecked(checkerProfile[name].checkForGIF); + ignoreOffLayers->setChecked(checkerProfile[name].ignoreOffLayers); + checkOffConflictLayers->setChecked(checkerProfile[name].checkOffConflictLayers); + currentProfile = name; + connect(ignoreErrors, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(automaticCheck, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(missingGlyphs, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(checkOrphans, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(missingPictures, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(pictResolution, SIGNAL(toggled(bool)), this, SLOT(putProfile())); + connect(tranparentObjects, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(resolutionValue, SIGNAL(valueChanged(int)), this, SLOT(putProfile())); + connect(resolutionValueM, SIGNAL(valueChanged(int)), this, SLOT(putProfile())); + connect(rasterPDF, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(checkForGIF, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(useAnnotations, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(ignoreOffLayers, SIGNAL(clicked()), this, SLOT(putProfile())); + connect(checkOffConflictLayers, SIGNAL(clicked()), this, SLOT(putProfile())); +} + +void TabCheckDoc::addProf() +{ + struct checkerPrefs checkerSettings; + checkerSettings.ignoreErrors = ignoreErrors->isChecked(); + checkerSettings.autoCheck = automaticCheck->isChecked(); + checkerSettings.checkGlyphs = missingGlyphs->isChecked(); + checkerSettings.checkOrphans = checkOrphans->isChecked(); + checkerSettings.checkOverflow = textOverflow->isChecked(); + checkerSettings.checkPictures = missingPictures->isChecked(); + checkerSettings.checkResolution = pictResolution->isChecked(); + checkerSettings.checkTransparency = tranparentObjects->isChecked(); + checkerSettings.minResolution = resolutionValue->value(); + checkerSettings.maxResolution = resolutionValueM->value(); + checkerSettings.checkAnnotations = useAnnotations->isChecked(); + checkerSettings.checkRasterPDF = rasterPDF->isChecked(); + checkerSettings.checkForGIF = checkForGIF->isChecked(); + checkerSettings.ignoreOffLayers = ignoreOffLayers->isChecked(); + checkerSettings.checkOffConflictLayers = checkOffConflictLayers->isChecked(); + checkerProfile.insert(tempNewProfileName, checkerSettings); + currentProfile = tempNewProfileName; + if (checkerProfile.count() > 1) + removeProfile->setEnabled(true); + addProfile->setEnabled(false); + curCheckProfile->clear(); + + disconnect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(setProfile(const QString&))); + disconnect(curCheckProfile, SIGNAL(editTextChanged(const QString&)), this, SLOT(setProfile(const QString&))); + CheckerPrefsList::Iterator it; + int j,i=0; + for (it = checkerProfile.begin(), j=0; it != checkerProfile.end(); ++it, ++j) + { + curCheckProfile->addItem(it.key()); + if (it.key()==currentProfile) + i=j; + } + curCheckProfile->setCurrentIndex(i); + connect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(setProfile(const QString&))); + connect(curCheckProfile, SIGNAL(editTextChanged(const QString&)), this, SLOT(setProfile(const QString&))); + tempNewProfileName=""; +} + +void TabCheckDoc::delProf() +{ + disconnect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(setProfile(const QString&))); + disconnect(curCheckProfile, SIGNAL(editTextChanged(const QString&)), this, SLOT(setProfile(const QString&))); + checkerProfile.remove(currentProfile); + updateProfile(checkerProfile.begin().key()); + curCheckProfile->clear(); + CheckerPrefsList::Iterator it; + CheckerPrefsList::Iterator itend=checkerProfile.end(); + for (it = checkerProfile.begin(); it != itend; ++it) + curCheckProfile->addItem(it.key()); + setCurrentComboItem(curCheckProfile, currentProfile); + connect(curCheckProfile, SIGNAL(activated(const QString&)), this, SLOT(setProfile(const QString&))); + connect(curCheckProfile, SIGNAL(editTextChanged(const QString&)), this, SLOT(setProfile(const QString&))); + if (checkerProfile.count() == 1) + removeProfile->setEnabled(false); +} |