summaryrefslogtreecommitdiffstats
path: root/scribus/prefs.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/prefs.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/prefs.cpp')
-rw-r--r--scribus/prefs.cpp586
1 files changed, 586 insertions, 0 deletions
diff --git a/scribus/prefs.cpp b/scribus/prefs.cpp
new file mode 100644
index 0000000..30609bb
--- /dev/null
+++ b/scribus/prefs.cpp
@@ -0,0 +1,586 @@
+/*
+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 <QList>
+#include <QPixmap>
+#include <QStackedWidget>
+
+#include "arrowchooser.h"
+#include "cmsprefs.h"
+#include "colorcombo.h"
+#include "commonstrings.h"
+#include "docitemattrprefs.h"
+#include "fontcombo.h"
+#include "fontprefs.h"
+#include "hyphenator.h"
+#include "hysettings.h"
+#include "langmgr.h"
+#include "linecombo.h"
+#include "marginwidget.h"
+#include "pagelayout.h"
+#include "pagesize.h"
+#include "pagestructs.h"
+#include "pluginmanager.h"
+#include "pluginmanagerprefsgui.h"
+#include "polygonwidget.h"
+#include "prefs.h"
+#include "prefsfile.h"
+#include "prefsmanager.h"
+#include "sccombobox.h"
+#include "scpaths.h"
+#include "scplugin.h"
+#include "scribusapp.h"
+#include "scribuscore.h"
+#include "scribusdoc.h"
+#include "scribusstructs.h"
+#include "tabcheckdoc.h"
+#include "tabdisplay.h"
+#include "tabdocument.h"
+#include "tabexternaltoolswidget.h"
+#include "tabgeneral.h"
+#include "tabguides.h"
+#include "tabkeyboardshortcutswidget.h"
+#include "tabmiscellaneous.h"
+#include "tabpdfoptions.h"
+#include "tabprinter.h"
+#include "tabscrapbook.h"
+#include "tabtools.h"
+#include "tabtypography.h"
+#include "tocindexprefs.h"
+#include "undomanager.h"
+#include "units.h"
+#include "util_icon.h"
+
+using namespace std;
+
+extern ScribusQApp* ScQApp;
+
+Preferences::Preferences( QWidget* parent) : PrefsDialogBase( parent )
+{
+ setObjectName(QString::fromLocal8Bit("PreferencesWindow"));
+ prefsManager=PrefsManager::instance();
+ ApplicationPrefs* prefsData=&(prefsManager->appPrefs);
+ ap = (ScribusMainWindow*)parent;
+ docUnitIndex = prefsData->docUnitIndex;
+ unitRatio = unitGetRatioFromIndex(docUnitIndex);
+
+
+ setWindowTitle( tr( "Preferences" ) );
+
+ tabGeneral = new TabGeneral( prefsWidgets, "tabGeneral" );
+ addItem( tr("General"), loadIcon("scribus.png"), tabGeneral);
+
+ tabDocument = new TabDocument( prefsWidgets, "tabDocument" );
+ addItem( tr("Document"), loadIcon("scribusdoc.png"), tabDocument);
+
+ tabGuides = new TabGuides(prefsWidgets, &prefsData->guidesSettings, &prefsData->typographicSettings, docUnitIndex);
+ addItem( tr("Guides"), loadIcon("guides.png"), tabGuides);
+
+ tabTypo = new TabTypograpy(prefsWidgets, &prefsData->typographicSettings);
+ addItem( tr("Typography"), loadIcon("typography.png"), tabTypo);
+
+ tabTools = new TabTools(prefsWidgets, &prefsData->toolSettings, docUnitIndex, ap->doc);
+ addItem( tr("Tools"), loadIcon("tools.png"), tabTools);
+
+ tabHyphenator = new HySettings(prefsWidgets/*, &ap->LangTransl*/);
+ addItem( tr("Hyphenator"), loadIcon("hyphenate.png"), tabHyphenator);
+
+ tabFonts = new FontPrefs(prefsWidgets, false, prefsManager->preferencesLocation(), ap->doc);
+ addItem( tr("Fonts"), loadIcon("font.png"), tabFonts);
+
+ tabPrinter = new TabPrinter(prefsWidgets, "tabPrinter");
+ addItem( tr("Printer"), loadIcon("printer.png"), tabPrinter);
+
+ tabDocChecker = new TabCheckDoc(prefsWidgets, prefsData->checkerProfiles, prefsData->curCheckProfile);
+ addItem( tr("Preflight Verifier"), loadIcon("checkdoc.png"), tabDocChecker);
+
+ if (ScCore->haveCMS())
+ {
+ tabColorManagement = new CMSPrefs(prefsWidgets, &prefsData->DCMSset, &ScCore->InputProfiles, &ScCore->InputProfilesCMYK, &ScCore->PrinterProfiles, &ScCore->MonitorProfiles);
+ addItem( tr("Color Management"), loadIcon("blend.png"), tabColorManagement);
+ }
+
+ QMap<QString, int> DocFonts;
+ DocFonts.clear();
+ tabPDF = new TabPDFOptions( prefsWidgets,
+ prefsData->PDF_Options,
+ prefsData->AvailFonts,
+ ScCore->PDFXProfiles,
+ DocFonts,
+ prefsData->PDF_Options.PresentVals,
+ docUnitIndex,
+ prefsData->PageHeight,
+ prefsData->PageWidth,
+ 0 );
+ addItem( tr("PDF Export"), loadIcon("acroread32.png"), tabPDF);
+
+ tabDefaultItemAttributes = new DocumentItemAttributes(prefsWidgets);
+ QStringList defaultAttributesList=tabDefaultItemAttributes->getDocAttributesNames();
+ tabDefaultItemAttributes->setup(&prefsData->defaultItemAttributes);
+ addItem( tr("Document Item Attributes"), loadIcon("docattributes.png"), tabDefaultItemAttributes);
+
+ tabDefaultTOCIndexPrefs = new TOCIndexPrefs(prefsWidgets );
+ tabDefaultTOCIndexPrefs->setupItemAttrs( defaultAttributesList );
+ tabDefaultTOCIndexPrefs->setup(&prefsData->defaultToCSetups, NULL);
+ addItem( tr("Table of Contents and Indexes"), loadIcon("tabtocindex.png"), tabDefaultTOCIndexPrefs);
+
+ tabKeyboardShortcuts = new TabKeyboardShortcutsWidget(prefsData->KeyActions, prefsWidgets);
+ addItem( tr("Keyboard Shortcuts"), loadIcon("key_bindings.png"), tabKeyboardShortcuts);
+
+ tabScrapbook = new TabScrapbook( prefsWidgets );
+ addItem( tr("Scrapbook"), loadIcon("scrap.png"), tabScrapbook);
+
+ tabView = new TabDisplay(prefsWidgets, "tabView");
+ addItem( tr("Display"), loadIcon("screen.png"), tabView);
+
+ tabExtTools = new TabExternalToolsWidget( prefsData, prefsWidgets );
+ addItem( tr("External Tools"), loadIcon("externaltools.png"), tabExtTools);
+
+ tabMiscellaneous = new TabMiscellaneous(prefsWidgets);
+ addItem( tr("Miscellaneous"), loadIcon("misc.png"), tabMiscellaneous);
+
+ // plugin manager. pv.
+ pluginManagerPrefsGui = new PluginManagerPrefsGui(prefsWidgets, ap);
+ addItem( tr("Plugins"), loadIcon("plugins.png"), pluginManagerPrefsGui );
+
+ setupGui();
+ addPlugins();
+
+ setDS(prefsData->FacingPages);
+
+ resize( minimumSizeHint() );
+ prefsSelection->arrangeIcons();
+ prefsSelection->item(0)->setSelected(true);
+ itemSelected(prefsSelection->item(0));
+}
+
+void Preferences::enableSignals(bool on)
+{
+ if (on)
+ {
+ connect(tabDocument->unitCombo, SIGNAL(activated(int)), this, SLOT(unitChange()));
+ connect(tabDocument->docLayout, SIGNAL( selectedLayout(int) ), this, SLOT( setDS(int) ) );
+ connect(buttonOk, SIGNAL(clicked()), this, SLOT(setActionHistoryLength()));
+ if (ScCore->haveCMS())
+ connect(tabColorManagement, SIGNAL(cmsOn(bool )), this, SLOT(switchCMS(bool )));
+ connect(applyChangesButton, SIGNAL(clicked()), this, SLOT(applyChangesButton_clicked()));
+ connect(backToDefaults, SIGNAL(clicked()), this, SLOT(backToDefaults_clicked()));
+ connect(this, SIGNAL(aboutToShow(QWidget *)), this, SLOT(showWidgetInStack(QWidget *)));
+ connect(this, SIGNAL(accepted()), pluginManagerPrefsGui, SLOT(apply()));
+ }
+ else
+ {
+ disconnect(tabDocument->unitCombo, SIGNAL(activated(int)), this, SLOT(unitChange()));
+ disconnect(tabDocument->docLayout, SIGNAL( selectedLayout(int) ), this, SLOT( setDS(int) ) );
+ disconnect(buttonOk, SIGNAL(clicked()), this, SLOT(setActionHistoryLength()));
+ if (ScCore->haveCMS())
+ disconnect(tabColorManagement, SIGNAL(cmsOn(bool )), this, SLOT(switchCMS(bool )));
+ disconnect(applyChangesButton, SIGNAL(clicked()), this, SLOT(applyChangesButton_clicked()));
+ disconnect(backToDefaults, SIGNAL(clicked()), this, SLOT(backToDefaults_clicked()));
+ disconnect(this, SIGNAL(aboutToShow(QWidget *)), this, SLOT(showWidgetInStack(QWidget *)));
+ disconnect(this, SIGNAL(accepted()), pluginManagerPrefsGui, SLOT(apply()));
+ }
+}
+
+void Preferences::restoreDefaults()
+{
+ prefsManager->initDefaults();
+ setupGui();
+}
+
+void Preferences::setupGui()
+{
+ enableSignals(false);
+ ApplicationPrefs* prefsData=&(prefsManager->appPrefs);
+
+ tabGeneral->restoreDefaults(prefsData);
+ tabDocument->restoreDefaults(prefsData);
+ tabPrinter->restoreDefaults(prefsData);
+ tabView->restoreDefaults(prefsData, prefsData->guidesSettings, prefsData->pageSets, prefsData->FacingPages, prefsData->scratch);
+ tabView->gapHorizontal->setValue(prefsData->GapHorizontal); // * unitRatio);
+ tabView->gapVertical->setValue(prefsData->GapVertical); // * unitRatio);
+ tabScrapbook->restoreDefaults(prefsData);
+ tabHyphenator->restoreDefaults(prefsData);
+ tabGuides->restoreDefaults(&prefsData->guidesSettings, &prefsData->typographicSettings, docUnitIndex);
+ tabTypo->restoreDefaults(&prefsData->typographicSettings);
+ tabTools->restoreDefaults(&prefsData->toolSettings, docUnitIndex);
+ // main performance issue in availFonts->GetFonts(HomeP)!
+ // no prefsData here
+ tabFonts->restoreDefaults();
+ tabDocChecker->restoreDefaults(&prefsData->checkerProfiles, prefsData->curCheckProfile);
+
+ QMap<QString, int> DocFonts;
+ DocFonts.clear();
+ tabPDF->restoreDefaults(prefsData->PDF_Options,
+ prefsData->AvailFonts,
+ ScCore->PDFXProfiles,
+ DocFonts,
+ prefsData->PDF_Options.PresentVals,
+ docUnitIndex,
+ prefsData->PageHeight,
+ prefsData->PageWidth,
+ 0, false);
+
+ if (ScCore->haveCMS())
+ tabColorManagement->restoreDefaults(&prefsData->DCMSset, &ScCore->InputProfiles,
+ &ScCore->InputProfilesCMYK,
+ &ScCore->PrinterProfiles, &ScCore->MonitorProfiles);
+ QStringList defaultAttributesList=tabDefaultItemAttributes->getDocAttributesNames();
+ tabDefaultItemAttributes->setup(&prefsData->defaultItemAttributes);
+ tabDefaultTOCIndexPrefs->setupItemAttrs( defaultAttributesList );
+ tabDefaultTOCIndexPrefs->setup(&prefsData->defaultToCSetups, NULL);
+ tabKeyboardShortcuts->restoreDefaults();
+ tabExtTools->restoreDefaults(prefsData);
+ tabMiscellaneous->restoreDefaults(prefsData);
+ enableSignals(true);
+ unitChange();
+}
+
+void Preferences::addPlugins()
+{
+ // Scan for plugins that provide a prefs widget, and add it to the
+ // prefs dialog.
+ // For each plugin, enabled or not:
+ ScPlugin* plugin = 0;
+ PrefsPanel* panel = 0;
+ QString panelCaption;
+ QPixmap panelIcon;
+
+ PluginManager& pluginManager = PluginManager::instance();
+ QStringList pluginNames(pluginManager.pluginNames(true));
+
+ foreach (QString pName, pluginManager.pluginNames(true))
+ {
+ // Ask the plugin manager for a plugin (skipping disabled plugins).
+ plugin = pluginManager.getPlugin(pName, false);
+ // If we got a plugin (which we know is enabled):
+ if (plugin)
+ {
+ // Ask the plugin for a prefs widget
+ bool wantPanel = plugin->newPrefsPanelWidget(prefsWidgets, panel, panelCaption, panelIcon);
+ // If it gave us one...
+ if (wantPanel)
+ {
+ // Ensure that we got sane return values
+ Q_ASSERT(panel);
+ Q_ASSERT(!panelIcon.isNull());
+ Q_ASSERT(!panelCaption.isNull());
+ // plug it in to the dialog,
+ addItem(panelCaption, panelIcon, panel);
+ // and connect a signal to tell it to save its
+ // settings.
+ connect(this, SIGNAL(accepted()), panel, SLOT(apply()));
+ }
+ }
+ }
+}
+
+void Preferences::accept()
+{
+ emit accepted();
+ return PrefsDialogBase::accept();
+}
+
+void Preferences::setDS(int layout)
+{
+ tabDocument->marginGroup->setFacingPages(!(layout == singlePage));
+ tabDocument->choosenLayout = layout;
+ tabDocument->docLayout->firstPage->setCurrentIndex(prefsManager->appPrefs.pageSets[tabDocument->choosenLayout].FirstPage);
+// tabView->gapHorizontal->setValue(prefsManager->appPrefs.pageSets[tabDocument->choosenLayout].GapHorizontal * unitRatio);
+// tabView->gapVertical->setValue(prefsManager->appPrefs.pageSets[tabDocument->choosenLayout].GapBelow * unitRatio);
+// tabView->gapHorizontal->setValue(prefsManager->appPrefs.GapHorizontal * unitRatio);
+// tabView->gapVertical->setValue(prefsManager->appPrefs.GapVertical * unitRatio);
+}
+
+void Preferences::unitChange()
+{
+ double oldUnitRatio = unitRatio;
+ docUnitIndex = tabDocument->unitCombo->currentIndex();
+ unitRatio = unitGetRatioFromIndex(docUnitIndex);
+ QString suffix = unitGetSuffixFromIndex(docUnitIndex);
+ double invUnitConversion = 1.0 / oldUnitRatio * unitRatio;
+
+ tabDocument->unitChange();
+ tabGuides->unitChange(suffix, docUnitIndex, invUnitConversion);
+ tabView->unitChange(docUnitIndex);
+ tabTools->unitChange(docUnitIndex);
+ tabPDF->unitChange(suffix, docUnitIndex, invUnitConversion);
+ tabPrinter->unitChange(suffix, docUnitIndex, invUnitConversion);
+}
+
+
+void Preferences::setActionHistoryLength()
+{
+ PrefsContext *undoPrefs = PrefsManager::instance()->prefsFile->getContext("undo");
+ bool isEnabled = tabDocument->urGroup->isChecked();
+ if (!isEnabled)
+ UndoManager::instance()->clearStack();
+ UndoManager::instance()->setUndoEnabled(isEnabled);
+ undoPrefs->set("enabled", isEnabled);
+ UndoManager::instance()->setAllHistoryLengths(tabDocument->urSpinBox->value());
+}
+
+void Preferences::switchCMS(bool enable)
+{
+ tabPDF->enableCMS(enable);
+}
+
+void Preferences::showWidgetInStack(QWidget *widgetToShow)
+{
+ //Update the attributes list in TOC setup
+ if (widgetToShow==tabDefaultTOCIndexPrefs)
+ tabDefaultTOCIndexPrefs->setupItemAttrs( tabDefaultItemAttributes->getDocAttributesNames() );
+ if (widgetToShow == tabTools)
+ tabTools->enableFontPreview(true);
+}
+
+void Preferences::updatePreferences()
+{
+ double prefsUnitRatio = unitGetRatioFromIndex(tabDocument->unitCombo->currentIndex());
+
+ prefsManager->appPrefs.AppFontSize = tabGeneral->GFsize->value();
+ prefsManager->appPrefs.PaletteFontSize = tabGeneral->GTFsize->value();
+ ScQApp->neverSplash(!tabGeneral->showSplashCheckBox->isChecked());
+ prefsManager->appPrefs.showStartupDialog = tabGeneral->startUpDialog->isChecked();
+ prefsManager->appPrefs.Wheelval = tabGeneral->wheelJumpSpin->value();
+ prefsManager->appPrefs.moveTimeout = tabGeneral->spinTimeout->value();
+ prefsManager->appPrefs.RecentDCount = tabGeneral->recentDocs->value();
+ prefsManager->appPrefs.DocDir = QDir::fromNativeSeparators( tabGeneral->Docs->text() );
+ prefsManager->appPrefs.ProfileDir = QDir::fromNativeSeparators( tabGeneral->ProPfad->text() );
+ prefsManager->appPrefs.ScriptDir = QDir::fromNativeSeparators( tabGeneral->ScriptPfad->text() );
+ prefsManager->appPrefs.documentTemplatesDir = QDir::fromNativeSeparators( tabGeneral->DocumentTemplateDir->text() );
+ prefsManager->appPrefs.guiLanguage=tabGeneral->selectedGUILang;
+ prefsManager->appPrefs.GUI = tabGeneral->GUICombo->currentText();
+ prefsManager->appPrefs.useSmallWidgets = tabGeneral->useSmallWidgetsCheck->isChecked();
+
+// prefsManager->appPrefs.pageSets[tabDocument->choosenLayout].GapHorizontal = tabView->gapHorizontal->value() / prefsUnitRatio;
+// prefsManager->appPrefs.pageSets[tabDocument->choosenLayout].GapBelow = tabView->gapVertical->value() / prefsUnitRatio;
+ prefsManager->appPrefs.GapHorizontal = tabView->gapHorizontal->value() / prefsUnitRatio;
+ prefsManager->appPrefs.GapVertical = tabView->gapVertical->value() / prefsUnitRatio;
+ prefsManager->appPrefs.marginColored = tabView->checkUnprintable->isChecked();
+ prefsManager->appPrefs.scratch.Bottom = tabView->bottomScratch->value() / prefsUnitRatio;
+ prefsManager->appPrefs.scratch.Left = tabView->leftScratch->value() / prefsUnitRatio;
+ prefsManager->appPrefs.scratch.Right = tabView->rightScratch->value() / prefsUnitRatio;
+ prefsManager->appPrefs.scratch.Top = tabView->topScratch->value() / prefsUnitRatio;
+ // GUI colors
+ prefsManager->appPrefs.showPageShadow = tabView->checkShowPageShadow->isChecked();
+ prefsManager->appPrefs.DpapColor = tabView->colorPaper;
+ prefsManager->appPrefs.DFrameColor = tabView->colorFrame;
+ prefsManager->appPrefs.DFrameNormColor = tabView->colorFrameNorm;
+ prefsManager->appPrefs.DFrameGroupColor = tabView->colorFrameGroup;
+ prefsManager->appPrefs.DFrameLockColor = tabView->colorFrameLocked;
+ prefsManager->appPrefs.DFrameLinkColor = tabView->colorFrameLinked;
+ prefsManager->appPrefs.DFrameAnnotationColor = tabView->colorFrameAnnotation;
+ prefsManager->appPrefs.DPageBorderColor = tabView->colorPageBorder;
+ prefsManager->appPrefs.DControlCharColor = tabView->colorControlChars;
+ // Guides
+
+ prefsManager->appPrefs.guidesSettings.framesShown = tabView->checkFrame->isChecked();
+ prefsManager->appPrefs.guidesSettings.showBleed = tabView->checkBleed->isChecked();
+ prefsManager->appPrefs.guidesSettings.layerMarkersShown = tabView->checkLayerM->isChecked();
+ prefsManager->appPrefs.guidesSettings.rulerMode = tabView->checkRuler->isChecked();
+ prefsManager->appPrefs.guidesSettings.showPic = tabView->checkPictures->isChecked();
+ prefsManager->appPrefs.guidesSettings.linkShown = tabView->checkLink->isChecked();
+ prefsManager->appPrefs.guidesSettings.showControls = tabView->checkControl->isChecked();
+ prefsManager->appPrefs.DisScale = tabView->DisScale;
+
+ prefsManager->appPrefs.doCopyToScrapbook = tabScrapbook->useScrapBookasExtension->isChecked();
+ prefsManager->appPrefs.persistentScrapbook = tabScrapbook->persistentScrapbook->isChecked();
+ prefsManager->appPrefs.numScrapbookCopies = tabScrapbook->numScrapCopies->value();
+
+ tabTools->polyWidget->getValues(&prefsManager->appPrefs.toolSettings.polyC,
+ &prefsManager->appPrefs.toolSettings.polyFd,
+ &prefsManager->appPrefs.toolSettings.polyF,
+ &prefsManager->appPrefs.toolSettings.polyS,
+ &prefsManager->appPrefs.toolSettings.polyR,
+ &prefsManager->appPrefs.toolSettings.polyCurvature);
+
+ prefsManager->appPrefs.pageSize = tabDocument->prefsPageSizeName;
+ prefsManager->appPrefs.pageOrientation = tabDocument->pageOrientationComboBox->currentIndex();
+ prefsManager->appPrefs.PageWidth = tabDocument->pageW;
+ prefsManager->appPrefs.PageHeight = tabDocument->pageH;
+
+ prefsManager->appPrefs.margins.Top = tabDocument->marginGroup->top();
+ prefsManager->appPrefs.margins.Bottom = tabDocument->marginGroup->bottom();
+ prefsManager->appPrefs.margins.Left = tabDocument->marginGroup->left();
+ prefsManager->appPrefs.margins.Right = tabDocument->marginGroup->right();
+ prefsManager->appPrefs.marginPreset = tabDocument->marginGroup->getMarginPreset();
+ prefsManager->appPrefs.FacingPages = tabDocument->choosenLayout;
+ prefsManager->appPrefs.bleeds.Bottom = tabDocument->marginGroup->bottomBleed();
+ prefsManager->appPrefs.bleeds.Top = tabDocument->marginGroup->topBleed();
+ prefsManager->appPrefs.bleeds.Left = tabDocument->marginGroup->leftBleed();
+ prefsManager->appPrefs.bleeds.Right = tabDocument->marginGroup->rightBleed();
+ prefsManager->appPrefs.pageSets[tabDocument->choosenLayout].FirstPage = tabDocument->docLayout->firstPage->currentIndex();
+
+ prefsManager->setImageEditorExecutable(tabExtTools->newImageTool());
+ prefsManager->setExtBrowserExecutable(tabExtTools->newExtBrowserTool());
+ prefsManager->appPrefs.gs_AntiAliasGraphics = tabExtTools->newAntialiasGraphics();
+ prefsManager->appPrefs.gs_AntiAliasText = tabExtTools->newAntialiasText();
+ prefsManager->setGhostscriptExecutable(tabExtTools->newPSTool());
+ prefsManager->appPrefs.gs_Resolution = tabExtTools->newPSToolResolution();
+
+ prefsManager->appPrefs.latexResolution = tabExtTools->newLatexToolResolution();
+ prefsManager->appPrefs.latexForceDpi = tabExtTools->newLatexForceDpi();
+ prefsManager->appPrefs.latexStartWithEmptyFrames = tabExtTools->newLatexStartWithEmptyFrames();
+ prefsManager->setLatexConfigs(tabExtTools->newLatexConfigs());
+ prefsManager->setLatexCommands(tabExtTools->newLatexCommands());
+ prefsManager->setLatexEditorExecutable(tabExtTools->newLatexEditor());
+
+ prefsManager->appPrefs.guidesSettings.before = tabGuides->inBackground->isChecked();
+
+ prefsManager->appPrefs.askBeforeSubstituite = tabMiscellaneous->AskForSubs->isChecked();
+ prefsManager->appPrefs.haveStylePreview = tabMiscellaneous->stylePreview->isChecked();
+ // lorem ipsum
+ prefsManager->appPrefs.useStandardLI = tabMiscellaneous->useStandardLI->isChecked();
+ prefsManager->appPrefs.paragraphsLI = tabMiscellaneous->paragraphsLI->value();
+
+ prefsManager->appPrefs.docUnitIndex = tabDocument->unitCombo->currentIndex();
+
+ prefsManager->appPrefs.toolSettings.defFont = tabTools->fontComboText->currentText();
+ prefsManager->appPrefs.toolSettings.defSize = tabTools->sizeComboText->currentText().left(2).toInt() * 10;
+
+ prefsManager->appPrefs.guidesSettings.marginsShown = tabGuides->marginBox->isChecked();
+ prefsManager->appPrefs.guidesSettings.gridShown = tabGuides->checkGrid->isChecked();
+ prefsManager->appPrefs.guidesSettings.guidesShown = tabGuides->guideBox->isChecked();
+ prefsManager->appPrefs.guidesSettings.baseShown = tabGuides->baselineBox->isChecked();
+ prefsManager->appPrefs.guidesSettings.grabRad = tabGuides->grabDistance->value();
+ prefsManager->appPrefs.guidesSettings.guideRad = tabGuides->snapDistance->value();
+ prefsManager->appPrefs.guidesSettings.minorGrid = tabGuides->minorSpace->value() / prefsUnitRatio;
+ prefsManager->appPrefs.guidesSettings.majorGrid = tabGuides->majorSpace->value() / prefsUnitRatio;
+ prefsManager->appPrefs.guidesSettings.minorColor = tabGuides->colorMinorGrid;
+ prefsManager->appPrefs.guidesSettings.majorColor = tabGuides->colorMajorGrid;
+ prefsManager->appPrefs.guidesSettings.margColor = tabGuides->colorMargin;
+ prefsManager->appPrefs.guidesSettings.guideColor = tabGuides->colorGuides;
+ prefsManager->appPrefs.guidesSettings.baseColor = tabGuides->colorBaselineGrid;
+ prefsManager->appPrefs.checkerProfiles = tabDocChecker->checkerProfile;
+ prefsManager->appPrefs.curCheckProfile = tabDocChecker->curCheckProfile->currentText();
+ prefsManager->appPrefs.typographicSettings.valueSuperScript = tabTypo->superDisplacement->value();
+ prefsManager->appPrefs.typographicSettings.scalingSuperScript = tabTypo->superScaling->value();
+ prefsManager->appPrefs.typographicSettings.valueSubScript = tabTypo->subDisplacement->value();
+ prefsManager->appPrefs.typographicSettings.scalingSubScript = tabTypo->subScaling->value();
+ prefsManager->appPrefs.typographicSettings.valueSmallCaps = tabTypo->capsScaling->value();
+ prefsManager->appPrefs.typographicSettings.autoLineSpacing = tabTypo->autoLine->value();
+ prefsManager->appPrefs.typographicSettings.valueBaseGrid = tabGuides->baseGrid->value(); // / prefsUnitRatio;
+ prefsManager->appPrefs.typographicSettings.offsetBaseGrid = tabGuides->baseOffset->value(); // / prefsUnitRatio;
+ prefsManager->appPrefs.typographicSettings.valueUnderlinePos = qRound(tabTypo->underlinePos->value() * 10);
+ prefsManager->appPrefs.typographicSettings.valueUnderlineWidth = qRound(tabTypo->underlineWidth->value() * 10);
+ prefsManager->appPrefs.typographicSettings.valueStrikeThruPos = qRound(tabTypo->strikethruPos->value() * 10);
+ prefsManager->appPrefs.typographicSettings.valueStrikeThruWidth = qRound(tabTypo->strikethruWidth->value() * 10);
+ prefsManager->appPrefs.toolSettings.dTextBackGround = tabTools->colorComboTextBackground->currentText();
+ if (prefsManager->appPrefs.toolSettings.dTextBackGround == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dTextBackGround = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.dTextLineColor = tabTools->colorComboTextLine->currentText();
+ if (prefsManager->appPrefs.toolSettings.dTextLineColor == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dTextLineColor = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.dTextBackGroundShade = tabTools->shadingTextBack->value();
+ prefsManager->appPrefs.toolSettings.dTextLineShade = tabTools->shadingTextLine->value();
+ prefsManager->appPrefs.toolSettings.dTextPenShade = tabTools->shadingText->value();
+ prefsManager->appPrefs.toolSettings.dTextStrokeShade = tabTools->shadingTextStroke->value();
+ prefsManager->appPrefs.toolSettings.dPen = tabTools->colorComboLineShape->currentText();
+ if (prefsManager->appPrefs.toolSettings.dPen == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dPen = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.dPenText = tabTools->colorComboText->currentText();
+ if (prefsManager->appPrefs.toolSettings.dPenText == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dPenText = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.dStrokeText = tabTools->colorComboStrokeText->currentText();
+ if (prefsManager->appPrefs.toolSettings.dStrokeText == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dStrokeText = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.dCols = tabTools->columnsText->value();
+ prefsManager->appPrefs.toolSettings.dGap = tabTools->gapText->value() / prefsUnitRatio;
+ prefsManager->appPrefs.toolSettings.dTabWidth = tabTools->gapTab->value() / prefsUnitRatio;
+ prefsManager->appPrefs.toolSettings.dBrush = tabTools->comboFillShape->currentText();
+ if (prefsManager->appPrefs.toolSettings.dBrush == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dBrush = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.dShade = tabTools->shadingFillShape->value();
+ prefsManager->appPrefs.toolSettings.dShade2 = tabTools->shadingLineShape->value();
+ switch (tabTools->tabFillCombo->currentIndex())
+ {
+ case 0:
+ prefsManager->appPrefs.toolSettings.tabFillChar = "";
+ break;
+ case 1:
+ prefsManager->appPrefs.toolSettings.tabFillChar = ".";
+ break;
+ case 2:
+ prefsManager->appPrefs.toolSettings.tabFillChar = "-";
+ break;
+ case 3:
+ prefsManager->appPrefs.toolSettings.tabFillChar = "_";
+ break;
+ case 4:
+ prefsManager->appPrefs.toolSettings.tabFillChar = tabTools->tabFillCombo->currentText().right(1);
+ break;
+ }
+ prefsManager->appPrefs.toolSettings.dLineArt = static_cast<Qt::PenStyle>(tabTools->comboStyleShape->currentIndex()) + 1;
+ prefsManager->appPrefs.toolSettings.dWidth = tabTools->lineWidthShape->value();
+ prefsManager->appPrefs.toolSettings.dPenLine = tabTools->colorComboLine->currentText();
+ if (prefsManager->appPrefs.toolSettings.dPenLine == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dPenLine = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.dShadeLine = tabTools->shadingLine->value();
+ prefsManager->appPrefs.toolSettings.dLstyleLine = static_cast<Qt::PenStyle>(tabTools->comboStyleLine->currentIndex()) + 1;
+ prefsManager->appPrefs.toolSettings.dWidthLine = tabTools->lineWidthLine->value();
+ prefsManager->appPrefs.toolSettings.dStartArrow = tabTools->startArrow->currentIndex();
+ prefsManager->appPrefs.toolSettings.dEndArrow = tabTools->endArrow->currentIndex();
+ prefsManager->appPrefs.toolSettings.magMin = tabTools->minimumZoom->value();
+ prefsManager->appPrefs.toolSettings.magMax = tabTools->maximumZoom->value();
+ prefsManager->appPrefs.toolSettings.magStep = tabTools->zoomStep->value();
+ prefsManager->appPrefs.toolSettings.dBrushPict = tabTools->comboFillImage->currentText();
+ if (prefsManager->appPrefs.toolSettings.dBrushPict == CommonStrings::tr_NoneColor)
+ prefsManager->appPrefs.toolSettings.dBrushPict = CommonStrings::None;
+ prefsManager->appPrefs.toolSettings.shadePict = tabTools->shadingFillImage->value();
+ prefsManager->appPrefs.toolSettings.scaleX = static_cast<double>(tabTools->scalingHorizontal->value()) / 100.0;
+ prefsManager->appPrefs.toolSettings.scaleY = static_cast<double>(tabTools->scalingVertical->value()) / 100.0;
+ prefsManager->appPrefs.toolSettings.scaleType = tabTools->buttonGroup3->isChecked();
+ prefsManager->appPrefs.toolSettings.aspectRatio = tabTools->checkRatioImage->isChecked();
+ prefsManager->appPrefs.toolSettings.useEmbeddedPath = tabTools->embeddedPath->isChecked();
+ int haRes = 0;
+ if (tabTools->checkFullRes->isChecked())
+ haRes = 0;
+ if (tabTools->checkNormalRes->isChecked())
+ haRes = 1;
+ if (tabTools->checkHalfRes->isChecked())
+ haRes = 2;
+ prefsManager->appPrefs.toolSettings.lowResType = haRes;
+ prefsManager->appPrefs.toolSettings.dispX = tabTools->genDispX->value() / unitRatio;
+ prefsManager->appPrefs.toolSettings.dispY = tabTools->genDispY->value() / unitRatio;
+ prefsManager->appPrefs.toolSettings.constrain = tabTools->genRot->value();
+ prefsManager->appPrefs.AutoSave = tabDocument->GroupAS->isChecked();
+ prefsManager->appPrefs.AutoSaveTime = tabDocument->ASTime->value() * 60 * 1000;
+ prefsManager->appPrefs.MinWordLen = tabHyphenator->getWordLen();
+ prefsManager->appPrefs.Language = ScCore->primaryMainWindow()->GetLang(tabHyphenator->getLanguage());
+ prefsManager->appPrefs.Automatic = !tabHyphenator->getVerbose();
+ prefsManager->appPrefs.AutoCheck = tabHyphenator->getInput();
+ prefsManager->appPrefs.HyCount = tabHyphenator->getMaxCount();
+ prefsManager->appPrefs.ignoredWords = tabHyphenator->getIgnoreList();
+ prefsManager->appPrefs.specialWords = tabHyphenator->getExceptionList();
+ if (ScCore->haveCMS())
+ tabColorManagement->setValues();
+ // not required propably as it's done already in the dialog prefsManager->appPrefs.AvailFonts == get fonts from fontprefs
+ uint a = 0;
+ QMap<QString,QString>::Iterator itfsuend=tabFonts->RList.end();
+ prefsManager->appPrefs.GFontSub.clear();
+ for (QMap<QString,QString>::Iterator itfsu = tabFonts->RList.begin(); itfsu != itfsuend; ++itfsu)
+ prefsManager->appPrefs.GFontSub[itfsu.key()] = tabFonts->FlagsRepl.at(a++)->currentText();
+
+ prefsManager->appPrefs.defaultItemAttributes = *(tabDefaultItemAttributes->getNewAttributes());
+ prefsManager->appPrefs.defaultToCSetups = *(tabDefaultTOCIndexPrefs->getNewToCs());
+// prefsManager->appPrefs.KeyActions = tabKeys->getNewKeyMap();
+ prefsManager->appPrefs.KeyActions = tabKeyboardShortcuts->getNewKeyMap();
+ tabPDF->storeValues(prefsManager->appPrefs.PDF_Options);
+ tabPrinter->storeValues();
+}
+
+void Preferences::applyChangesButton_clicked()
+{
+ ScCore->primaryMainWindow()->prefsOrg(this);
+}
+
+void Preferences::backToDefaults_clicked()
+{
+ prefsManager->initDefaults();
+ restoreDefaults();
+}