r13953 by cbradney - Split tool and operator prefs into two structs

scribus-commit scribus-commit at lists.scribus.net
Fri Sep 4 01:16:36 CEST 2009


Revision: 13953
Author: cbradney
Date: 2009-09-03T23:13:41.552608Z
Commit message: Split tool and operator prefs into two structs

Changeset: 
M  /trunk/Scribus/scribus/ui/charselect.cpp
M  /trunk/Scribus/scribus/scribusXml.cpp
M  /trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format_save.cpp
M  /trunk/Scribus/scribus/ui/reformdoc.cpp
M  /trunk/Scribus/scribus/canvasmode_rotate.cpp
M  /trunk/Scribus/scribus/scribusdoc.cpp
M  /trunk/Scribus/scribus/plugins/wmfimplugin/wmfimport.cpp
M  /trunk/Scribus/scribus/plugins/fileloader/scribus12format/scribus12format.cpp
M  /trunk/Scribus/scribus/plugins/fileloader/scribus13format/scribus13format.cpp
M  /trunk/Scribus/scribus/fileloader.cpp
M  /trunk/Scribus/scribus/scpreview.cpp
M  /trunk/Scribus/scribus/canvasgesture_linemove.cpp
M  /trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format.cpp
M  /trunk/Scribus/scribus/ui/tabtools.h
M  /trunk/Scribus/scribus/scribus.cpp
M  /trunk/Scribus/scribus/prefsmanager.cpp
M  /trunk/Scribus/scribus/plugins/fileloader/scribus134format/scribus134format.cpp
M  /trunk/Scribus/scribus/ui/polygonwidget.h
M  /trunk/Scribus/scribus/plugins/fileloader/oodraw/oodrawimp.cpp
M  /trunk/Scribus/scribus/ui/modetoolbar.cpp
M  /trunk/Scribus/scribus/ui/smlinestyle.cpp
M  /trunk/Scribus/scribus/canvasmode_edit.cpp
M  /trunk/Scribus/scribus/canvasmode_drawfreehand.cpp
M  /trunk/Scribus/scribus/pageitem.cpp
M  /trunk/Scribus/scribus/ui/prefs.cpp
M  /trunk/Scribus/scribus/canvasmode_drawbezier.cpp
M  /trunk/Scribus/scribus/sampleitem.cpp
M  /trunk/Scribus/scribus/plugins/fontpreview/fontpreview.cpp
M  /trunk/Scribus/scribus/canvasmode_create.cpp
M  /trunk/Scribus/scribus/ui/tabtools.cpp
M  /trunk/Scribus/scribus/ui/storyeditor.cpp
M  /trunk/Scribus/scribus/canvasmode_legacy.cpp
M  /trunk/Scribus/scribus/scribusdoc.h
M  /trunk/Scribus/scribus/scribusview.cpp
M  /trunk/Scribus/scribus/ui/polygonwidget.cpp
M  /trunk/Scribus/scribus/pageitem_textframe.cpp
M  /trunk/Scribus/scribus/prefsstructs.h
M  /trunk/Scribus/scribus/ui/hruler.cpp
M  /trunk/Scribus/scribus/scfonts.cpp
M  /trunk/Scribus/scribus/prefsmanager.h
M  /trunk/Scribus/scribus/stencilreader.cpp
M  /trunk/Scribus/scribus/ui/missing.cpp
M  /trunk/Scribus/scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp

Diffs:
Index: scribus/fileloader.cpp
===================================================================
--- scribus/fileloader.cpp	(revision 13952)
+++ scribus/fileloader.cpp	(revision 13953)
@@ -260,12 +260,12 @@
 	currDoc->guidesSettings.colBordersShown = prefsManager->appPrefs.guidesPrefs.colBordersShown;
 	currDoc->guidesSettings.baselineGridShown = prefsManager->appPrefs.guidesPrefs.baselineGridShown;
 	currDoc->guidesSettings.linkShown = prefsManager->appPrefs.guidesPrefs.linkShown;
-	currDoc->toolSettings.polyC = prefsManager->appPrefs.toolSettings.polyC;
-	currDoc->toolSettings.polyF = prefsManager->appPrefs.toolSettings.polyF;
-	currDoc->toolSettings.polyR = prefsManager->appPrefs.toolSettings.polyR;
-	currDoc->toolSettings.polyCurvature = prefsManager->appPrefs.toolSettings.polyCurvature;
-	currDoc->toolSettings.polyFd = prefsManager->appPrefs.toolSettings.polyFd;
-	currDoc->toolSettings.polyS = prefsManager->appPrefs.toolSettings.polyS;
+	currDoc->itemToolPrefs.polyC = prefsManager->appPrefs.itemToolPrefs.polyC;
+	currDoc->itemToolPrefs.polyF = prefsManager->appPrefs.itemToolPrefs.polyF;
+	currDoc->itemToolPrefs.polyR = prefsManager->appPrefs.itemToolPrefs.polyR;
+	currDoc->itemToolPrefs.polyCurvature = prefsManager->appPrefs.itemToolPrefs.polyCurvature;
+	currDoc->itemToolPrefs.polyFd = prefsManager->appPrefs.itemToolPrefs.polyFd;
+	currDoc->itemToolPrefs.polyS = prefsManager->appPrefs.itemToolPrefs.polyS;
 	currDoc->AutoSave = prefsManager->appPrefs.AutoSave;
 	currDoc->AutoSaveTime = prefsManager->appPrefs.AutoSaveTime;
 	ReplacedFonts = currDoc->AllFonts->getSubstitutions();
@@ -377,7 +377,7 @@
 	vg.setAlignment(static_cast<ParagraphStyle::AlignmentType>(pg.attribute("ALIGN").toInt()));
 	vg.setGapBefore(ScCLocale::toDoubleC(pg.attribute("VOR"), 0.0));
 	vg.setGapAfter(ScCLocale::toDoubleC(pg.attribute("NACH"), 0.0));
-	QString tmpf = pg.attribute("FONT", currDoc->toolSettings.defFont);
+	QString tmpf = pg.attribute("FONT", currDoc->itemToolPrefs.defFont);
 	currDoc->AllFonts->findFont(tmpf, currDoc);
 		vg.charStyle().setFont((*currDoc->AllFonts)[tmpf]);
 		vg.charStyle().setFontSize(qRound(ScCLocale::toDoubleC(pg.attribute("FONTSIZE"), 12.0) * 10.0));
@@ -385,9 +385,9 @@
 		vg.setDropCapLines(pg.attribute("DROPLIN", "2").toInt());
 		vg.setDropCapOffset(ScCLocale::toDoubleC(pg.attribute("DROPDIST"), 0.0));
 		vg.charStyle().setFeatures(static_cast<StyleFlag>(pg.attribute("EFFECT", "0").toInt()).featureList());
-		vg.charStyle().setFillColor(pg.attribute("FCOLOR", currDoc->toolSettings.dBrush));
+		vg.charStyle().setFillColor(pg.attribute("FCOLOR", currDoc->itemToolPrefs.dBrush));
 		vg.charStyle().setFillShade(pg.attribute("FSHADE", "100").toInt());
-		vg.charStyle().setStrokeColor(pg.attribute("SCOLOR", currDoc->toolSettings.dPen));
+		vg.charStyle().setStrokeColor(pg.attribute("SCOLOR", currDoc->itemToolPrefs.dPen));
 		vg.charStyle().setStrokeShade(pg.attribute("SSHADE", "100").toInt());
 		if (static_cast<bool>(pg.attribute("BASE", "0").toInt()))
 			vg.setLineSpacingMode(ParagraphStyle::BaselineGridLineSpacing);
Index: scribus/canvasmode_drawfreehand.cpp
===================================================================
--- scribus/canvasmode_drawfreehand.cpp	(revision 13952)
+++ scribus/canvasmode_drawfreehand.cpp	(revision 13953)
@@ -318,7 +318,7 @@
 		if (RecordP.size() > 1)
 		{
 			UndoTransaction createTransaction(UndoManager::instance()->beginTransaction());
-			uint z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Mxp, Myp, 1, 1, m_doc->toolSettings.dWidthLine, CommonStrings::None, m_doc->toolSettings.dPenLine, true);
+			uint z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Mxp, Myp, 1, 1, m_doc->itemToolPrefs.dWidthLine, CommonStrings::None, m_doc->itemToolPrefs.dPenLine, true);
 			currItem = m_doc->Items->at(z);
 			currItem->PoLine.resize(0);
 			if (m->modifiers() & Qt::ControlModifier)
Index: scribus/canvasmode_create.cpp
===================================================================
--- scribus/canvasmode_create.cpp	(revision 13952)
+++ scribus/canvasmode_create.cpp	(revision 13953)
@@ -104,7 +104,7 @@
 		}
 		else if (createObjectMode == modeDrawRegularPolygon)
 		{
-			QPainterPath path = RegularPolygon(localRect.width(), localRect.height(), m_doc->toolSettings.polyC, m_doc->toolSettings.polyS, m_doc->toolSettings.polyF, m_doc->toolSettings.polyR, m_doc->toolSettings.polyCurvature);
+			QPainterPath path = RegularPolygon(localRect.width(), localRect.height(), m_doc->itemToolPrefs.polyC, m_doc->itemToolPrefs.polyS, m_doc->itemToolPrefs.polyF, m_doc->itemToolPrefs.polyR, m_doc->itemToolPrefs.polyCurvature);
 			p->translate(localRect.left(), localRect.top());
 			p->drawPath(path);
 		}
@@ -258,7 +258,7 @@
 					double newRot = xy2Deg(bounds.width(), bounds.height());
 					if (newRot < 0.0)
 						newRot += 360;
-					newRot = constrainAngle(newRot, m_doc->toolSettings.constrain);
+					newRot = constrainAngle(newRot, m_doc->opToolPrefs.constrain);
 					double len = qMax(0.01, distance(bounds.width(), bounds.height()));
 					bounds.setSize(len * QSizeF(cosd(newRot), sind(newRot)));
 					newX = bounds.right();
@@ -586,33 +586,33 @@
 		case 0:
 			if (modifiers == Qt::ShiftModifier)
 			{
-				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 				m_doc->Items->at(z)->FrameType = 0;
 			}
 			else
 			{
 				m_doc->ApplyGuides(&Rxp, &Ryp);
-				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 				m_doc->Items->at(z)->FrameType = 0;
 			}
 			break;
 		case 1:
 			if (modifiers == Qt::ShiftModifier)
 			{
-				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 				m_doc->Items->at(z)->FrameType = 1;
 			}
 			else
 			{
 				m_doc->ApplyGuides(&Rxp, &Ryp);
-				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 				m_doc->Items->at(z)->FrameType = 1;
 			}
 			break;
 		default:
 			if (modifiers == Qt::ShiftModifier)
 			{
-				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 				m_doc->Items->at(z)->SetFrameShape(m_doc->ValCount, m_doc->ShapeValues);
 				m_doc->AdjustItemSize(m_doc->Items->at(z));
 				m_doc->setRedrawBounding(m_doc->Items->at(z));
@@ -621,7 +621,7 @@
 			else
 			{
 				m_doc->ApplyGuides(&Rxp, &Ryp);
-				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 				m_doc->Items->at(z)->SetFrameShape(m_doc->ValCount, m_doc->ShapeValues);
 				m_doc->AdjustItemSize(m_doc->Items->at(z));
 				m_doc->setRedrawBounding(m_doc->Items->at(z));
@@ -638,54 +638,54 @@
 		if (rot < 0.0) 
 			rot += 360;
 		len = qMax(0.01, distance(Rxpd, Rypd));
-		z = m_doc->itemAdd(PageItem::Line, PageItem::Unspecified, Rxp, Ryp, len, 1, m_doc->toolSettings.dWidthLine, CommonStrings::None, m_doc->toolSettings.dPenLine, true);
+		z = m_doc->itemAdd(PageItem::Line, PageItem::Unspecified, Rxp, Ryp, len, 1, m_doc->itemToolPrefs.dWidthLine, CommonStrings::None, m_doc->itemToolPrefs.dPenLine, true);
 		m_doc->Items->at(z)->setRotation(rot);
 		m_doc->Items->at(z)->setRedrawBounding();
 		break;
 	case modeDrawLatex:
 		if (modifiers == Qt::ShiftModifier)
 		{
-			z = m_doc->itemAddArea(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->toolSettings.dBrushPict, CommonStrings::None, true);
+			z = m_doc->itemAddArea(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		}
 		else
 		{
 			m_doc->ApplyGuides(&Rxp, &Ryp);
-			z = m_doc->itemAdd(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrushPict, CommonStrings::None, true);
+			z = m_doc->itemAdd(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		}
 		break;
 	case modeDrawImage:
 		if (modifiers == Qt::ShiftModifier)
 		{
-			z = m_doc->itemAddArea(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->toolSettings.dBrushPict, CommonStrings::None, true);
+			z = m_doc->itemAddArea(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		}
 		else
 		{
 			m_doc->ApplyGuides(&Rxp, &Ryp);
-			z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrushPict, CommonStrings::None, true);
+			z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		}
 		break;
 	case modeDrawText:
 		if (modifiers == Qt::ShiftModifier)
 		{
-			z = m_doc->itemAddArea(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, true);
+			z = m_doc->itemAddArea(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, true);
 		}	
 		else
 		{
 			m_doc->ApplyGuides(&Rxp, &Ryp);
-			z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, true);
+			z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, true);
 		}
 		break;
 	case modeDrawRegularPolygon:
 		{
 			if (modifiers == Qt::ShiftModifier)
-				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 			else
 			{
 				m_doc->ApplyGuides(&Rxp, &Ryp);
-				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, true);
+				z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, true);
 			}
 			currItem = m_doc->Items->at(z);
-			QPainterPath path = RegularPolygon(currItem->width(), currItem->height(), m_doc->toolSettings.polyC, m_doc->toolSettings.polyS, m_doc->toolSettings.polyF, m_doc->toolSettings.polyR, m_doc->toolSettings.polyCurvature);
+			QPainterPath path = RegularPolygon(currItem->width(), currItem->height(), m_doc->itemToolPrefs.polyC, m_doc->itemToolPrefs.polyS, m_doc->itemToolPrefs.polyF, m_doc->itemToolPrefs.polyR, m_doc->itemToolPrefs.polyCurvature);
 			currItem->PoLine.fromQPainterPath(path);
 			m_doc->AdjustItemSize(currItem);
 			currItem->Clip = FlattenPath(currItem->PoLine, currItem->Segments);
@@ -718,7 +718,7 @@
 	case modeInsertPDFTextAnnotation:
 	case modeInsertPDFLinkAnnotation:
 		m_doc->ApplyGuides(&Rxp, &Ryp);
-		z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, true);
+		z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, true);
 		currItem = m_doc->Items->at(z);
 		currItem->setIsAnnotation(true);
 		currItem->AutoName = false;
@@ -819,7 +819,7 @@
 			{
 				for (int cc = 0; cc < Cols; ++cc)
 				{
-					z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Tx + offX, Ty + offY, deltaX, deltaY, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, true);
+					z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Tx + offX, Ty + offY, deltaX, deltaY, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, true);
 					currItem = m_doc->Items->at(z);
 					currItem->isTableItem = true;
 					currItem->setTextFlowMode(PageItem::TextFlowUsesBoundingBox);
@@ -865,12 +865,12 @@
 	case modeInsertPDF3DAnnotation:
 		if (modifiers == Qt::ShiftModifier)
 		{
-			z = m_doc->itemAddArea(PageItem::OSGFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->toolSettings.dBrushPict, CommonStrings::None, true);
+			z = m_doc->itemAddArea(PageItem::OSGFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		}
 		else
 		{
 			m_doc->ApplyGuides(&Rxp, &Ryp);
-			z = m_doc->itemAdd(PageItem::OSGFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrushPict, CommonStrings::None, true);
+			z = m_doc->itemAdd(PageItem::OSGFrame, PageItem::Unspecified, Rxp, Ryp, Rxpd, Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		}
 		currItem = m_doc->Items->at(z);
 		currItem->setIsAnnotation(true);
Index: scribus/canvasmode_legacy.cpp
===================================================================
--- scribus/canvasmode_legacy.cpp	(revision 13952)
+++ scribus/canvasmode_legacy.cpp	(revision 13953)
@@ -605,8 +605,8 @@
 			double newW = xy2Deg(mousePointDoc.x()-m_view->RCenter.x(), mousePointDoc.y()-m_view->RCenter.y()); //xy2Deg(m->x()/sc - m_view->RCenter.x(), m->y()/sc - m_view->RCenter.y());
 			if (m->modifiers() & Qt::ControlModifier)
 			{
-				newW=constrainAngle(newW, m_doc->toolSettings.constrain);
-				m_view->oldW=constrainAngle(m_view->oldW, m_doc->toolSettings.constrain);
+				newW=constrainAngle(newW, m_doc->opToolPrefs.constrain);
+				m_view->oldW=constrainAngle(m_view->oldW, m_doc->opToolPrefs.constrain);
 				//RotateGroup uses MoveBy so its pretty hard to constrain the result
 				if (m_doc->m_Selection->isMultipleSelection())
 					m_doc->rotateGroup(newW-m_view->oldW, m_view->RCenter);
@@ -677,7 +677,7 @@
 					newRot=-newRot;
 				else
 					newRot=360-newRot;
-				newRot=constrainAngle(newRot, m_doc->toolSettings.constrain);
+				newRot=constrainAngle(newRot, m_doc->opToolPrefs.constrain);
 				double hlen=sqrt(pow(newX - currItem->xPos(),2)+pow(newY - currItem->yPos(),2));
 				newX = qRound(currItem->xPos()+(hlen * cos(newRot/(180.0/M_PI))));
 				newY = qRound(currItem->yPos()-(hlen * sin(newRot/(180.0/M_PI))));
@@ -888,7 +888,7 @@
 									if (m->modifiers() & Qt::ControlModifier)
 									{
 										double newRot=xy2Deg(np.x(), np.y());
-										rba=constrainAngle(newRot, m_doc->toolSettings.constrain);
+										rba=constrainAngle(newRot, m_doc->opToolPrefs.constrain);
 										double hlen=sqrt(pow(newX - currItem->xPos(),2)+pow(newY - currItem->yPos(),2));
 										sizeItemX = hlen * cos(rba/(180.0/M_PI));
 										sizeItemY = hlen * sin(rba/(180.0/M_PI));
@@ -1587,14 +1587,14 @@
 			case 0:
 				if (m->modifiers() == Qt::ShiftModifier)
 				{
-					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 					m_doc->Items->at(z)->FrameType = 0;
 					SetupDrawNoResize(z);
 				}
 				else
 				{
 					m_doc->ApplyGuides(&Rxp, &Ryp);
-					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 					m_doc->Items->at(z)->FrameType = 0;
 					SetupDraw(z);
 				}
@@ -1602,14 +1602,14 @@
 			case 1:
 				if (m->modifiers() == Qt::ShiftModifier)
 				{
-					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 					m_doc->Items->at(z)->FrameType = 1;
 					SetupDrawNoResize(z);
 				}
 				else
 				{
 					m_doc->ApplyGuides(&Rxp, &Ryp);
-					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Ellipse, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 					m_doc->Items->at(z)->FrameType = 1;
 					SetupDraw(z);
 				}
@@ -1617,7 +1617,7 @@
 			default:
 				if (m->modifiers() == Qt::ShiftModifier)
 				{
-					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 					m_doc->Items->at(z)->SetFrameShape(m_doc->ValCount, m_doc->ShapeValues);
 					m_doc->setRedrawBounding(m_doc->Items->at(z));
 					m_doc->Items->at(z)->FrameType = m_doc->SubMode+2;
@@ -1626,7 +1626,7 @@
 				else
 				{
 					m_doc->ApplyGuides(&Rxp, &Ryp);
-					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 					m_doc->Items->at(z)->SetFrameShape(m_doc->ValCount, m_doc->ShapeValues);
 					m_doc->setRedrawBounding(m_doc->Items->at(z));
 					m_doc->Items->at(z)->FrameType = m_doc->SubMode+2;
@@ -1641,13 +1641,13 @@
 			selectPage(m);
 			if (m->modifiers() == Qt::ShiftModifier)
 			{
-				z = m_doc->itemAddArea(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->toolSettings.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
+				z = m_doc->itemAddArea(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				SetupDrawNoResize(z);
 			}
 			else
 			{
 				m_doc->ApplyGuides(&Rxp, &Ryp);
-				z = m_doc->itemAdd(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
+				z = m_doc->itemAdd(PageItem::LatexFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				SetupDraw(z);
 			}
 			break;
@@ -1657,13 +1657,13 @@
 			selectPage(m);
 			if (m->modifiers() == Qt::ShiftModifier)
 			{
-				z = m_doc->itemAddArea(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->toolSettings.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
+				z = m_doc->itemAddArea(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, 1, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				SetupDrawNoResize(z);
 			}
 			else
 			{
 				m_doc->ApplyGuides(&Rxp, &Ryp);
-				z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
+				z = m_doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrushPict, CommonStrings::None, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				SetupDraw(z);
 			}
 			break;
@@ -1673,13 +1673,13 @@
 			selectPage(m);
 			if (m->modifiers() == Qt::ShiftModifier)
 			{
-				z = m_doc->itemAddArea(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
+				z = m_doc->itemAddArea(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				SetupDrawNoResize(z);
 			}	
 			else
 			{
 				m_doc->ApplyGuides(&Rxp, &Ryp);
-				z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
+				z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				SetupDraw(z);
 			}
 			break;
@@ -1851,7 +1851,7 @@
 				break;
 			selectPage(m);
 			m_doc->ApplyGuides(&Rxp, &Ryp);
-			z = m_doc->itemAdd(PageItem::Line, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, Rypd, m_doc->toolSettings.dWidthLine, CommonStrings::None, m_doc->toolSettings.dPenLine, !m_canvas->m_viewMode.m_MouseButtonPressed);
+			z = m_doc->itemAdd(PageItem::Line, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, Rypd, m_doc->itemToolPrefs.dWidthLine, CommonStrings::None, m_doc->itemToolPrefs.dPenLine, !m_canvas->m_viewMode.m_MouseButtonPressed);
 			currItem = m_doc->Items->at(z);
 			qApp->changeOverrideCursor(QCursor(Qt::SizeFDiagCursor));
 			m_doc->m_Selection->delaySignalsOn();
@@ -2004,14 +2004,14 @@
 					break;
 				selectPage(m);
 				if (m->modifiers() == Qt::ShiftModifier)
-					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAddArea(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				else
 				{
 					m_doc->ApplyGuides(&Rxp, &Ryp);
-					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, m_doc->toolSettings.dBrush, m_doc->toolSettings.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					z = m_doc->itemAdd(PageItem::Polygon, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dBrush, m_doc->itemToolPrefs.dPen, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				}
 				currItem = m_doc->Items->at(z);
-				QPainterPath path = RegularPolygon(currItem->width(), currItem->height(), m_doc->toolSettings.polyC, m_doc->toolSettings.polyS, m_doc->toolSettings.polyF, m_doc->toolSettings.polyR, m_doc->toolSettings.polyCurvature);
+				QPainterPath path = RegularPolygon(currItem->width(), currItem->height(), m_doc->itemToolPrefs.polyC, m_doc->itemToolPrefs.polyS, m_doc->itemToolPrefs.polyF, m_doc->itemToolPrefs.polyR, m_doc->itemToolPrefs.polyCurvature);
 				currItem->PoLine.fromQPainterPath(path);
 				currItem->Clip = FlattenPath(currItem->PoLine, currItem->Segments);
 				qApp->changeOverrideCursor(QCursor(Qt::SizeFDiagCursor));
@@ -2043,7 +2043,7 @@
 			if (FirstPoly)
 			{
 				selectPage(m);
-				z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidthLine, CommonStrings::None, m_doc->toolSettings.dPenLine, !m_canvas->m_viewMode.m_MouseButtonPressed);
+				z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidthLine, CommonStrings::None, m_doc->itemToolPrefs.dPenLine, !m_canvas->m_viewMode.m_MouseButtonPressed);
 				currItem = m_doc->Items->at(z);
 				m_doc->m_Selection->clear();
 				m_doc->m_Selection->addItem(currItem);
@@ -2082,7 +2082,7 @@
 				break;
 			selectPage(m);
 			m_doc->ApplyGuides(&Rxp, &Ryp);
-			z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
+			z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
 			currItem = m_doc->Items->at(z);
 			currItem->setIsAnnotation(true);
 			currItem->AutoName = false;
@@ -2647,8 +2647,8 @@
 			{
 				for (int cc = 0; cc < Cols; ++cc)
 				{
-					//z = PaintText(Tx + offX, Ty + offY, deltaX, deltaY, m_doc->toolSettings.dWidth, m_doc->toolSettings.dPenText);
-					z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Tx + offX, Ty + offY, deltaX, deltaY, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
+					//z = PaintText(Tx + offX, Ty + offY, deltaX, deltaY, m_doc->itemToolPrefs.dWidth, m_doc->itemToolPrefs.dPenText);
+					z = m_doc->itemAdd(PageItem::TextFrame, PageItem::Unspecified, Tx + offX, Ty + offY, deltaX, deltaY, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenText, !m_canvas->m_viewMode.m_MouseButtonPressed);
 					currItem = m_doc->Items->at(z);
 					currItem->isTableItem = true;
 					//currItem->setTextFlowsAroundFrame(true);
@@ -2707,7 +2707,7 @@
 	{
 		if (RecordP.size() > 1)
 		{
-			uint z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Mxp, Myp, 1, 1, m_doc->toolSettings.dWidth, CommonStrings::None, m_doc->toolSettings.dPenLine, !m_canvas->m_viewMode.m_MouseButtonPressed);
+			uint z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Mxp, Myp, 1, 1, m_doc->itemToolPrefs.dWidth, CommonStrings::None, m_doc->itemToolPrefs.dPenLine, !m_canvas->m_viewMode.m_MouseButtonPressed);
 			currItem = m_doc->Items->at(z);
 			currItem->PoLine.resize(0);
 			currItem->PoLine.addPoint(RecordP.point(0));
@@ -2879,7 +2879,7 @@
 					else if (m_doc->appMode == modeDrawRegularPolygon)
 					{
 						currItem->setWidthHeight(xSize, ySize);
-						FPointArray cli = RegularPolygonF(currItem->width(), currItem->height(), m_doc->toolSettings.polyC, m_doc->toolSettings.polyS, m_doc->toolSettings.polyF, m_doc->toolSettings.polyR);
+						FPointArray cli = RegularPolygonF(currItem->width(), currItem->height(), m_doc->itemToolPrefs.polyC, m_doc->itemToolPrefs.polyS, m_doc->itemToolPrefs.polyF, m_doc->itemToolPrefs.polyR);
 						FPoint np(cli.point(0));
 						currItem->PoLine.resize(2);
 						currItem->PoLine.setPoint(0, np);
@@ -2981,7 +2981,7 @@
 			double newRot=xy2Deg(np.x(), np.y());
 			//Constrain rotation angle, when the mouse is released from drawing a line
 			if (m->modifiers() & Qt::ControlModifier)
-				newRot=constrainAngle(newRot, m_doc->toolSettings.constrain);
+				newRot=constrainAngle(newRot, m_doc->opToolPrefs.constrain);
 			currItem->setRotation(newRot);
 			currItem->setWidthHeight(sqrt(pow(np.x(),2.0)+pow(np.y(),2.0)), 1.0);
 			currItem->Sizing = false;
@@ -3005,7 +3005,7 @@
 				currItem->setXPos(currItem->xPos() - fabs(w), true);
 			if (h < 0.0)
 				currItem->setYPos(currItem->yPos() - fabs(h), true);
-			FPointArray cli = RegularPolygonF(currItem->width(), currItem->height(), m_doc->toolSettings.polyC, m_doc->toolSettings.polyS, m_doc->toolSettings.polyF, m_doc->toolSettings.polyR);
+			FPointArray cli = RegularPolygonF(currItem->width(), currItem->height(), m_doc->itemToolPrefs.polyC, m_doc->itemToolPrefs.polyS, m_doc->itemToolPrefs.polyF, m_doc->itemToolPrefs.polyR);
 			FPoint np(cli.point(0));
 			currItem->PoLine.resize(2);
 			currItem->PoLine.setPoint(0, np);
@@ -4832,8 +4832,8 @@
 void LegacyMode::SetupDraw(int nr)
 {
 	PageItem* currItem = m_doc->Items->at(nr);
-	//	currItem->setFont(Doc->toolSettings.defFont);
-	//	currItem->setFontSize(Doc->toolSettings.defSize);
+	//	currItem->setFont(Doc->itemToolPrefs.defFont);
+	//	currItem->setFontSize(Doc->itemToolPrefs.defSize);
 	m_canvas->m_viewMode.operItemResizing = true;
 	frameResizeHandle = 1;
 	qApp->changeOverrideCursor(QCursor(Qt::SizeFDiagCursor));
@@ -4854,8 +4854,8 @@
 void LegacyMode::SetupDrawNoResize(int nr)
 {
 	PageItem* currItem = m_doc->Items->at(nr);
-	//	currItem->setFont(Doc->toolSettings.defFont);
-	//	currItem->setFontSize(Doc->toolSettings.defSize);
+	//	currItem->setFont(Doc->itemToolPrefs.defFont);
+	//	currItem->setFontSize(Doc->itemToolPrefs.defSize);
 	m_doc->m_Selection->delaySignalsOn();
 	m_doc->m_Selection->clear();
 	m_doc->m_Selection->addItem(currItem);
Index: scribus/scribusdoc.cpp
===================================================================
--- scribus/scribusdoc.cpp	(revision 13952)
+++ scribus/scribusdoc.cpp	(revision 13953)
@@ -172,9 +172,10 @@
 	papColor(prefsData.DpapColor),
 	CurrentSel(-1),
 	nodeEdit(),
-	typographicSettings(prefsData.typographicSettings),
+	typographicSettings(prefsData.typoPrefs),
 	guidesSettings(prefsData.guidesPrefs),
-	toolSettings(prefsData.toolSettings),
+	itemToolPrefs(prefsData.itemToolPrefs),
+	opToolPrefs(prefsData.opToolPrefs),
 	checkerProfiles(prefsData.checkerProfiles),
 	curCheckProfile(prefsData.curCheckProfile),
 	LastAuto(0), FirstAuto(0),
@@ -284,9 +285,10 @@
 	papColor(prefsData.DpapColor),
 	CurrentSel(-1),
 	nodeEdit(),
-	typographicSettings(prefsData.typographicSettings),
+	typographicSettings(prefsData.typoPrefs),
 	guidesSettings(prefsData.guidesPrefs),
-	toolSettings(prefsData.toolSettings),
+	itemToolPrefs(prefsData.itemToolPrefs),
+	opToolPrefs(prefsData.opToolPrefs),
 	checkerProfiles(prefsData.checkerProfiles),
 	curCheckProfile(prefsData.curCheckProfile),
 	LastAuto(0), FirstAuto(0),
@@ -387,38 +389,38 @@
 	PDF_Options.Intent = CMSSettings.DefaultIntentColors;
 	PDF_Options.Intent2 = CMSSettings.DefaultIntentImages;
 
-	AddFont(prefsData.toolSettings.defFont);//, prefsData.AvailFonts[prefsData.toolSettings.defFont]->Font);
-	toolSettings.defFont = prefsData.toolSettings.defFont;
-	toolSettings.defSize = prefsData.toolSettings.defSize;
-	toolSettings.tabFillChar = prefsData.toolSettings.tabFillChar;
-	toolSettings.dispX = prefsData.toolSettings.dispX;
-	toolSettings.dispY = prefsData.toolSettings.dispY;
-	toolSettings.constrain = prefsData.toolSettings.constrain;
+	AddFont(prefsData.itemToolPrefs.defFont);//, prefsData.AvailFonts[prefsData.itemToolPrefs.defFont]->Font);
+	itemToolPrefs.defFont = prefsData.itemToolPrefs.defFont;
+	itemToolPrefs.defSize = prefsData.itemToolPrefs.defSize;
+	itemToolPrefs.tabFillChar = prefsData.itemToolPrefs.tabFillChar;
+	opToolPrefs.dispX = prefsData.opToolPrefs.dispX;
+	opToolPrefs.dispY = prefsData.opToolPrefs.dispY;
+	opToolPrefs.constrain = prefsData.opToolPrefs.constrain;
 
 	PageColors.ensureBlackAndWhite();
-	if (prefsData.toolSettings.dPen != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dPen, prefsData.DColors[prefsData.toolSettings.dPen]);
-	toolSettings.dPen = prefsData.toolSettings.dPen;
-	if (prefsData.toolSettings.dPenLine != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dPenLine, prefsData.DColors[prefsData.toolSettings.dPenLine]);
-	toolSettings.dPenLine = prefsData.toolSettings.dPenLine;
-	if (prefsData.toolSettings.dPenText != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dPenText, prefsData.DColors[prefsData.toolSettings.dPenText]);
-	toolSettings.dPenText = prefsData.toolSettings.dPenText;
-	if (prefsData.toolSettings.dStrokeText != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dStrokeText, prefsData.DColors[prefsData.toolSettings.dStrokeText]);
-	toolSettings.dStrokeText = prefsData.toolSettings.dStrokeText;
-	if (prefsData.toolSettings.dBrush != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dBrush, prefsData.DColors[prefsData.toolSettings.dBrush]);
-	toolSettings.dBrush = prefsData.toolSettings.dBrush;
-	if (prefsData.toolSettings.dBrushPict != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dBrushPict, prefsData.DColors[prefsData.toolSettings.dBrushPict]);
-	toolSettings.dBrushPict = prefsData.toolSettings.dBrushPict;
-	if (prefsData.toolSettings.dTextBackGround != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dTextBackGround, prefsData.DColors[prefsData.toolSettings.dTextBackGround]);
-	toolSettings.dTextBackGround = prefsData.toolSettings.dTextBackGround;
-	if (prefsData.toolSettings.dTextLineColor != CommonStrings::None)
-		PageColors.insert(prefsData.toolSettings.dTextLineColor, prefsData.DColors[prefsData.toolSettings.dTextLineColor]);
+	if (prefsData.itemToolPrefs.dPen != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dPen, prefsData.DColors[prefsData.itemToolPrefs.dPen]);
+	itemToolPrefs.dPen = prefsData.itemToolPrefs.dPen;
+	if (prefsData.itemToolPrefs.dPenLine != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dPenLine, prefsData.DColors[prefsData.itemToolPrefs.dPenLine]);
+	itemToolPrefs.dPenLine = prefsData.itemToolPrefs.dPenLine;
+	if (prefsData.itemToolPrefs.dPenText != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dPenText, prefsData.DColors[prefsData.itemToolPrefs.dPenText]);
+	itemToolPrefs.dPenText = prefsData.itemToolPrefs.dPenText;
+	if (prefsData.itemToolPrefs.dStrokeText != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dStrokeText, prefsData.DColors[prefsData.itemToolPrefs.dStrokeText]);
+	itemToolPrefs.dStrokeText = prefsData.itemToolPrefs.dStrokeText;
+	if (prefsData.itemToolPrefs.dBrush != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dBrush, prefsData.DColors[prefsData.itemToolPrefs.dBrush]);
+	itemToolPrefs.dBrush = prefsData.itemToolPrefs.dBrush;
+	if (prefsData.itemToolPrefs.dBrushPict != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dBrushPict, prefsData.DColors[prefsData.itemToolPrefs.dBrushPict]);
+	itemToolPrefs.dBrushPict = prefsData.itemToolPrefs.dBrushPict;
+	if (prefsData.itemToolPrefs.dTextBackGround != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dTextBackGround, prefsData.DColors[prefsData.itemToolPrefs.dTextBackGround]);
+	itemToolPrefs.dTextBackGround = prefsData.itemToolPrefs.dTextBackGround;
+	if (prefsData.itemToolPrefs.dTextLineColor != CommonStrings::None)
+		PageColors.insert(prefsData.itemToolPrefs.dTextLineColor, prefsData.DColors[prefsData.itemToolPrefs.dTextLineColor]);
 
 	
 	ParagraphStyle pstyle;
@@ -440,13 +442,13 @@
 	CharStyle cstyle;
 	cstyle.setDefaultStyle(true);
 	cstyle.setName(CommonStrings::DefaultCharacterStyle);
-	cstyle.setFont(prefsData.AvailFonts[toolSettings.defFont]);
-	cstyle.setFontSize(toolSettings.defSize);
+	cstyle.setFont(prefsData.AvailFonts[itemToolPrefs.defFont]);
+	cstyle.setFontSize(itemToolPrefs.defSize);
 	cstyle.setFeatures(QStringList(CharStyle::INHERIT));
-	cstyle.setFillColor(toolSettings.dPenText);
-	cstyle.setFillShade(toolSettings.dTextPenShade);
-	cstyle.setStrokeColor(toolSettings.dStrokeText);
-	cstyle.setStrokeShade(toolSettings.dTextStrokeShade);
+	cstyle.setFillColor(itemToolPrefs.dPenText);
+	cstyle.setFillShade(itemToolPrefs.dTextPenShade);
+	cstyle.setStrokeColor(itemToolPrefs.dStrokeText);
+	cstyle.setStrokeShade(itemToolPrefs.dTextStrokeShade);
 	cstyle.setBaselineOffset(0);
 	cstyle.setShadowXOffset(50);
 	cstyle.setShadowYOffset(-50);
@@ -1891,7 +1893,7 @@
 		                     addToPage->Margins.Left+addToPage->xOffset(),
 		                     addToPage->Margins.Top+addToPage->yOffset(), pageWidth-addToPage->Margins.Right-addToPage->Margins.Left,
 		                     pageHeight-addToPage->Margins.Bottom-addToPage->Margins.Top,
-							 1, CommonStrings::None, toolSettings.dPen, true);
+							 1, CommonStrings::None, itemToolPrefs.dPen, true);
 		Items->at(z)->isAutoText = true;
 		Items->at(z)->Cols = qRound(PageSp);
 		Items->at(z)->ColGap = PageSpa;
@@ -2611,8 +2613,8 @@
 	{
 		found = false;
 		// Tool preferences colors
-		if ((it.key() == toolSettings.dBrush) || (it.key() == toolSettings.dPen) || (it.key() == toolSettings.dBrushPict)
-		        || (it.key() == toolSettings.dPenLine) || (it.key() == toolSettings.dPenText))
+		if ((it.key() == itemToolPrefs.dBrush) || (it.key() == itemToolPrefs.dPen) || (it.key() == itemToolPrefs.dBrushPict)
+				|| (it.key() == itemToolPrefs.dPenLine) || (it.key() == itemToolPrefs.dPenText))
 		{
 			if (spot)
 			{
@@ -2863,8 +2865,8 @@
 		}
 	}
 	PrefsManager* prefsManager=PrefsManager::instance();
-	AddFont(prefsManager->appPrefs.toolSettings.defFont);//, prefsManager->appPrefs.AvailFonts[prefsManager->appPrefs.toolSettings.defFont]->Font);
-	AddFont(toolSettings.defFont);//, prefsManager->appPrefs.AvailFonts[toolSettings.defFont]->Font);
+	AddFont(prefsManager->appPrefs.itemToolPrefs.defFont);//, prefsManager->appPrefs.AvailFonts[prefsManager->appPrefs.itemToolPrefs.defFont]->Font);
+	AddFont(itemToolPrefs.defFont);//, prefsManager->appPrefs.AvailFonts[itemToolPrefs.defFont]->Font);
 //	qDebug( "Time elapsed: %d ms", t.elapsed() );
 	return Really;
 }
@@ -3543,7 +3545,7 @@
 		//Q_ASSERTs here will warn on creation issues when a coder specifies the frameType incorrectly
 		//for items that do not have/need a frameType for creation.
 		case PageItem::ImageFrame:
-			newItem = new PageItem_ImageFrame(this, x, y, b, h, w, toolSettings.dBrushPict, CommonStrings::None);
+			newItem = new PageItem_ImageFrame(this, x, y, b, h, w, itemToolPrefs.dBrushPict, CommonStrings::None);
 			Q_ASSERT(frameType==PageItem::Rectangle || frameType==PageItem::Unspecified);
 			break;
 		case PageItem::TextFrame:
@@ -3572,12 +3574,12 @@
 			Q_ASSERT(frameType==PageItem::Unspecified);
 			break;
 		case PageItem::LatexFrame:
-			newItem = new PageItem_LatexFrame(this, x, y, b, h, w, toolSettings.dBrushPict, CommonStrings::None);
+			newItem = new PageItem_LatexFrame(this, x, y, b, h, w, itemToolPrefs.dBrushPict, CommonStrings::None);
 			Q_ASSERT(frameType==PageItem::Rectangle || frameType==PageItem::Unspecified);
 			break;
 #ifdef HAVE_OSG
 		case PageItem::OSGFrame:
-			newItem = new PageItem_OSGFrame(this, x, y, b, h, w, toolSettings.dBrushPict, CommonStrings::None);
+			newItem = new PageItem_OSGFrame(this, x, y, b, h, w, itemToolPrefs.dBrushPict, CommonStrings::None);
 			Q_ASSERT(frameType==PageItem::Rectangle || frameType==PageItem::Unspecified);
 			break;
 #endif
@@ -3702,7 +3704,7 @@
 			w1=iafData.width;
 			h1=iafData.height;
 		}
-		z=itemAdd(iafData.frameType, PageItem::Unspecified, x1, y1, w1, h1, toolSettings.dWidth, CommonStrings::None, toolSettings.dPenText, true);
+		z=itemAdd(iafData.frameType, PageItem::Unspecified, x1, y1, w1, h1, itemToolPrefs.dWidth, CommonStrings::None, itemToolPrefs.dPenText, true);
 		if (z!=-1)
 		{
 			PageItem* currItem=Items->at(z);
@@ -3771,30 +3773,30 @@
 	switch( itemType )
 	{
 		case PageItem::ImageFrame:
-			newItem->setImageXYScale(toolSettings.scaleX, toolSettings.scaleY);
-			newItem->ScaleType = toolSettings.scaleType;
-			newItem->AspectRatio = toolSettings.aspectRatio;
+			newItem->setImageXYScale(itemToolPrefs.scaleX, itemToolPrefs.scaleY);
+			newItem->ScaleType = itemToolPrefs.scaleType;
+			newItem->AspectRatio = itemToolPrefs.aspectRatio;
 			newItem->IProfile = CMSSettings.DefaultImageRGBProfile;
 			newItem->IRender = CMSSettings.DefaultIntentImages;
-			newItem->setFillShade(toolSettings.shadePict);
+			newItem->setFillShade(itemToolPrefs.shadePict);
 			break;
 		case PageItem::LatexFrame:
 #ifdef HAVE_OSG
 		case PageItem::OSGFrame:
 #endif
-			newItem->setFillShade(toolSettings.shadePict);
+			newItem->setFillShade(itemToolPrefs.shadePict);
 			break;
 		case PageItem::TextFrame:
-//			newItem->setFontFillShade(toolSettings.dTextPenShade);
-//			newItem->setFontStrokeShade(toolSettings.dTextStrokeShade);
-			newItem->setFillColor(toolSettings.dTextBackGround);
-			newItem->setFillShade(toolSettings.dTextBackGroundShade);
-			newItem->setLineColor(toolSettings.dTextLineColor);
-			newItem->setLineShade(toolSettings.dTextLineShade);
+//			newItem->setFontFillShade(itemToolPrefs.dTextPenShade);
+//			newItem->setFontStrokeShade(itemToolPrefs.dTextStrokeShade);
+			newItem->setFillColor(itemToolPrefs.dTextBackGround);
+			newItem->setFillShade(itemToolPrefs.dTextBackGroundShade);
+			newItem->setLineColor(itemToolPrefs.dTextLineColor);
+			newItem->setLineShade(itemToolPrefs.dTextLineShade);
 			break;
 		case PageItem::Line:
-			newItem->PLineArt = Qt::PenStyle(toolSettings.dLstyleLine);
-			newItem->setLineShade(toolSettings.dShadeLine);
+			newItem->PLineArt = Qt::PenStyle(itemToolPrefs.dLstyleLine);
+			newItem->setLineShade(itemToolPrefs.dShadeLine);
 			break;
 		case PageItem::Polygon:
 			if(frameType!=PageItem::Rectangle && frameType!=PageItem::Ellipse)
@@ -3834,9 +3836,9 @@
 	//ItemType Polygon
 	if (itemType==PageItem::Polygon || itemType==PageItem::PolyLine)
 	{
-		newItem->PLineArt = Qt::PenStyle(toolSettings.dLineArt);
-		newItem->setFillShade(toolSettings.dShade);
-		newItem->setLineShade(toolSettings.dShade2);
+		newItem->PLineArt = Qt::PenStyle(itemToolPrefs.dLineArt);
+		newItem->setFillShade(itemToolPrefs.dShade);
+		newItem->setLineShade(itemToolPrefs.dShade2);
 		if (itemType == PageItem::Polygon)
 			newItem->ContourLine = newItem->PoLine.copy();
 	}
@@ -5644,15 +5646,15 @@
 							{
 								case PageItem::ImageFrame:
 								case PageItem::LatexFrame:
-									currItem->setFillColor(toolSettings.dBrushPict);
+									currItem->setFillColor(itemToolPrefs.dBrushPict);
 								case PageItem::TextFrame:
 								case PageItem::PathText:
-									currItem->setFillColor(toolSettings.dTextBackGround);
+									currItem->setFillColor(itemToolPrefs.dTextBackGround);
 									break;
 								case PageItem::Line:
 								case PageItem::PolyLine:
 								case PageItem::Polygon:
-									currItem->setFillColor(toolSettings.dBrush);
+									currItem->setFillColor(itemToolPrefs.dBrush);
 									break;
 								default:
 									break;
@@ -6689,7 +6691,7 @@
 			bool fho = currItem->imageFlippedH();
 			bool fvo = currItem->imageFlippedV();
 			if (applyNewRes)
-				currItem->pixm.imgInfo.lowResType = toolSettings.lowResType;
+				currItem->pixm.imgInfo.lowResType = itemToolPrefs.lowResType;
 			loadPict(currItem->Pfile, currItem, true);
 			currItem->setImageFlippedH(fho);
 			currItem->setImageFlippedV(fvo);
@@ -6708,7 +6710,7 @@
 			bool fho = currItem->imageFlippedH();
 			bool fvo = currItem->imageFlippedV();
 			if (applyNewRes)
-				currItem->pixm.imgInfo.lowResType = toolSettings.lowResType;
+				currItem->pixm.imgInfo.lowResType = itemToolPrefs.lowResType;
 			loadPict(currItem->Pfile, currItem, true);
 			currItem->setImageFlippedH(fho);
 			currItem->setImageFlippedV(fvo);
@@ -6727,7 +6729,7 @@
 			bool fho = currItem->imageFlippedH();
 			bool fvo = currItem->imageFlippedV();
 			if (applyNewRes)
-				currItem->pixm.imgInfo.lowResType = toolSettings.lowResType;
+				currItem->pixm.imgInfo.lowResType = itemToolPrefs.lowResType;
 			loadPict(currItem->Pfile, currItem, true);
 			currItem->setImageFlippedH(fho);
 			currItem->setImageFlippedV(fvo);
@@ -6749,7 +6751,7 @@
 				bool fho = currItem->imageFlippedH();
 				bool fvo = currItem->imageFlippedV();
 				if (applyNewRes)
-					currItem->pixm.imgInfo.lowResType = toolSettings.lowResType;
+					currItem->pixm.imgInfo.lowResType = itemToolPrefs.lowResType;
 				loadPict(currItem->Pfile, currItem, true);
 				currItem->setImageFlippedH(fho);
 				currItem->setImageFlippedV(fvo);
@@ -10264,7 +10266,7 @@
 		double gh = maxy - miny;
 		PageItem *high = Items->at(highestItem);
 		undoManager->setUndoEnabled(false);
-		int z = itemAdd(PageItem::Polygon, PageItem::Rectangle, gx, gy, gw, gh, 0, toolSettings.dBrush, toolSettings.dPen, true);
+		int z = itemAdd(PageItem::Polygon, PageItem::Rectangle, gx, gy, gw, gh, 0, itemToolPrefs.dBrush, itemToolPrefs.dPen, true);
 		PageItem *neu = Items->takeAt(z);
 		Items->insert(lowestItem, neu);
 		neu->setItemName( tr("Group%1").arg(GroupCounter));
Index: scribus/prefsmanager.cpp
===================================================================
--- scribus/prefsmanager.cpp	(revision 13952)
+++ scribus/prefsmanager.cpp	(revision 13953)
@@ -125,14 +125,14 @@
 	{
 		if ((itf.currentKey() == "Arial Regular") || (itf.currentKey() == "Times New Roman Regular"))
 		{
-			appPrefs.toolSettings.defFont = itf.currentKey();
+			appPrefs.itemToolPrefs.defFont = itf.currentKey();
 			goodFont = true;
 			break;
 		}
 	}
 	if (!goodFont)
-		appPrefs.toolSettings.defFont = it.currentKey();
-	appPrefs.toolSettings.defSize = 120;
+		appPrefs.itemToolPrefs.defFont = it.currentKey();
+	appPrefs.itemToolPrefs.defSize = 120;
 
 	/** Default colours **/
 	appPrefs.DColors.clear();
@@ -216,16 +216,16 @@
 	appPrefs.guidesPrefs.marginColor = QColor(Qt::blue);
 	appPrefs.guidesPrefs.guideColor = QColor(Qt::darkBlue);
 	appPrefs.guidesPrefs.baselineGridColor = QColor(Qt::lightGray);
-	appPrefs.typographicSettings.valueSuperScript = 33;
-	appPrefs.typographicSettings.scalingSuperScript = 66;
-	appPrefs.typographicSettings.valueSubScript = 33;
-	appPrefs.typographicSettings.scalingSubScript = 66;
-	appPrefs.typographicSettings.valueSmallCaps = 75;
-	appPrefs.typographicSettings.autoLineSpacing = 20;
-	appPrefs.typographicSettings.valueUnderlinePos = -1;
-	appPrefs.typographicSettings.valueUnderlineWidth = -1;
-	appPrefs.typographicSettings.valueStrikeThruPos = -1;
-	appPrefs.typographicSettings.valueStrikeThruWidth = -1;
+	appPrefs.typoPrefs.valueSuperScript = 33;
+	appPrefs.typoPrefs.scalingSuperScript = 66;
+	appPrefs.typoPrefs.valueSubScript = 33;
+	appPrefs.typoPrefs.scalingSubScript = 66;
+	appPrefs.typoPrefs.valueSmallCaps = 75;
+	appPrefs.typoPrefs.autoLineSpacing = 20;
+	appPrefs.typoPrefs.valueUnderlinePos = -1;
+	appPrefs.typoPrefs.valueUnderlineWidth = -1;
+	appPrefs.typoPrefs.valueStrikeThruPos = -1;
+	appPrefs.typoPrefs.valueStrikeThruWidth = -1;
 	appPrefs.guidesPrefs.valueBaselineGrid = 14.4;
 	appPrefs.guidesPrefs.offsetBaselineGrid = 0.0;
 	appPrefs.uiPrefs.style = "";
@@ -237,26 +237,26 @@
 	//FIXME
 	//Black here causes issues when a colour set is loaded without "Black" in it.
 	//"Black" is created with wrong values. Eg SVG colour set
-	appPrefs.toolSettings.dPen = "Black";
-	appPrefs.toolSettings.dBrush = "Black";
-	appPrefs.toolSettings.dShade = 100;
-	appPrefs.toolSettings.dShade2 = 100;
-	appPrefs.toolSettings.dLineArt = Qt::SolidLine;
-	appPrefs.toolSettings.dWidth = 0;
-	appPrefs.toolSettings.dPenLine = "Black";
-	appPrefs.toolSettings.dPenText = "Black";
-	appPrefs.toolSettings.dStrokeText = "Black";
-	appPrefs.toolSettings.dTextBackGround = CommonStrings::None;
-	appPrefs.toolSettings.dTextLineColor = CommonStrings::None;
-	appPrefs.toolSettings.dTextBackGroundShade = 100;
-	appPrefs.toolSettings.dTextLineShade = 100;
-	appPrefs.toolSettings.dTextPenShade = 100;
-	appPrefs.toolSettings.dTextStrokeShade = 100;
-	appPrefs.toolSettings.tabFillChar = "";
-	appPrefs.toolSettings.dTabWidth = 36.0;
-	appPrefs.toolSettings.dispX = 10.0;
-	appPrefs.toolSettings.dispY = 10.0;
-	appPrefs.toolSettings.constrain = 15.0;
+	appPrefs.itemToolPrefs.dPen = "Black";
+	appPrefs.itemToolPrefs.dBrush = "Black";
+	appPrefs.itemToolPrefs.dShade = 100;
+	appPrefs.itemToolPrefs.dShade2 = 100;
+	appPrefs.itemToolPrefs.dLineArt = Qt::SolidLine;
+	appPrefs.itemToolPrefs.dWidth = 0;
+	appPrefs.itemToolPrefs.dPenLine = "Black";
+	appPrefs.itemToolPrefs.dPenText = "Black";
+	appPrefs.itemToolPrefs.dStrokeText = "Black";
+	appPrefs.itemToolPrefs.dTextBackGround = CommonStrings::None;
+	appPrefs.itemToolPrefs.dTextLineColor = CommonStrings::None;
+	appPrefs.itemToolPrefs.dTextBackGroundShade = 100;
+	appPrefs.itemToolPrefs.dTextLineShade = 100;
+	appPrefs.itemToolPrefs.dTextPenShade = 100;
+	appPrefs.itemToolPrefs.dTextStrokeShade = 100;
+	appPrefs.itemToolPrefs.tabFillChar = "";
+	appPrefs.itemToolPrefs.dTabWidth = 36.0;
+	appPrefs.opToolPrefs.dispX = 10.0;
+	appPrefs.opToolPrefs.dispY = 10.0;
+	appPrefs.opToolPrefs.constrain = 15.0;
 	appPrefs.DpapColor = QColor(Qt::white);
 	appPrefs.showPageShadow = true;
 	appPrefs.DFrameColor = QColor(Qt::red);
@@ -267,28 +267,28 @@
 	appPrefs.DFrameAnnotationColor = QColor(Qt::blue);
 	appPrefs.DPageBorderColor = QColor(Qt::red);
 	appPrefs.DControlCharColor = QColor(Qt::darkRed);
-	appPrefs.toolSettings.dCols = 1;
-	appPrefs.toolSettings.dGap = 0.0;
-	appPrefs.toolSettings.dShadeLine = 100;
-	appPrefs.toolSettings.dLstyleLine = Qt::SolidLine;
-	appPrefs.toolSettings.dWidthLine = 1;
-	appPrefs.toolSettings.dStartArrow = 0;
-	appPrefs.toolSettings.dEndArrow = 0;
-	appPrefs.toolSettings.magMin = 10;
-	appPrefs.toolSettings.magMax = 3200;
-	appPrefs.toolSettings.magStep = 200;
-	appPrefs.toolSettings.dBrushPict = CommonStrings::None;
-	appPrefs.toolSettings.shadePict = 100;
-	appPrefs.toolSettings.scaleX = 1;
-	appPrefs.toolSettings.scaleY = 1;
+	appPrefs.itemToolPrefs.dCols = 1;
+	appPrefs.itemToolPrefs.dGap = 0.0;
+	appPrefs.itemToolPrefs.dShadeLine = 100;
+	appPrefs.itemToolPrefs.dLstyleLine = Qt::SolidLine;
+	appPrefs.itemToolPrefs.dWidthLine = 1;
+	appPrefs.itemToolPrefs.dStartArrow = 0;
+	appPrefs.itemToolPrefs.dEndArrow = 0;
+	appPrefs.opToolPrefs.magMin = 10;
+	appPrefs.opToolPrefs.magMax = 3200;
+	appPrefs.opToolPrefs.magStep = 200;
+	appPrefs.itemToolPrefs.dBrushPict = CommonStrings::None;
+	appPrefs.itemToolPrefs.shadePict = 100;
+	appPrefs.itemToolPrefs.scaleX = 1;
+	appPrefs.itemToolPrefs.scaleY = 1;
 	appPrefs.guidesPrefs.guidePlacement = true;
 	appPrefs.docSetupPrefs.docUnitIndex = 0;
-	appPrefs.toolSettings.polyC = 4;
-	appPrefs.toolSettings.polyF = 0.5;
-	appPrefs.toolSettings.polyS = false;
-	appPrefs.toolSettings.polyFd = 0;
-	appPrefs.toolSettings.polyR = 0.0;
-	appPrefs.toolSettings.polyCurvature = 0.0;
+	appPrefs.itemToolPrefs.polyC = 4;
+	appPrefs.itemToolPrefs.polyF = 0.5;
+	appPrefs.itemToolPrefs.polyS = false;
+	appPrefs.itemToolPrefs.polyFd = 0;
+	appPrefs.itemToolPrefs.polyR = 0.0;
+	appPrefs.itemToolPrefs.polyCurvature = 0.0;
 //	appPrefs.PSize = 40;
 	appPrefs.ClipMargin = false;
 	appPrefs.GCRMode = false;
@@ -313,10 +313,10 @@
 	appPrefs.docSetupPrefs.bleeds.Left = 0;
 	appPrefs.docSetupPrefs.bleeds.Right = 0;
 	appPrefs.docSetupPrefs.bleeds.Bottom = 0;
-	appPrefs.toolSettings.scaleType = true;
-	appPrefs.toolSettings.aspectRatio = true;
-	appPrefs.toolSettings.lowResType = 1;
-	appPrefs.toolSettings.useEmbeddedPath = false;
+	appPrefs.itemToolPrefs.scaleType = true;
+	appPrefs.itemToolPrefs.aspectRatio = true;
+	appPrefs.itemToolPrefs.lowResType = 1;
+	appPrefs.itemToolPrefs.useEmbeddedPath = false;
 	appPrefs.MinWordLen = 3;
 	appPrefs.HyCount = 2;
 	appPrefs.Language = "";
@@ -1053,10 +1053,10 @@
 
 bool PrefsManager::isToolColor(const QString& name)
 {
-	return isToolColor(appPrefs.toolSettings, name);
+	return isToolColor(appPrefs.itemToolPrefs, name);
 }
 
-bool PrefsManager::isToolColor(const struct ToolPrefs& settings, const QString& name)
+bool PrefsManager::isToolColor(const struct ItemToolPrefs& settings, const QString& name)
 {
 	if (settings.dPenText == name)
 		return true;
@@ -1079,10 +1079,10 @@
 
 QStringList PrefsManager::toolColorNames()
 {
-	return toolColorNames(appPrefs.toolSettings);
+	return toolColorNames(appPrefs.itemToolPrefs);
 }
 
-QStringList PrefsManager::toolColorNames(const struct ToolPrefs& settings)
+QStringList PrefsManager::toolColorNames(const struct ItemToolPrefs& settings)
 {
 	QStringList names;
 	names.append(settings.dPenText);
@@ -1105,10 +1105,10 @@
 
 void PrefsManager::replaceToolColors(const QMap<QString, QString> replaceMap)
 {
-	replaceToolColors(appPrefs.toolSettings, replaceMap);
+	replaceToolColors(appPrefs.itemToolPrefs, replaceMap);
 }
 
-void PrefsManager::replaceToolColors(struct ToolPrefs& settings, const QMap<QString, QString> replaceMap)
+void PrefsManager::replaceToolColors(struct ItemToolPrefs& settings, const QMap<QString, QString> replaceMap)
 {
 	if (replaceMap.contains(settings.dPenText))
 		settings.dPenText = replaceMap[settings.dPenText];
@@ -1132,28 +1132,28 @@
 {
 	// Color set may have changed and tools color not be present in the new color set
 	ColorList tmpSet = colorSet;
-	QString penText = appPrefs.toolSettings.dPenText;
+	QString penText = appPrefs.itemToolPrefs.dPenText;
 	if (!tmpSet.contains(penText) && penText != CommonStrings::None)
 		tmpSet[penText] = appPrefs.DColors[penText];
-	QString strokeText = appPrefs.toolSettings.dStrokeText;
+	QString strokeText = appPrefs.itemToolPrefs.dStrokeText;
 	if (!tmpSet.contains(strokeText) && strokeText != CommonStrings::None)
 		tmpSet[strokeText] = appPrefs.DColors[strokeText];
-	QString textBackGround = appPrefs.toolSettings.dTextBackGround;
+	QString textBackGround = appPrefs.itemToolPrefs.dTextBackGround;
 	if (!tmpSet.contains(textBackGround) && textBackGround != CommonStrings::None)
 		tmpSet[textBackGround] = appPrefs.DColors[textBackGround];
-	QString textLineColor = appPrefs.toolSettings.dTextLineColor;
+	QString textLineColor = appPrefs.itemToolPrefs.dTextLineColor;
 	if (!tmpSet.contains(textLineColor) && textLineColor != CommonStrings::None)
 		tmpSet[textLineColor] = appPrefs.DColors[textLineColor];
-	QString pen = appPrefs.toolSettings.dPen;
+	QString pen = appPrefs.itemToolPrefs.dPen;
 	if (!tmpSet.contains(pen) && pen != CommonStrings::None)
 		tmpSet[pen] = appPrefs.DColors[pen];
-	QString brush = appPrefs.toolSettings.dBrush;
+	QString brush = appPrefs.itemToolPrefs.dBrush;
 	if (!tmpSet.contains(brush) && brush != CommonStrings::None)
 		tmpSet[brush] = appPrefs.DColors[brush];
-	QString penLine = appPrefs.toolSettings.dPenLine;
+	QString penLine = appPrefs.itemToolPrefs.dPenLine;
 	if (!tmpSet.contains(penLine) && penLine != CommonStrings::None)
 		tmpSet[penLine] = appPrefs.DColors[penLine];
-	QString brushPict = appPrefs.toolSettings.dBrushPict;
+	QString brushPict = appPrefs.itemToolPrefs.dBrushPict;
 	if (!tmpSet.contains(brushPict) && brushPict != CommonStrings::None)
 		tmpSet[brushPict] = appPrefs.DColors[brushPict];
 	appPrefs.DColors = tmpSet;
@@ -1292,81 +1292,81 @@
 	dc1a.setAttribute("DScale", ScCLocale::toQStringC(appPrefs.DisScale));
 	elem.appendChild(dc1a);
 	QDomElement dc2=docu.createElement("FONTS");
-	dc2.setAttribute("FACE",appPrefs.toolSettings.defFont);
-	dc2.setAttribute("SIZE",appPrefs.toolSettings.defSize / 10.0);
+	dc2.setAttribute("FACE",appPrefs.itemToolPrefs.defFont);
+	dc2.setAttribute("SIZE",appPrefs.itemToolPrefs.defSize / 10.0);
 	dc2.setAttribute("AutomaticSubst", static_cast<int>(appPrefs.askBeforeSubstituite));
 	elem.appendChild(dc2);
 	QDomElement dc3=docu.createElement("TYPO");
-	dc3.setAttribute("TIEF",appPrefs.typographicSettings.valueSubScript);
-	dc3.setAttribute("TIEFSC",appPrefs.typographicSettings.scalingSubScript);
-	dc3.setAttribute("HOCH",appPrefs.typographicSettings.valueSuperScript);
-	dc3.setAttribute("HOCHSC",appPrefs.typographicSettings.scalingSuperScript);
-	dc3.setAttribute("SMCAPS",appPrefs.typographicSettings.valueSmallCaps);
-	dc3.setAttribute("AUTOL", appPrefs.typographicSettings.autoLineSpacing);
+	dc3.setAttribute("TIEF",appPrefs.typoPrefs.valueSubScript);
+	dc3.setAttribute("TIEFSC",appPrefs.typoPrefs.scalingSubScript);
+	dc3.setAttribute("HOCH",appPrefs.typoPrefs.valueSuperScript);
+	dc3.setAttribute("HOCHSC",appPrefs.typoPrefs.scalingSuperScript);
+	dc3.setAttribute("SMCAPS",appPrefs.typoPrefs.valueSmallCaps);
+	dc3.setAttribute("AUTOL", appPrefs.typoPrefs.autoLineSpacing);
 	dc3.setAttribute("BASE", ScCLocale::toQStringC(appPrefs.guidesPrefs.valueBaselineGrid));
 	dc3.setAttribute("BASEO", ScCLocale::toQStringC(appPrefs.guidesPrefs.offsetBaselineGrid));
-	if (appPrefs.typographicSettings.valueUnderlinePos == -1)
-		dc3.setAttribute("UnderlinePos", appPrefs.typographicSettings.valueUnderlinePos);
+	if (appPrefs.typoPrefs.valueUnderlinePos == -1)
+		dc3.setAttribute("UnderlinePos", appPrefs.typoPrefs.valueUnderlinePos);
 	else
-		dc3.setAttribute("UnderlinePos", appPrefs.typographicSettings.valueUnderlinePos / 10.0);
-	if (appPrefs.typographicSettings.valueUnderlineWidth == -1)
-		dc3.setAttribute("UnderlineWidth", appPrefs.typographicSettings.valueUnderlineWidth);
+		dc3.setAttribute("UnderlinePos", appPrefs.typoPrefs.valueUnderlinePos / 10.0);
+	if (appPrefs.typoPrefs.valueUnderlineWidth == -1)
+		dc3.setAttribute("UnderlineWidth", appPrefs.typoPrefs.valueUnderlineWidth);
 	else
-		dc3.setAttribute("UnderlineWidth", appPrefs.typographicSettings.valueUnderlineWidth / 10.0);
-	if (appPrefs.typographicSettings.valueStrikeThruPos == -1)
-		dc3.setAttribute("StrikeThruPos", appPrefs.typographicSettings.valueStrikeThruPos);
+		dc3.setAttribute("UnderlineWidth", appPrefs.typoPrefs.valueUnderlineWidth / 10.0);
+	if (appPrefs.typoPrefs.valueStrikeThruPos == -1)
+		dc3.setAttribute("StrikeThruPos", appPrefs.typoPrefs.valueStrikeThruPos);
 	else
-		dc3.setAttribute("StrikeThruPos", appPrefs.typographicSettings.valueStrikeThruPos / 10.0);
-	if (appPrefs.typographicSettings.valueStrikeThruWidth == -1)
-		dc3.setAttribute("StrikeThruWidth", appPrefs.typographicSettings.valueStrikeThruWidth);
+		dc3.setAttribute("StrikeThruPos", appPrefs.typoPrefs.valueStrikeThruPos / 10.0);
+	if (appPrefs.typoPrefs.valueStrikeThruWidth == -1)
+		dc3.setAttribute("StrikeThruWidth", appPrefs.typoPrefs.valueStrikeThruWidth);
 	else
-		dc3.setAttribute("StrikeThruWidth", appPrefs.typographicSettings.valueStrikeThruWidth / 10.0);
+		dc3.setAttribute("StrikeThruWidth", appPrefs.typoPrefs.valueStrikeThruWidth / 10.0);
 	elem.appendChild(dc3);
 	QDomElement dc9=docu.createElement("TOOLS");
-	dc9.setAttribute("PEN",appPrefs.toolSettings.dPen);
-	dc9.setAttribute("BRUSH",appPrefs.toolSettings.dBrush);
-	dc9.setAttribute("PENLINE",appPrefs.toolSettings.dPenLine);
-	dc9.setAttribute("PENTEXT",appPrefs.toolSettings.dPenText);
-	dc9.setAttribute("StrokeText",appPrefs.toolSettings.dStrokeText);
-	dc9.setAttribute("TextBackGround", appPrefs.toolSettings.dTextBackGround);
-	dc9.setAttribute("TextLineColor", appPrefs.toolSettings.dTextLineColor);
-	dc9.setAttribute("TextBackGroundShade", appPrefs.toolSettings.dTextBackGroundShade);
-	dc9.setAttribute("TextLineShade", appPrefs.toolSettings.dTextLineShade);
-	dc9.setAttribute("TextPenShade", appPrefs.toolSettings.dTextPenShade);
-	dc9.setAttribute("TextStrokeShade", appPrefs.toolSettings.dTextStrokeShade);
-	dc9.setAttribute("TEXTCOL",appPrefs.toolSettings.dCols);
-	dc9.setAttribute("TEXTGAP",ScCLocale::toQStringC(appPrefs.toolSettings.dGap));
-	dc9.setAttribute("TabWidth",ScCLocale::toQStringC(appPrefs.toolSettings.dTabWidth));
-	dc9.setAttribute("TabFill",appPrefs.toolSettings.tabFillChar);
-	dc9.setAttribute("STIL",appPrefs.toolSettings.dLineArt);
-	dc9.setAttribute("STILLINE",appPrefs.toolSettings.dLstyleLine);
-	dc9.setAttribute("WIDTH",ScCLocale::toQStringC(appPrefs.toolSettings.dWidth));
-	dc9.setAttribute("WIDTHLINE",ScCLocale::toQStringC(appPrefs.toolSettings.dWidthLine));
-	dc9.setAttribute("PENSHADE",appPrefs.toolSettings.dShade2);
-	dc9.setAttribute("LINESHADE",appPrefs.toolSettings.dShadeLine);
-	dc9.setAttribute("BRUSHSHADE",appPrefs.toolSettings.dShade);
-	dc9.setAttribute("MAGMIN",appPrefs.toolSettings.magMin);
-	dc9.setAttribute("MAGMAX",appPrefs.toolSettings.magMax);
-	dc9.setAttribute("MAGSTEP",appPrefs.toolSettings.magStep);
-	dc9.setAttribute("CPICT",appPrefs.toolSettings.dBrushPict);
-	dc9.setAttribute("PICTSHADE",appPrefs.toolSettings.shadePict);
-	dc9.setAttribute("PICTSCX",ScCLocale::toQStringC(appPrefs.toolSettings.scaleX));
-	dc9.setAttribute("PICTSCY",ScCLocale::toQStringC(appPrefs.toolSettings.scaleY));
-	dc9.setAttribute("POLYC", appPrefs.toolSettings.polyC);
-	dc9.setAttribute("POLYF", ScCLocale::toQStringC(appPrefs.toolSettings.polyF));
-	dc9.setAttribute("POLYR", ScCLocale::toQStringC(appPrefs.toolSettings.polyR));
-	dc9.setAttribute("POLYFD", appPrefs.toolSettings.polyFd);
-	dc9.setAttribute("POLYCUR", ScCLocale::toQStringC(appPrefs.toolSettings.polyCurvature));
-	dc9.setAttribute("POLYS", static_cast<int>(appPrefs.toolSettings.polyS));
-	dc9.setAttribute("PSCALE", static_cast<int>(appPrefs.toolSettings.scaleType));
-	dc9.setAttribute("PASPECT", static_cast<int>(appPrefs.toolSettings.aspectRatio));
-	dc9.setAttribute("EmbeddedPath", static_cast<int>(appPrefs.toolSettings.useEmbeddedPath));
-	dc9.setAttribute("HalfRes", appPrefs.toolSettings.lowResType);
-	dc9.setAttribute("StartArrow", appPrefs.toolSettings.dStartArrow);
-	dc9.setAttribute("EndArrow", appPrefs.toolSettings.dEndArrow);
-	dc9.setAttribute("dispX", ScCLocale::toQStringC(appPrefs.toolSettings.dispX));
-	dc9.setAttribute("dispY", ScCLocale::toQStringC(appPrefs.toolSettings.dispY));
-	dc9.setAttribute("constrain", ScCLocale::toQStringC(appPrefs.toolSettings.constrain));
+	dc9.setAttribute("PEN",appPrefs.itemToolPrefs.dPen);
+	dc9.setAttribute("BRUSH",appPrefs.itemToolPrefs.dBrush);
+	dc9.setAttribute("PENLINE",appPrefs.itemToolPrefs.dPenLine);
+	dc9.setAttribute("PENTEXT",appPrefs.itemToolPrefs.dPenText);
+	dc9.setAttribute("StrokeText",appPrefs.itemToolPrefs.dStrokeText);
+	dc9.setAttribute("TextBackGround", appPrefs.itemToolPrefs.dTextBackGround);
+	dc9.setAttribute("TextLineColor", appPrefs.itemToolPrefs.dTextLineColor);
+	dc9.setAttribute("TextBackGroundShade", appPrefs.itemToolPrefs.dTextBackGroundShade);
+	dc9.setAttribute("TextLineShade", appPrefs.itemToolPrefs.dTextLineShade);
+	dc9.setAttribute("TextPenShade", appPrefs.itemToolPrefs.dTextPenShade);
+	dc9.setAttribute("TextStrokeShade", appPrefs.itemToolPrefs.dTextStrokeShade);
+	dc9.setAttribute("TEXTCOL",appPrefs.itemToolPrefs.dCols);
+	dc9.setAttribute("TEXTGAP",ScCLocale::toQStringC(appPrefs.itemToolPrefs.dGap));
+	dc9.setAttribute("TabWidth",ScCLocale::toQStringC(appPrefs.itemToolPrefs.dTabWidth));
+	dc9.setAttribute("TabFill",appPrefs.itemToolPrefs.tabFillChar);
+	dc9.setAttribute("STIL",appPrefs.itemToolPrefs.dLineArt);
+	dc9.setAttribute("STILLINE",appPrefs.itemToolPrefs.dLstyleLine);
+	dc9.setAttribute("WIDTH",ScCLocale::toQStringC(appPrefs.itemToolPrefs.dWidth));
+	dc9.setAttribute("WIDTHLINE",ScCLocale::toQStringC(appPrefs.itemToolPrefs.dWidthLine));
+	dc9.setAttribute("PENSHADE",appPrefs.itemToolPrefs.dShade2);
+	dc9.setAttribute("LINESHADE",appPrefs.itemToolPrefs.dShadeLine);
+	dc9.setAttribute("BRUSHSHADE",appPrefs.itemToolPrefs.dShade);
+	dc9.setAttribute("MAGMIN",appPrefs.opToolPrefs.magMin);
+	dc9.setAttribute("MAGMAX",appPrefs.opToolPrefs.magMax);
+	dc9.setAttribute("MAGSTEP",appPrefs.opToolPrefs.magStep);
+	dc9.setAttribute("CPICT",appPrefs.itemToolPrefs.dBrushPict);
+	dc9.setAttribute("PICTSHADE",appPrefs.itemToolPrefs.shadePict);
+	dc9.setAttribute("PICTSCX",ScCLocale::toQStringC(appPrefs.itemToolPrefs.scaleX));
+	dc9.setAttribute("PICTSCY",ScCLocale::toQStringC(appPrefs.itemToolPrefs.scaleY));
+	dc9.setAttribute("POLYC", appPrefs.itemToolPrefs.polyC);
+	dc9.setAttribute("POLYF", ScCLocale::toQStringC(appPrefs.itemToolPrefs.polyF));
+	dc9.setAttribute("POLYR", ScCLocale::toQStringC(appPrefs.itemToolPrefs.polyR));
+	dc9.setAttribute("POLYFD", appPrefs.itemToolPrefs.polyFd);
+	dc9.setAttribute("POLYCUR", ScCLocale::toQStringC(appPrefs.itemToolPrefs.polyCurvature));
+	dc9.setAttribute("POLYS", static_cast<int>(appPrefs.itemToolPrefs.polyS));
+	dc9.setAttribute("PSCALE", static_cast<int>(appPrefs.itemToolPrefs.scaleType));
+	dc9.setAttribute("PASPECT", static_cast<int>(appPrefs.itemToolPrefs.aspectRatio));
+	dc9.setAttribute("EmbeddedPath", static_cast<int>(appPrefs.itemToolPrefs.useEmbeddedPath));
+	dc9.setAttribute("HalfRes", appPrefs.itemToolPrefs.lowResType);
+	dc9.setAttribute("StartArrow", appPrefs.itemToolPrefs.dStartArrow);
+	dc9.setAttribute("EndArrow", appPrefs.itemToolPrefs.dEndArrow);
+	dc9.setAttribute("dispX", ScCLocale::toQStringC(appPrefs.opToolPrefs.dispX));
+	dc9.setAttribute("dispY", ScCLocale::toQStringC(appPrefs.opToolPrefs.dispY));
+	dc9.setAttribute("constrain", ScCLocale::toQStringC(appPrefs.opToolPrefs.constrain));
 	elem.appendChild(dc9);
 	QDomElement dc4=docu.createElement("MAINWINDOW");
 	dc4.setAttribute("XPOS",appPrefs.mainWinSettings.xPosition);
@@ -1855,84 +1855,84 @@
 		}
 		if (dc.tagName()=="TYPO")
 		{
-			appPrefs.typographicSettings.valueSuperScript = dc.attribute("HOCH").toInt();
-			appPrefs.typographicSettings.scalingSuperScript = dc.attribute("HOCHSC").toInt();
-			appPrefs.typographicSettings.valueSubScript = dc.attribute("TIEF").toInt();
-			appPrefs.typographicSettings.scalingSubScript = dc.attribute("TIEFSC").toInt();
-			appPrefs.typographicSettings.valueSmallCaps  = dc.attribute("SMCAPS").toInt();
+			appPrefs.typoPrefs.valueSuperScript = dc.attribute("HOCH").toInt();
+			appPrefs.typoPrefs.scalingSuperScript = dc.attribute("HOCHSC").toInt();
+			appPrefs.typoPrefs.valueSubScript = dc.attribute("TIEF").toInt();
+			appPrefs.typoPrefs.scalingSubScript = dc.attribute("TIEFSC").toInt();
+			appPrefs.typoPrefs.valueSmallCaps  = dc.attribute("SMCAPS").toInt();
 			appPrefs.guidesPrefs.valueBaselineGrid   = ScCLocale::toDoubleC(dc.attribute("BASE"), 12.0);
 			appPrefs.guidesPrefs.offsetBaselineGrid  = ScCLocale::toDoubleC(dc.attribute("BASEO"), 0.0);
-			appPrefs.typographicSettings.autoLineSpacing = dc.attribute("AUTOL", "20").toInt();
+			appPrefs.typoPrefs.autoLineSpacing = dc.attribute("AUTOL", "20").toInt();
 			double ulp = ScCLocale::toDoubleC(dc.attribute("UnderlinePos"), -1.0);
 			if (ulp != -1)
-				appPrefs.typographicSettings.valueUnderlinePos = qRound(ulp * 10);
+				appPrefs.typoPrefs.valueUnderlinePos = qRound(ulp * 10);
 			else
-				appPrefs.typographicSettings.valueUnderlinePos = -1;
+				appPrefs.typoPrefs.valueUnderlinePos = -1;
 			double ulw = ScCLocale::toDoubleC(dc.attribute("UnderlineWidth"), -1.0);
 			if (ulw != -1)
-				appPrefs.typographicSettings.valueUnderlineWidth = qRound(ulw * 10);
+				appPrefs.typoPrefs.valueUnderlineWidth = qRound(ulw * 10);
 			else
-				appPrefs.typographicSettings.valueUnderlineWidth = -1;
+				appPrefs.typoPrefs.valueUnderlineWidth = -1;
 			double stp = ScCLocale::toDoubleC(dc.attribute("StrikeThruPos"), -1.0);
 			if (stp != -1)
-				appPrefs.typographicSettings.valueStrikeThruPos = qRound(ulp * 10);
+				appPrefs.typoPrefs.valueStrikeThruPos = qRound(ulp * 10);
 			else
-				appPrefs.typographicSettings.valueStrikeThruPos = -1;
+				appPrefs.typoPrefs.valueStrikeThruPos = -1;
 			double stw = ScCLocale::toDoubleC(dc.attribute("StrikeThruWidth"), -1.0);
 			if (stw != -1)
-				appPrefs.typographicSettings.valueStrikeThruWidth = qRound(stw * 10);
+				appPrefs.typoPrefs.valueStrikeThruWidth = qRound(stw * 10);
 			else
-				appPrefs.typographicSettings.valueStrikeThruWidth = -1;
+				appPrefs.typoPrefs.valueStrikeThruWidth = -1;
 		}
 		if (dc.tagName()=="TOOLS")
 		{
-			appPrefs.toolSettings.dPen = dc.attribute("PEN");
-			appPrefs.toolSettings.dBrush = dc.attribute("BRUSH");
-			appPrefs.toolSettings.dPenLine = dc.attribute("PENLINE");
-			appPrefs.toolSettings.dPenText = dc.attribute("PENTEXT");
-			appPrefs.toolSettings.dStrokeText = dc.attribute("StrokeText", appPrefs.toolSettings.dPenText);
-			appPrefs.toolSettings.dTextBackGround = dc.attribute("TextBackGround", CommonStrings::None);
-			appPrefs.toolSettings.dTextLineColor = dc.attribute("TextLineColor", CommonStrings::None);
-			appPrefs.toolSettings.dTextBackGroundShade = dc.attribute("TextBackGroundShade", "100").toInt();
-			appPrefs.toolSettings.dTextLineShade = dc.attribute("TextLineShade", "100").toInt();
-			appPrefs.toolSettings.dTextPenShade = dc.attribute("TextPenShade", "100").toInt();
-			appPrefs.toolSettings.dTextStrokeShade = dc.attribute("TextStrokeShade", "100").toInt();
-			appPrefs.toolSettings.dCols = dc.attribute("TEXTCOL", "1").toInt();
-			appPrefs.toolSettings.dGap  = ScCLocale::toDoubleC(dc.attribute("TEXTGAP"), 0.0);
-			appPrefs.toolSettings.tabFillChar = dc.attribute("TabFill", "");
-			appPrefs.toolSettings.dTabWidth   = ScCLocale::toDoubleC(dc.attribute("TabWidth"), 36.0);
-			appPrefs.toolSettings.dLineArt = dc.attribute("STIL").toInt();
-			appPrefs.toolSettings.dLstyleLine = dc.attribute("STILLINE").toInt();
-			appPrefs.toolSettings.dWidth     = ScCLocale::toDoubleC(dc.attribute("WIDTH"), 0.0);
-			appPrefs.toolSettings.dWidthLine = ScCLocale::toDoubleC(dc.attribute("WIDTHLINE"), 1.0);
-			appPrefs.toolSettings.dShade2 = dc.attribute("PENSHADE").toInt();
-			appPrefs.toolSettings.dShadeLine = dc.attribute("LINESHADE").toInt();
-			appPrefs.toolSettings.dShade  = dc.attribute("BRUSHSHADE").toInt();
-			appPrefs.toolSettings.magMin  = dc.attribute("MAGMIN", "10").toInt();
-			appPrefs.toolSettings.magMax  = dc.attribute("MAGMAX", "3200").toInt();
-			appPrefs.toolSettings.magStep = dc.attribute("MAGSTEP", "200").toInt();
+			appPrefs.itemToolPrefs.dPen = dc.attribute("PEN");
+			appPrefs.itemToolPrefs.dBrush = dc.attribute("BRUSH");
+			appPrefs.itemToolPrefs.dPenLine = dc.attribute("PENLINE");
+			appPrefs.itemToolPrefs.dPenText = dc.attribute("PENTEXT");
+			appPrefs.itemToolPrefs.dStrokeText = dc.attribute("StrokeText", appPrefs.itemToolPrefs.dPenText);
+			appPrefs.itemToolPrefs.dTextBackGround = dc.attribute("TextBackGround", CommonStrings::None);
+			appPrefs.itemToolPrefs.dTextLineColor = dc.attribute("TextLineColor", CommonStrings::None);
+			appPrefs.itemToolPrefs.dTextBackGroundShade = dc.attribute("TextBackGroundShade", "100").toInt();
+			appPrefs.itemToolPrefs.dTextLineShade = dc.attribute("TextLineShade", "100").toInt();
+			appPrefs.itemToolPrefs.dTextPenShade = dc.attribute("TextPenShade", "100").toInt();
+			appPrefs.itemToolPrefs.dTextStrokeShade = dc.attribute("TextStrokeShade", "100").toInt();
+			appPrefs.itemToolPrefs.dCols = dc.attribute("TEXTCOL", "1").toInt();
+			appPrefs.itemToolPrefs.dGap  = ScCLocale::toDoubleC(dc.attribute("TEXTGAP"), 0.0);
+			appPrefs.itemToolPrefs.tabFillChar = dc.attribute("TabFill", "");
+			appPrefs.itemToolPrefs.dTabWidth   = ScCLocale::toDoubleC(dc.attribute("TabWidth"), 36.0);
+			appPrefs.itemToolPrefs.dLineArt = dc.attribute("STIL").toInt();
+			appPrefs.itemToolPrefs.dLstyleLine = dc.attribute("STILLINE").toInt();
+			appPrefs.itemToolPrefs.dWidth     = ScCLocale::toDoubleC(dc.attribute("WIDTH"), 0.0);
+			appPrefs.itemToolPrefs.dWidthLine = ScCLocale::toDoubleC(dc.attribute("WIDTHLINE"), 1.0);
+			appPrefs.itemToolPrefs.dShade2 = dc.attribute("PENSHADE").toInt();
+			appPrefs.itemToolPrefs.dShadeLine = dc.attribute("LINESHADE").toInt();
+			appPrefs.itemToolPrefs.dShade  = dc.attribute("BRUSHSHADE").toInt();
+			appPrefs.opToolPrefs.magMin  = dc.attribute("MAGMIN", "10").toInt();
+			appPrefs.opToolPrefs.magMax  = dc.attribute("MAGMAX", "3200").toInt();
+			appPrefs.opToolPrefs.magStep = dc.attribute("MAGSTEP", "200").toInt();
 			//CB Reset prefs zoom step value to 200% instead of old values.
-			if (appPrefs.toolSettings.magStep<100)
-				appPrefs.toolSettings.magStep=200;
-			appPrefs.toolSettings.dBrushPict = dc.attribute("CPICT", CommonStrings::None);
-			appPrefs.toolSettings.shadePict = dc.attribute("PICTSHADE", "100").toInt();
-			appPrefs.toolSettings.scaleX = ScCLocale::toDoubleC(dc.attribute("PICTSCX"), 1.0);
-			appPrefs.toolSettings.scaleY = ScCLocale::toDoubleC(dc.attribute("PICTSCY"), 1.0);
-			appPrefs.toolSettings.scaleType = static_cast<bool>(dc.attribute("PSCALE", "1").toInt());
-			appPrefs.toolSettings.aspectRatio = static_cast<bool>(dc.attribute("PASPECT", "0").toInt());
-			appPrefs.toolSettings.useEmbeddedPath = static_cast<bool>(dc.attribute("EmbeddedPath", "0").toInt());
-			appPrefs.toolSettings.lowResType = dc.attribute("HalfRes", "1").toInt();
-			appPrefs.toolSettings.polyC = dc.attribute("POLYC", "4").toInt();
-			appPrefs.toolSettings.polyF = ScCLocale::toDoubleC(dc.attribute("POLYF"), 0.5);
-			appPrefs.toolSettings.polyR = ScCLocale::toDoubleC(dc.attribute("POLYR"), 0.0);
-			appPrefs.toolSettings.polyCurvature = ScCLocale::toDoubleC(dc.attribute("POLYCUR"), 0.0);
-			appPrefs.toolSettings.polyFd = dc.attribute("POLYFD", "0").toInt();
-			appPrefs.toolSettings.polyS  = static_cast<bool>(dc.attribute("POLYS", "0").toInt());
-			appPrefs.toolSettings.dStartArrow = dc.attribute("StartArrow", "0").toInt();
-			appPrefs.toolSettings.dEndArrow   = dc.attribute("EndArrow", "0").toInt();
-			appPrefs.toolSettings.dispX = ScCLocale::toDoubleC(dc.attribute("dispX"), 10.0);
-			appPrefs.toolSettings.dispY = ScCLocale::toDoubleC(dc.attribute("dispY"), 10.0);
-			appPrefs.toolSettings.constrain = ScCLocale::toDoubleC(dc.attribute("constrain"), 15.0);
+			if (appPrefs.opToolPrefs.magStep<100)
+				appPrefs.opToolPrefs.magStep=200;
+			appPrefs.itemToolPrefs.dBrushPict = dc.attribute("CPICT", CommonStrings::None);
+			appPrefs.itemToolPrefs.shadePict = dc.attribute("PICTSHADE", "100").toInt();
+			appPrefs.itemToolPrefs.scaleX = ScCLocale::toDoubleC(dc.attribute("PICTSCX"), 1.0);
+			appPrefs.itemToolPrefs.scaleY = ScCLocale::toDoubleC(dc.attribute("PICTSCY"), 1.0);
+			appPrefs.itemToolPrefs.scaleType = static_cast<bool>(dc.attribute("PSCALE", "1").toInt());
+			appPrefs.itemToolPrefs.aspectRatio = static_cast<bool>(dc.attribute("PASPECT", "0").toInt());
+			appPrefs.itemToolPrefs.useEmbeddedPath = static_cast<bool>(dc.attribute("EmbeddedPath", "0").toInt());
+			appPrefs.itemToolPrefs.lowResType = dc.attribute("HalfRes", "1").toInt();
+			appPrefs.itemToolPrefs.polyC = dc.attribute("POLYC", "4").toInt();
+			appPrefs.itemToolPrefs.polyF = ScCLocale::toDoubleC(dc.attribute("POLYF"), 0.5);
+			appPrefs.itemToolPrefs.polyR = ScCLocale::toDoubleC(dc.attribute("POLYR"), 0.0);
+			appPrefs.itemToolPrefs.polyCurvature = ScCLocale::toDoubleC(dc.attribute("POLYCUR"), 0.0);
+			appPrefs.itemToolPrefs.polyFd = dc.attribute("POLYFD", "0").toInt();
+			appPrefs.itemToolPrefs.polyS  = static_cast<bool>(dc.attribute("POLYS", "0").toInt());
+			appPrefs.itemToolPrefs.dStartArrow = dc.attribute("StartArrow", "0").toInt();
+			appPrefs.itemToolPrefs.dEndArrow   = dc.attribute("EndArrow", "0").toInt();
+			appPrefs.opToolPrefs.dispX = ScCLocale::toDoubleC(dc.attribute("dispX"), 10.0);
+			appPrefs.opToolPrefs.dispY = ScCLocale::toDoubleC(dc.attribute("dispY"), 10.0);
+			appPrefs.opToolPrefs.constrain = ScCLocale::toDoubleC(dc.attribute("constrain"), 15.0);
 		}
 		if (dc.tagName()=="MAINWINDOW")
 		{
@@ -2213,8 +2213,8 @@
 				else
 					newFont = tmpf;
 				if (!newFont.isEmpty())
-					appPrefs.toolSettings.defFont = newFont;
-				appPrefs.toolSettings.defSize = qRound( ScCLocale::toDoubleC(dc.attribute("SIZE"), 12.0) * 10.0 );
+					appPrefs.itemToolPrefs.defFont = newFont;
+				appPrefs.itemToolPrefs.defSize = qRound( ScCLocale::toDoubleC(dc.attribute("SIZE"), 12.0) * 10.0 );
 				appPrefs.askBeforeSubstituite = static_cast<bool>(dc.attribute("AutomaticSubst", "1").toInt());
 			}
 		}
Index: scribus/sampleitem.cpp
===================================================================
--- scribus/sampleitem.cpp	(revision 13952)
+++ scribus/sampleitem.cpp	(revision 13953)
@@ -56,17 +56,17 @@
 	bgShade = 100;
 	tmpStyle.setName("(preview temporary)");
 	tmpStyle.setLineSpacingMode(ParagraphStyle::FixedLineSpacing);
-	tmpStyle.setLineSpacing((m_Doc->toolSettings.defSize / 10.0)
+	tmpStyle.setLineSpacing((m_Doc->itemToolPrefs.defSize / 10.0)
 		* static_cast<double>(m_Doc->typographicSettings.autoLineSpacing) / 100
-		+ (m_Doc->toolSettings.defSize / 10.0));
+		+ (m_Doc->itemToolPrefs.defSize / 10.0));
 	tmpStyle.setAlignment(ParagraphStyle::Leftaligned);
 	tmpStyle.setLeftMargin(0);
 	tmpStyle.setFirstIndent(0);
 	tmpStyle.setRightMargin(0);
 	tmpStyle.setGapBefore(0);
 	tmpStyle.setGapAfter(0);
-	tmpStyle.charStyle().setFont(PrefsManager::instance()->appPrefs.AvailFonts[m_Doc->toolSettings.defFont]);
-	tmpStyle.charStyle().setFontSize(m_Doc->toolSettings.defSize);
+	tmpStyle.charStyle().setFont(PrefsManager::instance()->appPrefs.AvailFonts[m_Doc->itemToolPrefs.defFont]);
+	tmpStyle.charStyle().setFontSize(m_Doc->itemToolPrefs.defSize);
 //	tmpStyle.tabValues().clear();
 	tmpStyle.setHasDropCap(false);
 	tmpStyle.setDropCapLines(0);//2;
@@ -331,7 +331,7 @@
 	if (m_Doc->UsedFonts.contains(tmpStyle.charStyle().font().scName()))
 		previouslyUsedFont = true;
 
-	m_Doc->AddFont(tmpStyle.charStyle().font().scName(), qRound(m_Doc->toolSettings.defSize / 10.0));
+	m_Doc->AddFont(tmpStyle.charStyle().font().scName(), qRound(m_Doc->itemToolPrefs.defSize / 10.0));
 //	m_Doc->docParagraphStyles.create(tmpStyle);
 //	int tmpIndex = m_Doc->docParagraphStyles.count() - 1;
 
Index: scribus/prefsmanager.h
===================================================================
--- scribus/prefsmanager.h	(revision 13952)
+++ scribus/prefsmanager.h	(revision 13953)
@@ -168,13 +168,13 @@
 	const QString& colorSetName();
 	/*! \brief Return if a color belongs to tools prefs colors */
 	bool isToolColor(const QString& name);
-	static bool isToolColor(const struct ToolPrefs& settings, const QString& name);
+	static bool isToolColor(const struct ItemToolPrefs& settings, const QString& name);
 	/*! \brief Return the list of used colors in tool prefs */
 	QStringList toolColorNames();
-	static QStringList toolColorNames(const struct ToolPrefs& settings);
+	static QStringList toolColorNames(const struct ItemToolPrefs& settings);
 	/*! \brief Replace used colors in tool prefs */
 	void replaceToolColors(const QMap<QString, QString> replaceMap);
-	static void replaceToolColors(struct ToolPrefs& settings, const QMap<QString, QString> replaceMap);
+	static void replaceToolColors(struct ItemToolPrefs& settings, const QMap<QString, QString> replaceMap);
 	/*! \brief Finds the fonts on the system
 	Must be run after: PrefsManager::setup()
 	Must be run before: PrefsManager::initDefaults()
Index: scribus/stencilreader.cpp
===================================================================
--- scribus/stencilreader.cpp	(revision 13952)
+++ scribus/stencilreader.cpp	(revision 13953)
@@ -1330,8 +1330,8 @@
 	ob.setAttribute("RADRECT", 0);
 	ob.setAttribute("FRTYPE",  3);
 	ob.setAttribute("CLIPEDIT", 1);
-	ob.setAttribute("TXTFILL", prefsManager->appPrefs.toolSettings.dPenText);
-	ob.setAttribute("TXTSTROKE", prefsManager->appPrefs.toolSettings.dStrokeText);
+	ob.setAttribute("TXTFILL", prefsManager->appPrefs.itemToolPrefs.dPenText);
+	ob.setAttribute("TXTSTROKE", prefsManager->appPrefs.itemToolPrefs.dStrokeText);
 	ob.setAttribute("TXTSTRSH", 100);
 	ob.setAttribute("TXTFILLSH", 100);
 	ob.setAttribute("TXTSCALE", 100);
@@ -1364,8 +1364,8 @@
 	ob.setAttribute("BASEOF", 0);
 	ob.setAttribute("FLIPPEDH", 0);
 	ob.setAttribute("FLIPPEDV", 0);
-	ob.setAttribute("IFONT", prefsManager->appPrefs.toolSettings.defFont);
-	ob.setAttribute("ISIZE", prefsManager->appPrefs.toolSettings.defSize / 10.0);
+	ob.setAttribute("IFONT", prefsManager->appPrefs.itemToolPrefs.defFont);
+	ob.setAttribute("ISIZE", prefsManager->appPrefs.itemToolPrefs.defSize / 10.0);
 	ob.setAttribute("SCALETYPE", 1);
 	ob.setAttribute("RATIO", 0);
 	ob.setAttribute("PRINTABLE", 1);
Index: scribus/scribusXml.cpp
===================================================================
--- scribus/scribusXml.cpp	(revision 13952)
+++ scribus/scribusXml.cpp	(revision 13953)
@@ -784,9 +784,9 @@
 	vg.setDropCapLines ( attrAsInt(attrs, "DROPLIN", 2) );
 	vg.setDropCapOffset( attrAsDbl(attrs, "DROPDIST", 0.0) );
 
-	tmpf = attrAsString(attrs, "FONT", doc->toolSettings.defFont);
+	tmpf = attrAsString(attrs, "FONT", doc->itemToolPrefs.defFont);
 	if (tmpf.isEmpty())
-		tmpf = doc->toolSettings.defFont;
+		tmpf = doc->itemToolPrefs.defFont;
 	tmf = tmpf;
 	if (!DoFonts.contains(tmpf))
 		tmpf = AskForFont(prefsManager->appPrefs.AvailFonts, tmpf, doc);
@@ -796,9 +796,9 @@
 	vg.charStyle().setFont(prefsManager->appPrefs.AvailFonts[tmpf]);
 	vg.charStyle().setFontSize(qRound(attrAsDbl(attrs, "FONTSIZE", 12.0) * 10.0));
 	vg.charStyle().setFeatures(static_cast<StyleFlag>(attrAsInt(attrs, "EFFECT", 0)).featureList());
-	vg.charStyle().setFillColor(attrAsString(attrs, "FCOLOR", doc->toolSettings.dBrush));
+	vg.charStyle().setFillColor(attrAsString(attrs, "FCOLOR", doc->itemToolPrefs.dBrush));
 	vg.charStyle().setFillShade(attrAsInt(attrs, "FSHADE", 100));
-	vg.charStyle().setStrokeColor(attrAsString(attrs, "SCOLOR", doc->toolSettings.dPen));
+	vg.charStyle().setStrokeColor(attrAsString(attrs, "SCOLOR", doc->itemToolPrefs.dPen));
 	vg.charStyle().setStrokeShade(attrAsInt(attrs, "SSHADE", 100));
 	vg.charStyle().setShadowXOffset(qRound(attrAsDbl(attrs, "TXTSHX", 5.0) * 10));
 	vg.charStyle().setShadowYOffset(qRound(attrAsDbl(attrs, "TXTSHY", -5.0) * 10));
@@ -1039,7 +1039,7 @@
 		return false;
 
 	DoFonts.clear();
-	DoFonts[doc->toolSettings.defFont] = doc->toolSettings.defFont;
+	DoFonts[doc->itemToolPrefs.defFont] = doc->itemToolPrefs.defFont;
 	DoVorl.clear();
 	DoVorl[0] = "0";
 	DoVorl[1] = "1";
@@ -1216,11 +1216,11 @@
 				OB.NamedLStyle = "";
 			OB.itemText        = "";
 			OB.textAlignment   = attrAsInt(attrs, "ALIGN", 0);
-			tmf = attrAsString(attrs, "IFONT", doc->toolSettings.defFont);
+			tmf = attrAsString(attrs, "IFONT", doc->itemToolPrefs.defFont);
 			if (tmf.isEmpty())
-				tmf = doc->toolSettings.defFont;
+				tmf = doc->itemToolPrefs.defFont;
 			if (DoFonts[tmf].isEmpty())
-				OB.IFont = doc->toolSettings.defFont;
+				OB.IFont = doc->itemToolPrefs.defFont;
 			else
 				OB.IFont = DoFonts[tmf];
 			// #7725
@@ -1461,7 +1461,7 @@
 			Neu->pixm.imgInfo.isRequest    = (loadRequests.count() > 0);
 			Neu->pixm.imgInfo.lowResType = lowResType;
 			Neu->pixm.imgInfo.actualPageNumber = actualPageNumber;
-			if ((Neu->effectsInUse.count() != 0) || (Neu->pixm.imgInfo.RequestProps.count() != 0) || (doc->toolSettings.lowResType != lowResType))
+			if ((Neu->effectsInUse.count() != 0) || (Neu->pixm.imgInfo.RequestProps.count() != 0) || (doc->itemToolPrefs.lowResType != lowResType))
 				doc->LoadPict(Neu->Pfile, Neu->ItemNr, true);
 			if (Neu->pixm.imgInfo.PDSpathData.contains(itemClip))
 			{
@@ -1610,11 +1610,11 @@
 				OB.NamedLStyle = "";
 			OB.itemText        = "";
 			OB.textAlignment   = attrAsInt(attrs1, "ALIGN");
-			tmf = attrAsString(attrs1, "IFONT", doc->toolSettings.defFont);
+			tmf = attrAsString(attrs1, "IFONT", doc->itemToolPrefs.defFont);
 			if (tmf.isEmpty())
-				tmf = doc->toolSettings.defFont;
+				tmf = doc->itemToolPrefs.defFont;
 			if (DoFonts[tmf].isEmpty())
-				OB.IFont = doc->toolSettings.defFont;
+				OB.IFont = doc->itemToolPrefs.defFont;
 			else
 				OB.IFont = DoFonts[tmf];
 			OB.LayerID  = attrAsInt(attrs1, "LAYER");
@@ -1759,7 +1759,7 @@
 			Neu->pixm.imgInfo.isRequest    = (loadRequests.count() > 0);
 			Neu->pixm.imgInfo.lowResType = lowResType;
 			Neu->pixm.imgInfo.actualPageNumber = actualPageNumber;
-			if ((Neu->effectsInUse.count() != 0) || (Neu->pixm.imgInfo.RequestProps.count() != 0) || (doc->toolSettings.lowResType != lowResType))
+			if ((Neu->effectsInUse.count() != 0) || (Neu->pixm.imgInfo.RequestProps.count() != 0) || (doc->itemToolPrefs.lowResType != lowResType))
 				doc->LoadPict(Neu->Pfile, Neu->ItemNr, true);
 			if (Neu->pixm.imgInfo.PDSpathData.contains(patClipPath))
 			{
@@ -2567,7 +2567,7 @@
 void ScriXmlDoc::ReadLegacyCStyle (const QXmlStreamAttributes& attrs, CharStyle& newStyle, ScribusDoc* doc)
 {
 	bool hasFont = attrHasValue(attrs, "CFONT");
-	QString tmpf = attrAsString(attrs, "CFONT", doc->toolSettings.defFont);
+	QString tmpf = attrAsString(attrs, "CFONT", doc->itemToolPrefs.defFont);
 	bool unknown = false;
 
 	ScFace dummy = ScFace::none();
@@ -2593,7 +2593,7 @@
 		if ((!appPrefs.GFontSub.contains(tmpf)) || (!appPrefs.AvailFonts[appPrefs.GFontSub[tmpf]].usable()))
 		{
 			newReplacement = true;
-			ReplacedFonts.insert(tmpf, appPrefs.toolSettings.defFont);
+			ReplacedFonts.insert(tmpf, appPrefs.itemToolPrefs.defFont);
 		}
 		else
 			ReplacedFonts.insert(tmpf, appPrefs.GFontSub[tmpf]);
@@ -2688,7 +2688,7 @@
 		newStyle.setParent(attrAsString(attrs, "CPARENT", ""));
 	
 	if ( attrHasValue(attrs, "FONT"))
-		newStyle.setFont(doc->AllFonts->findFont(attrAsString(attrs, "FONT", doc->toolSettings.defFont),doc));
+		newStyle.setFont(doc->AllFonts->findFont(attrAsString(attrs, "FONT", doc->itemToolPrefs.defFont),doc));
 	
 	if ( attrHasValue(attrs, "FONTSIZE"))
 		newStyle.setFontSize(qRound(attrAsDbl(attrs, "FONTSIZE", 12) * 10));
Index: scribus/canvasgesture_linemove.cpp
===================================================================
--- scribus/canvasgesture_linemove.cpp	(revision 13952)
+++ scribus/canvasgesture_linemove.cpp	(revision 13953)
@@ -205,7 +205,7 @@
 	if (constrainRatio)
 	{
 		double newRot = rotation();
-		newRot = constrainAngle(newRot, m_doc->toolSettings.constrain);
+		newRot = constrainAngle(newRot, m_doc->opToolPrefs.constrain);
 		setRotation(newRot);
 	}
 
Index: scribus/canvasmode_edit.cpp
===================================================================
--- scribus/canvasmode_edit.cpp	(revision 13952)
+++ scribus/canvasmode_edit.cpp	(revision 13953)
@@ -582,7 +582,7 @@
 									if (m->modifiers() & Qt::ControlModifier)
 									{
 										double newRot=xy2Deg(np.x(), np.y());
-										rba=constrainAngle(newRot, m_doc->toolSettings.constrain);
+										rba=constrainAngle(newRot, m_doc->opToolPrefs.constrain);
 										double hlen=sqrt(pow(newX - currItem->xPos(),2)+pow(newY - currItem->yPos(),2));
 										sizeItemX = hlen * cos(rba/(180.0/M_PI));
 										sizeItemY = hlen * sin(rba/(180.0/M_PI));
Index: scribus/canvasmode_drawbezier.cpp
===================================================================
--- scribus/canvasmode_drawbezier.cpp	(revision 13952)
+++ scribus/canvasmode_drawbezier.cpp	(revision 13953)
@@ -322,7 +322,7 @@
 	{
 		selectPage(m);
 		m_createTransaction = new UndoTransaction(UndoManager::instance()->beginTransaction());
-		z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->toolSettings.dWidthLine, CommonStrings::None, m_doc->toolSettings.dPenLine, true);
+		z = m_doc->itemAdd(PageItem::PolyLine, PageItem::Unspecified, Rxp, Ryp, 1+Rxpd, 1+Rypd, m_doc->itemToolPrefs.dWidthLine, CommonStrings::None, m_doc->itemToolPrefs.dPenLine, true);
 		currItem = m_doc->Items->at(z);
 		m_doc->m_Selection->clear();
 		m_doc->m_Selection->addItem(currItem);
Index: scribus/prefsstructs.h
===================================================================
--- scribus/prefsstructs.h	(revision 13952)
+++ scribus/prefsstructs.h	(revision 13953)
@@ -21,311 +21,312 @@
 
 struct CheckerPrefs
 {
-	bool ignoreErrors;
-	bool autoCheck;
-	bool checkGlyphs;
-	bool checkOverflow;
-	bool checkOrphans;
-	bool checkPictures;
-	bool checkResolution;
-	double minResolution;
-	double maxResolution;
-	bool checkTransparency;
-	bool checkAnnotations;
-	bool checkRasterPDF;
-	bool checkForGIF;
-	bool ignoreOffLayers;
+    bool ignoreErrors;
+    bool autoCheck;
+    bool checkGlyphs;
+    bool checkOverflow;
+    bool checkOrphans;
+    bool checkPictures;
+    bool checkResolution;
+    double minResolution;
+    double maxResolution;
+    bool checkTransparency;
+    bool checkAnnotations;
+    bool checkRasterPDF;
+    bool checkForGIF;
+    bool ignoreOffLayers;
 };
 
 typedef QMap<QString, CheckerPrefs> CheckerPrefsList;
 
 struct TypoPrefs
 {
-	int valueSuperScript;
-	int scalingSuperScript;
-	int valueSubScript;
-	int scalingSubScript;
-	int valueSmallCaps;
-	int autoLineSpacing;
-	int valueUnderlinePos;
-	int valueUnderlineWidth;
-	int valueStrikeThruPos;
-	int valueStrikeThruWidth;
+    int valueSuperScript; //! Displacement of superscript
+    int scalingSuperScript; //! Scaling of superscript
+    int valueSubScript; //! Displacement of subscript
+    int scalingSubScript; //! Scaling of subscript
+    int valueSmallCaps; //! Scaling of small caps
+    int autoLineSpacing; //! Automatic line spacing percentage
+    int valueUnderlinePos; //! Underline displacement
+    int valueUnderlineWidth; //! Underline width
+    int valueStrikeThruPos; //! Strike-through displacement
+    int valueStrikeThruWidth; //! Strike-through line width
 };
 
 struct WindowPrefs
 {
-	int xPosition;
-	int yPosition;
-	int width;
-	int height;
-	bool visible;
-	bool docked;
-	bool maximized;
+    int xPosition;
+    int yPosition;
+    int width;
+    int height;
+    bool visible;
+    bool docked;
+    bool maximized;
 };
 
-struct ToolPrefs
-{
-	/* Texttool */
-	QString defFont;
-	int defSize;
-	QString dPenText;
-	int dTextPenShade;
-	QString dStrokeText;
-	int dTextStrokeShade;
-	QString dTextBackGround;
-	QString dTextLineColor;
-	int dTextBackGroundShade;
-	int dTextLineShade;
-	int dCols;
-	double dGap;
-	QString tabFillChar;
-	double dTabWidth;
-	/* ShapeTool */
-	QString dPen;
-	QString dBrush;
-	int dShade;
-	int dShade2;
-	int dLineArt;
-	double dWidth;
-	/* Line Tool */
-	QString dPenLine;
-	int dShadeLine;
-	double dWidthLine;
-	int dLstyleLine;
-	int dStartArrow;
-	int dEndArrow;
-	/* Regular Polygon Tool */
-	int polyC;
-	int polyFd;
-	double polyF;
-	bool polyS;
-	double polyR;
-	double polyCurvature;
-	/* Picture Tool */
-	QString dBrushPict;
-	int shadePict;
-	double scaleX;
-	double scaleY;
-	bool scaleType;
-	bool aspectRatio;
-	int lowResType;
-	bool useEmbeddedPath;
-	/* Magnifier Tool */
-	int magMin;
-	int magMax;
-	int magStep;
-	/* Item Duplicate Offset */
-	double dispX;
-	double dispY;
-	/* Rotation Tool constrain value */
-	double constrain;
-};
-
 //User Interface
 struct UIPrefs
 {
-	int mouseMoveTimeout; //! Mouse move timeout for move/resize operations
-	int wheelJump; //! Distance to jump with mouse wheel scrolling
-	int applicationFontSize; //! Font size to use in the application, apart from pßalettes
-	int paletteFontSize; //! Fotn size to use in the palettes
-	QString style; 	//! Currently used QStyle name
-	int recentDocCount; //! Number of recent documents to remember
-	QString language; //! Language of the user interface
-	bool useSmallWidgets; //! Use small widgets in the palettes
-	bool showStartupDialog; //! Whether to show the startup dialog or not
+    int mouseMoveTimeout; //! Mouse move timeout for move/resize operations
+    int wheelJump; //! Distance to jump with mouse wheel scrolling
+    int applicationFontSize; //! Font size to use in the application, apart from pßalettes
+    int paletteFontSize; //! Fotn size to use in the palettes
+    QString style; 	//! Currently used QStyle name
+    int recentDocCount; //! Number of recent documents to remember
+    QString language; //! Language of the user interface
+    bool useSmallWidgets; //! Use small widgets in the palettes
+    bool showStartupDialog; //! Whether to show the startup dialog or not
 };
 
 //Paths
 struct PathPrefs
 {
-	QString documents; //! Default document location
-	QString colorProfiles; //! Default color profile location
-	QString scripts; //! Default script location
-	QString documentTemplates; //! Default document template location
+    QString documents; //! Default document location
+    QString colorProfiles; //! Default color profile location
+    QString scripts; //! Default script location
+    QString documentTemplates; //! Default document template location
 };
 
 //Document Setup
 struct DocumentSetupPrefs
 {
-	QString pageSize; //! Default page size of a document
-	int pageOrientation; //! Default orientation of the page
-	double pageWidth; //! Width of a page
-	double pageHeight; //! Height of a page
-	MarginStruct margins; //! Margins for a page
-	MarginStruct bleeds; //! Bleeds for a page
-	int marginPreset; //! Use a preset ratio margin setup
-	int pagePositioning; //! Show pages in 1,2,3,4 pages side by side on screen
-	int docUnitIndex; //! The index of the default unit
+    QString pageSize; //! Default page size of a document
+    int pageOrientation; //! Default orientation of the page
+    double pageWidth; //! Width of a page
+    double pageHeight; //! Height of a page
+    MarginStruct margins; //! Margins for a page
+    MarginStruct bleeds; //! Bleeds for a page
+    int marginPreset; //! Use a preset ratio margin setup
+    int pagePositioning; //! Show pages in 1,2,3,4 pages side by side on screen
+    int docUnitIndex; //! The index of the default unit
 };
 
 //Guides
 struct GuidesPrefs
 {
-	bool guidePlacement;
+    bool guidePlacement; //! Placement of guides, in front or behind
 
-	int grabRadius;
-	double guideRad;
+    int grabRadius;
+    double guideRad;
 
-	bool guidesShown;
-	bool marginsShown;
-	bool gridShown;
-	bool baselineGridShown;
-	bool framesShown;
-	bool colBordersShown;
-	bool layerMarkersShown;
-	bool linkShown;
-	bool rulersShown;
+    bool guidesShown; //! Show the guides or not
+    bool marginsShown; //! Show the margins or not
+    bool gridShown; //! Show the grid or not
+    bool baselineGridShown; //! Show the baseline grid or not
+    bool framesShown; //! Show frame borders or not
+    bool colBordersShown; //! Show text frame column borders or not
+    bool layerMarkersShown; //! Show a layer indicator when layers are active or not
+    bool linkShown; //! Show text frame links or not
+    bool rulersShown; //! Show the page rulers or not
 
-	double majorGridSpacing;
-	double minorGridSpacing;
-	double valueBaselineGrid;
-	double offsetBaselineGrid;
+    double majorGridSpacing; //! Major grid spacing
+    double minorGridSpacing; //! Minor grid spacing
+    double valueBaselineGrid; //! Baseline grid spacing
+    double offsetBaselineGrid; //! Offset of first line of baseline grid from top of page
 
-	bool showPic;
-	bool showControls;
-	bool showBleed;
-	bool rulerMode;
+    bool showPic;
+    bool showControls;
+    bool showBleed;
+    bool rulerMode;
 
 
 
-	QColor guideColor;
-	QColor marginColor;
-	QColor majorGridColor;
-	QColor minorGridColor;
-	QColor baselineGridColor;
+    QColor guideColor; //! Color of guides
+    QColor marginColor; //! Color of margins
+    QColor majorGridColor; //! Color of major grid
+    QColor minorGridColor; //! Color of minor grid
+    QColor baselineGridColor; //! Color of baseline grid
 };
 
+struct ItemToolPrefs
+{
+    /* Texttool */
+    QString defFont;
+    int defSize;
+    QString dPenText;
+    int dTextPenShade;
+    QString dStrokeText;
+    int dTextStrokeShade;
+    QString dTextBackGround;
+    QString dTextLineColor;
+    int dTextBackGroundShade;
+    int dTextLineShade;
+    int dCols;
+    double dGap;
+    QString tabFillChar;
+    double dTabWidth;
+    /* ShapeTool */
+    QString dPen;
+    QString dBrush;
+    int dShade;
+    int dShade2;
+    int dLineArt;
+    double dWidth;
+    /* Line Tool */
+    QString dPenLine;
+    int dShadeLine;
+    double dWidthLine;
+    int dLstyleLine;
+    int dStartArrow;
+    int dEndArrow;
+    /* Regular Polygon Tool */
+    int polyC;
+    int polyFd;
+    double polyF;
+    bool polyS;
+    double polyR;
+    double polyCurvature;
+    /* Picture Tool */
+    QString dBrushPict;
+    int shadePict;
+    double scaleX;
+    double scaleY;
+    bool scaleType;
+    bool aspectRatio;
+    int lowResType;
+    bool useEmbeddedPath;
+};
 
+struct OperatorToolPrefs
+{
+    /* Magnifier Tool */
+    int magMin;
+    int magMax;
+    int magStep;
+    /* Item Duplicate Offset */
+    double dispX;
+    double dispY;
+    /* Rotation Tool constrain value */
+    double constrain;
+};
+
 struct ApplicationPrefs
 {
-	UIPrefs uiPrefs;
-	PathPrefs pathPrefs;
-	DocumentSetupPrefs docSetupPrefs;
-	GuidesPrefs guidesPrefs;
-	//Typography
-	//Item Tools
-	//Operators Tools
-	//Hyphenator
-	//Fonts
-	//Printer
-	//ColorManagement
-	//PDF Export
-	//Document Item Attributes
-	//Tables of Contents
-	//Keyboard Shortcuts
-	//Scrapbook
-	//Display
-	//External Tools
-	//Miscellaneous
-	//Plugins
-	//Short Words
-	//Scripter
+    UIPrefs uiPrefs;
+    PathPrefs pathPrefs;
+    DocumentSetupPrefs docSetupPrefs;
+    GuidesPrefs guidesPrefs;
+    TypoPrefs typoPrefs;
+    ItemToolPrefs itemToolPrefs;
+    OperatorToolPrefs opToolPrefs;
+    //Hyphenator
+    //Fonts
+    //Printer
+    //ColorManagement
+    //PDF Export
+    //Document Item Attributes
+    //Tables of Contents
+    //Keyboard Shortcuts
+    //Scrapbook
+    //Display
+    //External Tools
+    //Miscellaneous
+    //Plugins
+    //Short Words
+    //Scripter
 
 
-	SCFonts AvailFonts;
-	QList<ArrowDesc> arrowStyles;
-	QList<PageSet> pageSets;
-	ColorList DColors;
+    SCFonts AvailFonts;
+    QList<ArrowDesc> arrowStyles;
+    QList<PageSet> pageSets;
+    ColorList DColors;
 
-	bool showPageShadow;
-	QColor DpapColor;
-	QColor DFrameColor;
-	QColor DFrameNormColor;
-	QColor DFrameGroupColor;
-	QColor DFrameLinkColor;
-	QColor DFrameLockColor;
-	QColor DFrameAnnotationColor;
-	QColor DPageBorderColor;
-	QColor DControlCharColor;
+    bool showPageShadow;
+    QColor DpapColor;
+    QColor DFrameColor;
+    QColor DFrameNormColor;
+    QColor DFrameGroupColor;
+    QColor DFrameLinkColor;
+    QColor DFrameLockColor;
+    QColor DFrameAnnotationColor;
+    QColor DPageBorderColor;
+    QColor DControlCharColor;
 
-	TypoPrefs typographicSettings;
-	ToolPrefs toolSettings;
-	CheckerPrefsList checkerProfiles;
-	QString curCheckProfile;
+    CheckerPrefsList checkerProfiles;
+    QString curCheckProfile;
 
-	WindowPrefs mainWinSettings;
-	QByteArray mainWinState;
-	
+    WindowPrefs mainWinSettings;
+    QByteArray mainWinState;
 
 
-	PDFOptions PDF_Options;
-	ObjAttrVector defaultItemAttributes;
-	ToCSetupVector defaultToCSetups;
-	bool SepalT;
-	bool SepalN;
-//	int PSize;
-	bool marginColored;
-	QStringList RecentDocs;
-	QStringList RecentScrapbooks;
-	int numScrapbookCopies;
-	bool doCopyToScrapbook;
-	bool persistentScrapbook;
 
-	CMSData DCMSset;
-	QMap<QString,Keys> KeyActions;
-	QString PrinterName;
-	QString PrinterFile;
-	QString PrinterCommand;
+    PDFOptions PDF_Options;
+    ObjAttrVector defaultItemAttributes;
+    ToCSetupVector defaultToCSetups;
+    bool SepalT;
+    bool SepalN;
+    //	int PSize;
+    bool marginColored;
+    QStringList RecentDocs;
+    QStringList RecentScrapbooks;
+    int numScrapbookCopies;
+    bool doCopyToScrapbook;
+    bool persistentScrapbook;
 
-	int MinWordLen;
-	int HyCount;
-	QString Language;
-	QHash<QString, QString> specialWords;
-	QSet<QString> ignoredWords;
+    CMSData DCMSset;
+    QMap<QString,Keys> KeyActions;
+    QString PrinterName;
+    QString PrinterFile;
+    QString PrinterCommand;
 
-	bool Automatic;
-	bool AutoCheck;
+    int MinWordLen;
+    int HyCount;
+    QString Language;
+    QHash<QString, QString> specialWords;
+    QSet<QString> ignoredWords;
 
-	QMap<QString,QString> GFontSub;
-	bool AutoSave;
-	int AutoSaveTime;
-	double DisScale;
-	QString DColorSet;
-	QStringList CustomColorSets;
-	bool PrPr_Mode;
-	bool Gcr_Mode;
-	bool PrPr_AntiAliasing;
-	bool PrPr_Transparency;
-	bool PrPr_C;
-	bool PrPr_M;
-	bool PrPr_Y;
-	bool PrPr_K;
-	bool PrPr_InkCoverage;
-	int PrPr_InkThreshold;
-	QString gs_exe;
-	bool gs_AntiAliasText;
-	bool gs_AntiAliasGraphics;
-	int gs_Resolution;
-	QString imageEditorExecutable;
-	QString extBrowserExecutable;
-	QStringList latexConfigs;
-	QMap<QString, QString> latexCommands;
-	QString latexEditorExecutable;
-	int latexResolution;
-	bool latexForceDpi;
-	bool latexStartWithEmptyFrames;
-	bool ClipMargin;
-	bool GCRMode;
-	QColor STEcolor;
-	QString STEfont;
-	MarginStruct scratch;
-	double GapHorizontal;
-	double GapVertical;
-	bool askBeforeSubstituite;
-	bool haveStylePreview;
-	bool showToolTips;
-	bool showMouseCoordinates;
-	// lorem ipsum
-	bool useStandardLI;
-	int paragraphsLI;
+    bool Automatic;
+    bool AutoCheck;
 
+    QMap<QString,QString> GFontSub;
+    bool AutoSave;
+    int AutoSaveTime;
+    double DisScale;
+    QString DColorSet;
+    QStringList CustomColorSets;
+    bool PrPr_Mode;
+    bool Gcr_Mode;
+    bool PrPr_AntiAliasing;
+    bool PrPr_Transparency;
+    bool PrPr_C;
+    bool PrPr_M;
+    bool PrPr_Y;
+    bool PrPr_K;
+    bool PrPr_InkCoverage;
+    int PrPr_InkThreshold;
+    QString gs_exe;
+    bool gs_AntiAliasText;
+    bool gs_AntiAliasGraphics;
+    int gs_Resolution;
+    QString imageEditorExecutable;
+    QString extBrowserExecutable;
+    QStringList latexConfigs;
+    QMap<QString, QString> latexCommands;
+    QString latexEditorExecutable;
+    int latexResolution;
+    bool latexForceDpi;
+    bool latexStartWithEmptyFrames;
+    bool ClipMargin;
+    bool GCRMode;
+    QColor STEcolor;
+    QString STEfont;
+    MarginStruct scratch;
+    double GapHorizontal;
+    double GapVertical;
+    bool askBeforeSubstituite;
+    bool haveStylePreview;
+    bool showToolTips;
+    bool showMouseCoordinates;
+    // lorem ipsum
+    bool useStandardLI;
+    int paragraphsLI;
 
-	bool stickyTools;
-	bool grayscaleIcons;
-	//TODO : Remove these no longer used items
-	//! System default QStyle name for current instance, seemingly unused
-	QString ui_SystemTheme;
+
+    bool stickyTools;
+    bool grayscaleIcons;
+    //TODO : Remove these no longer used items
+    //! System default QStyle name for current instance, seemingly unused
+    QString ui_SystemTheme;
 };
 
 #endif
Index: scribus/scfonts.cpp
===================================================================
--- scribus/scfonts.cpp	(revision 13952)
+++ scribus/scfonts.cpp	(revision 13953)
@@ -587,7 +587,7 @@
 		QString replFont;
 		if ((!prefsManager->appPrefs.GFontSub.contains(fontname)) || (!(*this)[prefsManager->appPrefs.GFontSub[fontname]].usable()))
 		{
-			replFont = doc ? doc->toolSettings.defFont : prefsManager->appPrefs.toolSettings.defFont;
+			replFont = doc ? doc->itemToolPrefs.defFont : prefsManager->appPrefs.itemToolPrefs.defFont;
 		}
 		else
 			replFont = prefsManager->appPrefs.GFontSub[fontname];
@@ -596,7 +596,7 @@
 	}
 	else if ( doc && !doc->UsedFonts.contains(fontname) )
 	{
-		doc->AddFont(fontname, qRound(doc->toolSettings.defSize / 10.0));
+		doc->AddFont(fontname, qRound(doc->itemToolPrefs.defSize / 10.0));
 	}
 	return (*this)[fontname];	
 }
Index: scribus/pageitem.cpp
===================================================================
--- scribus/pageitem.cpp	(revision 13952)
+++ scribus/pageitem.cpp	(revision 13953)
@@ -317,7 +317,7 @@
 	patternRotation = 0;
 	m_lineWidth = w2;
 	Oldm_lineWidth = w2;
-	PLineArt = Qt::PenStyle(m_Doc->toolSettings.dLineArt);
+	PLineArt = Qt::PenStyle(m_Doc->itemToolPrefs.dLineArt);
 	PLineEnd = Qt::FlatCap;
 	PLineJoin = Qt::MiterJoin;
 	Select = false;
@@ -334,7 +334,7 @@
 	MaxChars = 0;
 	Pfile = "";
 	pixm = ScImage();
-	pixm.imgInfo.lowResType = m_Doc->toolSettings.lowResType;
+	pixm.imgInfo.lowResType = m_Doc->itemToolPrefs.lowResType;
 	Pfile2 = "";
 	Pfile3 = "";
 	oldLocalScX = LocalScX = 1;
@@ -451,12 +451,12 @@
 	}
 	else
 	{
-		if (m_Doc->toolSettings.dBrush != CommonStrings::None)
+		if (m_Doc->itemToolPrefs.dBrush != CommonStrings::None)
 		{
-			const ScColor& col = m_Doc->PageColors[m_Doc->toolSettings.dBrush];
+			const ScColor& col = m_Doc->PageColors[m_Doc->itemToolPrefs.dBrush];
 			QColor qcol = ScColorEngine::getRGBColor(col, m_Doc);
-			fill_gradient.addStop(qcol, 0.0, 0.5, 1.0, m_Doc->toolSettings.dBrush, 100);
-			fill_gradient.addStop(qcol, 1.0, 0.5, 1.0, m_Doc->toolSettings.dBrush, 100);
+			fill_gradient.addStop(qcol, 0.0, 0.5, 1.0, m_Doc->itemToolPrefs.dBrush, 100);
+			fill_gradient.addStop(qcol, 1.0, 0.5, 1.0, m_Doc->itemToolPrefs.dBrush, 100);
 		}
 		else
 		{
@@ -469,12 +469,12 @@
 			}
 			else
 			{
-				if (m_Doc->toolSettings.dPen != CommonStrings::None)
+				if (m_Doc->itemToolPrefs.dPen != CommonStrings::None)
 				{
-					const ScColor& col = m_Doc->PageColors[m_Doc->toolSettings.dPen];
+					const ScColor& col = m_Doc->PageColors[m_Doc->itemToolPrefs.dPen];
 					QColor qcol = ScColorEngine::getRGBColor(col, m_Doc);
-					fill_gradient.addStop(qcol, 0.0, 0.5, 1.0, m_Doc->toolSettings.dPen, 100);
-					fill_gradient.addStop(qcol, 1.0, 0.5, 1.0, m_Doc->toolSettings.dPen, 100);
+					fill_gradient.addStop(qcol, 0.0, 0.5, 1.0, m_Doc->itemToolPrefs.dPen, 100);
+					fill_gradient.addStop(qcol, 1.0, 0.5, 1.0, m_Doc->itemToolPrefs.dPen, 100);
 				}
 				else if (m_Doc->PageColors.contains("Black"))
 				{
@@ -487,8 +487,8 @@
 		}
 	}
 	firstLineOffsetP = FLOPRealGlyphHeight;
-	Cols = m_Doc->toolSettings.dCols;
-	ColGap = m_Doc->toolSettings.dGap;
+	Cols = m_Doc->itemToolPrefs.dCols;
+	ColGap = m_Doc->itemToolPrefs.dGap;
 	LeftLink = 0;
 	RightLink = 0;
 	TopLink = 0;
@@ -510,8 +510,8 @@
 	ChangedMasterItem = false;
 	isEmbedded = false;
 	OnMasterPage = m_Doc->currentPage() ? m_Doc->currentPage()->pageName() : QString();
-	m_startArrowIndex = m_Doc->toolSettings.dStartArrow;
-	m_endArrowIndex = m_Doc->toolSettings.dEndArrow;
+	m_startArrowIndex = m_Doc->itemToolPrefs.dStartArrow;
+	m_endArrowIndex = m_Doc->itemToolPrefs.dEndArrow;
 	effectsInUse.clear();
 	//Page Item Attributes
 	pageItemAttributes.clear();
@@ -2278,15 +2278,15 @@
 				case ImageFrame:
 				case LatexFrame:
 				case OSGFrame:
-					tmp = m_Doc->toolSettings.dBrushPict;
+					tmp = m_Doc->itemToolPrefs.dBrushPict;
 				case TextFrame:
 				case PathText:
-					tmp = m_Doc->toolSettings.dTextBackGround;
+					tmp = m_Doc->itemToolPrefs.dTextBackGround;
 					break;
 				case Line:
 				case PolyLine:
 				case Polygon:
-					tmp = m_Doc->toolSettings.dBrush;
+					tmp = m_Doc->itemToolPrefs.dBrush;
 					break;
 				default:
 					break;
@@ -2381,17 +2381,17 @@
 			{
 				case TextFrame:
 				case PathText:
-					tmp = m_Doc->toolSettings.dTextLineColor;
+					tmp = m_Doc->itemToolPrefs.dTextLineColor;
 					break;
 				case Line:
-					tmp = m_Doc->toolSettings.dPenLine;
+					tmp = m_Doc->itemToolPrefs.dPenLine;
 					break;
 				case PolyLine:
 				case Polygon:
 				case ImageFrame:
 				case LatexFrame:
 				case OSGFrame:
-					tmp = m_Doc->toolSettings.dPen;
+					tmp = m_Doc->itemToolPrefs.dPen;
 					break;
 				default:
 					break;
@@ -2450,24 +2450,24 @@
 			{
 				case TextFrame:
 				case PathText:
-					lineColorVal = m_Doc->toolSettings.dTextLineColor;
+					lineColorVal = m_Doc->itemToolPrefs.dTextLineColor;
 					break;
 				case Line:
-					lineColorVal = m_Doc->toolSettings.dPenLine;
+					lineColorVal = m_Doc->itemToolPrefs.dPenLine;
 					break;
 				case PolyLine:
 				case Polygon:
 				case ImageFrame:
 				case LatexFrame:
 				case OSGFrame:
-					lineColorVal = m_Doc->toolSettings.dPen;
+					lineColorVal = m_Doc->itemToolPrefs.dPen;
 					break;
 				default:
 					break;
 			}
 		}
 		if (!m_Doc->PageColors.contains(lineColorVal))
-			lineColorVal = m_Doc->toolSettings.dPen;
+			lineColorVal = m_Doc->itemToolPrefs.dPen;
 		const ScColor& col = m_Doc->PageColors[lineColorVal];
 		strokeQColor = ScColorEngine::getShadeColorProof(col, m_Doc, lineShadeVal);
 	}
@@ -2489,15 +2489,15 @@
 				case ImageFrame:
 				case LatexFrame:
 				case OSGFrame:
-					fillColorVal = m_Doc->toolSettings.dBrushPict;
+					fillColorVal = m_Doc->itemToolPrefs.dBrushPict;
 				case TextFrame:
 				case PathText:
-					fillColorVal = m_Doc->toolSettings.dTextBackGround;
+					fillColorVal = m_Doc->itemToolPrefs.dTextBackGround;
 					break;
 				case Line:
 				case PolyLine:
 				case Polygon:
-					fillColorVal = m_Doc->toolSettings.dBrush;
+					fillColorVal = m_Doc->itemToolPrefs.dBrush;
 					break;
 				default:
 					break;
@@ -4693,7 +4693,7 @@
 			oldLocalX = LocalX = 0;
 			oldLocalY = LocalY = 0;
 			
-			if ((m_Doc->toolSettings.useEmbeddedPath) && (!pixm.imgInfo.clipPath.isEmpty()))
+			if ((m_Doc->itemToolPrefs.useEmbeddedPath) && (!pixm.imgInfo.clipPath.isEmpty()))
 			{
 				pixm.imgInfo.usedPath = pixm.imgInfo.clipPath;
 				clPath = pixm.imgInfo.clipPath;
Index: scribus/scribusdoc.h
===================================================================
--- scribus/scribusdoc.h	(revision 13952)
+++ scribus/scribusdoc.h	(revision 13953)
@@ -1001,7 +1001,9 @@
 
 	TypoPrefs typographicSettings;
 	GuidesPrefs guidesSettings;
-	ToolPrefs toolSettings;
+	ItemToolPrefs itemToolPrefs;
+	OperatorToolPrefs opToolPrefs;
+
 	QMap<QString, CheckerPrefs> checkerProfiles;
 	QString curCheckProfile;
 	/** \brief Letztes Element fuer AutoTextrahmen */
Index: scribus/scribusview.cpp
===================================================================
--- scribus/scribusview.cpp	(revision 13952)
+++ scribus/scribusview.cpp	(revision 13953)
@@ -211,7 +211,7 @@
 	previewQualitySwitcher->addItem(tr("Normal"));
 	previewQualitySwitcher->addItem(tr("Low"));
 // 	setCurrentComboItem(previewQualitySwitcher, tr("Normal"));
-	previewQualitySwitcher->setCurrentIndex(Prefs->toolSettings.lowResType);
+	previewQualitySwitcher->setCurrentIndex(Prefs->itemToolPrefs.lowResType);
 
 	zoomSpinBox = new ScrSpinBox( 10, 3200, this, 6 );
 	zoomSpinBox->setTabAdvance(false);
@@ -978,7 +978,7 @@
 		//SeleItemPos is from 1.2.x. Needs reenabling for dragging *TO* a frame
 		if ((fi.exists()) && (img) && !selectedItemByDrag && !vectorFile)// && (!SeleItemPos(e->pos())))
 		{
-			int z = Doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, dropPosDoc.x(), dropPosDoc.y(), 1, 1, Doc->toolSettings.dWidth, Doc->toolSettings.dBrushPict, CommonStrings::None, true);
+			int z = Doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, dropPosDoc.x(), dropPosDoc.y(), 1, 1, Doc->itemToolPrefs.dWidth, Doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 			PageItem *b = Doc->Items->at(z);
 			b->LayerID = Doc->activeLayer();
 			Doc->LoadPict(url.toLocalFile(), b->ItemNr);
@@ -2731,7 +2731,7 @@
 	}
 	else
 		rememberOldZoomLocation(mx,my);
-	double newScale = m_canvas->scale() * static_cast<double>(Doc->toolSettings.magStep)/100.0;
+	double newScale = m_canvas->scale() * static_cast<double>(Doc->opToolPrefs.magStep)/100.0;
 	zoom(oldX, oldY, newScale, true);
 }
 
@@ -2749,7 +2749,7 @@
 	}
 	else
 		rememberOldZoomLocation(mx,my);
-	double newScale = m_canvas->scale() / (static_cast<double>(Doc->toolSettings.magStep)/100.0);
+	double newScale = m_canvas->scale() / (static_cast<double>(Doc->opToolPrefs.magStep)/100.0);
 	zoom(oldX, oldY, newScale, true);
 }
 
@@ -3444,7 +3444,7 @@
 		break;
 	//
 	case PageItem::ImageFrame:
-		z = Doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, x, y, w, h, 1, Doc->toolSettings.dBrushPict, CommonStrings::None, true);
+		z = Doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, x, y, w, h, 1, Doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		undoManager->setUndoEnabled(false);
 		Doc->Items->at(z)->setImageXYScale(Buffer->LocalScX, Buffer->LocalScY);
 		Doc->Items->at(z)->setImageXYOffset(Buffer->LocalX, Buffer->LocalY);
@@ -3575,7 +3575,7 @@
 			if (Doc->AllFonts->contains(Buffer->IFont))
 				pstyle.charStyle().setFont((*Doc->AllFonts)[Buffer->IFont]);
 			else
-				pstyle.charStyle().setFont((*Doc->AllFonts)[Doc->toolSettings.defFont]);
+				pstyle.charStyle().setFont((*Doc->AllFonts)[Doc->itemToolPrefs.defFont]);
 			pstyle.charStyle().setFontSize(Buffer->ISize);
 			pstyle.charStyle().setFillColor(Buffer->TxtFill);
 			pstyle.charStyle().setStrokeColor(Buffer->TxtStroke);
@@ -3611,7 +3611,7 @@
 		break;
 	case PageItem::LatexFrame:
 		{
-		z = Doc->itemAdd(PageItem::LatexFrame, PageItem::Unspecified, x, y, w, h, 1, Doc->toolSettings.dBrushPict, CommonStrings::None, true);
+		z = Doc->itemAdd(PageItem::LatexFrame, PageItem::Unspecified, x, y, w, h, 1, Doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		undoManager->setUndoEnabled(false);
 		Doc->Items->at(z)->setImageXYScale(Buffer->LocalScX, Buffer->LocalScY);
 		Doc->Items->at(z)->setImageXYOffset(Buffer->LocalX, Buffer->LocalY);
@@ -4772,15 +4772,16 @@
 void ScribusView::setScale(const double newScale)
 {
 	double Scale=newScale;
-	if (Scale < Doc->toolSettings.magMin*Prefs->DisScale/100.0)
-		Scale=Doc->toolSettings.magMin*Prefs->DisScale/100.0;
+	double v=Doc->opToolPrefs.magMin*Prefs->DisScale/100.0;
+	if (Scale < v)
+		Scale=v;
+	double v2=Doc->opToolPrefs.magMax*Prefs->DisScale/100.0;
+	if (Scale > v2)
+		Scale=v2;
+	double v3=32*Prefs->DisScale;
+	if (Scale > v3)
+		Scale=v3;
 
-	if (Scale > Doc->toolSettings.magMax*Prefs->DisScale/100.0)
-		Scale=Doc->toolSettings.magMax*Prefs->DisScale/100.0;
-
-	if (Scale > 32*Prefs->DisScale)
-		Scale=32*Prefs->DisScale;
-
 	m_canvas->setScale(Scale);
 
 	zoomSpinBox->blockSignals(true);
Index: scribus/pageitem_textframe.cpp
===================================================================
--- scribus/pageitem_textframe.cpp	(revision 13952)
+++ scribus/pageitem_textframe.cpp	(revision 13953)
@@ -1413,15 +1413,16 @@
 					tTabValues = style.tabValues();
 					if (tTabValues.isEmpty())
 					{
+						double dtw=m_Doc->itemToolPrefs.dTabWidth;
 						if ((current.xPos - current.colLeft) != 0)
 						{
-							if (current.xPos == current.colLeft + ceil((current.xPos-current.colLeft) / m_Doc->toolSettings.dTabWidth) * m_Doc->toolSettings.dTabWidth)
-								current.xPos += m_Doc->toolSettings.dTabWidth;
+							if (current.xPos == current.colLeft + ceil((current.xPos-current.colLeft) / dtw) * dtw)
+								current.xPos += dtw;
 							else
-								current.xPos = current.colLeft + ceil((current.xPos-current.colLeft) / m_Doc->toolSettings.dTabWidth) * m_Doc->toolSettings.dTabWidth;
+								current.xPos = current.colLeft + ceil((current.xPos-current.colLeft) / dtw) * dtw;
 						}
 						else
-							current.xPos = current.colLeft + m_Doc->toolSettings.dTabWidth;
+							current.xPos = current.colLeft + dtw;
 						tabs.status = TabNONE;
 						tabs.active = false;
 					}
@@ -1440,7 +1441,7 @@
 						}
 						tabs.active = (tabs.status != TabLEFT);
 						if (tCurX == oCurX-wide)
-							current.xPos = current.colLeft + ceil((current.xPos-current.colLeft) / m_Doc->toolSettings.dTabWidth) * m_Doc->toolSettings.dTabWidth;
+							current.xPos = current.colLeft + ceil((current.xPos-current.colLeft) / m_Doc->itemToolPrefs.dTabWidth) * m_Doc->itemToolPrefs.dTabWidth;
 						else
 							current.xPos = current.colLeft + tCurX;
 						
Index: scribus/ui/polygonwidget.h
===================================================================
--- scribus/ui/polygonwidget.h	(revision 13952)
+++ scribus/ui/polygonwidget.h	(revision 13953)
@@ -21,7 +21,7 @@
 	double GetZeroFaktor();
 	double GetMaxFaktor();
 	void getValues(int* polyC, int* polyFd, double* polyF, bool* polyS, double* polyR, double* polyCurvature);
-	void restoreDefaults(struct ToolPrefs *prefsData);
+	void restoreDefaults(struct ItemToolPrefs *prefsData);
 	double PFactor;
 
 public slots:
Index: scribus/ui/polygonwidget.cpp
===================================================================
--- scribus/ui/polygonwidget.cpp	(revision 13952)
+++ scribus/ui/polygonwidget.cpp	(revision 13953)
@@ -52,7 +52,7 @@
 	connect(CurvatureSlider, SIGNAL(valueChanged(int)), this, SLOT(UpdatePreView()));
 }
 
-void PolygonWidget::restoreDefaults(struct ToolPrefs *prefsData)
+void PolygonWidget::restoreDefaults(struct ItemToolPrefs *prefsData)
 {
 	disconnect(Faktor, SIGNAL(valueChanged(int)), this, SLOT(ValFromSpin(int)));
 	disconnect(Faktor2, SIGNAL(valueChanged(int)), this, SLOT(ValFromSpin2(int)));
Index: scribus/ui/tabtools.h
===================================================================
--- scribus/ui/tabtools.h	(revision 13952)
+++ scribus/ui/tabtools.h	(revision 13953)
@@ -40,10 +40,10 @@
 	Q_OBJECT
 
 public:
-	TabTools( QWidget* parent, struct ToolPrefs *prefsData, int unitIndex, ScribusDoc* doc);
+	TabTools( QWidget* parent, struct ItemToolPrefs *prefsData, int unitIndex, ScribusDoc* doc);
 	~TabTools() {};
 
-	void restoreDefaults(struct ToolPrefs *prefsData, int unitIndex);
+	void restoreDefaults(struct ItemToolPrefs *itemPrefsData, struct OperatorToolPrefs *opPrefsData, int unitIndex);
 
 	/*! \brief Enable sample rendering.
 	It's called when user selects this panel in preferences. First painting is very slow
Index: scribus/ui/prefs.cpp
===================================================================
--- scribus/ui/prefs.cpp	(revision 13952)
+++ scribus/ui/prefs.cpp	(revision 13953)
@@ -78,13 +78,13 @@
 	tabDocument = new TabDocument( prefsWidgets, "tabDocument" );
 	addItem( tr("Document"), loadIcon("scribusdoc.png"), tabDocument);
 
-	tabGuides = new TabGuides(prefsWidgets, &prefsData->guidesPrefs, &prefsData->typographicSettings, docUnitIndex);
+	tabGuides = new TabGuides(prefsWidgets, &prefsData->guidesPrefs, &prefsData->typoPrefs, docUnitIndex);
 	addItem( tr("Guides"), loadIcon("guides.png"), tabGuides);
 
-	tabTypo = new TabTypograpy(prefsWidgets, &prefsData->typographicSettings);
+	tabTypo = new TabTypograpy(prefsWidgets, &prefsData->typoPrefs);
 	addItem( tr("Typography"), loadIcon("typography.png"), tabTypo);
 
-	tabTools = new TabTools(prefsWidgets, &prefsData->toolSettings, docUnitIndex, ap->doc);
+	tabTools = new TabTools(prefsWidgets, &prefsData->itemToolPrefs, docUnitIndex, ap->doc);
 	addItem( tr("Tools"), loadIcon("tools.png"), tabTools);
 
 	tabHyphenator = new HySettings(prefsWidgets/*, &ap->LangTransl*/);
@@ -206,9 +206,9 @@
 	tabView->gapVertical->setValue(prefsData->GapVertical); // * unitRatio);
 	tabScrapbook->restoreDefaults(prefsData);
 	tabHyphenator->restoreDefaults(prefsData);
-	tabGuides->restoreDefaults(&prefsData->guidesPrefs, &prefsData->typographicSettings, docUnitIndex);
-	tabTypo->restoreDefaults(&prefsData->typographicSettings);
-	tabTools->restoreDefaults(&prefsData->toolSettings, docUnitIndex);
+	tabGuides->restoreDefaults(&prefsData->guidesPrefs, &prefsData->typoPrefs, docUnitIndex);
+	tabTypo->restoreDefaults(&prefsData->typoPrefs);
+	tabTools->restoreDefaults(&prefsData->itemToolPrefs, &prefsData->opToolPrefs, docUnitIndex);
 	// main performance issue in availFonts->GetFonts(HomeP)!
 	// no prefsData here
 	tabFonts->restoreDefaults();
@@ -391,12 +391,12 @@
 	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);
+	tabTools->polyWidget->getValues(&prefsManager->appPrefs.itemToolPrefs.polyC,
+									&prefsManager->appPrefs.itemToolPrefs.polyFd,
+									&prefsManager->appPrefs.itemToolPrefs.polyF,
+									&prefsManager->appPrefs.itemToolPrefs.polyS,
+									&prefsManager->appPrefs.itemToolPrefs.polyR,
+									&prefsManager->appPrefs.itemToolPrefs.polyCurvature);
 
 	prefsManager->appPrefs.docSetupPrefs.pageSize = tabDocument->prefsPageSizeName;
 	prefsManager->appPrefs.docSetupPrefs.pageOrientation = tabDocument->pageOrientationComboBox->currentIndex();
@@ -439,8 +439,8 @@
 
 	prefsManager->appPrefs.docSetupPrefs.docUnitIndex = tabDocument->unitCombo->currentIndex();
 
-	prefsManager->appPrefs.toolSettings.defFont = tabTools->fontComboText->currentText();
-	prefsManager->appPrefs.toolSettings.defSize = tabTools->sizeComboText->currentText().left(2).toInt() * 10;
+	prefsManager->appPrefs.itemToolPrefs.defFont = tabTools->fontComboText->currentText();
+	prefsManager->appPrefs.itemToolPrefs.defSize = tabTools->sizeComboText->currentText().left(2).toInt() * 10;
 
 	prefsManager->appPrefs.guidesPrefs.marginsShown = tabGuides->marginBox->isChecked();
 	prefsManager->appPrefs.guidesPrefs.gridShown = tabGuides->checkGrid->isChecked();
@@ -457,85 +457,85 @@
 	prefsManager->appPrefs.guidesPrefs.baselineGridColor = 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.typoPrefs.valueSuperScript = tabTypo->superDisplacement->value();
+	prefsManager->appPrefs.typoPrefs.scalingSuperScript = tabTypo->superScaling->value();
+	prefsManager->appPrefs.typoPrefs.valueSubScript = tabTypo->subDisplacement->value();
+	prefsManager->appPrefs.typoPrefs.scalingSubScript = tabTypo->subScaling->value();
+	prefsManager->appPrefs.typoPrefs.valueSmallCaps = tabTypo->capsScaling->value();
+	prefsManager->appPrefs.typoPrefs.autoLineSpacing = tabTypo->autoLine->value();
 	prefsManager->appPrefs.guidesPrefs.valueBaselineGrid = tabGuides->baseGrid->value(); // / prefsUnitRatio;
 	prefsManager->appPrefs.guidesPrefs.offsetBaselineGrid = 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();
+	prefsManager->appPrefs.typoPrefs.valueUnderlinePos = qRound(tabTypo->underlinePos->value() * 10);
+	prefsManager->appPrefs.typoPrefs.valueUnderlineWidth = qRound(tabTypo->underlineWidth->value() * 10);
+	prefsManager->appPrefs.typoPrefs.valueStrikeThruPos = qRound(tabTypo->strikethruPos->value() * 10);
+	prefsManager->appPrefs.typoPrefs.valueStrikeThruWidth = qRound(tabTypo->strikethruWidth->value() * 10);
+	prefsManager->appPrefs.itemToolPrefs.dTextBackGround = tabTools->colorComboTextBackground->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dTextBackGround == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dTextBackGround = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.dTextLineColor = tabTools->colorComboTextLine->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dTextLineColor == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dTextLineColor = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.dTextBackGroundShade = tabTools->shadingTextBack->value();
+	prefsManager->appPrefs.itemToolPrefs.dTextLineShade = tabTools->shadingTextLine->value();
+	prefsManager->appPrefs.itemToolPrefs.dTextPenShade = tabTools->shadingText->value();
+	prefsManager->appPrefs.itemToolPrefs.dTextStrokeShade = tabTools->shadingTextStroke->value();
+	prefsManager->appPrefs.itemToolPrefs.dPen = tabTools->colorComboLineShape->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dPen == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dPen = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.dPenText = tabTools->colorComboText->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dPenText == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dPenText = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.dStrokeText = tabTools->colorComboStrokeText->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dStrokeText == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dStrokeText = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.dCols = tabTools->columnsText->value();
+	prefsManager->appPrefs.itemToolPrefs.dGap = tabTools->gapText->value() / prefsUnitRatio;
+	prefsManager->appPrefs.itemToolPrefs.dTabWidth = tabTools->gapTab->value() / prefsUnitRatio;
+	prefsManager->appPrefs.itemToolPrefs.dBrush = tabTools->comboFillShape->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dBrush == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dBrush = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.dShade = tabTools->shadingFillShape->value();
+	prefsManager->appPrefs.itemToolPrefs.dShade2 = tabTools->shadingLineShape->value();
 	switch (tabTools->tabFillCombo->currentIndex())
 	{
 		case 0:
-			prefsManager->appPrefs.toolSettings.tabFillChar = "";
+			prefsManager->appPrefs.itemToolPrefs.tabFillChar = "";
 			break;
 		case 1:
-			prefsManager->appPrefs.toolSettings.tabFillChar = ".";
+			prefsManager->appPrefs.itemToolPrefs.tabFillChar = ".";
 			break;
 		case 2:
-			prefsManager->appPrefs.toolSettings.tabFillChar = "-";
+			prefsManager->appPrefs.itemToolPrefs.tabFillChar = "-";
 			break;
 		case 3:
-			prefsManager->appPrefs.toolSettings.tabFillChar = "_";
+			prefsManager->appPrefs.itemToolPrefs.tabFillChar = "_";
 			break;
 		case 4:
-			prefsManager->appPrefs.toolSettings.tabFillChar = tabTools->tabFillCombo->currentText().right(1);
+			prefsManager->appPrefs.itemToolPrefs.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();
+	prefsManager->appPrefs.itemToolPrefs.dLineArt = static_cast<Qt::PenStyle>(tabTools->comboStyleShape->currentIndex()) + 1;
+	prefsManager->appPrefs.itemToolPrefs.dWidth = tabTools->lineWidthShape->value();
+	prefsManager->appPrefs.itemToolPrefs.dPenLine = tabTools->colorComboLine->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dPenLine == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dPenLine = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.dShadeLine = tabTools->shadingLine->value();
+	prefsManager->appPrefs.itemToolPrefs.dLstyleLine = static_cast<Qt::PenStyle>(tabTools->comboStyleLine->currentIndex()) + 1;
+	prefsManager->appPrefs.itemToolPrefs.dWidthLine = tabTools->lineWidthLine->value();
+	prefsManager->appPrefs.itemToolPrefs.dStartArrow = tabTools->startArrow->currentIndex();
+	prefsManager->appPrefs.itemToolPrefs.dEndArrow = tabTools->endArrow->currentIndex();
+	prefsManager->appPrefs.opToolPrefs.magMin = tabTools->minimumZoom->value();
+	prefsManager->appPrefs.opToolPrefs.magMax = tabTools->maximumZoom->value();
+	prefsManager->appPrefs.opToolPrefs.magStep = tabTools->zoomStep->value();
+	prefsManager->appPrefs.itemToolPrefs.dBrushPict = tabTools->comboFillImage->currentText();
+	if (prefsManager->appPrefs.itemToolPrefs.dBrushPict == CommonStrings::tr_NoneColor)
+		prefsManager->appPrefs.itemToolPrefs.dBrushPict = CommonStrings::None;
+	prefsManager->appPrefs.itemToolPrefs.shadePict = tabTools->shadingFillImage->value();
+	prefsManager->appPrefs.itemToolPrefs.scaleX = static_cast<double>(tabTools->scalingHorizontal->value()) / 100.0;
+	prefsManager->appPrefs.itemToolPrefs.scaleY = static_cast<double>(tabTools->scalingVertical->value()) / 100.0;
+	prefsManager->appPrefs.itemToolPrefs.scaleType = tabTools->buttonGroup3->isChecked();
+	prefsManager->appPrefs.itemToolPrefs.aspectRatio = tabTools->checkRatioImage->isChecked();
+	prefsManager->appPrefs.itemToolPrefs.useEmbeddedPath = tabTools->embeddedPath->isChecked();
 	int haRes = 0;
 	if (tabTools->checkFullRes->isChecked())
 		haRes = 0;
@@ -543,10 +543,10 @@
 		haRes = 1;
 	if (tabTools->checkHalfRes->isChecked())
 		haRes = 2;
-	prefsManager->appPrefs.toolSettings.lowResType = haRes;
-	prefsManager->appPrefs.toolSettings.dispX = tabTools->genDispX->value();
-	prefsManager->appPrefs.toolSettings.dispY = tabTools->genDispY->value();
-	prefsManager->appPrefs.toolSettings.constrain = tabTools->genRot->value();
+	prefsManager->appPrefs.itemToolPrefs.lowResType = haRes;
+	prefsManager->appPrefs.opToolPrefs.dispX = tabTools->genDispX->value();
+	prefsManager->appPrefs.opToolPrefs.dispY = tabTools->genDispY->value();
+	prefsManager->appPrefs.opToolPrefs.constrain = tabTools->genRot->value();
 	prefsManager->appPrefs.AutoSave = tabDocument->GroupAS->isChecked();
 	prefsManager->appPrefs.AutoSaveTime = tabDocument->ASTime->value() * 60 * 1000;
 	prefsManager->appPrefs.MinWordLen = tabHyphenator->getWordLen();
Index: scribus/ui/hruler.cpp
===================================================================
--- scribus/ui/hruler.cpp	(revision 13952)
+++ scribus/ui/hruler.cpp	(revision 13953)
@@ -170,7 +170,7 @@
 			ParagraphStyle::TabRecord tb;
 			tb.tabPosition = newY / Scaling;
 			tb.tabType = 0;
-			tb.tabFillChar = currDoc->toolSettings.tabFillChar[0];
+			tb.tabFillChar = currDoc->itemToolPrefs.tabFillChar[0];
 			TabValues.prepend(tb);
 			ActTab = 0;
 			RulerCode = rc_tab;
Index: scribus/ui/modetoolbar.cpp
===================================================================
--- scribus/ui/modetoolbar.cpp	(revision 13952)
+++ scribus/ui/modetoolbar.cpp	(revision 13953)
@@ -89,9 +89,9 @@
 
 void ModeToolBar::GetPolyProps()
 {
-	PolygonProps* dia = new PolygonProps(this, m_ScMW->doc->toolSettings.polyC, m_ScMW->doc->toolSettings.polyFd, m_ScMW->doc->toolSettings.polyF, m_ScMW->doc->toolSettings.polyS, m_ScMW->doc->toolSettings.polyR, m_ScMW->doc->toolSettings.polyCurvature);
+	PolygonProps* dia = new PolygonProps(this, m_ScMW->doc->itemToolPrefs.polyC, m_ScMW->doc->itemToolPrefs.polyFd, m_ScMW->doc->itemToolPrefs.polyF, m_ScMW->doc->itemToolPrefs.polyS, m_ScMW->doc->itemToolPrefs.polyR, m_ScMW->doc->itemToolPrefs.polyCurvature);
 	if (dia->exec())
-		dia->getValues(&m_ScMW->doc->toolSettings.polyC, &m_ScMW->doc->toolSettings.polyFd, &m_ScMW->doc->toolSettings.polyF, &m_ScMW->doc->toolSettings.polyS, &m_ScMW->doc->toolSettings.polyR, &m_ScMW->doc->toolSettings.polyCurvature);
+		dia->getValues(&m_ScMW->doc->itemToolPrefs.polyC, &m_ScMW->doc->itemToolPrefs.polyFd, &m_ScMW->doc->itemToolPrefs.polyF, &m_ScMW->doc->itemToolPrefs.polyS, &m_ScMW->doc->itemToolPrefs.polyR, &m_ScMW->doc->itemToolPrefs.polyCurvature);
 	delete dia;
 }
 
Index: scribus/ui/reformdoc.cpp
===================================================================
--- scribus/ui/reformdoc.cpp	(revision 13952)
+++ scribus/ui/reformdoc.cpp	(revision 13953)
@@ -78,7 +78,7 @@
 	tabTypo = new TabTypograpy( prefsWidgets, &doc->typographicSettings);
 	addItem( tr("Typography"), loadIcon("typography.png"), tabTypo);
 
-	tabTools = new TabTools( prefsWidgets, &doc->toolSettings, docUnitIndex, doc);
+	tabTools = new TabTools( prefsWidgets, &doc->itemToolPrefs, docUnitIndex, doc);
 	addItem( tr("Tools"), loadIcon("tools.png"), tabTools);
 
 	tabHyphenator = new HySettings(prefsWidgets/*, &ScMW->LangTransl*/);
@@ -149,7 +149,7 @@
 	tabHyphenator->restoreDefaults(currDoc);
 	tabGuides->restoreDefaults(&currDoc->guidesSettings, &currDoc->typographicSettings, docUnitIndex);
 	tabTypo->restoreDefaults(&currDoc->typographicSettings);
-	tabTools->restoreDefaults(&currDoc->toolSettings, docUnitIndex);
+	tabTools->restoreDefaults(&currDoc->itemToolPrefs, &currDoc->opToolPrefs, docUnitIndex);
 	tabFonts->restoreDefaults();
 	tabDocChecker->restoreDefaults(&currDoc->checkerProfiles, currDoc->curCheckProfile);
 	tabPDF->restoreDefaults(currDoc->PDF_Options, PrefsManager::instance()->appPrefs.AvailFonts,
@@ -343,75 +343,75 @@
 	currDoc->typographicSettings.valueUnderlineWidth = qRound(tabTypo->underlineWidth->value() * 10);
 	currDoc->typographicSettings.valueStrikeThruPos = qRound(tabTypo->strikethruPos->value() * 10);
 	currDoc->typographicSettings.valueStrikeThruWidth = qRound(tabTypo->strikethruWidth->value() * 10);
-	currDoc->toolSettings.defFont = tabTools->fontComboText->currentText();
-	currDoc->toolSettings.defSize = tabTools->sizeComboText->currentText().left(2).toInt() * 10;
-	currDoc->toolSettings.dStrokeText = tabTools->colorComboStrokeText->currentText();
+	currDoc->itemToolPrefs.defFont = tabTools->fontComboText->currentText();
+	currDoc->itemToolPrefs.defSize = tabTools->sizeComboText->currentText().left(2).toInt() * 10;
+	currDoc->itemToolPrefs.dStrokeText = tabTools->colorComboStrokeText->currentText();
 	switch (tabTools->tabFillCombo->currentIndex())
 	{
 		case 0:
-			currDoc->toolSettings.tabFillChar = "";
+			currDoc->itemToolPrefs.tabFillChar = "";
 			break;
 		case 1:
-			currDoc->toolSettings.tabFillChar = ".";
+			currDoc->itemToolPrefs.tabFillChar = ".";
 			break;
 		case 2:
-			currDoc->toolSettings.tabFillChar = "-";
+			currDoc->itemToolPrefs.tabFillChar = "-";
 			break;
 		case 3:
-			currDoc->toolSettings.tabFillChar = "_";
+			currDoc->itemToolPrefs.tabFillChar = "_";
 			break;
 		case 4:
-			currDoc->toolSettings.tabFillChar = tabTools->tabFillCombo->currentText().right(1);
+			currDoc->itemToolPrefs.tabFillChar = tabTools->tabFillCombo->currentText().right(1);
 			break;
 	}
-	if (currDoc->toolSettings.dStrokeText == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dStrokeText = CommonStrings::None;
-	currDoc->toolSettings.dPenText = tabTools->colorComboText->currentText();
-	if (currDoc->toolSettings.dPenText == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dPenText = CommonStrings::None;
-	currDoc->toolSettings.dTextBackGround = tabTools->colorComboTextBackground->currentText();
-	if (currDoc->toolSettings.dTextBackGround == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dTextBackGround = CommonStrings::None;
-	currDoc->toolSettings.dTextLineColor = tabTools->colorComboTextLine->currentText();
-	if (currDoc->toolSettings.dTextLineColor == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dTextLineColor = CommonStrings::None;
-	currDoc->toolSettings.dTextBackGroundShade = tabTools->shadingTextBack->value();
-	currDoc->toolSettings.dTextLineShade = tabTools->shadingTextLine->value();
-	currDoc->toolSettings.dTextPenShade = tabTools->shadingText->value();
-	currDoc->toolSettings.dTextStrokeShade = tabTools->shadingTextStroke->value();
-	currDoc->toolSettings.dCols = tabTools->columnsText->value();
-	currDoc->toolSettings.dGap = tabTools->gapText->value() / currDoc->unitRatio();
-	currDoc->toolSettings.dTabWidth = tabTools->gapTab->value() / currDoc->unitRatio();
-	currDoc->toolSettings.dPen = tabTools->colorComboLineShape->currentText();
-	if (currDoc->toolSettings.dPen == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dPen = CommonStrings::None;
-	currDoc->toolSettings.dBrush = tabTools->comboFillShape->currentText();
-	if (currDoc->toolSettings.dBrush == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dBrush = CommonStrings::None;
-	currDoc->toolSettings.dShade = tabTools->shadingFillShape->value();
-	currDoc->toolSettings.dShade2 = tabTools->shadingLineShape->value();
-	currDoc->toolSettings.dLineArt = static_cast<Qt::PenStyle>(tabTools->comboStyleShape->currentIndex()) + 1;
-	currDoc->toolSettings.dWidth = tabTools->lineWidthShape->value();
-	currDoc->toolSettings.dStartArrow = tabTools->startArrow->currentIndex();
-	currDoc->toolSettings.dEndArrow = tabTools->endArrow->currentIndex();
-	currDoc->toolSettings.magMin = tabTools->minimumZoom->value();
-	currDoc->toolSettings.magMax = tabTools->maximumZoom->value();
-	currDoc->toolSettings.magStep = tabTools->zoomStep->value();
-	currDoc->toolSettings.dPenLine = tabTools->colorComboLine->currentText();
-	if (currDoc->toolSettings.dPenLine == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dPenLine = CommonStrings::None;
-	currDoc->toolSettings.dShadeLine = tabTools->shadingLine->value();
-	currDoc->toolSettings.dLstyleLine = static_cast<Qt::PenStyle>(tabTools->comboStyleLine->currentIndex()) + 1;
-	currDoc->toolSettings.dWidthLine = tabTools->lineWidthLine->value();
-	currDoc->toolSettings.dBrushPict = tabTools->comboFillImage->currentText();
-	if (currDoc->toolSettings.dBrushPict == CommonStrings::tr_NoneColor)
-		currDoc->toolSettings.dBrushPict = CommonStrings::None;
-	currDoc->toolSettings.shadePict = tabTools->shadingFillImage->value();
-	currDoc->toolSettings.scaleX = static_cast<double>(tabTools->scalingHorizontal->value()) / 100.0;
-	currDoc->toolSettings.scaleY = static_cast<double>(tabTools->scalingVertical->value()) / 100.0;
-	currDoc->toolSettings.scaleType = tabTools->buttonGroup3->isChecked();
-	currDoc->toolSettings.aspectRatio = tabTools->checkRatioImage->isChecked();
-	currDoc->toolSettings.useEmbeddedPath = tabTools->embeddedPath->isChecked();
+	if (currDoc->itemToolPrefs.dStrokeText == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dStrokeText = CommonStrings::None;
+	currDoc->itemToolPrefs.dPenText = tabTools->colorComboText->currentText();
+	if (currDoc->itemToolPrefs.dPenText == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dPenText = CommonStrings::None;
+	currDoc->itemToolPrefs.dTextBackGround = tabTools->colorComboTextBackground->currentText();
+	if (currDoc->itemToolPrefs.dTextBackGround == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dTextBackGround = CommonStrings::None;
+	currDoc->itemToolPrefs.dTextLineColor = tabTools->colorComboTextLine->currentText();
+	if (currDoc->itemToolPrefs.dTextLineColor == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dTextLineColor = CommonStrings::None;
+	currDoc->itemToolPrefs.dTextBackGroundShade = tabTools->shadingTextBack->value();
+	currDoc->itemToolPrefs.dTextLineShade = tabTools->shadingTextLine->value();
+	currDoc->itemToolPrefs.dTextPenShade = tabTools->shadingText->value();
+	currDoc->itemToolPrefs.dTextStrokeShade = tabTools->shadingTextStroke->value();
+	currDoc->itemToolPrefs.dCols = tabTools->columnsText->value();
+	currDoc->itemToolPrefs.dGap = tabTools->gapText->value() / currDoc->unitRatio();
+	currDoc->itemToolPrefs.dTabWidth = tabTools->gapTab->value() / currDoc->unitRatio();
+	currDoc->itemToolPrefs.dPen = tabTools->colorComboLineShape->currentText();
+	if (currDoc->itemToolPrefs.dPen == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dPen = CommonStrings::None;
+	currDoc->itemToolPrefs.dBrush = tabTools->comboFillShape->currentText();
+	if (currDoc->itemToolPrefs.dBrush == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dBrush = CommonStrings::None;
+	currDoc->itemToolPrefs.dShade = tabTools->shadingFillShape->value();
+	currDoc->itemToolPrefs.dShade2 = tabTools->shadingLineShape->value();
+	currDoc->itemToolPrefs.dLineArt = static_cast<Qt::PenStyle>(tabTools->comboStyleShape->currentIndex()) + 1;
+	currDoc->itemToolPrefs.dWidth = tabTools->lineWidthShape->value();
+	currDoc->itemToolPrefs.dStartArrow = tabTools->startArrow->currentIndex();
+	currDoc->itemToolPrefs.dEndArrow = tabTools->endArrow->currentIndex();
+	currDoc->opToolPrefs.magMin = tabTools->minimumZoom->value();
+	currDoc->opToolPrefs.magMax = tabTools->maximumZoom->value();
+	currDoc->opToolPrefs.magStep = tabTools->zoomStep->value();
+	currDoc->itemToolPrefs.dPenLine = tabTools->colorComboLine->currentText();
+	if (currDoc->itemToolPrefs.dPenLine == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dPenLine = CommonStrings::None;
+	currDoc->itemToolPrefs.dShadeLine = tabTools->shadingLine->value();
+	currDoc->itemToolPrefs.dLstyleLine = static_cast<Qt::PenStyle>(tabTools->comboStyleLine->currentIndex()) + 1;
+	currDoc->itemToolPrefs.dWidthLine = tabTools->lineWidthLine->value();
+	currDoc->itemToolPrefs.dBrushPict = tabTools->comboFillImage->currentText();
+	if (currDoc->itemToolPrefs.dBrushPict == CommonStrings::tr_NoneColor)
+		currDoc->itemToolPrefs.dBrushPict = CommonStrings::None;
+	currDoc->itemToolPrefs.shadePict = tabTools->shadingFillImage->value();
+	currDoc->itemToolPrefs.scaleX = static_cast<double>(tabTools->scalingHorizontal->value()) / 100.0;
+	currDoc->itemToolPrefs.scaleY = static_cast<double>(tabTools->scalingVertical->value()) / 100.0;
+	currDoc->itemToolPrefs.scaleType = tabTools->buttonGroup3->isChecked();
+	currDoc->itemToolPrefs.aspectRatio = tabTools->checkRatioImage->isChecked();
+	currDoc->itemToolPrefs.useEmbeddedPath = tabTools->embeddedPath->isChecked();
 	int haRes = 0;
 	if (tabTools->checkFullRes->isChecked())
 		haRes = 0;
@@ -419,22 +419,22 @@
 		haRes = 1;
 	if (tabTools->checkHalfRes->isChecked())
 		haRes = 2;
-	if (currDoc->toolSettings.lowResType != haRes)
+	if (currDoc->itemToolPrefs.lowResType != haRes)
 	{
-		currDoc->toolSettings.lowResType = haRes;
+		currDoc->itemToolPrefs.lowResType = haRes;
 		viewToRecalcPictureRes=true;
 	}
 	else
 		viewToRecalcPictureRes=false;
-	currDoc->toolSettings.dispX = tabTools->genDispX->value();
-	currDoc->toolSettings.dispY = tabTools->genDispY->value();
-	currDoc->toolSettings.constrain = tabTools->genRot->value();
-	tabTools->polyWidget->getValues(&currDoc->toolSettings.polyC,
-									&currDoc->toolSettings.polyFd,
-									&currDoc->toolSettings.polyF,
-									&currDoc->toolSettings.polyS,
-									&currDoc->toolSettings.polyR,
-									&currDoc->toolSettings.polyCurvature);
+	currDoc->opToolPrefs.dispX = tabTools->genDispX->value();
+	currDoc->opToolPrefs.dispY = tabTools->genDispY->value();
+	currDoc->opToolPrefs.constrain = tabTools->genRot->value();
+	tabTools->polyWidget->getValues(&currDoc->itemToolPrefs.polyC,
+									&currDoc->itemToolPrefs.polyFd,
+									&currDoc->itemToolPrefs.polyF,
+									&currDoc->itemToolPrefs.polyS,
+									&currDoc->itemToolPrefs.polyR,
+									&currDoc->itemToolPrefs.polyCurvature);
 	currDoc->AutoSave = tabPage->GroupAS->isChecked();
 	currDoc->AutoSaveTime = tabPage->ASTime->value() * 60 * 1000;
 	currDoc->autoSaveTimer->stop();
Index: scribus/ui/charselect.cpp
===================================================================
--- scribus/ui/charselect.cpp	(revision 13952)
+++ scribus/ui/charselect.cpp	(revision 13953)
@@ -37,7 +37,7 @@
 	uniClearButton->setIcon(loadIcon("22/document-new.png"));
 
 	m_userTableModel = new CharTableModel(this, 6, m_doc,
-	                                      PrefsManager::instance()->appPrefs.toolSettings.defFont);
+										  PrefsManager::instance()->appPrefs.itemToolPrefs.defFont);
 	loadUserContent(ScPaths::getApplicationDataDir() + "charpalette.ucp");
 
 	m_userTable->setModel(m_userTableModel);
Index: scribus/ui/tabtools.cpp
===================================================================
--- scribus/ui/tabtools.cpp	(revision 13952)
+++ scribus/ui/tabtools.cpp	(revision 13953)
@@ -39,7 +39,7 @@
 #include "colorlistbox.h"
 
 
-TabTools::TabTools( QWidget* parent, struct ToolPrefs *prefsData, int unitIndex, ScribusDoc* doc) : QWidget( parent )
+TabTools::TabTools( QWidget* parent, struct ItemToolPrefs *prefsData, int unitIndex, ScribusDoc* doc) : QWidget( parent )
 {
 	docu = doc;
 	fontPreview = false;
@@ -609,7 +609,7 @@
 	}
 }
 
-void TabTools::restoreDefaults(struct ToolPrefs *prefsData, int unitIndex)
+void TabTools::restoreDefaults(struct ItemToolPrefs *itemPrefsData, struct OperatorToolPrefs *opPrefsData, int unitIndex)
 {
 	enableSignals(false);
 
@@ -620,7 +620,7 @@
 
 	for (int fc=0; fc<fontComboText->count(); ++fc)
 	{
-		if (fontComboText->itemText(fc) == prefsData->defFont)
+		if (fontComboText->itemText(fc) == itemPrefsData->defFont)
 		{
 			fontComboText->setCurrentIndex(fc);
 			break;
@@ -633,7 +633,7 @@
 		sizeComboText->addItem(ar_sizes[s] + tr(" pt"));
 	for (int a = 0; a < sizeComboText->count(); ++a)
 	{
-		if (sizeComboText->itemText(a).left(2).toInt() == prefsData->defSize / 10)
+		if (sizeComboText->itemText(a).left(2).toInt() == itemPrefsData->defSize / 10)
 		{
 			sizeComboText->setCurrentIndex(a);
 			break;
@@ -645,56 +645,56 @@
 	ColorList* colorList = (docu != 0) ? (&docu->PageColors) : prefsManager->colorSetPtr();
 	colorComboText->clear();
 	colorComboText->addItem(CommonStrings::tr_NoneColor);
-	if (prefsData->dPenText == CommonStrings::None)
+	if (itemPrefsData->dPenText == CommonStrings::None)
 		colorComboText->setCurrentIndex(colorComboText->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		colorComboText->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dPenText)
+		if (itc.key() == itemPrefsData->dPenText)
 			colorComboText->setCurrentIndex(colorComboText->count()-1);
 	}
 
-	shadingText->setValue(prefsData->dTextPenShade);
+	shadingText->setValue(itemPrefsData->dTextPenShade);
 
 	colorComboStrokeText->clear();
 	colorComboStrokeText->addItem(CommonStrings::tr_NoneColor);
-	if (prefsData->dStrokeText == CommonStrings::None)
+	if (itemPrefsData->dStrokeText == CommonStrings::None)
 		colorComboStrokeText->setCurrentIndex(colorComboStrokeText->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		colorComboStrokeText->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dStrokeText)
+		if (itc.key() == itemPrefsData->dStrokeText)
 			colorComboStrokeText->setCurrentIndex(colorComboStrokeText->count()-1);
 	}
-	shadingTextStroke->setValue(prefsData->dTextStrokeShade);
+	shadingTextStroke->setValue(itemPrefsData->dTextStrokeShade);
 
 	colorComboTextBackground->clear();
 	colorComboTextBackground->addItem(CommonStrings::tr_NoneColor);
-	if (prefsData->dTextBackGround == CommonStrings::None)
+	if (itemPrefsData->dTextBackGround == CommonStrings::None)
 		colorComboTextBackground->setCurrentIndex(colorComboTextBackground->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		colorComboTextBackground->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dTextBackGround)
+		if (itc.key() == itemPrefsData->dTextBackGround)
 			colorComboTextBackground->setCurrentIndex(colorComboTextBackground->count()-1);
 	}
-	shadingTextBack->setValue(prefsData->dTextBackGroundShade);
+	shadingTextBack->setValue(itemPrefsData->dTextBackGroundShade);
 
 	colorComboTextLine->clear();
 	colorComboTextLine->addItem(CommonStrings::tr_NoneColor);
-	if (prefsData->dTextLineColor == CommonStrings::None)
+	if (itemPrefsData->dTextLineColor == CommonStrings::None)
 		colorComboTextLine->setCurrentIndex(colorComboTextLine->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		colorComboTextLine->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dTextLineColor)
+		if (itc.key() == itemPrefsData->dTextLineColor)
 			colorComboTextLine->setCurrentIndex(colorComboTextLine->count()-1);
 	}
-	shadingTextLine->setValue(prefsData->dTextLineShade);
+	shadingTextLine->setValue(itemPrefsData->dTextLineShade);
 
 	tabFillCombo->clear();
 	tabFillCombo->addItem( tr("None", "tab fill" ));
@@ -702,19 +702,19 @@
 	tabFillCombo->addItem( tr("Hyphen"));
 	tabFillCombo->addItem( tr("Underscore"));
 	tabFillCombo->addItem( tr("Custom"));
-	if (prefsData->tabFillChar.isEmpty())
+	if (itemPrefsData->tabFillChar.isEmpty())
 	{
 		tabFillCombo->setCurrentIndex(0);
 	}
-	else if (prefsData->tabFillChar == ".")
+	else if (itemPrefsData->tabFillChar == ".")
 	{
 		tabFillCombo->setCurrentIndex(1);
 	}
-	else if (prefsData->tabFillChar == "-")
+	else if (itemPrefsData->tabFillChar == "-")
 	{
 		tabFillCombo->setCurrentIndex(2);
 	}
-	else if (prefsData->tabFillChar == "_")
+	else if (itemPrefsData->tabFillChar == "_")
 	{
 		tabFillCombo->setCurrentIndex(3);
 	}
@@ -722,58 +722,58 @@
 	{
 		tabFillCombo->setCurrentIndex(4);
 		tabFillCombo->setEditable(true);
-		tabFillCombo->setItemText(tabFillCombo->currentIndex(), CommonStrings::trCustomTabFill + prefsData->tabFillChar);
+		tabFillCombo->setItemText(tabFillCombo->currentIndex(), CommonStrings::trCustomTabFill + itemPrefsData->tabFillChar);
 	}
 	gapText->setNewUnit(unitIndex);
 	gapTab->setNewUnit(unitIndex);
-	gapTab->setValue(prefsData->dTabWidth * unitRatio);
-	columnsText->setValue(prefsData->dCols);
-	gapText->setValue(prefsData->dGap * unitRatio);
+	gapTab->setValue(itemPrefsData->dTabWidth * unitRatio);
+	columnsText->setValue(itemPrefsData->dCols);
+	gapText->setValue(itemPrefsData->dGap * unitRatio);
 
 	colorComboLineShape->clear();
 	colorComboLineShape->addItem(CommonStrings::tr_NoneColor);
-	if (prefsData->dPen == CommonStrings::None)
+	if (itemPrefsData->dPen == CommonStrings::None)
 		colorComboLineShape->setCurrentIndex(colorComboLineShape->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		colorComboLineShape->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dPen)
+		if (itc.key() == itemPrefsData->dPen)
 			colorComboLineShape->setCurrentIndex(colorComboLineShape->count()-1);
 	}
-	shadingLineShape->setValue(prefsData->dShade2);
+	shadingLineShape->setValue(itemPrefsData->dShade2);
 
 	comboFillShape->clear();
 	comboFillShape->addItem( tr("None"));
-	if (prefsData->dBrush == CommonStrings::None)
+	if (itemPrefsData->dBrush == CommonStrings::None)
 		comboFillShape->setCurrentIndex(comboFillShape->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		comboFillShape->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dBrush)
+		if (itc.key() == itemPrefsData->dBrush)
 			comboFillShape->setCurrentIndex(comboFillShape->count()-1);
 	}
 
-	shadingFillShape->setValue(prefsData->dShade);
-	comboStyleShape->setCurrentIndex(static_cast<int>(prefsData->dLineArt) - 1);
-	lineWidthShape->setValue(prefsData->dWidth);
+	shadingFillShape->setValue(itemPrefsData->dShade);
+	comboStyleShape->setCurrentIndex(static_cast<int>(itemPrefsData->dLineArt) - 1);
+	lineWidthShape->setValue(itemPrefsData->dWidth);
 
 	colorComboLine->clear();
 	colorComboLine->addItem(CommonStrings::tr_NoneColor);
-	if (prefsData->dPenLine == CommonStrings::None)
+	if (itemPrefsData->dPenLine == CommonStrings::None)
 		colorComboLine->setCurrentIndex(colorComboLine->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		colorComboLine->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dPenLine)
+		if (itc.key() == itemPrefsData->dPenLine)
 			colorComboLine->setCurrentIndex(colorComboLine->count()-1);
 	}
 
-	shadingLine->setValue(prefsData->dShadeLine);
+	shadingLine->setValue(itemPrefsData->dShadeLine);
 
-	comboStyleLine->setCurrentIndex(static_cast<int>(prefsData->dLstyleLine) - 1);
+	comboStyleLine->setCurrentIndex(static_cast<int>(itemPrefsData->dLstyleLine) - 1);
 	if (docu != 0)
 	{
 		startArrow->rebuildList(&docu->arrowStyles);
@@ -784,31 +784,31 @@
 		startArrow->rebuildList(&prefsManager->appPrefs.arrowStyles);
 		endArrow->rebuildList(&prefsManager->appPrefs.arrowStyles);
 	}
-	startArrow->setCurrentIndex(prefsData->dStartArrow);
-	endArrow->setCurrentIndex(prefsData->dEndArrow);
-	lineWidthLine->setValue(prefsData->dWidthLine);
+	startArrow->setCurrentIndex(itemPrefsData->dStartArrow);
+	endArrow->setCurrentIndex(itemPrefsData->dEndArrow);
+	lineWidthLine->setValue(itemPrefsData->dWidthLine);
 
-	buttonGroup3->setChecked( prefsData->scaleType );
-	scalingHorizontal->setValue(qRound(prefsData->scaleX * 100));
-	scalingVertical->setValue(qRound(prefsData->scaleY * 100));
-	buttonGroup5->setChecked( !prefsData->scaleType );
-	checkRatioImage->setChecked(prefsData->aspectRatio);
+	buttonGroup3->setChecked( itemPrefsData->scaleType );
+	scalingHorizontal->setValue(qRound(itemPrefsData->scaleX * 100));
+	scalingVertical->setValue(qRound(itemPrefsData->scaleY * 100));
+	buttonGroup5->setChecked( !itemPrefsData->scaleType );
+	checkRatioImage->setChecked(itemPrefsData->aspectRatio);
 
 	comboFillImage->clear();
 	comboFillImage->addItem(CommonStrings::tr_NoneColor);
-	if (prefsData->dBrushPict == CommonStrings::None)
+	if (itemPrefsData->dBrushPict == CommonStrings::None)
 		comboFillImage->setCurrentIndex(comboFillImage->count()-1);
 	endOfColorList=colorList->end();
 	for (itc = colorList->begin(); itc != endOfColorList; ++itc)
 	{
 		comboFillImage->insertFancyItem( itc.value(), docu, itc.key() );
-		if (itc.key() == prefsData->dBrushPict)
+		if (itc.key() == itemPrefsData->dBrushPict)
 			comboFillImage->setCurrentIndex(comboFillImage->count()-1);
 	}
 
-	shadingFillImage->setValue( prefsData->shadePict );
-	embeddedPath->setChecked(prefsData->useEmbeddedPath);
-	switch (prefsData->lowResType)
+	shadingFillImage->setValue( itemPrefsData->shadePict );
+	embeddedPath->setChecked(itemPrefsData->useEmbeddedPath);
+	switch (itemPrefsData->lowResType)
 	{
 		case 0:
 			checkFullRes->setChecked(true);
@@ -821,15 +821,15 @@
 			break;
 	}
 
-	minimumZoom->setValue(prefsData->magMin);
-	maximumZoom->setValue(prefsData->magMax);
-	zoomStep->setValue( prefsData->magStep );
+	minimumZoom->setValue(opPrefsData->magMin);
+	maximumZoom->setValue(opPrefsData->magMax);
+	zoomStep->setValue( opPrefsData->magStep );
 
-	genDispX->setValue(prefsData->dispX * unitRatio);
-	genDispY->setValue(prefsData->dispY * unitRatio);
+	genDispX->setValue(opPrefsData->dispX * unitRatio);
+	genDispY->setValue(opPrefsData->dispY * unitRatio);
 	genDispX->setNewUnit(unitIndex);
 	genDispY->setNewUnit(unitIndex);
-	genRot->setValue(prefsData->constrain);
+	genRot->setValue(opPrefsData->constrain);
 
 	setSample();
 
Index: scribus/ui/smlinestyle.cpp
===================================================================
--- scribus/ui/smlinestyle.cpp	(revision 13952)
+++ scribus/ui/smlinestyle.cpp	(revision 13953)
@@ -173,12 +173,12 @@
 	if (!doc_)
 		return QString::null;
 	struct SingleLine sl;
-	sl.Color = doc_->toolSettings.dPenLine;
-	sl.Shade = doc_->toolSettings.dShadeLine;
-	sl.Dash = Qt::SolidLine;//Docu->toolSettings.;
-	sl.LineEnd = Qt::FlatCap;//Docu->toolSettings.;
-	sl.LineJoin = Qt::MiterJoin;//Docu->toolSettings.;
-	sl.Width = doc_->toolSettings.dWidthLine;
+	sl.Color = doc_->itemToolPrefs.dPenLine;
+	sl.Shade = doc_->itemToolPrefs.dShadeLine;
+	sl.Dash = Qt::SolidLine;//Docu->itemToolPrefs.;
+	sl.LineEnd = Qt::FlatCap;//Docu->itemToolPrefs.;
+	sl.LineJoin = Qt::MiterJoin;//Docu->itemToolPrefs.;
+	sl.Width = doc_->itemToolPrefs.dWidthLine;
 	multiLine ml;
 	ml.push_back(sl);
 	QString name = getUniqueName( tr("New Style"));
Index: scribus/ui/storyeditor.cpp
===================================================================
--- scribus/ui/storyeditor.cpp	(revision 13952)
+++ scribus/ui/storyeditor.cpp	(revision 13953)
@@ -1367,7 +1367,7 @@
 	Size = new ScrSpinBox( 0.5, 2048, this, SC_POINTS );
 	PrefsManager* prefsManager = PrefsManager::instance();
 	Size->setSuffix( unitGetSuffixFromIndex(SC_POINTS) );
-	Size->setValue(prefsManager->appPrefs.toolSettings.defSize / 10.0);
+	Size->setValue(prefsManager->appPrefs.itemToolPrefs.defSize / 10.0);
 	sizeAction=addWidget(Size);
 	sizeAction->setVisible(true);
 	ScaleTxt = new QLabel("", this);
Index: scribus/ui/missing.cpp
===================================================================
--- scribus/ui/missing.cpp	(revision 13952)
+++ scribus/ui/missing.cpp	(revision 13953)
@@ -324,13 +324,13 @@
 	replaceFontCombo = new FontCombo(this);
 	if (doc != 0)
 	{
-		setCurrentComboItem(replaceFontCombo, doc->toolSettings.defFont);
-		replacementFont = doc->toolSettings.defFont;
+		setCurrentComboItem(replaceFontCombo, doc->itemToolPrefs.defFont);
+		replacementFont = doc->itemToolPrefs.defFont;
 	}
 	else
 	{
-		setCurrentComboItem(replaceFontCombo, PrefsManager::instance()->appPrefs.toolSettings.defFont);
-		replacementFont = PrefsManager::instance()->appPrefs.toolSettings.defFont;
+		setCurrentComboItem(replaceFontCombo, PrefsManager::instance()->appPrefs.itemToolPrefs.defFont);
+		replacementFont = PrefsManager::instance()->appPrefs.itemToolPrefs.defFont;
 	}
 	missingFontGridLayout->addWidget( replaceFontCombo, 1, 2 );
 	insteadLabel = new QLabel( tr( "instead" ), this );
Index: scribus/canvasmode_rotate.cpp
===================================================================
--- scribus/canvasmode_rotate.cpp	(revision 13952)
+++ scribus/canvasmode_rotate.cpp	(revision 13953)
@@ -95,10 +95,10 @@
 	double newAngle = xy2Deg(m_canvasCurrCoord.x() - m_rotCenter.x(), m_canvasCurrCoord.y() - m_rotCenter.y());
 	if (m_angleConstrained)
 	{
-		newAngle = constrainAngle(newAngle, m_doc->toolSettings.constrain);
-		/*double oldAngle = constrainAngle(m_startAngle, m_doc->toolSettings.constrain);
+		newAngle = constrainAngle(newAngle, m_doc->opToolPrefs.constrain);
+		/*double oldAngle = constrainAngle(m_startAngle, m_doc->opToolPrefs.constrain);
 		newAngle = m_doc->m_Selection->isMultipleSelection() ? (newAngle - oldAngle) : newAngle;*/
-		m_view->oldW = constrainAngle(m_view->oldW, m_doc->toolSettings.constrain);
+		m_view->oldW = constrainAngle(m_view->oldW, m_doc->opToolPrefs.constrain);
 		newAngle = m_doc->m_Selection->isMultipleSelection() ? (newAngle - m_view->oldW) : newAngle;
 	}
 	else if (m_doc->m_Selection->isMultipleSelection())
@@ -320,8 +320,8 @@
 		double newW = xy2Deg(mousePointDoc.x()-m_view->RCenter.x(), mousePointDoc.y()-m_view->RCenter.y()); //xy2Deg(m->x()/sc - m_view->RCenter.x(), m->y()/sc - m_view->RCenter.y());
 		if (m->modifiers() & Qt::ControlModifier)
 		{
-			newW=constrainAngle(newW, m_doc->toolSettings.constrain);
-			m_view->oldW=constrainAngle(m_view->oldW, m_doc->toolSettings.constrain);
+			newW=constrainAngle(newW, m_doc->opToolPrefs.constrain);
+			m_view->oldW=constrainAngle(m_view->oldW, m_doc->opToolPrefs.constrain);
 			//RotateGroup uses MoveBy so its pretty hard to constrain the result
 			if (m_doc->m_Selection->isMultipleSelection())
 				m_doc->rotateGroup(newW-m_view->oldW, m_view->RCenter);
Index: scribus/scribus.cpp
===================================================================
--- scribus/scribus.cpp	(revision 13952)
+++ scribus/scribus.cpp	(revision 13953)
@@ -2555,7 +2555,7 @@
 		setStatusBarInfoText("");
 		mainWindowProgressBar->reset();
 		view->previewQualitySwitcher->blockSignals(true);
-		view->previewQualitySwitcher->setCurrentIndex(doc->toolSettings.lowResType);
+		view->previewQualitySwitcher->setCurrentIndex(doc->itemToolPrefs.lowResType);
 		view->previewQualitySwitcher->blockSignals(false);
 	}
 	propertiesPalette->Fonts->RebuildList(doc);
@@ -7369,7 +7369,7 @@
 		{
 			ResourceCollection colorrsc;
 			colorrsc.mapColors(dia2->replaceMap);
-			PrefsManager::replaceToolColors(doc->toolSettings, colorrsc.colors());
+			PrefsManager::replaceToolColors(doc->itemToolPrefs, colorrsc.colors());
 			doc->replaceNamedResources(colorrsc);
 			doc->replaceLineStyleColors(dia2->replaceMap);
 			doc->recalculateColors();
@@ -7411,7 +7411,7 @@
 				ResourceCollection colorrsc;
 				colorrsc.mapColors(dia->replaceMap);
 				// Update tools colors
-				PrefsManager::replaceToolColors(doc->toolSettings, colorrsc.colors());
+				PrefsManager::replaceToolColors(doc->itemToolPrefs, colorrsc.colors());
 				// Update objects and styles colors
 				doc->replaceNamedResources(colorrsc);
 				// Temporary code until LineStyle is effectively used
@@ -7499,7 +7499,7 @@
 	for (int b=0; b<doc->m_Selection->count(); ++b)
 	{
 		doc->m_Selection->itemAt(b)->setLocked(false);
-		doc->MoveItem(doc->toolSettings.dispX, doc->toolSettings.dispY, doc->m_Selection->itemAt(b));
+		doc->MoveItem(doc->opToolPrefs.dispX, doc->opToolPrefs.dispY, doc->m_Selection->itemAt(b));
 	}
 	doc->useRaster = savedAlignGrid;
 	doc->SnapGuides = savedAlignGuides;
@@ -7598,7 +7598,7 @@
 	bool oldShowPageShadow = prefsManager->showPageShadow();
 	int oldUIFontSize     = prefsManager->guiFontSize();
 	double oldDisplayScale = prefsManager->displayScale();
-	int oldImageQuality = prefsManager->applicationPrefs()->toolSettings.lowResType;
+	int oldImageQuality = prefsManager->applicationPrefs()->itemToolPrefs.lowResType;
 
 	dia->updatePreferences();
 	prefsManager->SavePrefs();
@@ -7631,7 +7631,7 @@
 	ScCore->recheckGS();
 	prefsManager->applyLoadedShortCuts();
 
-	int newImageQuality = prefsManager->appPrefs.toolSettings.lowResType;
+	int newImageQuality = prefsManager->appPrefs.itemToolPrefs.lowResType;
 	if (oldImageQuality != newImageQuality)
 		view->previewQualitySwitcher->setCurrentIndex(newImageQuality);
 
Index: scribus/plugins/wmfimplugin/wmfimport.cpp
===================================================================
--- scribus/plugins/wmfimplugin/wmfimport.cpp	(revision 13952)
+++ scribus/plugins/wmfimplugin/wmfimport.cpp	(revision 13953)
@@ -640,7 +640,7 @@
 			double gw = maxx - minx;
 			double gh = maxy - miny;
 			PageItem *high = m_Doc->Items->at(highestItem);
-			int z = m_Doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, gx, gy, gw, gh, 0, m_Doc->toolSettings.dBrush, m_Doc->toolSettings.dPen, true);
+			int z = m_Doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, gx, gy, gw, gh, 0, m_Doc->itemToolPrefs.dBrush, m_Doc->itemToolPrefs.dPen, true);
 			PageItem *neu = m_Doc->Items->takeAt(z);
 			m_Doc->Items->insert(lowestItem, neu);
 			neu->Groups.push(m_Doc->GroupCounter);
Index: scribus/plugins/fileloader/scribus12format/scribus12format.cpp
===================================================================
--- scribus/plugins/fileloader/scribus12format/scribus12format.cpp	(revision 13952)
+++ scribus/plugins/fileloader/scribus12format/scribus12format.cpp	(revision 13953)
@@ -295,13 +295,13 @@
 		m_Doc->guidesSettings.showPic = true;
 		m_Doc->guidesSettings.showControls = false;
 // 		DoFonts.clear();
-		m_Doc->toolSettings.defSize=qRound(ScCLocale::toDoubleC(dc.attribute("DSIZE")) * 10);
+		m_Doc->itemToolPrefs.defSize=qRound(ScCLocale::toDoubleC(dc.attribute("DSIZE")) * 10);
 		Defont=dc.attribute("DFONT");
-		m_Doc->toolSettings.defFont = prefsManager->appPrefs.toolSettings.defFont;
+		m_Doc->itemToolPrefs.defFont = prefsManager->appPrefs.itemToolPrefs.defFont;
 		m_AvailableFonts->findFont(Defont, m_Doc);
-		m_Doc->toolSettings.defFont = Defont;
-		m_Doc->toolSettings.dCols=dc.attribute("DCOL", "1").toInt();
-		m_Doc->toolSettings.dGap=ScCLocale::toDoubleC(dc.attribute("DGAP"), 0.0);
+		m_Doc->itemToolPrefs.defFont = Defont;
+		m_Doc->itemToolPrefs.dCols=dc.attribute("DCOL", "1").toInt();
+		m_Doc->itemToolPrefs.dGap=ScCLocale::toDoubleC(dc.attribute("DGAP"), 0.0);
 		m_Doc->documentInfo.setAuthor(dc.attribute("AUTHOR"));
 		m_Doc->documentInfo.setComments(dc.attribute("COMMENTS"));
 		m_Doc->documentInfo.setKeywords(dc.attribute("KEYWORDS",""));
@@ -353,8 +353,8 @@
 		m_Doc->useRaster = static_cast<bool>(dc.attribute("SnapToGrid", "0").toInt());
 		m_Doc->guidesSettings.minorGridSpacing = ScCLocale::toDoubleC(dc.attribute("MINGRID"), prefsManager->appPrefs.guidesPrefs.minorGridSpacing);
 		m_Doc->guidesSettings.majorGridSpacing = ScCLocale::toDoubleC(dc.attribute("MAJGRID"), prefsManager->appPrefs.guidesPrefs.majorGridSpacing);
-		m_Doc->toolSettings.dStartArrow = 0;
-		m_Doc->toolSettings.dEndArrow = 0;
+		m_Doc->itemToolPrefs.dStartArrow = 0;
+		m_Doc->itemToolPrefs.dEndArrow = 0;
 		m_Doc->LastAuto = 0;
 		QDomNode PAGE=DOC.firstChild();
 		counter = 0;
@@ -492,7 +492,7 @@
 					OB.textAlignment = obj.attribute("ALIGN", "0").toInt();
 					OB.startArrowIndex =  0;
 					OB.endArrowIndex =  0;
-					tmpf = obj.attribute("IFONT", m_Doc->toolSettings.defFont);
+					tmpf = obj.attribute("IFONT", m_Doc->itemToolPrefs.defFont);
 					m_AvailableFonts->findFont(tmpf, m_Doc);
 					OB.IFont = tmpf;
 					OB.LayerID = obj.attribute("LAYER", "0").toInt();
@@ -1056,7 +1056,7 @@
 	tmp2.replace(QRegExp("\t"), QChar(4));
 	tmp2.replace(SpecialChars::OLD_NBHYPHEN, SpecialChars::NBHYPHEN);
 	tmp2.replace(SpecialChars::OLD_NBSPACE, SpecialChars::NBSPACE);
-	tmpf = it->attribute("CFONT", doc->toolSettings.defFont);
+	tmpf = it->attribute("CFONT", doc->itemToolPrefs.defFont);
 	doc->AllFonts->findFont(tmpf, doc);
 	int size = qRound(ScCLocale::toDoubleC(it->attribute("CSIZE")) * 10);
 	QString fcolor = it->attribute("CCOLOR");
@@ -1345,9 +1345,9 @@
 					if ((OB.isBookmark) && (m_Doc->BookMarks.count() == 0))
 						m_Doc->OldBM = true;
 					OB.textAlignment = obj.attribute("ALIGN", "0").toInt();
-					tmpf = obj.attribute("IFONT", m_Doc->toolSettings.defFont);
+					tmpf = obj.attribute("IFONT", m_Doc->itemToolPrefs.defFont);
 					if (tmpf.isEmpty())
-						tmpf = m_Doc->toolSettings.defFont;
+						tmpf = m_Doc->itemToolPrefs.defFont;
 					m_AvailableFonts->findFont(tmpf, m_Doc);
 					OB.IFont = tmpf;
 					OB.LayerID = layerTrans[obj.attribute("LAYER", "0").toInt()];
@@ -1518,9 +1518,9 @@
 	vg->setAlignment(static_cast<ParagraphStyle::AlignmentType>(pg->attribute("ALIGN").toInt()));
 	vg->setGapBefore(ScCLocale::toDoubleC(pg->attribute("VOR"), 0.0));
 	vg->setGapAfter(ScCLocale::toDoubleC(pg->attribute("NACH"), 0.0));
-	tmpf = pg->attribute("FONT", doc->toolSettings.defFont);
+	tmpf = pg->attribute("FONT", doc->itemToolPrefs.defFont);
 	if (tmpf.isEmpty())
-		tmpf = doc->toolSettings.defFont;
+		tmpf = doc->itemToolPrefs.defFont;
 	PrefsManager *prefsManager=PrefsManager::instance();
 	prefsManager->appPrefs.AvailFonts.findFont(tmpf, doc);
 	vg->charStyle().setFont(prefsManager->appPrefs.AvailFonts[tmpf]);
@@ -1529,10 +1529,10 @@
 	vg->setDropCapLines(pg->attribute("DROPLIN", "2").toInt());
 	vg->setDropCapOffset(ScCLocale::toDoubleC(pg->attribute("DROPDIST"), 0.0));
 	vg->charStyle().setFeatures(static_cast<StyleFlag>((pg->attribute("EFFECT", "0").toInt())).featureList());
-	fColor = pg->attribute("FCOLOR", doc->toolSettings.dBrush);
+	fColor = pg->attribute("FCOLOR", doc->itemToolPrefs.dBrush);
 	fShade = pg->attribute("FSHADE", "100").toInt();
 	handleOldColorShade(doc, fColor, fShade);
-	sColor = pg->attribute("SCOLOR", doc->toolSettings.dPen);
+	sColor = pg->attribute("SCOLOR", doc->itemToolPrefs.dPen);
 	sShade = pg->attribute("SSHADE", "100").toInt();
 	handleOldColorShade(doc, sColor, sShade);
 	vg->charStyle().setFillColor(fColor);
Index: scribus/plugins/fileloader/scribus13format/scribus13format.cpp
===================================================================
--- scribus/plugins/fileloader/scribus13format/scribus13format.cpp	(revision 13952)
+++ scribus/plugins/fileloader/scribus13format/scribus13format.cpp	(revision 13953)
@@ -260,14 +260,14 @@
 		m_Doc->PageSp = dc.attribute("AUTOSPALTEN").toInt();
 		m_Doc->PageSpa= ScCLocale::toDoubleC(dc.attribute("ABSTSPALTEN"));
 		m_Doc->setUnitIndex(dc.attribute("UNITS", "0").toInt());
-		m_Doc->toolSettings.defSize=qRound(ScCLocale::toDoubleC(dc.attribute("DSIZE")) * 10);
+		m_Doc->itemToolPrefs.defSize=qRound(ScCLocale::toDoubleC(dc.attribute("DSIZE")) * 10);
 		Defont=dc.attribute("DFONT");
 		//findFont will use that if it doesnt find the font:
-		m_Doc->toolSettings.defFont = prefsManager->appPrefs.toolSettings.defFont;
+		m_Doc->itemToolPrefs.defFont = prefsManager->appPrefs.itemToolPrefs.defFont;
 		m_AvailableFonts->findFont(Defont, m_Doc);
-		m_Doc->toolSettings.defFont = Defont;
-		m_Doc->toolSettings.dCols= dc.attribute("DCOL", "1").toInt();
-		m_Doc->toolSettings.dGap = ScCLocale::toDoubleC(dc.attribute("DGAP"), 0.0);
+		m_Doc->itemToolPrefs.defFont = Defont;
+		m_Doc->itemToolPrefs.dCols= dc.attribute("DCOL", "1").toInt();
+		m_Doc->itemToolPrefs.dGap = ScCLocale::toDoubleC(dc.attribute("DGAP"), 0.0);
 		m_Doc->documentInfo.setAuthor(dc.attribute("AUTHOR"));
 		m_Doc->documentInfo.setComments(dc.attribute("COMMENTS"));
 		m_Doc->documentInfo.setKeywords(dc.attribute("KEYWORDS",""));
@@ -350,12 +350,12 @@
 		m_Doc->rulerYoffset = ScCLocale::toDoubleC(dc.attribute("rulerYoffset"), 0.0);
 		m_Doc->SnapGuides = static_cast<bool>(dc.attribute("SnapToGuides", "0").toInt());
 		m_Doc->useRaster = static_cast<bool>(dc.attribute("SnapToGrid", "0").toInt());
-		m_Doc->toolSettings.polyC = dc.attribute("POLYC", "4").toInt();
-		m_Doc->toolSettings.polyF = ScCLocale::toDoubleC(dc.attribute("POLYF"), 0.5);
-		m_Doc->toolSettings.polyR = ScCLocale::toDoubleC(dc.attribute("POLYR"), 0.0);
-		m_Doc->toolSettings.polyCurvature = 0.0;
-		m_Doc->toolSettings.polyFd = dc.attribute("POLYFD", "0").toInt();
-		m_Doc->toolSettings.polyS = static_cast<bool>(dc.attribute("POLYS", "0").toInt());
+		m_Doc->itemToolPrefs.polyC = dc.attribute("POLYC", "4").toInt();
+		m_Doc->itemToolPrefs.polyF = ScCLocale::toDoubleC(dc.attribute("POLYF"), 0.5);
+		m_Doc->itemToolPrefs.polyR = ScCLocale::toDoubleC(dc.attribute("POLYR"), 0.0);
+		m_Doc->itemToolPrefs.polyCurvature = 0.0;
+		m_Doc->itemToolPrefs.polyFd = dc.attribute("POLYFD", "0").toInt();
+		m_Doc->itemToolPrefs.polyS = static_cast<bool>(dc.attribute("POLYS", "0").toInt());
 		m_Doc->AutoSave = static_cast<bool>(dc.attribute("AutoSave", "0").toInt());
 		m_Doc->AutoSaveTime = dc.attribute("AutoSaveTime", "600000").toInt();
 		m_Doc->scratch.Bottom = ScCLocale::toDoubleC(dc.attribute("ScratchBottom"), 20.0);
@@ -367,48 +367,48 @@
 			m_Doc->scratch.Left = ScCLocale::toDoubleC(dc.attribute("ScratchLeft"), 100.0);
 		m_Doc->scratch.Right = ScCLocale::toDoubleC(dc.attribute("ScratchRight"), 100.0);
 		m_Doc->scratch.Top   = ScCLocale::toDoubleC(dc.attribute("ScratchTop"), 20.0);
-		m_Doc->toolSettings.dStartArrow = dc.attribute("StartArrow", "0").toInt();
-		m_Doc->toolSettings.dEndArrow = dc.attribute("EndArrow", "0").toInt();
-		m_Doc->toolSettings.scaleX = ScCLocale::toDoubleC(dc.attribute("PICTSCX"), 1.0);
-		m_Doc->toolSettings.scaleY = ScCLocale::toDoubleC(dc.attribute("PICTSCY"), 1.0);
-		m_Doc->toolSettings.scaleType = static_cast<bool>(dc.attribute("PSCALE", "1").toInt());
-		m_Doc->toolSettings.aspectRatio = static_cast<bool>(dc.attribute("PASPECT", "0").toInt());
-		m_Doc->toolSettings.lowResType = dc.attribute("HalfRes", "1").toInt();
-		m_Doc->toolSettings.useEmbeddedPath = static_cast<bool>(dc.attribute("EmbeddedPath", "0").toInt());
+		m_Doc->itemToolPrefs.dStartArrow = dc.attribute("StartArrow", "0").toInt();
+		m_Doc->itemToolPrefs.dEndArrow = dc.attribute("EndArrow", "0").toInt();
+		m_Doc->itemToolPrefs.scaleX = ScCLocale::toDoubleC(dc.attribute("PICTSCX"), 1.0);
+		m_Doc->itemToolPrefs.scaleY = ScCLocale::toDoubleC(dc.attribute("PICTSCY"), 1.0);
+		m_Doc->itemToolPrefs.scaleType = static_cast<bool>(dc.attribute("PSCALE", "1").toInt());
+		m_Doc->itemToolPrefs.aspectRatio = static_cast<bool>(dc.attribute("PASPECT", "0").toInt());
+		m_Doc->itemToolPrefs.lowResType = dc.attribute("HalfRes", "1").toInt();
+		m_Doc->itemToolPrefs.useEmbeddedPath = static_cast<bool>(dc.attribute("EmbeddedPath", "0").toInt());
 		if (dc.hasAttribute("PEN"))
-			m_Doc->toolSettings.dPen = dc.attribute("PEN");
+			m_Doc->itemToolPrefs.dPen = dc.attribute("PEN");
 		if (dc.hasAttribute("BRUSH"))
-			m_Doc->toolSettings.dBrush = dc.attribute("BRUSH");
+			m_Doc->itemToolPrefs.dBrush = dc.attribute("BRUSH");
 		if (dc.hasAttribute("PENLINE"))
-			m_Doc->toolSettings.dPenLine = dc.attribute("PENLINE");
+			m_Doc->itemToolPrefs.dPenLine = dc.attribute("PENLINE");
 		if (dc.hasAttribute("PENTEXT"))
-			m_Doc->toolSettings.dPenText = dc.attribute("PENTEXT");
+			m_Doc->itemToolPrefs.dPenText = dc.attribute("PENTEXT");
 		if (dc.hasAttribute("StrokeText"))
-			m_Doc->toolSettings.dStrokeText = dc.attribute("StrokeText");
-		m_Doc->toolSettings.dTextBackGround = dc.attribute("TextBackGround", CommonStrings::None);
-		m_Doc->toolSettings.dTextLineColor = dc.attribute("TextLineColor", CommonStrings::None);
-		m_Doc->toolSettings.dTextBackGroundShade = dc.attribute("TextBackGroundShade", "100").toInt();
-		m_Doc->toolSettings.dTextLineShade = dc.attribute("TextLineShade", "100").toInt();
-		m_Doc->toolSettings.dTextPenShade = dc.attribute("TextPenShade", "100").toInt();
-		m_Doc->toolSettings.dTextStrokeShade = dc.attribute("TextStrokeShade", "100").toInt();
-		m_Doc->toolSettings.dLineArt = static_cast<Qt::PenStyle>(dc.attribute("STIL").toInt());
-		m_Doc->toolSettings.dLstyleLine = static_cast<Qt::PenStyle>(dc.attribute("STILLINE").toInt());
-		m_Doc->toolSettings.dWidth     = ScCLocale::toDoubleC(dc.attribute("WIDTH"), 1.0);
-		m_Doc->toolSettings.dWidthLine = ScCLocale::toDoubleC(dc.attribute("WIDTHLINE"), 1.0);
-		m_Doc->toolSettings.dShade2    = dc.attribute("PENSHADE", "100").toInt();
-		m_Doc->toolSettings.dShadeLine = dc.attribute("LINESHADE", "100").toInt();
-		m_Doc->toolSettings.dShade     = dc.attribute("BRUSHSHADE", "100").toInt();
-		m_Doc->toolSettings.magMin     = dc.attribute("MAGMIN", "10").toInt();
-		m_Doc->toolSettings.magMax     = dc.attribute("MAGMAX", "3200").toInt();
-		m_Doc->toolSettings.magStep    = dc.attribute("MAGSTEP", "200").toInt();
+			m_Doc->itemToolPrefs.dStrokeText = dc.attribute("StrokeText");
+		m_Doc->itemToolPrefs.dTextBackGround = dc.attribute("TextBackGround", CommonStrings::None);
+		m_Doc->itemToolPrefs.dTextLineColor = dc.attribute("TextLineColor", CommonStrings::None);
+		m_Doc->itemToolPrefs.dTextBackGroundShade = dc.attribute("TextBackGroundShade", "100").toInt();
+		m_Doc->itemToolPrefs.dTextLineShade = dc.attribute("TextLineShade", "100").toInt();
+		m_Doc->itemToolPrefs.dTextPenShade = dc.attribute("TextPenShade", "100").toInt();
+		m_Doc->itemToolPrefs.dTextStrokeShade = dc.attribute("TextStrokeShade", "100").toInt();
+		m_Doc->itemToolPrefs.dLineArt = static_cast<Qt::PenStyle>(dc.attribute("STIL").toInt());
+		m_Doc->itemToolPrefs.dLstyleLine = static_cast<Qt::PenStyle>(dc.attribute("STILLINE").toInt());
+		m_Doc->itemToolPrefs.dWidth     = ScCLocale::toDoubleC(dc.attribute("WIDTH"), 1.0);
+		m_Doc->itemToolPrefs.dWidthLine = ScCLocale::toDoubleC(dc.attribute("WIDTHLINE"), 1.0);
+		m_Doc->itemToolPrefs.dShade2    = dc.attribute("PENSHADE", "100").toInt();
+		m_Doc->itemToolPrefs.dShadeLine = dc.attribute("LINESHADE", "100").toInt();
+		m_Doc->itemToolPrefs.dShade     = dc.attribute("BRUSHSHADE", "100").toInt();
+		m_Doc->opToolPrefs.magMin     = dc.attribute("MAGMIN", "10").toInt();
+		m_Doc->opToolPrefs.magMax     = dc.attribute("MAGMAX", "3200").toInt();
+		m_Doc->opToolPrefs.magStep    = dc.attribute("MAGSTEP", "200").toInt();
 		//CB Reset doc zoom step value to 200% instead of old values.
-		if (m_Doc->toolSettings.magStep<100)
-			m_Doc->toolSettings.magStep=200;
-		m_Doc->toolSettings.tabFillChar = dc.attribute("TabFill","");
-		m_Doc->toolSettings.dTabWidth   = ScCLocale::toDoubleC(dc.attribute("TabWidth"), 36.0);
+		if (m_Doc->opToolPrefs.magStep<100)
+			m_Doc->opToolPrefs.magStep=200;
+		m_Doc->itemToolPrefs.tabFillChar = dc.attribute("TabFill","");
+		m_Doc->itemToolPrefs.dTabWidth   = ScCLocale::toDoubleC(dc.attribute("TabWidth"), 36.0);
 		if (dc.hasAttribute("CPICT"))
-			m_Doc->toolSettings.dBrushPict = dc.attribute("CPICT");
-		m_Doc->toolSettings.shadePict = ScCLocale::toDoubleC(dc.attribute("PICTSHADE"), 100.0);
+			m_Doc->itemToolPrefs.dBrushPict = dc.attribute("CPICT");
+		m_Doc->itemToolPrefs.shadePict = ScCLocale::toDoubleC(dc.attribute("PICTSHADE"), 100.0);
 		if (dc.hasAttribute("PAGEC"))
 			m_Doc->papColor = QColor(dc.attribute("PAGEC"));
 		if (dc.hasAttribute("MARGC"))
@@ -956,10 +956,10 @@
 				delete last;
 				if (Neu->fill_gradient.Stops() == 0)
 				{
-					const ScColor& col1 = m_Doc->PageColors[m_Doc->toolSettings.dBrush];
-					const ScColor& col2 = m_Doc->PageColors[m_Doc->toolSettings.dPen];
-					Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, m_Doc), 0.0, 0.5, 1.0, m_Doc->toolSettings.dBrush, 100);
-					Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, m_Doc), 1.0, 0.5, 1.0, m_Doc->toolSettings.dPen, 100);
+					const ScColor& col1 = m_Doc->PageColors[m_Doc->itemToolPrefs.dBrush];
+					const ScColor& col2 = m_Doc->PageColors[m_Doc->itemToolPrefs.dPen];
+					Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, m_Doc), 0.0, 0.5, 1.0, m_Doc->itemToolPrefs.dBrush, 100);
+					Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, m_Doc), 1.0, 0.5, 1.0, m_Doc->itemToolPrefs.dPen, 100);
 				}
 //				Neu->Language = ScMW->GetLang(pg.attribute("LANGUAGE", m_Doc->Language));
 				Neu->isAutoText = static_cast<bool>(pg.attribute("AUTOTEXT").toInt());
@@ -1192,12 +1192,12 @@
 	dc.setAttribute("AUTOSPALTEN",m_Doc->PageSp);
 	dc.setAttribute("ABSTSPALTEN",m_Doc->PageSpa);
 	dc.setAttribute("UNITS",m_Doc->unitIndex());
-	dc.setAttribute("DFONT",m_Doc->toolSettings.defFont);
-	dc.setAttribute("DSIZE",m_Doc->toolSettings.defSize / 10.0);
-	dc.setAttribute("DCOL",m_Doc->toolSettings.dCols);
-	dc.setAttribute("DGAP",m_Doc->toolSettings.dGap);
-	dc.setAttribute("TabFill",m_Doc->toolSettings.tabFillChar);
-	dc.setAttribute("TabWidth",m_Doc->toolSettings.dTabWidth);
+	dc.setAttribute("DFONT",m_Doc->itemToolPrefs.defFont);
+	dc.setAttribute("DSIZE",m_Doc->itemToolPrefs.defSize / 10.0);
+	dc.setAttribute("DCOL",m_Doc->itemToolPrefs.dCols);
+	dc.setAttribute("DGAP",m_Doc->itemToolPrefs.dGap);
+	dc.setAttribute("TabFill",m_Doc->itemToolPrefs.tabFillChar);
+	dc.setAttribute("TabWidth",m_Doc->itemToolPrefs.dTabWidth);
 	dc.setAttribute("AUTHOR",m_Doc->documentInfo.getAuthor());
 	dc.setAttribute("COMMENTS",m_Doc->documentInfo.getComments());
 	dc.setAttribute("KEYWORDS",m_Doc->documentInfo.getKeywords());
@@ -1267,48 +1267,48 @@
 	dc.setAttribute("rulerYoffset", m_Doc->rulerYoffset);
 	dc.setAttribute("GuideRad", m_Doc->guidesSettings.guideRad);
 	dc.setAttribute("GRAB",m_Doc->guidesSettings.grabRadius);
-	dc.setAttribute("POLYC", m_Doc->toolSettings.polyC);
-	dc.setAttribute("POLYF", m_Doc->toolSettings.polyF);
-	dc.setAttribute("POLYR", m_Doc->toolSettings.polyR);
-	dc.setAttribute("POLYFD", m_Doc->toolSettings.polyFd);
-	dc.setAttribute("POLYS", static_cast<int>(m_Doc->toolSettings.polyS));
+	dc.setAttribute("POLYC", m_Doc->itemToolPrefs.polyC);
+	dc.setAttribute("POLYF", m_Doc->itemToolPrefs.polyF);
+	dc.setAttribute("POLYR", m_Doc->itemToolPrefs.polyR);
+	dc.setAttribute("POLYFD", m_Doc->itemToolPrefs.polyFd);
+	dc.setAttribute("POLYS", static_cast<int>(m_Doc->itemToolPrefs.polyS));
 	dc.setAttribute("AutoSave", static_cast<int>(m_Doc->AutoSave));
 	dc.setAttribute("AutoSaveTime", m_Doc->AutoSaveTime);
 	dc.setAttribute("ScratchBottom", m_Doc->scratch.Bottom);
 	dc.setAttribute("ScratchLeft", m_Doc->scratch.Left);
 	dc.setAttribute("ScratchRight", m_Doc->scratch.Right);
 	dc.setAttribute("ScratchTop", m_Doc->scratch.Top);
-	dc.setAttribute("StartArrow", m_Doc->toolSettings.dStartArrow);
-	dc.setAttribute("EndArrow", m_Doc->toolSettings.dEndArrow);
-	dc.setAttribute("PEN",m_Doc->toolSettings.dPen);
-	dc.setAttribute("BRUSH",m_Doc->toolSettings.dBrush);
-	dc.setAttribute("PENLINE",m_Doc->toolSettings.dPenLine);
-	dc.setAttribute("PENTEXT",m_Doc->toolSettings.dPenText);
-	dc.setAttribute("StrokeText",m_Doc->toolSettings.dStrokeText);
-	dc.setAttribute("TextBackGround", m_Doc->toolSettings.dTextBackGround);
-	dc.setAttribute("TextLineColor", m_Doc->toolSettings.dTextLineColor);
-	dc.setAttribute("TextBackGroundShade", m_Doc->toolSettings.dTextBackGroundShade);
-	dc.setAttribute("TextLineShade", m_Doc->toolSettings.dTextLineShade);
-	dc.setAttribute("TextPenShade", m_Doc->toolSettings.dTextPenShade);
-	dc.setAttribute("TextStrokeShade", m_Doc->toolSettings.dTextStrokeShade);
-	dc.setAttribute("STIL",m_Doc->toolSettings.dLineArt);
-	dc.setAttribute("STILLINE",m_Doc->toolSettings.dLstyleLine);
-	dc.setAttribute("WIDTH",m_Doc->toolSettings.dWidth);
-	dc.setAttribute("WIDTHLINE",m_Doc->toolSettings.dWidthLine);
-	dc.setAttribute("PENSHADE",m_Doc->toolSettings.dShade2);
-	dc.setAttribute("LINESHADE",m_Doc->toolSettings.dShadeLine);
-	dc.setAttribute("BRUSHSHADE",m_Doc->toolSettings.dShade);
-	dc.setAttribute("MAGMIN",m_Doc->toolSettings.magMin);
-	dc.setAttribute("MAGMAX",m_Doc->toolSettings.magMax);
-	dc.setAttribute("MAGSTEP",m_Doc->toolSettings.magStep);
-	dc.setAttribute("CPICT",m_Doc->toolSettings.dBrushPict);
-	dc.setAttribute("PICTSHADE",m_Doc->toolSettings.shadePict);
-	dc.setAttribute("PICTSCX",m_Doc->toolSettings.scaleX);
-	dc.setAttribute("PICTSCY",m_Doc->toolSettings.scaleY);
-	dc.setAttribute("PSCALE", static_cast<int>(m_Doc->toolSettings.scaleType));
-	dc.setAttribute("PASPECT", static_cast<int>(m_Doc->toolSettings.aspectRatio));
-	dc.setAttribute("EmbeddedPath", static_cast<int>(m_Doc->toolSettings.useEmbeddedPath));
-	dc.setAttribute("HalfRes", m_Doc->toolSettings.lowResType);
+	dc.setAttribute("StartArrow", m_Doc->itemToolPrefs.dStartArrow);
+	dc.setAttribute("EndArrow", m_Doc->itemToolPrefs.dEndArrow);
+	dc.setAttribute("PEN",m_Doc->itemToolPrefs.dPen);
+	dc.setAttribute("BRUSH",m_Doc->itemToolPrefs.dBrush);
+	dc.setAttribute("PENLINE",m_Doc->itemToolPrefs.dPenLine);
+	dc.setAttribute("PENTEXT",m_Doc->itemToolPrefs.dPenText);
+	dc.setAttribute("StrokeText",m_Doc->itemToolPrefs.dStrokeText);
+	dc.setAttribute("TextBackGround", m_Doc->itemToolPrefs.dTextBackGround);
+	dc.setAttribute("TextLineColor", m_Doc->itemToolPrefs.dTextLineColor);
+	dc.setAttribute("TextBackGroundShade", m_Doc->itemToolPrefs.dTextBackGroundShade);
+	dc.setAttribute("TextLineShade", m_Doc->itemToolPrefs.dTextLineShade);
+	dc.setAttribute("TextPenShade", m_Doc->itemToolPrefs.dTextPenShade);
+	dc.setAttribute("TextStrokeShade", m_Doc->itemToolPrefs.dTextStrokeShade);
+	dc.setAttribute("STIL",m_Doc->itemToolPrefs.dLineArt);
+	dc.setAttribute("STILLINE",m_Doc->itemToolPrefs.dLstyleLine);
+	dc.setAttribute("WIDTH",m_Doc->itemToolPrefs.dWidth);
+	dc.setAttribute("WIDTHLINE",m_Doc->itemToolPrefs.dWidthLine);
+	dc.setAttribute("PENSHADE",m_Doc->itemToolPrefs.dShade2);
+	dc.setAttribute("LINESHADE",m_Doc->itemToolPrefs.dShadeLine);
+	dc.setAttribute("BRUSHSHADE",m_Doc->itemToolPrefs.dShade);
+	dc.setAttribute("MAGMIN",m_Doc->opToolPrefs.magMin);
+	dc.setAttribute("MAGMAX",m_Doc->opToolPrefs.magMax);
+	dc.setAttribute("MAGSTEP",m_Doc->opToolPrefs.magStep);
+	dc.setAttribute("CPICT",m_Doc->itemToolPrefs.dBrushPict);
+	dc.setAttribute("PICTSHADE",m_Doc->itemToolPrefs.shadePict);
+	dc.setAttribute("PICTSCX",m_Doc->itemToolPrefs.scaleX);
+	dc.setAttribute("PICTSCY",m_Doc->itemToolPrefs.scaleY);
+	dc.setAttribute("PSCALE", static_cast<int>(m_Doc->itemToolPrefs.scaleType));
+	dc.setAttribute("PASPECT", static_cast<int>(m_Doc->itemToolPrefs.aspectRatio));
+	dc.setAttribute("EmbeddedPath", static_cast<int>(m_Doc->itemToolPrefs.useEmbeddedPath));
+	dc.setAttribute("HalfRes", m_Doc->itemToolPrefs.lowResType);
 	dc.setAttribute("MINORC",m_Doc->guidesSettings.minorGridColor.name());
 	dc.setAttribute("MAJORC",m_Doc->guidesSettings.majorGridColor.name());
 	dc.setAttribute("GuideC", m_Doc->guidesSettings.guideColor.name());
@@ -1737,7 +1737,7 @@
 		if ((!prefsManager->appPrefs.GFontSub.contains(fontname)) || (!(*m_AvailableFonts)[prefsManager->appPrefs.GFontSub[fontname]].usable()))
 		{
 			newReplacement = true;
-			ReplacedFonts.insert(fontname, doc->toolSettings.defFont);
+			ReplacedFonts.insert(fontname, doc->itemToolPrefs.defFont);
 		}
 		else
 			ReplacedFonts.insert(fontname, prefsManager->appPrefs.GFontSub[fontname]);
@@ -1746,7 +1746,7 @@
 	}
 	else if ( !doc->UsedFonts.contains(fontname) )
 	{
-		doc->AddFont(fontname, qRound(doc->toolSettings.defSize / 10.0));
+		doc->AddFont(fontname, qRound(doc->itemToolPrefs.defSize / 10.0));
 	}
 	return (*m_AvailableFonts)[fontname];
 }
@@ -1917,16 +1917,16 @@
 	vg.setGapBefore(ScCLocale::toDoubleC(pg.attribute("VOR"), 0.0));
 	vg.setGapAfter(ScCLocale::toDoubleC(pg.attribute("NACH"), 0.0));
 	
-	vg.charStyle().setFont(m_AvailableFonts->findFont(pg.attribute("FONT", doc->toolSettings.defFont), doc));
+	vg.charStyle().setFont(m_AvailableFonts->findFont(pg.attribute("FONT", doc->itemToolPrefs.defFont), doc));
 	vg.charStyle().setFontSize(qRound(ScCLocale::toDoubleC(pg.attribute("FONTSIZE"), 12.0) * 10.0));
 	vg.setHasDropCap(static_cast<bool>(pg.attribute("DROP", "0").toInt()));
 	vg.setDropCapLines(pg.attribute("DROPLIN", "2").toInt());
 	vg.setDropCapOffset(ScCLocale::toDoubleC(pg.attribute("DROPDIST"), 0.0));
 	vg.charStyle().setFeatures(static_cast<StyleFlag>(pg.attribute("EFFECT", "0").toInt()).featureList());
-	QString fColor = pg.attribute("FCOLOR", doc->toolSettings.dBrush);
+	QString fColor = pg.attribute("FCOLOR", doc->itemToolPrefs.dBrush);
 	int fShade = pg.attribute("FSHADE", "100").toInt();
 	handleOldColorShade(doc, fColor, fShade);
-	QString sColor = pg.attribute("SCOLOR", doc->toolSettings.dPen);
+	QString sColor = pg.attribute("SCOLOR", doc->itemToolPrefs.dPen);
 	int sShade = pg.attribute("SSHADE", "100").toInt();
 	handleOldColorShade(doc, sColor, sShade);
 	vg.charStyle().setFillColor(fColor);
@@ -2037,7 +2037,7 @@
 		break;
 	//
 	case PageItem::ImageFrame:
-		z = doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, x, y, w, h, 1, doc->toolSettings.dBrushPict, CommonStrings::None, true);
+		z = doc->itemAdd(PageItem::ImageFrame, PageItem::Unspecified, x, y, w, h, 1, doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		currItem = doc->Items->at(z);
 		if (pagenr > -2) 
 			currItem->OwnPage = pagenr;
@@ -2239,7 +2239,7 @@
 		pstyle.setParent(DoVorl[align-5]);
 	else if (align >= 0)
 		pstyle.setAlignment(static_cast<ParagraphStyle::AlignmentType>(align));
-	pstyle.charStyle().setFont(m_AvailableFonts->findFont(obj->attribute("IFONT", m_Doc->toolSettings.defFont), m_Doc));
+	pstyle.charStyle().setFont(m_AvailableFonts->findFont(obj->attribute("IFONT", m_Doc->itemToolPrefs.defFont), m_Doc));
 	pstyle.charStyle().setFontSize(qRound(ScCLocale::toDoubleC(obj->attribute("ISIZE"), 12.0) * 10));
 	pstyle.charStyle().setStrokeColor(obj->attribute("TXTSTROKE", CommonStrings::None));
 	pstyle.charStyle().setFillColor(obj->attribute("TXTFILL", "Black"));
@@ -2861,10 +2861,10 @@
 					delete last;
 					if (Neu->fill_gradient.Stops() == 0)
 					{
-						const ScColor& col1 = m_Doc->PageColors[m_Doc->toolSettings.dBrush];
-						const ScColor& col2 = m_Doc->PageColors[m_Doc->toolSettings.dPen];
-						Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, m_Doc), 0.0, 0.5, 1.0, m_Doc->toolSettings.dBrush, 100);
-						Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, m_Doc), 1.0, 0.5, 1.0, m_Doc->toolSettings.dPen, 100);
+						const ScColor& col1 = m_Doc->PageColors[m_Doc->itemToolPrefs.dBrush];
+						const ScColor& col2 = m_Doc->PageColors[m_Doc->itemToolPrefs.dPen];
+						Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, m_Doc), 0.0, 0.5, 1.0, m_Doc->itemToolPrefs.dBrush, 100);
+						Neu->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, m_Doc), 1.0, 0.5, 1.0, m_Doc->itemToolPrefs.dPen, 100);
 					}
 //					Neu->Language = ScMW->GetLang(pg.attribute("LANGUAGE", m_Doc->Language));
 //					Neu->Language = m_Doc->Language;
Index: scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp
===================================================================
--- scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp	(revision 13952)
+++ scribus/plugins/fileloader/scribus150format/scribus150format_save.cpp	(revision 13953)
@@ -100,12 +100,12 @@
 	docu.writeAttribute("AUTOSPALTEN" ,m_Doc->PageSp);
 	docu.writeAttribute("ABSTSPALTEN" ,m_Doc->PageSpa);
 	docu.writeAttribute("UNITS"       , m_Doc->unitIndex());
-	docu.writeAttribute("DFONT"       ,m_Doc->toolSettings.defFont);
-	docu.writeAttribute("DSIZE"       ,m_Doc->toolSettings.defSize / 10.0);
-	docu.writeAttribute("DCOL"        ,m_Doc->toolSettings.dCols);
-	docu.writeAttribute("DGAP"        ,m_Doc->toolSettings.dGap);
-	docu.writeAttribute("TabFill"     ,m_Doc->toolSettings.tabFillChar);
-	docu.writeAttribute("TabWidth"    ,m_Doc->toolSettings.dTabWidth);
+	docu.writeAttribute("DFONT"       ,m_Doc->itemToolPrefs.defFont);
+	docu.writeAttribute("DSIZE"       ,m_Doc->itemToolPrefs.defSize / 10.0);
+	docu.writeAttribute("DCOL"        ,m_Doc->itemToolPrefs.dCols);
+	docu.writeAttribute("DGAP"        ,m_Doc->itemToolPrefs.dGap);
+	docu.writeAttribute("TabFill"     ,m_Doc->itemToolPrefs.tabFillChar);
+	docu.writeAttribute("TabWidth"    ,m_Doc->itemToolPrefs.dTabWidth);
 	docu.writeAttribute("AUTHOR"      ,m_Doc->documentInfo.getAuthor());
 	docu.writeAttribute("COMMENTS"    ,m_Doc->documentInfo.getComments());
 	docu.writeAttribute("KEYWORDS"    ,m_Doc->documentInfo.getKeywords());
@@ -177,12 +177,12 @@
 	docu.writeAttribute("rulerYoffset", m_Doc->rulerYoffset);
 	docu.writeAttribute("GuideRad", m_Doc->guidesSettings.guideRad);
 	docu.writeAttribute("GRAB",m_Doc->guidesSettings.grabRadius);
-	docu.writeAttribute("POLYC", m_Doc->toolSettings.polyC);
-	docu.writeAttribute("POLYF", m_Doc->toolSettings.polyF);
-	docu.writeAttribute("POLYR", m_Doc->toolSettings.polyR);
-	docu.writeAttribute("POLYCUR", m_Doc->toolSettings.polyCurvature);
-	docu.writeAttribute("POLYFD", m_Doc->toolSettings.polyFd);
-	docu.writeAttribute("POLYS", static_cast<int>(m_Doc->toolSettings.polyS));
+	docu.writeAttribute("POLYC", m_Doc->itemToolPrefs.polyC);
+	docu.writeAttribute("POLYF", m_Doc->itemToolPrefs.polyF);
+	docu.writeAttribute("POLYR", m_Doc->itemToolPrefs.polyR);
+	docu.writeAttribute("POLYCUR", m_Doc->itemToolPrefs.polyCurvature);
+	docu.writeAttribute("POLYFD", m_Doc->itemToolPrefs.polyFd);
+	docu.writeAttribute("POLYS", static_cast<int>(m_Doc->itemToolPrefs.polyS));
 	docu.writeAttribute("AutoSave", static_cast<int>(m_Doc->AutoSave));
 	docu.writeAttribute("AutoSaveTime", m_Doc->AutoSaveTime);
 	docu.writeAttribute("ScratchBottom", m_Doc->scratch.Bottom);
@@ -191,40 +191,40 @@
 	docu.writeAttribute("ScratchTop", m_Doc->scratch.Top);
 	docu.writeAttribute("GapHorizontal", m_Doc->GapHorizontal);
 	docu.writeAttribute("GapVertical", m_Doc->GapVertical);
-	docu.writeAttribute("StartArrow", m_Doc->toolSettings.dStartArrow);
-	docu.writeAttribute("EndArrow", m_Doc->toolSettings.dEndArrow);
-	docu.writeAttribute("PEN",m_Doc->toolSettings.dPen);
-	docu.writeAttribute("BRUSH",m_Doc->toolSettings.dBrush);
-	docu.writeAttribute("PENLINE",m_Doc->toolSettings.dPenLine);
-	docu.writeAttribute("PENTEXT",m_Doc->toolSettings.dPenText);
-	docu.writeAttribute("StrokeText",m_Doc->toolSettings.dStrokeText);
-	docu.writeAttribute("TextBackGround", m_Doc->toolSettings.dTextBackGround);
-	docu.writeAttribute("TextLineColor", m_Doc->toolSettings.dTextLineColor);
-	docu.writeAttribute("TextBackGroundShade", m_Doc->toolSettings.dTextBackGroundShade);
-	docu.writeAttribute("TextLineShade", m_Doc->toolSettings.dTextLineShade);
-	docu.writeAttribute("TextPenShade", m_Doc->toolSettings.dTextPenShade);
-	docu.writeAttribute("TextStrokeShade", m_Doc->toolSettings.dTextStrokeShade);
-	docu.writeAttribute("STIL",m_Doc->toolSettings.dLineArt);
-	docu.writeAttribute("STILLINE",m_Doc->toolSettings.dLstyleLine);
-	docu.writeAttribute("WIDTH",m_Doc->toolSettings.dWidth);
-	docu.writeAttribute("WIDTHLINE",m_Doc->toolSettings.dWidthLine);
-	docu.writeAttribute("PENSHADE",m_Doc->toolSettings.dShade2);
-	docu.writeAttribute("LINESHADE",m_Doc->toolSettings.dShadeLine);
-	docu.writeAttribute("BRUSHSHADE",m_Doc->toolSettings.dShade);
-	docu.writeAttribute("MAGMIN",m_Doc->toolSettings.magMin);
-	docu.writeAttribute("MAGMAX",m_Doc->toolSettings.magMax);
-	docu.writeAttribute("MAGSTEP",m_Doc->toolSettings.magStep);
-	docu.writeAttribute("CPICT",m_Doc->toolSettings.dBrushPict);
-	docu.writeAttribute("PICTSHADE",m_Doc->toolSettings.shadePict);
-	docu.writeAttribute("PICTSCX",m_Doc->toolSettings.scaleX);
-	docu.writeAttribute("PICTSCY",m_Doc->toolSettings.scaleY);
-	docu.writeAttribute("PSCALE", static_cast<int>(m_Doc->toolSettings.scaleType));
-	docu.writeAttribute("PASPECT", static_cast<int>(m_Doc->toolSettings.aspectRatio));
-	docu.writeAttribute("EmbeddedPath", static_cast<int>(m_Doc->toolSettings.useEmbeddedPath));
-	docu.writeAttribute("HalfRes", m_Doc->toolSettings.lowResType);
-	docu.writeAttribute("dispX", m_Doc->toolSettings.dispX);
-	docu.writeAttribute("dispY", m_Doc->toolSettings.dispY);
-	docu.writeAttribute("constrain", m_Doc->toolSettings.constrain);
+	docu.writeAttribute("StartArrow", m_Doc->itemToolPrefs.dStartArrow);
+	docu.writeAttribute("EndArrow", m_Doc->itemToolPrefs.dEndArrow);
+	docu.writeAttribute("PEN",m_Doc->itemToolPrefs.dPen);
+	docu.writeAttribute("BRUSH",m_Doc->itemToolPrefs.dBrush);
+	docu.writeAttribute("PENLINE",m_Doc->itemToolPrefs.dPenLine);
+	docu.writeAttribute("PENTEXT",m_Doc->itemToolPrefs.dPenText);
+	docu.writeAttribute("StrokeText",m_Doc->itemToolPrefs.dStrokeText);
+	docu.writeAttribute("TextBackGround", m_Doc->itemToolPrefs.dTextBackGround);
+	docu.writeAttribute("TextLineColor", m_Doc->itemToolPrefs.dTextLineColor);
+	docu.writeAttribute("TextBackGroundShade", m_Doc->itemToolPrefs.dTextBackGroundShade);
+	docu.writeAttribute("TextLineShade", m_Doc->itemToolPrefs.dTextLineShade);
+	docu.writeAttribute("TextPenShade", m_Doc->itemToolPrefs.dTextPenShade);
+	docu.writeAttribute("TextStrokeShade", m_Doc->itemToolPrefs.dTextStrokeShade);
+	docu.writeAttribute("STIL",m_Doc->itemToolPrefs.dLineArt);
+	docu.writeAttribute("STILLINE",m_Doc->itemToolPrefs.dLstyleLine);
+	docu.writeAttribute("WIDTH",m_Doc->itemToolPrefs.dWidth);
+	docu.writeAttribute("WIDTHLINE",m_Doc->itemToolPrefs.dWidthLine);
+	docu.writeAttribute("PENSHADE",m_Doc->itemToolPrefs.dShade2);
+	docu.writeAttribute("LINESHADE",m_Doc->itemToolPrefs.dShadeLine);
+	docu.writeAttribute("BRUSHSHADE",m_Doc->itemToolPrefs.dShade);
+	docu.writeAttribute("MAGMIN",m_Doc->opToolPrefs.magMin);
+	docu.writeAttribute("MAGMAX",m_Doc->opToolPrefs.magMax);
+	docu.writeAttribute("MAGSTEP",m_Doc->opToolPrefs.magStep);
+	docu.writeAttribute("CPICT",m_Doc->itemToolPrefs.dBrushPict);
+	docu.writeAttribute("PICTSHADE",m_Doc->itemToolPrefs.shadePict);
+	docu.writeAttribute("PICTSCX",m_Doc->itemToolPrefs.scaleX);
+	docu.writeAttribute("PICTSCY",m_Doc->itemToolPrefs.scaleY);
+	docu.writeAttribute("PSCALE", static_cast<int>(m_Doc->itemToolPrefs.scaleType));
+	docu.writeAttribute("PASPECT", static_cast<int>(m_Doc->itemToolPrefs.aspectRatio));
+	docu.writeAttribute("EmbeddedPath", static_cast<int>(m_Doc->itemToolPrefs.useEmbeddedPath));
+	docu.writeAttribute("HalfRes", m_Doc->itemToolPrefs.lowResType);
+	docu.writeAttribute("dispX", m_Doc->opToolPrefs.dispX);
+	docu.writeAttribute("dispY", m_Doc->opToolPrefs.dispY);
+	docu.writeAttribute("constrain", m_Doc->opToolPrefs.constrain);
 	docu.writeAttribute("MINORC",m_Doc->guidesSettings.minorGridColor.name());
 	docu.writeAttribute("MAJORC",m_Doc->guidesSettings.majorGridColor.name());
 	docu.writeAttribute("GuideC", m_Doc->guidesSettings.guideColor.name());
Index: scribus/plugins/fileloader/scribus150format/scribus150format.cpp
===================================================================
--- scribus/plugins/fileloader/scribus150format/scribus150format.cpp	(revision 13952)
+++ scribus/plugins/fileloader/scribus150format/scribus150format.cpp	(revision 13953)
@@ -855,63 +855,63 @@
 	QString defFont = attrs.valueAsString("DFONT");
 	m_AvailableFonts->findFont(defFont, doc);
 
-	doc->toolSettings.defFont = defFont;
-	doc->toolSettings.defSize = qRound(attrs.valueAsDouble("DSIZE", 12.0) * 10);
-	doc->toolSettings.dCols   = attrs.valueAsInt("DCOL", 1);
-	doc->toolSettings.dGap    = attrs.valueAsDouble("DGAP", 0.0);
+	doc->itemToolPrefs.defFont = defFont;
+	doc->itemToolPrefs.defSize = qRound(attrs.valueAsDouble("DSIZE", 12.0) * 10);
+	doc->itemToolPrefs.dCols   = attrs.valueAsInt("DCOL", 1);
+	doc->itemToolPrefs.dGap    = attrs.valueAsDouble("DGAP", 0.0);
 
-	doc->toolSettings.polyC   = attrs.valueAsInt("POLYC", 4);
-	doc->toolSettings.polyF   = attrs.valueAsDouble("POLYF", 0.5);
-	doc->toolSettings.polyR   = attrs.valueAsDouble("POLYR", 0.0);
-	doc->toolSettings.polyCurvature = attrs.valueAsDouble("POLYCUR", 0.0);
-	doc->toolSettings.polyFd  = attrs.valueAsInt("POLYFD", 0);
-	doc->toolSettings.polyS   = attrs.valueAsBool("POLYS", false);
+	doc->itemToolPrefs.polyC   = attrs.valueAsInt("POLYC", 4);
+	doc->itemToolPrefs.polyF   = attrs.valueAsDouble("POLYF", 0.5);
+	doc->itemToolPrefs.polyR   = attrs.valueAsDouble("POLYR", 0.0);
+	doc->itemToolPrefs.polyCurvature = attrs.valueAsDouble("POLYCUR", 0.0);
+	doc->itemToolPrefs.polyFd  = attrs.valueAsInt("POLYFD", 0);
+	doc->itemToolPrefs.polyS   = attrs.valueAsBool("POLYS", false);
 
-	doc->toolSettings.dStartArrow = attrs.valueAsInt("StartArrow", 0);
-	doc->toolSettings.dEndArrow   = attrs.valueAsInt("EndArrow", 0);
-	doc->toolSettings.scaleX      = attrs.valueAsDouble("PICTSCX", 1.0);
-	doc->toolSettings.scaleY      = attrs.valueAsDouble("PICTSCY", 1.0);
-	doc->toolSettings.scaleType   = attrs.valueAsBool("PSCALE", true);
-	doc->toolSettings.aspectRatio = attrs.valueAsBool("PASPECT", false);
-	doc->toolSettings.lowResType  = attrs.valueAsInt("HalfRes", 1);
-	doc->toolSettings.useEmbeddedPath = attrs.valueAsBool("EmbeddedPath", false);
+	doc->itemToolPrefs.dStartArrow = attrs.valueAsInt("StartArrow", 0);
+	doc->itemToolPrefs.dEndArrow   = attrs.valueAsInt("EndArrow", 0);
+	doc->itemToolPrefs.scaleX      = attrs.valueAsDouble("PICTSCX", 1.0);
+	doc->itemToolPrefs.scaleY      = attrs.valueAsDouble("PICTSCY", 1.0);
+	doc->itemToolPrefs.scaleType   = attrs.valueAsBool("PSCALE", true);
+	doc->itemToolPrefs.aspectRatio = attrs.valueAsBool("PASPECT", false);
+	doc->itemToolPrefs.lowResType  = attrs.valueAsInt("HalfRes", 1);
+	doc->itemToolPrefs.useEmbeddedPath = attrs.valueAsBool("EmbeddedPath", false);
 	if (attrs.hasAttribute("PEN"))
-		doc->toolSettings.dPen = attrs.valueAsString("PEN");
+		doc->itemToolPrefs.dPen = attrs.valueAsString("PEN");
 	if (attrs.hasAttribute("BRUSH"))
-		doc->toolSettings.dBrush = attrs.valueAsString("BRUSH");
+		doc->itemToolPrefs.dBrush = attrs.valueAsString("BRUSH");
 	if (attrs.hasAttribute("PENLINE"))
-		doc->toolSettings.dPenLine = attrs.valueAsString("PENLINE");
+		doc->itemToolPrefs.dPenLine = attrs.valueAsString("PENLINE");
 	if (attrs.hasAttribute("PENTEXT"))
-		doc->toolSettings.dPenText = attrs.valueAsString("PENTEXT");
+		doc->itemToolPrefs.dPenText = attrs.valueAsString("PENTEXT");
 	if (attrs.hasAttribute("StrokeText"))
-		doc->toolSettings.dStrokeText = attrs.valueAsString("StrokeText");
-	doc->toolSettings.dTextBackGround  = attrs.valueAsString("TextBackGround", CommonStrings::None);
-	doc->toolSettings.dTextLineColor   = attrs.valueAsString("TextLineColor", CommonStrings::None);
-	doc->toolSettings.dTextBackGroundShade =attrs.valueAsInt("TextBackGroundShade", 100);
-	doc->toolSettings.dTextLineShade   = attrs.valueAsInt("TextLineShade", 100);
-	doc->toolSettings.dTextPenShade    = attrs.valueAsInt("TextPenShade", 100);
-	doc->toolSettings.dTextStrokeShade = attrs.valueAsInt("TextStrokeShade", 100);
-	doc->toolSettings.dLineArt    = static_cast<Qt::PenStyle>(attrs.valueAsInt("STIL"));
-	doc->toolSettings.dLstyleLine = static_cast<Qt::PenStyle>(attrs.valueAsInt("STILLINE"));
-	doc->toolSettings.dWidth      = attrs.valueAsDouble("WIDTH", 0.0);
-	doc->toolSettings.dWidthLine  = attrs.valueAsDouble("WIDTHLINE", 1.0);
-	doc->toolSettings.dShade2     = attrs.valueAsInt("PENSHADE", 100);
-	doc->toolSettings.dShadeLine  = attrs.valueAsInt("LINESHADE", 100);
-	doc->toolSettings.dShade      = attrs.valueAsInt("BRUSHSHADE", 100);
-	doc->toolSettings.magMin      = attrs.valueAsInt("MAGMIN", 10);
-	doc->toolSettings.magMax      = attrs.valueAsInt("MAGMAX", 3200);
-	doc->toolSettings.magStep     = attrs.valueAsInt("MAGSTEP", 200);
-	doc->toolSettings.dispX       = attrs.valueAsDouble("dispX", 10.0);
-	doc->toolSettings.dispY       = attrs.valueAsDouble("dispY", 10.0);
-	doc->toolSettings.constrain   = attrs.valueAsDouble("constrain", 15.0);
+		doc->itemToolPrefs.dStrokeText = attrs.valueAsString("StrokeText");
+	doc->itemToolPrefs.dTextBackGround  = attrs.valueAsString("TextBackGround", CommonStrings::None);
+	doc->itemToolPrefs.dTextLineColor   = attrs.valueAsString("TextLineColor", CommonStrings::None);
+	doc->itemToolPrefs.dTextBackGroundShade =attrs.valueAsInt("TextBackGroundShade", 100);
+	doc->itemToolPrefs.dTextLineShade   = attrs.valueAsInt("TextLineShade", 100);
+	doc->itemToolPrefs.dTextPenShade    = attrs.valueAsInt("TextPenShade", 100);
+	doc->itemToolPrefs.dTextStrokeShade = attrs.valueAsInt("TextStrokeShade", 100);
+	doc->itemToolPrefs.dLineArt    = static_cast<Qt::PenStyle>(attrs.valueAsInt("STIL"));
+	doc->itemToolPrefs.dLstyleLine = static_cast<Qt::PenStyle>(attrs.valueAsInt("STILLINE"));
+	doc->itemToolPrefs.dWidth      = attrs.valueAsDouble("WIDTH", 0.0);
+	doc->itemToolPrefs.dWidthLine  = attrs.valueAsDouble("WIDTHLINE", 1.0);
+	doc->itemToolPrefs.dShade2     = attrs.valueAsInt("PENSHADE", 100);
+	doc->itemToolPrefs.dShadeLine  = attrs.valueAsInt("LINESHADE", 100);
+	doc->itemToolPrefs.dShade      = attrs.valueAsInt("BRUSHSHADE", 100);
+	doc->opToolPrefs.magMin      = attrs.valueAsInt("MAGMIN", 10);
+	doc->opToolPrefs.magMax      = attrs.valueAsInt("MAGMAX", 3200);
+	doc->opToolPrefs.magStep     = attrs.valueAsInt("MAGSTEP", 200);
+	doc->opToolPrefs.dispX       = attrs.valueAsDouble("dispX", 10.0);
+	doc->opToolPrefs.dispY       = attrs.valueAsDouble("dispY", 10.0);
+	doc->opToolPrefs.constrain   = attrs.valueAsDouble("constrain", 15.0);
 	//CB Reset doc zoom step value to 200% instead of old values.
-	if (doc->toolSettings.magStep < 100)
-		doc->toolSettings.magStep = 200;
-	doc->toolSettings.tabFillChar = attrs.valueAsString("TabFill","");
-	doc->toolSettings.dTabWidth   = attrs.valueAsDouble("TabWidth", 36.0);
+	if (doc->opToolPrefs.magStep < 100)
+		doc->opToolPrefs.magStep = 200;
+	doc->itemToolPrefs.tabFillChar = attrs.valueAsString("TabFill","");
+	doc->itemToolPrefs.dTabWidth   = attrs.valueAsDouble("TabWidth", 36.0);
 	if (attrs.hasAttribute("CPICT"))
-		doc->toolSettings.dBrushPict = attrs.valueAsString("CPICT");
-	doc->toolSettings.shadePict = attrs.valueAsInt("PICTSHADE", 100);
+		doc->itemToolPrefs.dBrushPict = attrs.valueAsString("CPICT");
+	doc->itemToolPrefs.shadePict = attrs.valueAsInt("PICTSHADE", 100);
 }
 
 void Scribus150Format::readTypographicSettings(ScribusDoc* doc, ScXmlStreamAttributes& attrs)
@@ -1674,7 +1674,7 @@
 		newItem->OwnPage = attrs.valueAsInt("OwnPage");
 	if (tagName == "PAGEOBJECT")
 		newItem->OnMasterPage = "";
-	QString tmpf = attrs.valueAsString("IFONT", doc->toolSettings.defFont);
+	QString tmpf = attrs.valueAsString("IFONT", doc->itemToolPrefs.defFont);
 	m_AvailableFonts->findFont(tmpf, doc);
 
 //	newItem->Language = ScMW->GetLang(pg.attribute("LANGUAGE", doc->Language));
@@ -1883,10 +1883,10 @@
 
 	if (newItem->fill_gradient.Stops() == 0)
 	{
-		const ScColor& col1 = doc->PageColors[doc->toolSettings.dBrush];
-		const ScColor& col2 = doc->PageColors[doc->toolSettings.dPen];
-		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, doc), 0.0, 0.5, 1.0, doc->toolSettings.dBrush, 100);
-		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, doc), 1.0, 0.5, 1.0, doc->toolSettings.dPen, 100);
+		const ScColor& col1 = doc->PageColors[doc->itemToolPrefs.dBrush];
+		const ScColor& col2 = doc->PageColors[doc->itemToolPrefs.dPen];
+		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, doc), 0.0, 0.5, 1.0, doc->itemToolPrefs.dBrush, 100);
+		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, doc), 1.0, 0.5, 1.0, doc->itemToolPrefs.dPen, 100);
 	}
 
 	if (newItem->asPathText())
@@ -2210,7 +2210,7 @@
 	case PageItem::ImageFrame:
 	case PageItem::OSGFrame:
 	case PageItem::LatexFrame: /*Everything that is valid for image frames is also valid for latex frames*/
-		z = doc->itemAdd(pt, PageItem::Unspecified, x, y, w, h, 1, doc->toolSettings.dBrushPict, CommonStrings::None, true);
+		z = doc->itemAdd(pt, PageItem::Unspecified, x, y, w, h, 1, doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		currItem = doc->Items->at(z);
 		if (pagenr > -2) 
 			currItem->OwnPage = pagenr;
Index: scribus/plugins/fileloader/oodraw/oodrawimp.cpp
===================================================================
--- scribus/plugins/fileloader/oodraw/oodrawimp.cpp	(revision 13952)
+++ scribus/plugins/fileloader/oodraw/oodrawimp.cpp	(revision 13953)
@@ -462,7 +462,7 @@
 			double gw = maxx - minx;
 			double gh = maxy - miny;
 			PageItem *high = m_Doc->Items->at(highestItem);
-			int z = m_Doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, gx, gy, gw, gh, 0, m_Doc->toolSettings.dBrush, m_Doc->toolSettings.dPen, true);
+			int z = m_Doc->itemAdd(PageItem::Polygon, PageItem::Rectangle, gx, gy, gw, gh, 0, m_Doc->itemToolPrefs.dBrush, m_Doc->itemToolPrefs.dPen, true);
 			PageItem *neu = m_Doc->Items->takeAt(z);
 			m_Doc->Items->insert(lowestItem, neu);
 			neu->Groups.push(m_Doc->GroupCounter);
Index: scribus/plugins/fileloader/scribus134format/scribus134format_save.cpp
===================================================================
--- scribus/plugins/fileloader/scribus134format/scribus134format_save.cpp	(revision 13952)
+++ scribus/plugins/fileloader/scribus134format/scribus134format_save.cpp	(revision 13953)
@@ -97,12 +97,12 @@
 	docu.writeAttribute("AUTOSPALTEN" ,m_Doc->PageSp);
 	docu.writeAttribute("ABSTSPALTEN" ,m_Doc->PageSpa);
 	docu.writeAttribute("UNITS"       , m_Doc->unitIndex());
-	docu.writeAttribute("DFONT"       ,m_Doc->toolSettings.defFont);
-	docu.writeAttribute("DSIZE"       ,m_Doc->toolSettings.defSize / 10.0);
-	docu.writeAttribute("DCOL"        ,m_Doc->toolSettings.dCols);
-	docu.writeAttribute("DGAP"        ,m_Doc->toolSettings.dGap);
-	docu.writeAttribute("TabFill"     ,m_Doc->toolSettings.tabFillChar);
-	docu.writeAttribute("TabWidth"    ,m_Doc->toolSettings.dTabWidth);
+	docu.writeAttribute("DFONT"       ,m_Doc->itemToolPrefs.defFont);
+	docu.writeAttribute("DSIZE"       ,m_Doc->itemToolPrefs.defSize / 10.0);
+	docu.writeAttribute("DCOL"        ,m_Doc->itemToolPrefs.dCols);
+	docu.writeAttribute("DGAP"        ,m_Doc->itemToolPrefs.dGap);
+	docu.writeAttribute("TabFill"     ,m_Doc->itemToolPrefs.tabFillChar);
+	docu.writeAttribute("TabWidth"    ,m_Doc->itemToolPrefs.dTabWidth);
 	docu.writeAttribute("AUTHOR"      ,m_Doc->documentInfo.getAuthor());
 	docu.writeAttribute("COMMENTS"    ,m_Doc->documentInfo.getComments());
 	docu.writeAttribute("KEYWORDS"    ,m_Doc->documentInfo.getKeywords());
@@ -174,12 +174,12 @@
 	docu.writeAttribute("rulerYoffset", m_Doc->rulerYoffset);
 	docu.writeAttribute("GuideRad", m_Doc->guidesSettings.guideRad);
 	docu.writeAttribute("GRAB",m_Doc->guidesSettings.grabRadius);
-	docu.writeAttribute("POLYC", m_Doc->toolSettings.polyC);
-	docu.writeAttribute("POLYF", m_Doc->toolSettings.polyF);
-	docu.writeAttribute("POLYR", m_Doc->toolSettings.polyR);
-	docu.writeAttribute("POLYCUR", m_Doc->toolSettings.polyCurvature);
-	docu.writeAttribute("POLYFD", m_Doc->toolSettings.polyFd);
-	docu.writeAttribute("POLYS", static_cast<int>(m_Doc->toolSettings.polyS));
+	docu.writeAttribute("POLYC", m_Doc->itemToolPrefs.polyC);
+	docu.writeAttribute("POLYF", m_Doc->itemToolPrefs.polyF);
+	docu.writeAttribute("POLYR", m_Doc->itemToolPrefs.polyR);
+	docu.writeAttribute("POLYCUR", m_Doc->itemToolPrefs.polyCurvature);
+	docu.writeAttribute("POLYFD", m_Doc->itemToolPrefs.polyFd);
+	docu.writeAttribute("POLYS", static_cast<int>(m_Doc->itemToolPrefs.polyS));
 	docu.writeAttribute("AutoSave", static_cast<int>(m_Doc->AutoSave));
 	docu.writeAttribute("AutoSaveTime", m_Doc->AutoSaveTime);
 	docu.writeAttribute("ScratchBottom", m_Doc->scratch.Bottom);
@@ -188,40 +188,40 @@
 	docu.writeAttribute("ScratchTop", m_Doc->scratch.Top);
 	docu.writeAttribute("GapHorizontal", m_Doc->GapHorizontal);
 	docu.writeAttribute("GapVertical", m_Doc->GapVertical);
-	docu.writeAttribute("StartArrow", m_Doc->toolSettings.dStartArrow);
-	docu.writeAttribute("EndArrow", m_Doc->toolSettings.dEndArrow);
-	docu.writeAttribute("PEN",m_Doc->toolSettings.dPen);
-	docu.writeAttribute("BRUSH",m_Doc->toolSettings.dBrush);
-	docu.writeAttribute("PENLINE",m_Doc->toolSettings.dPenLine);
-	docu.writeAttribute("PENTEXT",m_Doc->toolSettings.dPenText);
-	docu.writeAttribute("StrokeText",m_Doc->toolSettings.dStrokeText);
-	docu.writeAttribute("TextBackGround", m_Doc->toolSettings.dTextBackGround);
-	docu.writeAttribute("TextLineColor", m_Doc->toolSettings.dTextLineColor);
-	docu.writeAttribute("TextBackGroundShade", m_Doc->toolSettings.dTextBackGroundShade);
-	docu.writeAttribute("TextLineShade", m_Doc->toolSettings.dTextLineShade);
-	docu.writeAttribute("TextPenShade", m_Doc->toolSettings.dTextPenShade);
-	docu.writeAttribute("TextStrokeShade", m_Doc->toolSettings.dTextStrokeShade);
-	docu.writeAttribute("STIL",m_Doc->toolSettings.dLineArt);
-	docu.writeAttribute("STILLINE",m_Doc->toolSettings.dLstyleLine);
-	docu.writeAttribute("WIDTH",m_Doc->toolSettings.dWidth);
-	docu.writeAttribute("WIDTHLINE",m_Doc->toolSettings.dWidthLine);
-	docu.writeAttribute("PENSHADE",m_Doc->toolSettings.dShade2);
-	docu.writeAttribute("LINESHADE",m_Doc->toolSettings.dShadeLine);
-	docu.writeAttribute("BRUSHSHADE",m_Doc->toolSettings.dShade);
-	docu.writeAttribute("MAGMIN",m_Doc->toolSettings.magMin);
-	docu.writeAttribute("MAGMAX",m_Doc->toolSettings.magMax);
-	docu.writeAttribute("MAGSTEP",m_Doc->toolSettings.magStep);
-	docu.writeAttribute("CPICT",m_Doc->toolSettings.dBrushPict);
-	docu.writeAttribute("PICTSHADE",m_Doc->toolSettings.shadePict);
-	docu.writeAttribute("PICTSCX",m_Doc->toolSettings.scaleX);
-	docu.writeAttribute("PICTSCY",m_Doc->toolSettings.scaleY);
-	docu.writeAttribute("PSCALE", static_cast<int>(m_Doc->toolSettings.scaleType));
-	docu.writeAttribute("PASPECT", static_cast<int>(m_Doc->toolSettings.aspectRatio));
-	docu.writeAttribute("EmbeddedPath", static_cast<int>(m_Doc->toolSettings.useEmbeddedPath));
-	docu.writeAttribute("HalfRes", m_Doc->toolSettings.lowResType);
-	docu.writeAttribute("dispX", m_Doc->toolSettings.dispX);
-	docu.writeAttribute("dispY", m_Doc->toolSettings.dispY);
-	docu.writeAttribute("constrain", m_Doc->toolSettings.constrain);
+	docu.writeAttribute("StartArrow", m_Doc->itemToolPrefs.dStartArrow);
+	docu.writeAttribute("EndArrow", m_Doc->itemToolPrefs.dEndArrow);
+	docu.writeAttribute("PEN",m_Doc->itemToolPrefs.dPen);
+	docu.writeAttribute("BRUSH",m_Doc->itemToolPrefs.dBrush);
+	docu.writeAttribute("PENLINE",m_Doc->itemToolPrefs.dPenLine);
+	docu.writeAttribute("PENTEXT",m_Doc->itemToolPrefs.dPenText);
+	docu.writeAttribute("StrokeText",m_Doc->itemToolPrefs.dStrokeText);
+	docu.writeAttribute("TextBackGround", m_Doc->itemToolPrefs.dTextBackGround);
+	docu.writeAttribute("TextLineColor", m_Doc->itemToolPrefs.dTextLineColor);
+	docu.writeAttribute("TextBackGroundShade", m_Doc->itemToolPrefs.dTextBackGroundShade);
+	docu.writeAttribute("TextLineShade", m_Doc->itemToolPrefs.dTextLineShade);
+	docu.writeAttribute("TextPenShade", m_Doc->itemToolPrefs.dTextPenShade);
+	docu.writeAttribute("TextStrokeShade", m_Doc->itemToolPrefs.dTextStrokeShade);
+	docu.writeAttribute("STIL",m_Doc->itemToolPrefs.dLineArt);
+	docu.writeAttribute("STILLINE",m_Doc->itemToolPrefs.dLstyleLine);
+	docu.writeAttribute("WIDTH",m_Doc->itemToolPrefs.dWidth);
+	docu.writeAttribute("WIDTHLINE",m_Doc->itemToolPrefs.dWidthLine);
+	docu.writeAttribute("PENSHADE",m_Doc->itemToolPrefs.dShade2);
+	docu.writeAttribute("LINESHADE",m_Doc->itemToolPrefs.dShadeLine);
+	docu.writeAttribute("BRUSHSHADE",m_Doc->itemToolPrefs.dShade);
+	docu.writeAttribute("MAGMIN",m_Doc->opToolPrefs.magMin);
+	docu.writeAttribute("MAGMAX",m_Doc->opToolPrefs.magMax);
+	docu.writeAttribute("MAGSTEP",m_Doc->opToolPrefs.magStep);
+	docu.writeAttribute("CPICT",m_Doc->itemToolPrefs.dBrushPict);
+	docu.writeAttribute("PICTSHADE",m_Doc->itemToolPrefs.shadePict);
+	docu.writeAttribute("PICTSCX",m_Doc->itemToolPrefs.scaleX);
+	docu.writeAttribute("PICTSCY",m_Doc->itemToolPrefs.scaleY);
+	docu.writeAttribute("PSCALE", static_cast<int>(m_Doc->itemToolPrefs.scaleType));
+	docu.writeAttribute("PASPECT", static_cast<int>(m_Doc->itemToolPrefs.aspectRatio));
+	docu.writeAttribute("EmbeddedPath", static_cast<int>(m_Doc->itemToolPrefs.useEmbeddedPath));
+	docu.writeAttribute("HalfRes", m_Doc->itemToolPrefs.lowResType);
+	docu.writeAttribute("dispX", m_Doc->opToolPrefs.dispX);
+	docu.writeAttribute("dispY", m_Doc->opToolPrefs.dispY);
+	docu.writeAttribute("constrain", m_Doc->opToolPrefs.constrain);
 	docu.writeAttribute("MINORC",m_Doc->guidesSettings.minorGridColor.name());
 	docu.writeAttribute("MAJORC",m_Doc->guidesSettings.majorGridColor.name());
 	docu.writeAttribute("GuideC", m_Doc->guidesSettings.guideColor.name());
@@ -768,15 +768,15 @@
 		docu.writeAttribute("Style", (*tocSetupIt).textStyle);
 		switch ((*tocSetupIt).pageLocation)
 		{
-			case Beginning:
-				docu.writeAttribute("NumberPlacement", "Beginning");
-				break;
-			case End:
-				docu.writeAttribute("NumberPlacement", "End");
-				break;
-			case NotShown:
-				docu.writeAttribute("NumberPlacement", "NotShown");
-				break;
+		case Beginning:
+			docu.writeAttribute("NumberPlacement", "Beginning");
+			break;
+		case End:
+			docu.writeAttribute("NumberPlacement", "End");
+			break;
+		case NotShown:
+			docu.writeAttribute("NumberPlacement", "NotShown");
+			break;
 		}
 	}
 	docu.writeEndElement();
@@ -795,24 +795,24 @@
 		docu.writeAttribute("To", (*it).toindex);
 		switch ((*it).type)
 		{
-			case Type_1_2_3:
-				docu.writeAttribute("Type", "Type_1_2_3");
-				break;
-			case Type_i_ii_iii:
-				docu.writeAttribute("Type", "Type_i_ii_iii");
-				break;
-			case Type_I_II_III:
-				docu.writeAttribute("Type", "Type_I_II_III");
-				break;
-			case Type_a_b_c:
-				docu.writeAttribute("Type", "Type_a_b_c");
-				break;
-			case Type_A_B_C:
-				docu.writeAttribute("Type", "Type_A_B_C");
-				break;
-			case Type_None:
-				docu.writeAttribute("Type", "Type_None");
-				break;
+		case Type_1_2_3:
+			docu.writeAttribute("Type", "Type_1_2_3");
+			break;
+		case Type_i_ii_iii:
+			docu.writeAttribute("Type", "Type_i_ii_iii");
+			break;
+		case Type_I_II_III:
+			docu.writeAttribute("Type", "Type_I_II_III");
+			break;
+		case Type_a_b_c:
+			docu.writeAttribute("Type", "Type_a_b_c");
+			break;
+		case Type_A_B_C:
+			docu.writeAttribute("Type", "Type_A_B_C");
+			break;
+		case Type_None:
+			docu.writeAttribute("Type", "Type_None");
+			break;
 		}
 		docu.writeAttribute("Start", (*it).sectionstartindex);
 		docu.writeAttribute("Reversed", (*it).reversed);
@@ -833,9 +833,9 @@
 		docu.writeAttribute("FirstPage", (*itpgset).FirstPage);
 		docu.writeAttribute("Rows", (*itpgset).Rows);
 		docu.writeAttribute("Columns", (*itpgset).Columns);
-//		docu.writeAttribute("GapHorizontal", (*itpgset).GapHorizontal);
-//		docu.writeAttribute("GapVertical", (*itpgset).GapVertical);
-//		docu.writeAttribute("GapBelow", (*itpgset).GapBelow);
+		//		docu.writeAttribute("GapHorizontal", (*itpgset).GapHorizontal);
+		//		docu.writeAttribute("GapVertical", (*itpgset).GapVertical);
+		//		docu.writeAttribute("GapBelow", (*itpgset).GapBelow);
 		QStringList pNames = (*itpgset).pageNames;
 		QStringList::Iterator itpgsetN;
 		for(itpgsetN = pNames.begin(); itpgsetN != pNames.end(); ++itpgsetN )
@@ -922,9 +922,9 @@
 		docu.writeAttribute("LEFT", page->LeftPg);
 		docu.writeAttribute("PRESET", page->marginPreset);
 		docu.writeAttribute("VerticalGuides", GuideManagerIO::writeVerticalGuides(
-													page, GuideManagerCore::Standard));
+				page, GuideManagerCore::Standard));
 		docu.writeAttribute("HorizontalGuides", GuideManagerIO::writeHorizontalGuides(
-													page, GuideManagerCore::Standard));
+				page, GuideManagerCore::Standard));
 		docu.writeAttribute("AGhorizontalAutoGap", page->guides.horizontalAutoGap());
 		docu.writeAttribute("AGverticalAutoGap", page->guides.verticalAutoGap());
 		docu.writeAttribute("AGhorizontalAutoCount", page->guides.horizontalAutoCount());
@@ -994,7 +994,7 @@
 				/*if (item->asPathText()) // seems to cause problems when loading pathtext elements
 					putCStylePT(docu, lastStyle);
 				else*/
-					putCStyle(docu, lastStyle);
+				putCStyle(docu, lastStyle);
 				docu.writeAttribute("CH", textWithSmartHyphens(item->itemText, lastPos, k));
 			}
 			lastStyle = style1;
@@ -1008,7 +1008,7 @@
 			/*if (item->asPathText()) // seems to cause problems when loading pathtext elements
 				putCStylePT(docu, lastStyle);
 			else*/
-				putCStyle(docu, lastStyle);
+			putCStyle(docu, lastStyle);
 			tmpnum.setNum(ch.unicode());
 			docu.writeAttribute("Unicode", tmpnum);
 			docu.writeAttribute("COBJ", item->itemText.object(k)->ItemNr);		
@@ -1066,7 +1066,7 @@
 		/*if (item->asPathText())
 			putCStylePT(docu, lastStyle);
 		else*/
-			putCStyle(docu, lastStyle);
+		putCStyle(docu, lastStyle);
 		docu.writeAttribute("CH", textWithSmartHyphens(item->itemText, lastPos, item->itemText.length()));
 	}
 	// paragraphstyle for trailing chars
@@ -1084,20 +1084,20 @@
 	uint objects = 0;
 	switch (master)
 	{
-		case ItemSelectionMaster:
-			items = &doc->MasterItems;
-			break;
-		case ItemSelectionPage:
-			items = &doc->DocItems;
-			break;
-		case ItemSelectionFrame:
-			items = &doc->FrameItems;
-			break;
-		case ItemSelectionPattern:
-			items = some_items;
-			break;
-		default:
-			assert(false);
+	case ItemSelectionMaster:
+		items = &doc->MasterItems;
+		break;
+	case ItemSelectionPage:
+		items = &doc->DocItems;
+		break;
+	case ItemSelectionFrame:
+		items = &doc->FrameItems;
+		break;
+	case ItemSelectionPattern:
+		items = some_items;
+		break;
+	default:
+		assert(false);
 	}
 	objects = items->count();
 	for(uint j = 0; j < objects;++j)
@@ -1108,21 +1108,21 @@
 		item = items->at(j);
 		switch (master)
 		{
-			case ItemSelectionMaster:
-//				item = doc->MasterItems.at(j);
-				docu.writeStartElement("MASTEROBJECT");
-				break;
-			case ItemSelectionPage:
-//				item = doc->DocItems.at(j);
-				docu.writeStartElement("PAGEOBJECT");
-				break;
-			case ItemSelectionFrame:
-//				item = doc->FrameItems.at(j);
-				docu.writeStartElement("FRAMEOBJECT");
-				break;
-			case ItemSelectionPattern:
-				docu.writeStartElement("PatternItem");
-				break;
+		case ItemSelectionMaster:
+			//				item = doc->MasterItems.at(j);
+			docu.writeStartElement("MASTEROBJECT");
+			break;
+		case ItemSelectionPage:
+			//				item = doc->DocItems.at(j);
+			docu.writeStartElement("PAGEOBJECT");
+			break;
+		case ItemSelectionFrame:
+			//				item = doc->FrameItems.at(j);
+			docu.writeStartElement("FRAMEOBJECT");
+			break;
+		case ItemSelectionPattern:
+			docu.writeStartElement("PatternItem");
+			break;
 		}
 		SetItemProps(docu, item, baseDir, true);
 		docu.writeAttribute("OnMasterPage", item->OnMasterPage);
@@ -1360,7 +1360,7 @@
 	docu.writeAttribute("textPathFlipped", static_cast<int>(item->textPathFlipped));
 	docu.writeAttribute("FLIPPEDH", item->imageFlippedH());
 	docu.writeAttribute("FLIPPEDV", item->imageFlippedV());
-/*	docu.writeAttribute("BBOXX",item->BBoxX);
+	/*	docu.writeAttribute("BBOXX",item->BBoxX);
 	docu.writeAttribute("BBOXH",item->BBoxH); */
 	if ( ! item->itemText.defaultStyle().charStyle().isInhFont())
 		docu.writeAttribute("IFONT",item->itemText.defaultStyle().charStyle().font().scName());
Index: scribus/plugins/fileloader/scribus134format/scribus134format.cpp
===================================================================
--- scribus/plugins/fileloader/scribus134format/scribus134format.cpp	(revision 13952)
+++ scribus/plugins/fileloader/scribus134format/scribus134format.cpp	(revision 13953)
@@ -863,63 +863,63 @@
 	QString defFont = attrs.valueAsString("DFONT");
 	m_AvailableFonts->findFont(defFont, doc);
 
-	doc->toolSettings.defFont = defFont;
-	doc->toolSettings.defSize = qRound(attrs.valueAsDouble("DSIZE", 12.0) * 10);
-	doc->toolSettings.dCols   = attrs.valueAsInt("DCOL", 1);
-	doc->toolSettings.dGap    = attrs.valueAsDouble("DGAP", 0.0);
+	doc->itemToolPrefs.defFont = defFont;
+	doc->itemToolPrefs.defSize = qRound(attrs.valueAsDouble("DSIZE", 12.0) * 10);
+	doc->itemToolPrefs.dCols   = attrs.valueAsInt("DCOL", 1);
+	doc->itemToolPrefs.dGap    = attrs.valueAsDouble("DGAP", 0.0);
 
-	doc->toolSettings.polyC   = attrs.valueAsInt("POLYC", 4);
-	doc->toolSettings.polyF   = attrs.valueAsDouble("POLYF", 0.5);
-	doc->toolSettings.polyR   = attrs.valueAsDouble("POLYR", 0.0);
-	doc->toolSettings.polyCurvature = attrs.valueAsDouble("POLYCUR", 0.0);
-	doc->toolSettings.polyFd  = attrs.valueAsInt("POLYFD", 0);
-	doc->toolSettings.polyS   = attrs.valueAsBool("POLYS", false);
+	doc->itemToolPrefs.polyC   = attrs.valueAsInt("POLYC", 4);
+	doc->itemToolPrefs.polyF   = attrs.valueAsDouble("POLYF", 0.5);
+	doc->itemToolPrefs.polyR   = attrs.valueAsDouble("POLYR", 0.0);
+	doc->itemToolPrefs.polyCurvature = attrs.valueAsDouble("POLYCUR", 0.0);
+	doc->itemToolPrefs.polyFd  = attrs.valueAsInt("POLYFD", 0);
+	doc->itemToolPrefs.polyS   = attrs.valueAsBool("POLYS", false);
 
-	doc->toolSettings.dStartArrow = attrs.valueAsInt("StartArrow", 0);
-	doc->toolSettings.dEndArrow   = attrs.valueAsInt("EndArrow", 0);
-	doc->toolSettings.scaleX      = attrs.valueAsDouble("PICTSCX", 1.0);
-	doc->toolSettings.scaleY      = attrs.valueAsDouble("PICTSCY", 1.0);
-	doc->toolSettings.scaleType   = attrs.valueAsBool("PSCALE", true);
-	doc->toolSettings.aspectRatio = attrs.valueAsBool("PASPECT", false);
-	doc->toolSettings.lowResType  = attrs.valueAsInt("HalfRes", 1);
-	doc->toolSettings.useEmbeddedPath = attrs.valueAsBool("EmbeddedPath", false);
+	doc->itemToolPrefs.dStartArrow = attrs.valueAsInt("StartArrow", 0);
+	doc->itemToolPrefs.dEndArrow   = attrs.valueAsInt("EndArrow", 0);
+	doc->itemToolPrefs.scaleX      = attrs.valueAsDouble("PICTSCX", 1.0);
+	doc->itemToolPrefs.scaleY      = attrs.valueAsDouble("PICTSCY", 1.0);
+	doc->itemToolPrefs.scaleType   = attrs.valueAsBool("PSCALE", true);
+	doc->itemToolPrefs.aspectRatio = attrs.valueAsBool("PASPECT", false);
+	doc->itemToolPrefs.lowResType  = attrs.valueAsInt("HalfRes", 1);
+	doc->itemToolPrefs.useEmbeddedPath = attrs.valueAsBool("EmbeddedPath", false);
 	if (attrs.hasAttribute("PEN"))
-		doc->toolSettings.dPen = attrs.valueAsString("PEN");
+		doc->itemToolPrefs.dPen = attrs.valueAsString("PEN");
 	if (attrs.hasAttribute("BRUSH"))
-		doc->toolSettings.dBrush = attrs.valueAsString("BRUSH");
+		doc->itemToolPrefs.dBrush = attrs.valueAsString("BRUSH");
 	if (attrs.hasAttribute("PENLINE"))
-		doc->toolSettings.dPenLine = attrs.valueAsString("PENLINE");
+		doc->itemToolPrefs.dPenLine = attrs.valueAsString("PENLINE");
 	if (attrs.hasAttribute("PENTEXT"))
-		doc->toolSettings.dPenText = attrs.valueAsString("PENTEXT");
+		doc->itemToolPrefs.dPenText = attrs.valueAsString("PENTEXT");
 	if (attrs.hasAttribute("StrokeText"))
-		doc->toolSettings.dStrokeText = attrs.valueAsString("StrokeText");
-	doc->toolSettings.dTextBackGround  = attrs.valueAsString("TextBackGround", CommonStrings::None);
-	doc->toolSettings.dTextLineColor   = attrs.valueAsString("TextLineColor", CommonStrings::None);
-	doc->toolSettings.dTextBackGroundShade =attrs.valueAsInt("TextBackGroundShade", 100);
-	doc->toolSettings.dTextLineShade   = attrs.valueAsInt("TextLineShade", 100);
-	doc->toolSettings.dTextPenShade    = attrs.valueAsInt("TextPenShade", 100);
-	doc->toolSettings.dTextStrokeShade = attrs.valueAsInt("TextStrokeShade", 100);
-	doc->toolSettings.dLineArt    = static_cast<Qt::PenStyle>(attrs.valueAsInt("STIL"));
-	doc->toolSettings.dLstyleLine = static_cast<Qt::PenStyle>(attrs.valueAsInt("STILLINE"));
-	doc->toolSettings.dWidth      = attrs.valueAsDouble("WIDTH", 0.0);
-	doc->toolSettings.dWidthLine  = attrs.valueAsDouble("WIDTHLINE", 1.0);
-	doc->toolSettings.dShade2     = attrs.valueAsInt("PENSHADE", 100);
-	doc->toolSettings.dShadeLine  = attrs.valueAsInt("LINESHADE", 100);
-	doc->toolSettings.dShade      = attrs.valueAsInt("BRUSHSHADE", 100);
-	doc->toolSettings.magMin      = attrs.valueAsInt("MAGMIN", 10);
-	doc->toolSettings.magMax      = attrs.valueAsInt("MAGMAX", 3200);
-	doc->toolSettings.magStep     = attrs.valueAsInt("MAGSTEP", 200);
-	doc->toolSettings.dispX       = attrs.valueAsDouble("dispX", 10.0);
-	doc->toolSettings.dispY       = attrs.valueAsDouble("dispY", 10.0);
-	doc->toolSettings.constrain   = attrs.valueAsDouble("constrain", 15.0);
+		doc->itemToolPrefs.dStrokeText = attrs.valueAsString("StrokeText");
+	doc->itemToolPrefs.dTextBackGround  = attrs.valueAsString("TextBackGround", CommonStrings::None);
+	doc->itemToolPrefs.dTextLineColor   = attrs.valueAsString("TextLineColor", CommonStrings::None);
+	doc->itemToolPrefs.dTextBackGroundShade =attrs.valueAsInt("TextBackGroundShade", 100);
+	doc->itemToolPrefs.dTextLineShade   = attrs.valueAsInt("TextLineShade", 100);
+	doc->itemToolPrefs.dTextPenShade    = attrs.valueAsInt("TextPenShade", 100);
+	doc->itemToolPrefs.dTextStrokeShade = attrs.valueAsInt("TextStrokeShade", 100);
+	doc->itemToolPrefs.dLineArt    = static_cast<Qt::PenStyle>(attrs.valueAsInt("STIL"));
+	doc->itemToolPrefs.dLstyleLine = static_cast<Qt::PenStyle>(attrs.valueAsInt("STILLINE"));
+	doc->itemToolPrefs.dWidth      = attrs.valueAsDouble("WIDTH", 0.0);
+	doc->itemToolPrefs.dWidthLine  = attrs.valueAsDouble("WIDTHLINE", 1.0);
+	doc->itemToolPrefs.dShade2     = attrs.valueAsInt("PENSHADE", 100);
+	doc->itemToolPrefs.dShadeLine  = attrs.valueAsInt("LINESHADE", 100);
+	doc->itemToolPrefs.dShade      = attrs.valueAsInt("BRUSHSHADE", 100);
+	doc->opToolPrefs.magMin      = attrs.valueAsInt("MAGMIN", 10);
+	doc->opToolPrefs.magMax      = attrs.valueAsInt("MAGMAX", 3200);
+	doc->opToolPrefs.magStep     = attrs.valueAsInt("MAGSTEP", 200);
+	doc->opToolPrefs.dispX       = attrs.valueAsDouble("dispX", 10.0);
+	doc->opToolPrefs.dispY       = attrs.valueAsDouble("dispY", 10.0);
+	doc->opToolPrefs.constrain   = attrs.valueAsDouble("constrain", 15.0);
 	//CB Reset doc zoom step value to 200% instead of old values.
-	if (doc->toolSettings.magStep < 100)
-		doc->toolSettings.magStep = 200;
-	doc->toolSettings.tabFillChar = attrs.valueAsString("TabFill","");
-	doc->toolSettings.dTabWidth   = attrs.valueAsDouble("TabWidth", 36.0);
+	if (doc->opToolPrefs.magStep < 100)
+		doc->opToolPrefs.magStep = 200;
+	doc->itemToolPrefs.tabFillChar = attrs.valueAsString("TabFill","");
+	doc->itemToolPrefs.dTabWidth   = attrs.valueAsDouble("TabWidth", 36.0);
 	if (attrs.hasAttribute("CPICT"))
-		doc->toolSettings.dBrushPict = attrs.valueAsString("CPICT");
-	doc->toolSettings.shadePict = attrs.valueAsInt("PICTSHADE", 100);
+		doc->itemToolPrefs.dBrushPict = attrs.valueAsString("CPICT");
+	doc->itemToolPrefs.shadePict = attrs.valueAsInt("PICTSHADE", 100);
 }
 
 void Scribus134Format::readTypographicSettings(ScribusDoc* doc, ScXmlStreamAttributes& attrs)
@@ -1705,7 +1705,7 @@
 		newItem->OwnPage = attrs.valueAsInt("OwnPage");
 	if (tagName == "PAGEOBJECT")
 		newItem->OnMasterPage = "";
-	QString tmpf = attrs.valueAsString("IFONT", doc->toolSettings.defFont);
+	QString tmpf = attrs.valueAsString("IFONT", doc->itemToolPrefs.defFont);
 	m_AvailableFonts->findFont(tmpf, doc);
 
 //	newItem->Language = ScMW->GetLang(pg.attribute("LANGUAGE", doc->Language));
@@ -1861,10 +1861,10 @@
 
 	if (newItem->fill_gradient.Stops() == 0)
 	{
-		const ScColor& col1 = doc->PageColors[doc->toolSettings.dBrush];
-		const ScColor& col2 = doc->PageColors[doc->toolSettings.dPen];
-		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, doc), 0.0, 0.5, 1.0, doc->toolSettings.dBrush, 100);
-		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, doc), 1.0, 0.5, 1.0, doc->toolSettings.dPen, 100);
+		const ScColor& col1 = doc->PageColors[doc->itemToolPrefs.dBrush];
+		const ScColor& col2 = doc->PageColors[doc->itemToolPrefs.dPen];
+		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col1, doc), 0.0, 0.5, 1.0, doc->itemToolPrefs.dBrush, 100);
+		newItem->fill_gradient.addStop(ScColorEngine::getRGBColor(col2, doc), 1.0, 0.5, 1.0, doc->itemToolPrefs.dPen, 100);
 	}
 
 	if (newItem->asPathText())
@@ -2281,7 +2281,7 @@
 	case PageItem::ImageFrame:
 	case PageItem::OSGFrame:
 	case PageItem::LatexFrame: /*Everything that is valid for image frames is also valid for latex frames*/
-		z = doc->itemAdd(pt, PageItem::Unspecified, x, y, w, h, 1, doc->toolSettings.dBrushPict, CommonStrings::None, true);
+		z = doc->itemAdd(pt, PageItem::Unspecified, x, y, w, h, 1, doc->itemToolPrefs.dBrushPict, CommonStrings::None, true);
 		currItem = doc->Items->at(z);
 		if (pagenr > -2) 
 			currItem->OwnPage = pagenr;
Index: scribus/plugins/fontpreview/fontpreview.cpp
===================================================================
--- scribus/plugins/fontpreview/fontpreview.cpp	(revision 13952)
+++ scribus/plugins/fontpreview/fontpreview.cpp	(revision 13953)
@@ -70,7 +70,7 @@
 		if (m_Doc->m_Selection->count() != 0)
 			searchName = m_Doc->currentStyle.charStyle().font().scName();
 		else
-			searchName = PrefsManager::instance()->appPrefs.toolSettings.defFont;
+			searchName = PrefsManager::instance()->appPrefs.itemToolPrefs.defFont;
 	}
 	QModelIndexList found = fontModel->match(fontModel->index(0, 0),
 											 Qt::DisplayRole, searchName,
Index: scribus/scpreview.cpp
===================================================================
--- scribus/scpreview.cpp	(revision 13952)
+++ scribus/scpreview.cpp	(revision 13953)
@@ -143,7 +143,7 @@
 //				FT_Face face;
 //				error = FT_New_Face( library, prefsManager->appPrefs.AvailFonts[tmpf].fontFilePath(), prefsManager->appPrefs.AvailFonts[tmpf].faceIndex(), &face );
 				if ( prefsManager->appPrefs.AvailFonts[tmpf].usable() )
-					tmpf = prefsManager->appPrefs.toolSettings.defFont;
+					tmpf = prefsManager->appPrefs.itemToolPrefs.defFont;
 /*				if (prefsManager->appPrefs.AvailFonts[tmpf]->ReadMetrics()) {
 //already done in ScFonts::addScalaableFont():
 //					prefsManager->appPrefs.AvailFonts[tmpf]->CharWidth[13] = 0;
@@ -698,14 +698,14 @@
 						if (hl->effects() != ScStyle_Default)
 						{
 							if (hl->effects() & 1)
-								chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typographicSettings.scalingSuperScript / 100);
+								chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typoPrefs.scalingSuperScript / 100);
 							if (hl->effects() & 2)
-								chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typographicSettings.scalingSubScript / 100);
+								chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typoPrefs.scalingSubScript / 100);
 							if (hl->effects() & 64)
 							{
 								if (chstr.toUpper() != chstr)
 								{
-									chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typographicSettings.valueSmallCaps / 100);
+									chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typoPrefs.valueSmallCaps / 100);
 									chstr = chstr.toUpper();
 								}
 							}
@@ -929,19 +929,19 @@
 					{
 						if (chst & 1)
 						{
-							CurY -= asce * prefsManager->appPrefs.typographicSettings.valueSuperScript / 100;
-							chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typographicSettings.scalingSuperScript / 100);
+							CurY -= asce * prefsManager->appPrefs.typoPrefs.valueSuperScript / 100;
+							chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typoPrefs.scalingSuperScript / 100);
 						}
 						if (chst & 2)
 						{
-							CurY += asce * prefsManager->appPrefs.typographicSettings.valueSubScript / 100;
-							chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typographicSettings.scalingSubScript / 100);
+							CurY += asce * prefsManager->appPrefs.typoPrefs.valueSubScript / 100;
+							chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typoPrefs.scalingSubScript / 100);
 						}
 						if (chst & 64)
 						{
 							if (chstr.toUpper() != chstr)
 							{
-								chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typographicSettings.valueSmallCaps / 100);
+								chs = static_cast<int>(hl->fontSize() * prefsManager->appPrefs.typoPrefs.valueSmallCaps / 100);
 								chstr = chstr.toUpper();
 							}
 						}




More information about the scribus-commit mailing list