Index: scribus/CMakeLists_Sources.txt
===================================================================
--- scribus/CMakeLists_Sources.txt	(Revision 26266)
+++ scribus/CMakeLists_Sources.txt	(Arbeitskopie)
@@ -339,6 +339,8 @@
 	ui/helpbrowser.cpp
 	ui/hruler.cpp
 	ui/hyask.cpp
+	ui/imageclippingpaths.cpp
+	ui/imagelayers.cpp
 	ui/imageinfodialog.cpp
 	ui/inlinepalette.cpp
 	ui/insertTable.cpp
Index: scribus/scimagestructs.h
===================================================================
--- scribus/scimagestructs.h	(Revision 26266)
+++ scribus/scimagestructs.h	(Arbeitskopie)
@@ -23,9 +23,9 @@
 	bool useMask;
 	ushort opacity;
 	QString blend;
-	bool operator==(const ImageLoadRequest &rhs) const
+	bool operator==(const ImageLoadRequest &other) const
 	{
-		return visible == rhs.visible && useMask == rhs.useMask && opacity == rhs.opacity && blend == rhs.blend;
+		return visible == other.visible && useMask == other.useMask && opacity == other.opacity && blend == other.blend;
 	}
 };
 
@@ -116,6 +116,14 @@
 	QString blend;
 	QImage thumb;
 	QImage thumb_mask;
+
+	bool operator == (const PSDLayer &other) const
+	{
+		return channelLen == other.channelLen && channelType == other.channelType && xpos == other.xpos && ypos == other.ypos && width == other.width && height == other.height
+				&& opacity == other.opacity && clipping == other.clipping && flags == other.flags && maskXpos == other.maskXpos && maskYpos == other.maskYpos
+				&& maskWidth == other.maskWidth && maskHeight == other.maskHeight && layerName == other.layerName && blend == other.blend && thumb == other.thumb
+				&& thumb_mask == other.thumb_mask;
+	}
 };
 
 struct PSDDuotone_Color
Index: scribus/scribusstructs.h
===================================================================
--- scribus/scribusstructs.h	(Revision 26266)
+++ scribus/scribusstructs.h	(Arbeitskopie)
@@ -659,5 +659,26 @@
 	BottomRight = 9
 };
 
+// Based on Cairo
+enum class BlendMode
+{
+	Normal = 0,
+	Darken = 1,
+	Lighten = 2,
+	Multiply = 3,
+	Screen = 4,
+	Overlay = 5,
+	HardLight = 6,
+	Softlight = 7,
+	Difference = 8,
+	Exclusion = 9,
+	ColorDodge = 10,
+	ColorBurn = 11,
+	Hue = 12,
+	Saturation = 13,
+	Color = 14,
+	Luminosity = 15
+};
+
 #endif
 
Index: scribus/scribusview.cpp
===================================================================
--- scribus/scribusview.cpp	(Revision 26266)
+++ scribus/scribusview.cpp	(Arbeitskopie)
@@ -2726,9 +2726,8 @@
 	PageItem *currItem = m_doc->m_Selection->itemAt(0);
 	if (!currItem->pixm.imgInfo.valid)
 		return;
-	QScopedPointer<ExtImageProps> dia(new ExtImageProps(this, &currItem->pixm.imgInfo, currItem, this));
+	QScopedPointer<ExtImageProps> dia(new ExtImageProps(this, currItem, this));
 	static_cast<void>(dia->exec());
-	m_ScMW->propertiesPalette->setTextFlowMode(currItem->textFlowMode());
 }
 
 void ScribusView::ToPicFrame()
Index: scribus/ui/extimageprops.cpp
===================================================================
--- scribus/ui/extimageprops.cpp	(Revision 26266)
+++ scribus/ui/extimageprops.cpp	(Arbeitskopie)
@@ -23,483 +23,60 @@
 #include <QTableWidgetItem>
 #include <QTimer>
 
-#include "commonstrings.h"
 #include "pageitem.h"
-#include "scpainter.h"
 #include "scribusdoc.h"
 #include "scribusview.h"
 #include "iconmanager.h"
 #include "util.h"
 #include "util_math.h"
-#include "ui/scrspinbox.h"
 
-ExtImageProps::ExtImageProps( QWidget* parent, ImageInfoRecord *info, PageItem *item, ScribusView *view )
+ExtImageProps::ExtImageProps( QWidget* parent, PageItem *item, ScribusView *view )
 	: QDialog( parent )
 {
-	setModal(true);
+	setupUi(this);
+
+	setModal(false);
 	setWindowTitle( tr( "Extended Image Properties" ) );
 	setWindowIcon(IconManager::instance().loadIcon("AppIcon.png"));
-	ExtImagePropsLayout = new QVBoxLayout( this );
-	ExtImagePropsLayout->setContentsMargins(9, 9, 9, 9);
-	ExtImagePropsLayout->setSpacing(6);
-	m_view  = view;
-	m_timer = nullptr;
-	if (info->layerInfo.count() != 0)
-	{
-		m_timer = new QTimer(this);
-		m_timer->setSingleShot(true);
-		m_timer->setInterval(350);
-	}
+
+	if (!item->pixm.imgInfo.valid)
+		return;
+
 	m_item = item;
-	currentLayer = 0;
+	m_view = view;
+
+	ImageInfoRecord *info = &m_item->pixm.imgInfo;
+
 	originalInfo = *info;
-	originalImageClip = item->imageClip.copy();
-	blendModes.clear();
-	blendModes.insert("norm", tr("Normal"));
-	blendModes.insert("dark", tr("Darken"));
-	blendModes.insert("lite", tr("Lighten"));
-	blendModes.insert("hue ", tr("Hue"));
-	blendModes.insert("sat ", tr("Saturation"));
-	blendModes.insert("colr", tr("Color"));
-	blendModes.insert("lum ", tr("Luminosity"));
-	blendModes.insert("mul ", tr("Multiply"));
-	blendModes.insert("scrn", tr("Screen"));
-	blendModes.insert("diss", tr("Dissolve"));
-	blendModes.insert("over", tr("Overlay"));
-	blendModes.insert("hLit", tr("Hard Light"));
-	blendModes.insert("sLit", tr("Soft Light"));
-	blendModes.insert("diff", tr("Difference"));
-	blendModes.insert("smud", tr("Exclusion"));
-	blendModes.insert("div ", tr("Color Dodge"));
-	blendModes.insert("idiv", tr("Color Burn"));
-	blendModes.insert("plus", tr("Plus"));
-	blendModes.insert("dsti", tr("Destination In"));
-	blendModes.insert("dsto", tr("Destination Out"));
-	blendModesRev.clear();
-	blendModesRev.insert( tr("Normal"), "norm");
-	blendModesRev.insert( tr("Darken"), "dark");
-	blendModesRev.insert( tr("Lighten"), "lite");
-	blendModesRev.insert( tr("Hue"), "hue ");
-	blendModesRev.insert( tr("Saturation"), "sat ");
-	blendModesRev.insert( tr("Color"), "colr");
-	blendModesRev.insert( tr("Luminosity"), "lum ");
-	blendModesRev.insert( tr("Multiply"), "mul ");
-	blendModesRev.insert( tr("Screen"), "scrn");
-	blendModesRev.insert( tr("Dissolve"), "diss");
-	blendModesRev.insert( tr("Overlay"), "over");
-	blendModesRev.insert( tr("Hard Light"), "hLit");
-	blendModesRev.insert( tr("Soft Light"), "sLit");
-	blendModesRev.insert( tr("Difference"), "diff");
-	blendModesRev.insert( tr("Exclusion"), "smud");
-	blendModesRev.insert( tr("Color Dodge"), "div ");
-	blendModesRev.insert( tr("Color Burn"), "idiv");
-	blendModesRev.insert( tr("Plus"), "plus");
-	blendModesRev.insert( tr("Destination In"), "dsti");
-	blendModesRev.insert( tr("Destination Out"), "dsto");
-	propsTab = new QTabWidget( this );
-	QPalette palette;
-	palette.setColor(backgroundRole(), Qt::white);
-	if (info->layerInfo.count() != 0)
-	{
-		tab = new QWidget( propsTab );
-		tabLayout = new QVBoxLayout( tab );
-		tabLayout->setContentsMargins(9, 9, 9, 9);
-		tabLayout->setSpacing(6);
-		layout1 = new QHBoxLayout;
-		layout1->setContentsMargins(0, 0, 0, 0);
-		layout1->setSpacing(6);
-		textLabel1 = new QLabel( tab );
-		textLabel1->setText( tr( "Blend Mode:" ) );
-		layout1->addWidget( textLabel1 );
-		blendMode = new QComboBox( tab );
-		blendMode->clear();
-		blendMode->addItem( tr("Normal"));
-		blendMode->addItem( tr("Darken"));
-		blendMode->addItem( tr("Lighten"));
-		blendMode->addItem( tr("Hue"));
-		blendMode->addItem( tr("Saturation"));
-		blendMode->addItem( tr("Color"));
-		blendMode->addItem( tr("Luminosity"));
-		blendMode->addItem( tr("Multiply"));
-		blendMode->addItem( tr("Screen"));
-		blendMode->addItem( tr("Dissolve"));
-		blendMode->addItem( tr("Overlay"));
-		blendMode->addItem( tr("Hard Light"));
-		blendMode->addItem( tr("Soft Light"));
-		blendMode->addItem( tr("Difference"));
-		blendMode->addItem( tr("Exclusion"));
-		blendMode->addItem( tr("Color Dodge"));
-		blendMode->addItem( tr("Color Burn"));
-		blendMode->addItem( tr("Plus"));
-		blendMode->addItem( tr("Destination In"));
-		blendMode->addItem( tr("Destination Out"));
-		layout1->addWidget( blendMode );
-		textLabel2 = new QLabel( tab );
-		textLabel2->setText( tr( "Opacity:" ) );
-		layout1->addWidget( textLabel2 );
-		opacitySpinBox = new ScrSpinBox( tab );
-		opacitySpinBox->setMinimum(0);
-		opacitySpinBox->setDecimals(0);
-		opacitySpinBox->setMaximum(100);
-		opacitySpinBox->setSingleStep(10);
-		opacitySpinBox->setSuffix( tr(" %"));
-		layout1->addWidget( opacitySpinBox );
-		tabLayout->addLayout( layout1 );
-		layerTable = new QTableWidget(info->layerInfo.count(), 3, tab );
-		layerTable->setHorizontalHeaderItem(0, new QTableWidgetItem(IconManager::instance().loadIcon("16/show-object.png"), ""));
-		layerTable->setHorizontalHeaderItem(1, new QTableWidgetItem(""));
-		layerTable->setHorizontalHeaderItem(2, new QTableWidgetItem( tr("Name")));
-		QHeaderView* headerH = layerTable->horizontalHeader();
-		headerH->setStretchLastSection(true);
-		headerH->setSectionsClickable(false );
-		headerH->setSectionsMovable( false );
-		if (info->layerInfo.count() == 1)
-		{
-			layerTable->setColumnWidth(1, 40);
-			layerTable->setColumnWidth(0, 24);
-		}
-		layerTable->setSortingEnabled(false);
-		layerTable->setSelectionBehavior(QTableWidget::SelectRows);
-		QHeaderView *Header = layerTable->verticalHeader();
-		Header->setSectionsMovable( false );
-		Header->setSectionResizeMode(QHeaderView::Fixed);
-		Header->hide();
-		FlagsSicht.clear();
-		int col2Width = 0;
-		int col1Width = 0;
-		if ((info->isRequest) && (info->RequestProps.contains(0)))
-		{
-			opacitySpinBox->setValue(qRound(info->RequestProps[0].opacity / 255.0 * 100));
-			setCurrentComboItem(blendMode, blendModes[info->RequestProps[0].blend]);
-		}
-		else
-		{
-			opacitySpinBox->setValue(qRound(info->layerInfo[0].opacity / 255.0 * 100));
-			setCurrentComboItem(blendMode, blendModes[info->layerInfo[0].blend]);
-		}
-		opacitySpinBox->setEnabled(true);
-		blendMode->setEnabled(true);
+	originalImageClip = m_item->imageClip.copy();
 
-		QList<PSDLayer>::iterator it2;
-		uint counter = 0;
-		for (it2 = info->layerInfo.begin(); it2 != info->layerInfo.end(); ++it2)
-		{
-			QCheckBox *cp = new QCheckBox(it2->layerName, this);
-			cp->setPalette(palette);
-			QPixmap pm;
-			pm = QPixmap::fromImage(it2->thumb);
-			col1Width = qMax(col1Width, pm.width());
-			cp->setIcon(pm);
-			FlagsSicht.append(cp);
-			connect(cp, SIGNAL(clicked()), this, SLOT(changedLayer()));
-			layerTable->setCellWidget(info->layerInfo.count() - counter - 1, 0, cp);
-			if ((info->isRequest) && (info->RequestProps.contains(counter)))
-				cp->setChecked(info->RequestProps[counter].visible);
-			else
-				cp->setChecked(!(it2->flags & 2));
-			if (!it2->thumb_mask.isNull())
-			{
-				QCheckBox *cp2 = new QCheckBox(it2->layerName, this);
-				cp2->setPalette(palette);
-				QPixmap pm2;
-				pm2 = QPixmap::fromImage(it2->thumb_mask);
-				col2Width = qMax(col2Width, pm2.width());
-				cp2->setIcon(pm2);
-				connect(cp2, SIGNAL(clicked()), this, SLOT(changedLayer()));
-				layerTable->setCellWidget(info->layerInfo.count() - counter - 1, 1, cp2);
-				if ((info->isRequest) && (info->RequestProps.contains(counter)))
-					cp2->setChecked(info->RequestProps[counter].useMask);
-				else
-					cp2->setChecked(true);
-				FlagsMask.append(cp2);
-			}
-			else
-				FlagsMask.append(0);
-			QTableWidgetItem *tW = new QTableWidgetItem(it2->layerName);
-			tW->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
-			layerTable->setItem(info->layerInfo.count()-counter-1, 2, tW);
-			layerTable->setRowHeight(info->layerInfo.count()-counter-1, 40);
-			counter++;
-		}
-		tabLayout->addWidget( layerTable );
-		layerTable->setColumnWidth(1, 24 + col2Width);
-		layerTable->setColumnWidth(0, 24 + col1Width);
-		blendMode->setCurrentIndex(0);
-// 		headerH->setResizeMode(QHeaderView::Fixed);
-		propsTab->addTab( tab,  tr( "Layers" ) );
-	}
-	tab_2 = new QWidget( propsTab );
-	tabLayout_2 = new QVBoxLayout( tab_2 );
-	tabLayout_2->setContentsMargins(9, 9, 9, 9);
-	tabLayout_2->setSpacing(6);
-	pathList = new QListWidget( tab_2 );
-	pathList->clear();
-	pathList->setIconSize(QSize(40, 40));
-	QMap<QString, FPointArray>::Iterator it;
-	if (info->PDSpathData.count() != 0)
-	{
-		for (it = info->PDSpathData.begin(); it != info->PDSpathData.end(); ++it)
-		{
-			QImage pixm(40, 40, QImage::Format_ARGB32_Premultiplied);
-			ScPainter *p = new ScPainter(&pixm, 40, 40);
-			p->clear();
-			p->translate(3.0, 3.0);
-			if (it.key() == info->clipPath)
-			{
-				pixm.fill(Qt::green);
-				p->clear(Qt::green);
-			}
-			else
-				pixm.fill(Qt::white);
-			FPointArray Path;
-			Path = info->PDSpathData[it.key()].copy();
-			FPoint min = getMinClipF(&Path);
-			Path.translate(-min.x(), -min.y());
-			FPoint max = Path.widthHeight();
-			QTransform mm;
-			mm.scale(34.0 / qMax(max.x(), max.y()), 34.0 / qMax(max.x(), max.y()));
-			Path.map(mm);
-			p->setupPolygon(&Path);
-			p->setPen(Qt::black, 1, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
-			p->setBrush(Qt::white);
-			p->setFillMode(ScPainter::None);
-			p->setStrokeMode(ScPainter::Solid);
-			p->strokePath();
-			p->end();
-			delete p;
-			QPixmap pm = QPixmap::fromImage(pixm);
-			new QListWidgetItem(QIcon(pm), it.key(), pathList);
-			if (it.key() == info->usedPath)
-			{
-				pathList->setCurrentRow(pathList->count() - 1);
-				pathList->currentItem()->setSelected(true);
-			}
-		}
-	}
-	tabLayout_2->addWidget( pathList );
-	resetPath = new QPushButton( tr("Don't use any Path"), tab_2);
-	tabLayout_2->addWidget( resetPath );
-	propsTab->addTab( tab_2, tr( "Paths" ) );
-	ExtImagePropsLayout->addWidget( propsTab );
+	imageLayers->setCurrentItem(m_item, m_view);
 
-	layoutBottom = new QHBoxLayout;
-	layoutBottom->setContentsMargins(0, 0, 0, 0);
-	layoutBottom->setSpacing(6);
-	livePreview = new QCheckBox( this );
-	livePreview->setText( tr( "Live Preview" ) );
-	livePreview->setChecked(true);
-	doPreview = true;
-	layoutBottom->addWidget( livePreview );
-	QSpacerItem* spacer = new QSpacerItem( 2, 2, QSizePolicy::Expanding, QSizePolicy::Minimum );
-	layoutBottom->addItem( spacer );
-	okButton = new QPushButton( CommonStrings::tr_OK, this );
-	layoutBottom->addWidget( okButton );
-	cancelButton = new QPushButton( CommonStrings::tr_Cancel, this );
-	cancelButton->setDefault( true );
-	layoutBottom->addWidget( cancelButton );
-	ExtImagePropsLayout->addLayout( layoutBottom );
-	resize(330, 320);
-
-	connect(pathList, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selPath(QListWidgetItem*) ) );
-	connect(resetPath, SIGNAL(clicked()), this, SLOT(noPath()));
-	connect(livePreview, SIGNAL(clicked()), this, SLOT(changePreview()));
-	connect(okButton, SIGNAL(clicked()), this, SLOT(leaveOK()));
-	connect(cancelButton, SIGNAL(clicked()), this, SLOT(leaveCancel()));
-	if (info->layerInfo.count() != 0)
+	if (info->PDSpathData.count() == 0)
 	{
-		layerTable->selectionModel()->clearSelection();
-		opacitySpinBox->setEnabled(false);
-		blendMode->setEnabled(false);
-		connect(m_timer, SIGNAL(timeout()), this,  SLOT(changedLayer()));
-		connect(layerTable, SIGNAL(itemSelectionChanged()), this, SLOT(selLayer()));
-		connect(opacitySpinBox, SIGNAL(valueChanged(double)), this, SLOT(delayedLayerChange()));
-		connect(blendMode, SIGNAL(activated(int)), this, SLOT(changedLayer()));
+		tabWidget->removeTab(1);
+		imagePaths->setCurrentItem(nullptr, m_view);
 	}
-}
+	else
+		imagePaths->setCurrentItem(m_item, m_view);
 
-void ExtImageProps::leaveOK()
-{
-	doPreview = false;
-	if (originalInfo.layerInfo.count() != 0)
-		changedLayer();
-	m_view->m_doc->loadPict(m_item->Pfile, m_item, true);
-	if (pathList->count() != 0)
-	{
-		QList<QListWidgetItem *>sel = pathList->selectedItems();
-		if (sel.count() != 0)
-		{
-			m_item->imageClip = m_item->pixm.imgInfo.PDSpathData[sel[0]->text()].copy();
-			m_item->pixm.imgInfo.usedPath = sel[0]->text();
-			QTransform cl;
-			cl.translate(m_item->imageXOffset()*m_item->imageXScale(), m_item->imageYOffset()*m_item->imageYScale());
-			cl.rotate(m_item->imageRotation());
-			cl.scale(m_item->imageXScale(), m_item->imageYScale());
-			m_item->imageClip.map(cl);
-		}
-		else
-		{
-			m_item->imageClip.resize(0);
-			m_item->pixm.imgInfo.usedPath.clear();
-		}
-	}
-	m_item->update();
-	accept();
+	tabWidget->setCurrentIndex(0);
 }
 
-void ExtImageProps::leaveCancel()
+void ExtImageProps::accept()
 {
-	m_item->pixm.imgInfo = originalInfo;
-	m_view->m_doc->loadPict(m_item->Pfile, m_item, true);
-	m_item->imageClip = originalImageClip.copy();
-	m_item->update();
-	reject();
+	QDialog::accept();
 }
 
-void ExtImageProps::changePreview()
+void ExtImageProps::reject()
 {
-	doPreview = livePreview->isChecked();
-	if (doPreview)
+	if (m_item)
 	{
-		if (originalInfo.layerInfo.count() != 0)
-			changedLayer();
-		m_view->m_doc->loadPict(m_item->Pfile, m_item, true);
-		if (pathList->count() != 0)
-		{
-			QList<QListWidgetItem *>sel = pathList->selectedItems();
-			if (sel.count() != 0)
-			{
-				m_item->imageClip = m_item->pixm.imgInfo.PDSpathData[sel[0]->text()].copy();
-				m_item->pixm.imgInfo.usedPath = sel[0]->text();
-				QTransform cl;
-				cl.translate(m_item->imageXOffset()*m_item->imageXScale(), m_item->imageYOffset()*m_item->imageYScale());
-				cl.rotate(m_item->imageRotation());
-				cl.scale(m_item->imageXScale(), m_item->imageYScale());
-				m_item->imageClip.map(cl);
-			}
-			else
-			{
-				m_item->imageClip.resize(0);
-				m_item->pixm.imgInfo.usedPath.clear();
-			}
-		}
-		m_item->update();
-	}
-	else
-	{
 		m_item->pixm.imgInfo = originalInfo;
 		m_view->m_doc->loadPict(m_item->Pfile, m_item, true);
 		m_item->imageClip = originalImageClip.copy();
 		m_item->update();
 	}
-}
 
-void ExtImageProps::changedLayer()
-{
-	updateLayerInfo();
-	if (doPreview)
-	{
-		m_view->m_doc->loadPict(m_item->Pfile, m_item, true);
-		m_item->update();
-	}
+	QDialog::reject();
 }
-
-void ExtImageProps::delayedLayerChange()
-{
-	if (m_timer->isActive())
-		m_timer->stop();
-	updateLayerInfo();
-	m_timer->start();
-}
-
-void ExtImageProps::selLayer()
-{
-	QModelIndexList selectedRows = layerTable->selectionModel()->selectedRows();
-	if (selectedRows.count() <= 0)
-	{
-		currentLayer = -1;
-		opacitySpinBox->setEnabled(false);
-		blendMode->setEnabled(false);
-		return;
-	}
-
-	int selectedRow = selectedRows.at(0).row();
-	currentLayer = layerTable->rowCount() - selectedRow - 1;
-
-	disconnect(opacitySpinBox, SIGNAL(valueChanged(double)), this, SLOT(delayedLayerChange()));
-	disconnect(blendMode, SIGNAL(activated(int)), this, SLOT(changedLayer()));
-	if ((m_item->pixm.imgInfo.isRequest) && (m_item->pixm.imgInfo.RequestProps.contains(currentLayer)))
-	{
-		opacitySpinBox->setValue(qRound(m_item->pixm.imgInfo.RequestProps[currentLayer].opacity / 255.0 * 100));
-		setCurrentComboItem(blendMode, blendModes[m_item->pixm.imgInfo.RequestProps[currentLayer].blend]);
-	}
-	else
-	{
-		opacitySpinBox->setValue(qRound(m_item->pixm.imgInfo.layerInfo[currentLayer].opacity / 255.0 * 100));
-		setCurrentComboItem(blendMode, blendModes[m_item->pixm.imgInfo.layerInfo[currentLayer].blend]);
-	}
-	opacitySpinBox->setEnabled(true);
-	blendMode->setEnabled(true);
-	connect(opacitySpinBox, SIGNAL(valueChanged(double)), this, SLOT(delayedLayerChange()));
-	connect(blendMode, SIGNAL(activated(int)), this, SLOT(changedLayer()));
-}
-
-void ExtImageProps::updateLayerInfo()
-{
-	struct ImageLoadRequest loadingInfo;
-	bool isRequest = m_item->pixm.imgInfo.isRequest;
-	for (int r = 0; r < layerTable->rowCount(); ++r)
-	{
-		int layerIndex = layerTable->rowCount() - r - 1;
-		if (currentLayer == layerIndex)
-		{
-			loadingInfo.blend = blendModesRev[blendMode->currentText()];
-			loadingInfo.opacity = qRound(opacitySpinBox->value() / 100.0 * 255);
-		}
-		else if ((isRequest) && (m_item->pixm.imgInfo.RequestProps.contains(layerIndex)))
-		{
-			loadingInfo.blend = m_item->pixm.imgInfo.RequestProps[layerIndex].blend;
-			loadingInfo.opacity = m_item->pixm.imgInfo.RequestProps[layerIndex].opacity;
-		}
-		else
-		{
-			loadingInfo.blend = m_item->pixm.imgInfo.layerInfo[layerIndex].blend;
-			loadingInfo.opacity = m_item->pixm.imgInfo.layerInfo[layerIndex].opacity;
-		}
-		loadingInfo.visible = FlagsSicht.at(layerIndex)->isChecked();
-		if (FlagsMask.at(layerIndex))
-			loadingInfo.useMask = FlagsMask.at(layerIndex)->isChecked();
-		else
-			loadingInfo.useMask = true;
-		m_item->pixm.imgInfo.RequestProps.insert(layerIndex, loadingInfo);
-	}
-	m_item->pixm.imgInfo.isRequest = true;
-}
-
-void ExtImageProps::noPath()
-{
-	disconnect(pathList, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selPath(QListWidgetItem*) ) );
-	pathList->clearSelection();
-	if (doPreview)
-	{
-		m_item->imageClip.resize(0);
-		m_item->pixm.imgInfo.usedPath.clear();
-		m_item->update();
-	}
-	connect(pathList, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selPath(QListWidgetItem*) ) );
-}
-
-void ExtImageProps::selPath(QListWidgetItem *c)
-{
-	if ((c != nullptr) && (doPreview))
-	{
-		m_item->imageClip = m_item->pixm.imgInfo.PDSpathData[c->text()].copy();
-		m_item->pixm.imgInfo.usedPath = c->text();
-		QTransform cl;
-		cl.translate(m_item->imageXOffset()*m_item->imageXScale(), m_item->imageYOffset()*m_item->imageYScale());
-		cl.rotate(m_item->imageRotation());
-		cl.scale(m_item->imageXScale(), m_item->imageYScale());
-		m_item->imageClip.map(cl);
-		m_item->update();
-	}
-}
-
Index: scribus/ui/extimageprops.h
===================================================================
--- scribus/ui/extimageprops.h	(Revision 26266)
+++ scribus/ui/extimageprops.h	(Arbeitskopie)
@@ -27,62 +27,30 @@
 class ScribusView;
 class PageItem;
 
+#include "ui_extimageprops.h"
 #include "scribusapi.h"
 #include "scimage.h"
 
-class SCRIBUS_API ExtImageProps : public QDialog
+
+class SCRIBUS_API ExtImageProps : public QDialog, Ui::ExtImageProps
 {
 	Q_OBJECT
 
 public:
-	ExtImageProps( QWidget* parent, ImageInfoRecord *info, PageItem *item, ScribusView *view );
+	ExtImageProps( QWidget* parent, PageItem *item, ScribusView *view );
 	~ExtImageProps() {}
 
 public slots:
-	void leaveOK();
-	void leaveCancel();
-	void changePreview();
-	void changedLayer();
-	void delayedLayerChange();
-	void selLayer();
-	void selPath(QListWidgetItem *c);
-	void noPath();
+	void accept() override;
+	void reject() override;
 
 protected:
-	QTabWidget* propsTab;
-	QWidget* tab;
-	QLabel* textLabel1;
-	QComboBox* blendMode;
-	QLabel* textLabel2;
-	ScrSpinBox* opacitySpinBox;
-	QTableWidget* layerTable;
-	QWidget* tab_2;
-	QListWidget* pathList;
-	QPushButton* resetPath;
-	QCheckBox* livePreview;
-	QPushButton* okButton;
-	QPushButton* cancelButton;
-	QList<QCheckBox*> FlagsSicht;
-	QList<QCheckBox*> FlagsMask;
 
-	QVBoxLayout* ExtImagePropsLayout;
-	QVBoxLayout* tabLayout;
-	QVBoxLayout* tabLayout_2;
-	QHBoxLayout* layout1;
-	QHBoxLayout* layoutBottom;
-
-	QTimer* m_timer;
 	ScribusView *m_view;
 	PageItem *m_item;
 
-	int currentLayer;
-	bool doPreview;
 	ImageInfoRecord originalInfo;
 	FPointArray originalImageClip;
-	QMap<QString, QString> blendModes;
-	QMap<QString, QString> blendModesRev;
-
-	void updateLayerInfo();
 };
 
 #endif // EXTIMAGEPROPS_H
Index: scribus/ui/extimageprops.ui
===================================================================
--- scribus/ui/extimageprops.ui	(nicht existent)
+++ scribus/ui/extimageprops.ui	(Arbeitskopie)
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ExtImageProps</class>
+ <widget class="QDialog" name="ExtImageProps">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Dialog</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>4</number>
+   </property>
+   <property name="leftMargin">
+    <number>8</number>
+   </property>
+   <property name="topMargin">
+    <number>8</number>
+   </property>
+   <property name="rightMargin">
+    <number>8</number>
+   </property>
+   <property name="bottomMargin">
+    <number>8</number>
+   </property>
+   <item>
+    <widget class="QTabWidget" name="tabWidget">
+     <property name="currentIndex">
+      <number>0</number>
+     </property>
+     <property name="tabBarAutoHide">
+      <bool>true</bool>
+     </property>
+     <widget class="QWidget" name="tabLayers">
+      <attribute name="title">
+       <string>Layers</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_2">
+       <property name="spacing">
+        <number>4</number>
+       </property>
+       <property name="leftMargin">
+        <number>8</number>
+       </property>
+       <property name="topMargin">
+        <number>8</number>
+       </property>
+       <property name="rightMargin">
+        <number>8</number>
+       </property>
+       <property name="bottomMargin">
+        <number>8</number>
+       </property>
+       <item>
+        <widget class="ImageLayers" name="imageLayers" native="true"/>
+       </item>
+      </layout>
+     </widget>
+     <widget class="QWidget" name="tabPaths">
+      <attribute name="title">
+       <string>Clipping Paths</string>
+      </attribute>
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <property name="spacing">
+        <number>4</number>
+       </property>
+       <property name="leftMargin">
+        <number>8</number>
+       </property>
+       <property name="topMargin">
+        <number>8</number>
+       </property>
+       <property name="rightMargin">
+        <number>8</number>
+       </property>
+       <property name="bottomMargin">
+        <number>8</number>
+       </property>
+       <item>
+        <widget class="ImageClippingPaths" name="imagePaths" native="true"/>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>4</number>
+     </property>
+     <item>
+      <widget class="QDialogButtonBox" name="buttonBox">
+       <property name="orientation">
+        <enum>Qt::Orientation::Horizontal</enum>
+       </property>
+       <property name="standardButtons">
+        <set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>ImageLayers</class>
+   <extends>QWidget</extends>
+   <header>ui/imagelayers.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>ImageClippingPaths</class>
+   <extends>QWidget</extends>
+   <header>ui/imageclippingpaths.h</header>
+   <container>1</container>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>tabWidget</tabstop>
+ </tabstops>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>ExtImageProps</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>248</x>
+     <y>254</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>ExtImageProps</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>316</x>
+     <y>260</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>
Index: scribus/ui/imageclippingpaths.cpp
===================================================================
--- scribus/ui/imageclippingpaths.cpp	(nicht existent)
+++ scribus/ui/imageclippingpaths.cpp	(Arbeitskopie)
@@ -0,0 +1,127 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+#include "imageclippingpaths.h"
+
+#include <QWidget>
+
+#include "pageitem.h"
+#include "scpainter.h"
+#include "scribus.h"
+#include "scribusdoc.h"
+#include "scribusview.h"
+
+ImageClippingPaths::ImageClippingPaths(QWidget *parent) :
+	QWidget(parent)
+{
+	setupUi(this);
+
+	pathList->setIconSize(QSize(40, 40));
+
+}
+
+void ImageClippingPaths::setCurrentItem(PageItem *item, ScribusView *view )
+{
+	m_view  = view;
+	m_item = item;
+
+	disconnect(pathList, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectPath(QListWidgetItem*) ) );
+	disconnect(resetPath, SIGNAL(clicked()), this, SLOT(noPath()));
+
+	pathList->clear();
+
+	if (!m_item || !m_item->pixm.imgInfo.valid || m_item->pixm.imgInfo.PDSpathData.count() == 0)
+		return;
+
+	ImageInfoRecord *info = &m_item->pixm.imgInfo;
+	QSize s = pathList->iconSize();
+	int space = 3;
+
+	QMap<QString, FPointArray>::Iterator it;
+	for (it = info->PDSpathData.begin(); it != info->PDSpathData.end(); ++it)
+	{
+		QImage pixm(s.width(), s.height(), QImage::Format_ARGB32_Premultiplied);
+		ScPainter *p = new ScPainter(&pixm, s.width(), s.height());
+		p->clear();
+		p->translate(space, space);
+		if (it.key() == info->clipPath)
+		{
+			pixm.fill(Qt::green);
+			p->clear(Qt::green);
+		}
+		else
+			pixm.fill(Qt::white);
+		FPointArray Path;
+		Path = info->PDSpathData[it.key()].copy();
+		FPoint min = getMinClipF(&Path);
+		Path.translate(-min.x(), -min.y());
+		FPoint max = Path.widthHeight();
+		QTransform mm;
+		mm.scale( (s.width() - space * 2) / qMax(max.x(), max.y()), (s.height() - space * 2) / qMax(max.x(), max.y()));
+		Path.map(mm);
+		p->setupPolygon(&Path);
+		p->setPen(Qt::black, 1, Qt::SolidLine, Qt::FlatCap, Qt::MiterJoin);
+		p->setBrush(Qt::white);
+		p->setFillMode(ScPainter::None);
+		p->setStrokeMode(ScPainter::Solid);
+		p->strokePath();
+		p->end();
+		delete p;
+		QPixmap pm = QPixmap::fromImage(pixm);
+		new QListWidgetItem(QIcon(pm), it.key(), pathList);
+		if (it.key() == info->usedPath)
+		{
+			pathList->setCurrentRow(pathList->count() - 1);
+			pathList->currentItem()->setSelected(true);
+		}
+	}
+
+	connect(pathList, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectPath(QListWidgetItem*) ) );
+	connect(resetPath, SIGNAL(clicked()), this, SLOT(noPath()));
+
+}
+
+
+void ImageClippingPaths::noPath()
+{
+	QSignalBlocker list(pathList);
+	pathList->clearSelection();
+
+	m_item->imageClip.resize(0);
+	m_item->pixm.imgInfo.usedPath.clear();
+	m_item->update();
+
+	updatePreview();
+
+}
+
+void ImageClippingPaths::selectPath(QListWidgetItem *c)
+{
+	if ((c != nullptr))
+	{
+		m_item->imageClip = m_item->pixm.imgInfo.PDSpathData[c->text()].copy();
+		m_item->pixm.imgInfo.usedPath = c->text();
+		QTransform cl;
+		cl.translate(m_item->imageXOffset()*m_item->imageXScale(), m_item->imageYOffset()*m_item->imageYScale());
+		cl.rotate(m_item->imageRotation());
+		cl.scale(m_item->imageXScale(), m_item->imageYScale());
+		m_item->imageClip.map(cl);
+		m_item->update();
+
+		updatePreview();
+	}
+}
+
+void ImageClippingPaths::updatePreview()
+{
+	PageItem::TextFlowMode flowMode = m_item->textFlowMode();
+
+	if (pathList->selectedItems().count() == 0 && flowMode == PageItem::TextFlowUsesImageClipping)
+		m_item->setTextFlowMode(PageItem::TextFlowDisabled);
+
+	m_view->m_doc->changed();
+	m_view->m_doc->changedPagePreview();
+}
Index: scribus/ui/imageclippingpaths.h
===================================================================
--- scribus/ui/imageclippingpaths.h	(nicht existent)
+++ scribus/ui/imageclippingpaths.h	(Arbeitskopie)
@@ -0,0 +1,42 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+#ifndef IMAGECLIPPINGPATHS_H
+#define IMAGECLIPPINGPATHS_H
+
+#include <QWidget>
+#include "ui_imageclippingpaths.h"
+#include "scribusapi.h"
+#include "fpointarray.h"
+
+class QWidget;
+class ScribusView;
+class PageItem;
+
+class SCRIBUS_API ImageClippingPaths : public QWidget, Ui::ImageClippingPaths
+{
+	Q_OBJECT
+
+public:
+	explicit ImageClippingPaths(QWidget *parent = nullptr);
+	~ImageClippingPaths() {};
+	void setCurrentItem(PageItem *item, ScribusView *view );
+
+private slots:
+
+	void selectPath(QListWidgetItem *c);
+	void noPath();
+
+protected:
+
+	ScribusView *m_view;
+	PageItem *m_item;
+
+	void updatePreview();
+
+};
+
+#endif // IMAGECLIPPINGPATHS_H
Index: scribus/ui/imageclippingpaths.ui
===================================================================
--- scribus/ui/imageclippingpaths.ui	(nicht existent)
+++ scribus/ui/imageclippingpaths.ui	(Arbeitskopie)
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ImageClippingPaths</class>
+ <widget class="QWidget" name="ImageClippingPaths">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>4</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QListWidget" name="pathList"/>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>4</number>
+     </property>
+     <item>
+      <widget class="QPushButton" name="resetPath">
+       <property name="text">
+        <string>Don't use any Path</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Orientation::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
Index: scribus/ui/imagelayers.cpp
===================================================================
--- scribus/ui/imagelayers.cpp	(nicht existent)
+++ scribus/ui/imagelayers.cpp	(Arbeitskopie)
@@ -0,0 +1,298 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+#include "imagelayers.h"
+
+#include <QHBoxLayout>
+#include <QVBoxLayout>
+#include <QListWidget>
+#include <QListWidgetItem>
+#include <QPixmap>
+#include <QTabWidget>
+#include <QLabel>
+#include <QCheckBox>
+#include <QComboBox>
+#include <QPushButton>
+#include <QToolTip>
+#include <QPainter>
+#include <QWidget>
+#include <QHeaderView>
+#include <QTableWidget>
+#include <QTableWidgetItem>
+#include <QTimer>
+
+#include "pageitem.h"
+#include "scribus.h"
+#include "scribusdoc.h"
+#include "scribusview.h"
+#include "iconmanager.h"
+#include "ui/propertiespalette.h"
+#include "util.h"
+
+ImageLayers::ImageLayers(QWidget *parent) :
+	QWidget(parent)
+{
+	setupUi(this);
+
+	blendMode->clear();
+	blendMode->addItem( tr("Normal"), "norm");
+	blendMode->addItem( tr("Darken"), "dark");
+	blendMode->addItem( tr("Lighten"), "lite");
+	blendMode->addItem( tr("Hue"), "hue ");
+	blendMode->addItem( tr("Saturation"), "sat ");
+	blendMode->addItem( tr("Color"), "colr");
+	blendMode->addItem( tr("Luminosity"), "lum ");
+	blendMode->addItem( tr("Multiply"), "mul ");
+	blendMode->addItem( tr("Screen"), "scrn");
+	blendMode->addItem( tr("Dissolve"), "diss");
+	blendMode->addItem( tr("Overlay"), "over");
+	blendMode->addItem( tr("Hard Light"), "hLit");
+	blendMode->addItem( tr("Soft Light"), "sLit");
+	blendMode->addItem( tr("Difference"), "diff");
+	blendMode->addItem( tr("Exclusion"), "smud");
+	blendMode->addItem( tr("Color Dodge"), "div ");
+	blendMode->addItem( tr("Color Burn"), "idiv");
+	blendMode->addItem( tr("Plus"), "plus");
+	blendMode->addItem( tr("Destination In"), "dsti");
+	blendMode->addItem( tr("Destination Out"), "dsto");
+
+	opacitySpinBox->setMinimum(0);
+	opacitySpinBox->setDecimals(0);
+	opacitySpinBox->setMaximum(100);
+	opacitySpinBox->setSingleStep(10);
+	opacitySpinBox->setSuffix( tr(" %"));
+
+	blendMode->setCurrentIndex(0);
+
+	layerTable->setColumnCount(3);
+	layerTable->setHorizontalHeaderItem(0, new QTableWidgetItem(IconManager::instance().loadIcon("16/show-object.png"), ""));
+	layerTable->setHorizontalHeaderItem(1, new QTableWidgetItem(IconManager::instance().loadIcon("mask"), ""));
+	layerTable->setHorizontalHeaderItem(2, new QTableWidgetItem( tr("Name")));
+	layerTable->setColumnWidth(0, 64);
+	layerTable->setColumnWidth(1, 64);
+	QHeaderView* headerH = layerTable->horizontalHeader();
+	headerH->setStretchLastSection(true);
+	headerH->setSectionsClickable(false );
+	headerH->setSectionsMovable( false );
+	headerH->setSectionResizeMode(QHeaderView::Fixed);
+	layerTable->setSortingEnabled(false);
+	layerTable->setSelectionBehavior(QTableWidget::SelectRows);
+	QHeaderView *Header = layerTable->verticalHeader();
+	Header->setSectionsMovable( false );
+	Header->setSectionResizeMode(QHeaderView::Fixed);
+	Header->hide();
+
+}
+
+void ImageLayers::setCurrentItem(PageItem *item, ScribusView *view )
+{
+	bool sameItem = (m_item == item);
+
+	m_view  = view;
+	m_item = item;
+
+	disconnect(layerTable, SIGNAL(itemSelectionChanged()), this, SLOT(selectLayer()));
+	disconnect(opacitySpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateLayerInfo()));
+	disconnect(blendMode, SIGNAL(activated(int)), this, SLOT(updateLayerInfo()));
+
+	if (!m_item || !m_item->pixm.imgInfo.valid || m_item->pixm.imgInfo.layerInfo.count() == 0)
+	{
+		currentLayer = -1;
+		opacitySpinBox->setEnabled(false);
+		blendMode->setEnabled(false);
+		blendMode->setCurrentIndex(0);
+		layerTable->clearContents();
+		layerTable->clearSelection();
+		originalRequestProps.clear();
+		return;
+	}
+
+	ImageInfoRecord *info = &m_item->pixm.imgInfo;
+	QList<PSDLayer>::iterator it;
+	uint counter = 0;
+
+	if (!sameItem || originalRequestProps.count() == 0)
+	{
+		layerTable->clearSelection();
+		originalRequestProps = info->RequestProps;
+		currentLayer = -1;
+		layerTable->setRowCount(info->layerInfo.count());
+
+		for (it = info->layerInfo.begin(); it != info->layerInfo.end(); ++it)
+		{
+			addListItem(it, counter, info);
+			counter++;
+		}
+
+		selectLayer();
+	}
+	// Update list only if there are changes
+	else if (sameItem && info->RequestProps != originalRequestProps/* && originalRequestProps.count() != 0*/)
+	{
+		originalRequestProps = info->RequestProps;
+
+		for (it = info->layerInfo.begin(); it != info->layerInfo.end(); ++it)
+		{
+			updateListItem(it, counter, info);
+			counter++;
+		}
+
+		selectLayer();
+	}
+
+	connect(layerTable, SIGNAL(itemSelectionChanged()), this, SLOT(selectLayer()));
+	connect(opacitySpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateLayerInfo()));
+	connect(blendMode, SIGNAL(activated(int)), this, SLOT(updateLayerInfo()));
+
+}
+
+void ImageLayers::selectLayer()
+{
+	QSignalBlocker sigOpacity(opacitySpinBox);
+	QSignalBlocker sigBlendMode(blendMode);
+
+	QModelIndexList selectedRows = layerTable->selectionModel()->selectedRows();
+	if (selectedRows.count() <= 0)
+	{
+		currentLayer = -1;
+		opacitySpinBox->setEnabled(false);
+		opacitySpinBox->setValue(100);
+		blendMode->setEnabled(false);
+		blendMode->setCurrentIndex(0);
+		return;
+	}
+
+	int selectedRow = selectedRows.at(0).row();
+	currentLayer = layerTable->rowCount() - selectedRow - 1;
+
+	ImageInfoRecord *info = &m_item->pixm.imgInfo;
+
+	if ((info->isRequest) && (info->RequestProps.contains(currentLayer)))
+	{
+		opacitySpinBox->setValue(qRound(info->RequestProps[currentLayer].opacity / 255.0 * 100));
+		setCurrentComboItemFromData(blendMode, info->RequestProps[currentLayer].blend);
+	}
+	else
+	{
+		opacitySpinBox->setValue(qRound(info->layerInfo[currentLayer].opacity / 255.0 * 100));
+		setCurrentComboItemFromData(blendMode, info->layerInfo[currentLayer].blend);
+	}
+	opacitySpinBox->setEnabled(true);
+	blendMode->setEnabled(true);
+}
+
+void ImageLayers::addListItem(QList<PSDLayer>::iterator it, int layerID, ImageInfoRecord *info)
+{
+	QPalette palette;
+	palette.setColor(backgroundRole(), Qt::white);
+
+	// Layer
+	QCheckBox *cp = new QCheckBox();
+	cp->setPalette(palette);
+	QPixmap pm;
+	pm = QPixmap::fromImage(it->thumb);
+	cp->setIcon(pm);
+	layerTable->setCellWidget(tableRow(layerID), 0, cp);
+	if ((info->isRequest) && (info->RequestProps.contains(layerID)))
+		cp->setChecked(info->RequestProps[layerID].visible);
+	else
+		cp->setChecked(!(it->flags & 2));
+
+	connect(cp, SIGNAL(toggled(bool)), this, SLOT(updateLayerInfo()));
+
+	// Layer Mask
+	if (!it->thumb_mask.isNull())
+	{
+		QCheckBox *cp2 = new QCheckBox();
+		cp2->setPalette(palette);
+		QPixmap pm2;
+		pm2 = QPixmap::fromImage(it->thumb_mask);
+		cp2->setIcon(pm2);
+		layerTable->setCellWidget(tableRow(layerID), 1, cp2);
+
+		if ((info->isRequest) && (info->RequestProps.contains(layerID)))
+			cp2->setChecked(info->RequestProps[layerID].useMask);
+		else
+			cp2->setChecked(true);
+
+		connect(cp2, SIGNAL(toggled(bool)), this, SLOT(updateLayerInfo()));
+	}
+	else
+		layerTable->setCellWidget(tableRow(layerID), 1, nullptr);
+
+	// Layer Name
+	QTableWidgetItem *tW = new QTableWidgetItem(it->layerName);
+	tW->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+	layerTable->setItem(tableRow(layerID), 2, tW);
+	layerTable->setRowHeight(tableRow(layerID), 40);
+}
+
+void ImageLayers::updateListItem(QList<PSDLayer>::iterator it, int layerID, ImageInfoRecord *info)
+{
+	// layer
+	QCheckBox *cbLayer = dynamic_cast<QCheckBox*>(layerTable->cellWidget(tableRow(layerID), 0));
+	if (cbLayer)
+	{
+		QSignalBlocker sigLayer(cbLayer);
+		if ((info->isRequest) && (info->RequestProps.contains(layerID)))
+			cbLayer->setChecked(info->RequestProps[layerID].visible);
+		else
+			cbLayer->setChecked(!(it->flags & 2));
+	}
+
+	// Mask
+	if (!it->thumb_mask.isNull())
+	{
+		QCheckBox *cbMask = dynamic_cast<QCheckBox*>(layerTable->cellWidget(tableRow(layerID), 1));
+
+		if (!cbMask)
+			return;
+
+		QSignalBlocker sigMask(cbMask);
+		if ((info->isRequest) && (info->RequestProps.contains(layerID)))
+			cbMask->setChecked(info->RequestProps[layerID].useMask);
+		else
+			cbMask->setChecked(true);
+	}
+}
+
+void ImageLayers::updateLayerInfo()
+{
+	struct ImageLoadRequest loadingInfo;
+	bool isRequest = m_item->pixm.imgInfo.isRequest;
+	for (int r = 0; r < layerTable->rowCount(); ++r)
+	{
+		int layerIndex = tableRow(r);
+
+		if (currentLayer == layerIndex)
+		{
+			loadingInfo.blend = blendMode->currentData().toString();
+			loadingInfo.opacity = qRound(opacitySpinBox->value() / 100.0 * 255);
+		}
+		else if ((isRequest) && (m_item->pixm.imgInfo.RequestProps.contains(layerIndex)))
+		{
+			loadingInfo.blend = m_item->pixm.imgInfo.RequestProps[layerIndex].blend;
+			loadingInfo.opacity = m_item->pixm.imgInfo.RequestProps[layerIndex].opacity;
+		}
+		else
+		{
+			loadingInfo.blend = m_item->pixm.imgInfo.layerInfo[layerIndex].blend;
+			loadingInfo.opacity = m_item->pixm.imgInfo.layerInfo[layerIndex].opacity;
+		}
+
+		QCheckBox *cbLayer = dynamic_cast<QCheckBox*>(layerTable->cellWidget(r, 0));
+		QCheckBox *cbMask = dynamic_cast<QCheckBox*>(layerTable->cellWidget(r, 1));
+		loadingInfo.visible = (cbLayer) ? cbLayer->checkState() : true;
+		loadingInfo.useMask = (cbMask) ? cbMask->checkState() : true;
+
+		m_item->pixm.imgInfo.RequestProps.insert(layerIndex, loadingInfo);
+	}
+	m_item->pixm.imgInfo.isRequest = true;
+
+	m_view->m_doc->loadPict(m_item->Pfile, m_item, true);
+	m_item->update();
+}
+
Index: scribus/ui/imagelayers.h
===================================================================
--- scribus/ui/imagelayers.h	(nicht existent)
+++ scribus/ui/imagelayers.h	(Arbeitskopie)
@@ -0,0 +1,47 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+#ifndef IMAGELAYERS_H
+#define IMAGELAYERS_H
+
+#include <QWidget>
+#include <QList>
+#include "ui_imagelayers.h"
+#include "scribusapi.h"
+#include "scimagestructs.h"
+
+class QCheckBox;
+class ScribusView;
+class PageItem;
+
+class SCRIBUS_API ImageLayers : public QWidget, Ui::ImageLayers
+{
+	Q_OBJECT
+
+public:
+	explicit ImageLayers(QWidget *parent = nullptr);
+	~ImageLayers() {};
+
+	void setCurrentItem(PageItem *item, ScribusView *view );
+
+public slots:
+	void updateLayerInfo();
+	void selectLayer();
+
+protected:
+
+	ScribusView *m_view {nullptr};
+	PageItem *m_item {nullptr};
+	int currentLayer {-1};
+	QMap<int, ImageLoadRequest> originalRequestProps;
+
+	void addListItem(QList<PSDLayer>::iterator it, int layerID, ImageInfoRecord *info);
+	void updateListItem(QList<PSDLayer>::iterator it, int layerID, ImageInfoRecord *info);
+	int tableRow(int layer) { return layerTable->rowCount() - layer - 1; };
+
+};
+
+#endif // IMAGELAYERS_H
Index: scribus/ui/imagelayers.ui
===================================================================
--- scribus/ui/imagelayers.ui	(nicht existent)
+++ scribus/ui/imagelayers.ui	(Arbeitskopie)
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ImageLayers</class>
+ <widget class="QWidget" name="ImageLayers">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>365</width>
+    <height>300</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>4</number>
+   </property>
+   <property name="leftMargin">
+    <number>0</number>
+   </property>
+   <property name="topMargin">
+    <number>0</number>
+   </property>
+   <property name="rightMargin">
+    <number>0</number>
+   </property>
+   <property name="bottomMargin">
+    <number>0</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout">
+     <property name="spacing">
+      <number>4</number>
+     </property>
+     <item>
+      <widget class="FormWidget" name="formWidget">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="label" stdset="0">
+        <string>Blend Mode</string>
+       </property>
+       <layout class="QHBoxLayout" name="horizontalLayout_2">
+        <property name="spacing">
+         <number>4</number>
+        </property>
+        <property name="leftMargin">
+         <number>0</number>
+        </property>
+        <property name="topMargin">
+         <number>0</number>
+        </property>
+        <property name="rightMargin">
+         <number>0</number>
+        </property>
+        <property name="bottomMargin">
+         <number>0</number>
+        </property>
+        <item>
+         <widget class="QComboBox" name="blendMode"/>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer">
+       <property name="orientation">
+        <enum>Qt::Orientation::Horizontal</enum>
+       </property>
+       <property name="sizeType">
+        <enum>QSizePolicy::Policy::Fixed</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>16</width>
+         <height>0</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+     <item>
+      <widget class="FormWidget" name="formWidget_2">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="label" stdset="0">
+        <string>Opacity</string>
+       </property>
+       <layout class="QHBoxLayout" name="horizontalLayout_3">
+        <property name="spacing">
+         <number>4</number>
+        </property>
+        <property name="leftMargin">
+         <number>0</number>
+        </property>
+        <property name="topMargin">
+         <number>0</number>
+        </property>
+        <property name="rightMargin">
+         <number>0</number>
+        </property>
+        <property name="bottomMargin">
+         <number>0</number>
+        </property>
+        <item>
+         <widget class="ScrSpinBox" name="opacitySpinBox"/>
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <spacer name="horizontalSpacer_2">
+       <property name="orientation">
+        <enum>Qt::Orientation::Horizontal</enum>
+       </property>
+       <property name="sizeHint" stdset="0">
+        <size>
+         <width>0</width>
+         <height>0</height>
+        </size>
+       </property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QTableWidget" name="layerTable"/>
+   </item>
+  </layout>
+ </widget>
+ <customwidgets>
+  <customwidget>
+   <class>FormWidget</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/form_widget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>ScrSpinBox</class>
+   <extends>QDoubleSpinBox</extends>
+   <header>ui/scrspinbox.h</header>
+  </customwidget>
+ </customwidgets>
+ <tabstops>
+  <tabstop>blendMode</tabstop>
+  <tabstop>opacitySpinBox</tabstop>
+  <tabstop>layerTable</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
Index: scribus/ui/picstatus.cpp
===================================================================
--- scribus/ui/picstatus.cpp	(Revision 26266)
+++ scribus/ui/picstatus.cpp	(Arbeitskopie)
@@ -526,7 +526,7 @@
 	if (currItem == nullptr)
 		return;
 
-	ExtImageProps dia(this, &currItem->pixm.imgInfo, currItem, m_Doc->view());
+	ExtImageProps dia(this, currItem, m_Doc->view());
 	if (dia.exec())
 	{
 		loadPict(currItem, currItem->Pfile);
Index: scribus/ui/picstatus.ui
===================================================================
--- scribus/ui/picstatus.ui	(Revision 26266)
+++ scribus/ui/picstatus.ui	(Arbeitskopie)
@@ -3,14 +3,14 @@
  <class>PicStatus</class>
  <widget class="QDialog" name="PicStatus">
   <property name="windowModality">
-   <enum>Qt::WindowModal</enum>
+   <enum>Qt::WindowModality::WindowModal</enum>
   </property>
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
+    <width>726</width>
     <height>464</height>
-    <width>720</width>
    </rect>
   </property>
   <property name="windowTitle">
@@ -38,25 +38,25 @@
       </size>
      </property>
      <property name="dragDropMode">
-      <enum>QAbstractItemView::NoDragDrop</enum>
+      <enum>QAbstractItemView::DragDropMode::NoDragDrop</enum>
      </property>
      <property name="movement">
-      <enum>QListView::Static</enum>
+      <enum>QListView::Movement::Static</enum>
      </property>
      <property name="flow">
-      <enum>QListView::LeftToRight</enum>
+      <enum>QListView::Flow::LeftToRight</enum>
      </property>
      <property name="isWrapping" stdset="0">
       <bool>true</bool>
      </property>
      <property name="resizeMode">
-      <enum>QListView::Adjust</enum>
+      <enum>QListView::ResizeMode::Adjust</enum>
      </property>
      <property name="spacing">
       <number>6</number>
      </property>
      <property name="viewMode">
-      <enum>QListView::IconMode</enum>
+      <enum>QListView::ViewMode::IconMode</enum>
      </property>
      <property name="wordWrap">
       <bool>true</bool>
@@ -129,7 +129,7 @@
               <string/>
              </property>
              <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+              <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
              </property>
              <property name="wordWrap">
               <bool>false</bool>
@@ -179,7 +179,7 @@
               <string/>
              </property>
              <property name="alignment">
-              <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+              <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
              </property>
              <property name="wordWrap">
               <bool>false</bool>
@@ -236,7 +236,7 @@
                <string>Format:</string>
               </property>
               <property name="alignment">
-               <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+               <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
               </property>
               <property name="wordWrap">
                <bool>false</bool>
@@ -271,7 +271,7 @@
                <string>Colorspace:</string>
               </property>
               <property name="alignment">
-               <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+               <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
               </property>
               <property name="wordWrap">
                <bool>false</bool>
@@ -303,7 +303,7 @@
                <string>DPI:</string>
               </property>
               <property name="alignment">
-               <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+               <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
               </property>
               <property name="wordWrap">
                <bool>false</bool>
@@ -506,7 +506,7 @@
                  <string>Effective DPI:</string>
                 </property>
                 <property name="alignment">
-                 <set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
+                 <set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
                 </property>
                 <property name="wordWrap">
                  <bool>false</bool>
@@ -638,10 +638,10 @@
        <item row="2" column="1">
         <spacer>
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeType">
-          <enum>QSizePolicy::Expanding</enum>
+          <enum>QSizePolicy::Policy::Expanding</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -660,10 +660,10 @@
      <item>
       <spacer>
        <property name="orientation">
-        <enum>Qt::Horizontal</enum>
+        <enum>Qt::Orientation::Horizontal</enum>
        </property>
        <property name="sizeType">
-        <enum>QSizePolicy::Expanding</enum>
+        <enum>QSizePolicy::Policy::Expanding</enum>
        </property>
        <property name="sizeHint" stdset="0">
         <size>
@@ -687,6 +687,20 @@
    </item>
   </layout>
  </widget>
+ <tabstops>
+  <tabstop>imageViewArea</tabstop>
+  <tabstop>workTab</tabstop>
+  <tabstop>searchButton</tabstop>
+  <tabstop>fileManagerButton</tabstop>
+  <tabstop>goPageButton</tabstop>
+  <tabstop>selectButton</tabstop>
+  <tabstop>isPrinting</tabstop>
+  <tabstop>isVisibleCheck</tabstop>
+  <tabstop>buttonEdit</tabstop>
+  <tabstop>effectsButton</tabstop>
+  <tabstop>buttonLayers</tabstop>
+  <tabstop>closeButton</tabstop>
+ </tabstops>
  <resources/>
  <connections/>
 </ui>
Index: scribus/ui/prefs_itemtools.cpp
===================================================================
--- scribus/ui/prefs_itemtools.cpp	(Revision 26266)
+++ scribus/ui/prefs_itemtools.cpp	(Arbeitskopie)
@@ -142,11 +142,12 @@
 	firstLineOffsetComboBox->setCurrentIndex((int) prefsData->itemToolPrefs.firstLineOffset);
 
 	//Image Tool
-	imageFreeScalingRadioButton->setChecked( prefsData->itemToolPrefs.imageScaleType );
-	imageFrameScalingRadioButton->setChecked( !prefsData->itemToolPrefs.imageScaleType );
+	checkBoxAutoFit->setChecked(!prefsData->itemToolPrefs.imageScaleType);
+	// imageFreeScalingRadioButton->setChecked( prefsData->itemToolPrefs.imageScaleType );
+	// imageFrameScalingRadioButton->setChecked( !prefsData->itemToolPrefs.imageScaleType );
 	imageHorizontalScalingSpinBox->setValue(qRound(prefsData->itemToolPrefs.imageScaleX * 100));
 	imageVerticalScalingSpinBox->setValue(qRound(prefsData->itemToolPrefs.imageScaleY * 100));
-	imageKeepAspectRatioCheckBox->setChecked(prefsData->itemToolPrefs.imageAspectRatio);
+//	imageKeepAspectRatioCheckBox->setChecked(prefsData->itemToolPrefs.imageAspectRatio);
 	scalingLockToolButton->setChecked(prefsData->itemToolPrefs.imageAspectRatio);
 	imageFrameFillColorComboBox->initColorList(colorList, m_doc, prefsData->itemToolPrefs.imageFillColor);
 	imageFrameFillShadingSpinBox->setValue(prefsData->itemToolPrefs.imageFillColorShade );
@@ -275,8 +276,10 @@
 	prefsData->itemToolPrefs.imageStrokeColorShade = imageFrameFillShadingSpinBox->value();
 	prefsData->itemToolPrefs.imageScaleX = static_cast<double>(imageHorizontalScalingSpinBox->value()) / 100.0;
 	prefsData->itemToolPrefs.imageScaleY = static_cast<double>(imageVerticalScalingSpinBox->value()) / 100.0;
-	prefsData->itemToolPrefs.imageScaleType = imageFreeScalingRadioButton->isChecked();
-	prefsData->itemToolPrefs.imageAspectRatio = imageKeepAspectRatioCheckBox->isChecked();
+	// prefsData->itemToolPrefs.imageScaleType = imageFreeScalingRadioButton->isChecked();
+	prefsData->itemToolPrefs.imageScaleType = !checkBoxAutoFit->isChecked();
+	//prefsData->itemToolPrefs.imageAspectRatio = imageKeepAspectRatioCheckBox->isChecked();
+	prefsData->itemToolPrefs.imageAspectRatio = scalingLockToolButton->isChecked();
 	prefsData->itemToolPrefs.imageUseEmbeddedPath = imageUseEmbeddedClippingPathCheckBox->isChecked();
 	int haRes = 0;
 	if (onscreenResolutionFullRadioButton->isChecked())
@@ -346,10 +349,11 @@
 		connect(textColorShadingSpinBox, SIGNAL(valueChanged(int)), this, SLOT(updateFontPreview()));
 		connect(scalingLockToolButton, SIGNAL(clicked()), this, SLOT(toggleImagesScalingChain()));
 		connect(imageHorizontalScalingSpinBox, SIGNAL(valueChanged(int)), this, SLOT(imageHorizontalScalingChange()));
-		connect(imageKeepAspectRatioCheckBox, SIGNAL(toggled(bool)), scalingLockToolButton, SLOT(setChecked(bool)));
+		//connect(imageKeepAspectRatioCheckBox, SIGNAL(toggled(bool)), scalingLockToolButton, SLOT(setChecked(bool)));
 		connect(imageVerticalScalingSpinBox, SIGNAL(valueChanged(int)), this, SLOT(imageVerticalScalingChange()));
-		connect(imageFreeScalingRadioButton, SIGNAL(clicked(bool)), this, SLOT(imageScalingTypeChange()));
-		connect(imageFrameScalingRadioButton, SIGNAL(clicked(bool)), this, SLOT(imageScalingTypeChange()));
+		connect(checkBoxAutoFit, SIGNAL(toggled(bool)), this, SLOT(imageScalingTypeChange()));
+		// connect(imageFreeScalingRadioButton, SIGNAL(clicked(bool)), this, SLOT(imageScalingTypeChange()));
+		// connect(imageFrameScalingRadioButton, SIGNAL(clicked(bool)), this, SLOT(imageScalingTypeChange()));
 	}
 	else
 	{
@@ -420,7 +424,7 @@
 void Prefs_ItemTools::toggleImagesScalingChain()
 {
 	imageHorizontalScalingChange();
-	imageKeepAspectRatioCheckBox->setChecked(scalingLockToolButton->isChecked());
+	//imageKeepAspectRatioCheckBox->setChecked(scalingLockToolButton->isChecked());
 }
 
 void Prefs_ItemTools::imageHorizontalScalingChange()
@@ -437,11 +441,11 @@
 
 void Prefs_ItemTools::imageScalingTypeChange()
 {
-	bool b = imageFreeScalingRadioButton->isChecked();
-	imageKeepAspectRatioCheckBox->setEnabled(!b);
+	bool b = !checkBoxAutoFit->isChecked();
+//	imageKeepAspectRatioCheckBox->setEnabled(!b);
 	imageHorizontalScalingSpinBox->setEnabled(b);
 	imageVerticalScalingSpinBox->setEnabled(b);
-	scalingLockToolButton->setEnabled(b);
+//	scalingLockToolButton->setEnabled(b);
 }
 
 
Index: scribus/ui/prefs_itemtoolsbase.ui
===================================================================
--- scribus/ui/prefs_itemtoolsbase.ui	(Revision 26266)
+++ scribus/ui/prefs_itemtoolsbase.ui	(Arbeitskopie)
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>659</width>
-    <height>762</height>
+    <height>627</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
@@ -28,7 +28,6 @@
      <property name="font">
       <font>
        <pointsize>14</pointsize>
-       <weight>75</weight>
        <bold>true</bold>
       </font>
      </property>
@@ -40,7 +39,7 @@
    <item>
     <widget class="Line" name="line">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Orientation::Horizontal</enum>
      </property>
     </widget>
    </item>
@@ -47,16 +46,16 @@
    <item>
     <widget class="QTabWidget" name="tabWidget">
      <property name="tabPosition">
-      <enum>QTabWidget::North</enum>
+      <enum>QTabWidget::TabPosition::North</enum>
      </property>
      <property name="tabShape">
-      <enum>QTabWidget::Rounded</enum>
+      <enum>QTabWidget::TabShape::Rounded</enum>
      </property>
      <property name="currentIndex">
-      <number>0</number>
+      <number>1</number>
      </property>
      <property name="elideMode">
-      <enum>Qt::ElideRight</enum>
+      <enum>Qt::TextElideMode::ElideRight</enum>
      </property>
      <property name="usesScrollButtons">
       <bool>false</bool>
@@ -81,10 +80,10 @@
        <item>
         <widget class="QScrollArea" name="scrollArea">
          <property name="frameShape">
-          <enum>QFrame::NoFrame</enum>
+          <enum>QFrame::Shape::NoFrame</enum>
          </property>
          <property name="frameShadow">
-          <enum>QFrame::Plain</enum>
+          <enum>QFrame::Shadow::Plain</enum>
          </property>
          <property name="lineWidth">
           <number>0</number>
@@ -97,8 +96,8 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>635</width>
-            <height>680</height>
+            <width>641</width>
+            <height>800</height>
            </rect>
           </property>
           <layout class="QGridLayout" name="gridLayout_5">
@@ -105,10 +104,10 @@
            <item row="11" column="0" colspan="3">
             <spacer name="verticalSpacer_3">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeType">
-              <enum>QSizePolicy::Fixed</enum>
+              <enum>QSizePolicy::Policy::Fixed</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -121,10 +120,10 @@
            <item row="19" column="0" colspan="2">
             <spacer name="verticalSpacer">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeType">
-              <enum>QSizePolicy::Fixed</enum>
+              <enum>QSizePolicy::Policy::Fixed</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -138,7 +137,6 @@
             <widget class="QLabel" name="label_19">
              <property name="font">
               <font>
-               <weight>75</weight>
                <bold>true</bold>
               </font>
              </property>
@@ -230,10 +228,10 @@
              <item row="0" column="2" rowspan="3">
               <spacer name="horizontalSpacer_9">
                <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+                <enum>Qt::Orientation::Horizontal</enum>
                </property>
                <property name="sizeType">
-                <enum>QSizePolicy::Fixed</enum>
+                <enum>QSizePolicy::Policy::Fixed</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
@@ -260,7 +258,7 @@
               </size>
              </property>
              <property name="frameShape">
-              <enum>QFrame::NoFrame</enum>
+              <enum>QFrame::Shape::NoFrame</enum>
              </property>
              <property name="text">
               <string/>
@@ -271,7 +269,6 @@
             <widget class="QLabel" name="ColumnsAndTextDistances">
              <property name="font">
               <font>
-               <weight>75</weight>
                <bold>true</bold>
               </font>
              </property>
@@ -356,10 +353,10 @@
              <item row="2" column="2">
               <spacer name="horizontalSpacer_2">
                <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+                <enum>Qt::Orientation::Horizontal</enum>
                </property>
                <property name="sizeType">
-                <enum>QSizePolicy::Fixed</enum>
+                <enum>QSizePolicy::Policy::Fixed</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
@@ -372,7 +369,7 @@
              <item row="1" column="5" rowspan="3">
               <spacer name="horizontalSpacer">
                <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+                <enum>Qt::Orientation::Horizontal</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
@@ -390,10 +387,10 @@
            <item row="7" column="0" colspan="2">
             <spacer name="verticalSpacer_2">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeType">
-              <enum>QSizePolicy::Fixed</enum>
+              <enum>QSizePolicy::Policy::Fixed</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -515,7 +512,7 @@
              <item row="0" column="5">
               <spacer name="horizontalSpacer_13">
                <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+                <enum>Qt::Orientation::Horizontal</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
@@ -528,10 +525,10 @@
              <item row="0" column="2" rowspan="4">
               <spacer name="horizontalSpacer_8">
                <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+                <enum>Qt::Orientation::Horizontal</enum>
                </property>
                <property name="sizeType">
-                <enum>QSizePolicy::Fixed</enum>
+                <enum>QSizePolicy::Policy::Fixed</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
@@ -546,7 +543,7 @@
            <item row="23" column="0">
             <spacer name="verticalSpacer_10">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -560,7 +557,6 @@
             <widget class="QLabel" name="label_11">
              <property name="font">
               <font>
-               <weight>75</weight>
                <bold>true</bold>
               </font>
              </property>
@@ -573,7 +569,6 @@
             <widget class="QLabel" name="label_2">
              <property name="font">
               <font>
-               <weight>75</weight>
                <bold>true</bold>
               </font>
              </property>
@@ -585,7 +580,7 @@
            <item row="9" column="0" colspan="3">
             <widget class="Line" name="line_5">
              <property name="orientation">
-              <enum>Qt::Horizontal</enum>
+              <enum>Qt::Orientation::Horizontal</enum>
              </property>
             </widget>
            </item>
@@ -592,7 +587,7 @@
            <item row="17" column="0" colspan="3">
             <widget class="Line" name="line_6">
              <property name="orientation">
-              <enum>Qt::Horizontal</enum>
+              <enum>Qt::Orientation::Horizontal</enum>
              </property>
             </widget>
            </item>
@@ -599,7 +594,7 @@
            <item row="13" column="0" colspan="2">
             <widget class="Line" name="line_7">
              <property name="orientation">
-              <enum>Qt::Horizontal</enum>
+              <enum>Qt::Orientation::Horizontal</enum>
              </property>
             </widget>
            </item>
@@ -606,7 +601,7 @@
            <item row="21" column="0" colspan="3">
             <widget class="Line" name="line_3">
              <property name="orientation">
-              <enum>Qt::Horizontal</enum>
+              <enum>Qt::Orientation::Horizontal</enum>
              </property>
             </widget>
            </item>
@@ -613,7 +608,7 @@
            <item row="18" column="1">
             <spacer name="horizontalSpacer_15">
              <property name="orientation">
-              <enum>Qt::Horizontal</enum>
+              <enum>Qt::Orientation::Horizontal</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -626,10 +621,10 @@
            <item row="15" column="0" colspan="2">
             <spacer name="verticalSpacer_13">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeType">
-              <enum>QSizePolicy::Fixed</enum>
+              <enum>QSizePolicy::Policy::Fixed</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -675,7 +670,7 @@
              <item row="0" column="2">
               <spacer name="horizontalSpacer_19">
                <property name="orientation">
-                <enum>Qt::Horizontal</enum>
+                <enum>Qt::Orientation::Horizontal</enum>
                </property>
                <property name="sizeHint" stdset="0">
                 <size>
@@ -713,10 +708,10 @@
        <item>
         <widget class="QScrollArea" name="scrollArea_2">
          <property name="frameShape">
-          <enum>QFrame::NoFrame</enum>
+          <enum>QFrame::Shape::NoFrame</enum>
          </property>
          <property name="frameShadow">
-          <enum>QFrame::Plain</enum>
+          <enum>QFrame::Shadow::Plain</enum>
          </property>
          <property name="lineWidth">
           <number>0</number>
@@ -729,11 +724,112 @@
            <rect>
             <x>0</x>
             <y>0</y>
-            <width>635</width>
-            <height>680</height>
+            <width>655</width>
+            <height>552</height>
            </rect>
           </property>
           <layout class="QFormLayout" name="formLayout_6">
+           <item row="0" column="0" colspan="2">
+            <layout class="QGridLayout" name="gridLayout_6">
+             <item row="1" column="4">
+              <widget class="QSpinBox" name="imageFrameLineShadingSpinBox">
+               <property name="suffix">
+                <string> %</string>
+               </property>
+               <property name="maximum">
+                <number>100</number>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="0">
+              <widget class="QLabel" name="imageFillColorLabel">
+               <property name="text">
+                <string>Fill Color:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="3">
+              <widget class="QLabel" name="imageLineColorShadeLabel">
+               <property name="text">
+                <string>Shading:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="1">
+              <widget class="ColorCombo" name="imageFrameFillColorComboBox">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="4">
+              <widget class="QSpinBox" name="imageFrameFillShadingSpinBox">
+               <property name="suffix">
+                <string> %</string>
+               </property>
+               <property name="maximum">
+                <number>100</number>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="0">
+              <widget class="QLabel" name="imageLineColorLabel">
+               <property name="text">
+                <string>Line Color:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="1">
+              <widget class="ColorCombo" name="imageFrameLineColorComboBox">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="2" rowspan="2">
+              <spacer name="horizontalSpacer_16">
+               <property name="orientation">
+                <enum>Qt::Orientation::Horizontal</enum>
+               </property>
+               <property name="sizeType">
+                <enum>QSizePolicy::Policy::Fixed</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>20</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+             <item row="0" column="3">
+              <widget class="QLabel" name="imageFillShadingLabel">
+               <property name="text">
+                <string>Shading:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="5">
+              <spacer name="horizontalSpacer_3">
+               <property name="orientation">
+                <enum>Qt::Orientation::Horizontal</enum>
+               </property>
+               <property name="sizeHint" stdset="0">
+                <size>
+                 <width>40</width>
+                 <height>20</height>
+                </size>
+               </property>
+              </spacer>
+             </item>
+            </layout>
+           </item>
            <item row="1" column="0">
             <widget class="QCheckBox" name="imageUseEmbeddedClippingPathCheckBox">
              <property name="text">
@@ -744,10 +840,10 @@
            <item row="2" column="0">
             <spacer name="verticalSpacer_4">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeType">
-              <enum>QSizePolicy::Fixed</enum>
+              <enum>QSizePolicy::Policy::Fixed</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -761,7 +857,6 @@
             <widget class="QLabel" name="ScalingLabel">
              <property name="font">
               <font>
-               <weight>75</weight>
                <bold>true</bold>
               </font>
              </property>
@@ -773,44 +868,88 @@
            <item row="4" column="0" colspan="2">
             <widget class="Line" name="line_2">
              <property name="orientation">
-              <enum>Qt::Horizontal</enum>
+              <enum>Qt::Orientation::Horizontal</enum>
              </property>
             </widget>
            </item>
            <item row="5" column="0">
-            <widget class="QRadioButton" name="imageFreeScalingRadioButton">
+            <widget class="QCheckBox" name="checkBoxAutoFit">
              <property name="text">
-              <string>Free Scaling</string>
+              <string>Auto-Fit</string>
              </property>
-             <attribute name="buttonGroup">
-              <string notr="true">scalingButtonGroup</string>
-             </attribute>
             </widget>
            </item>
+           <item row="6" column="0">
+            <layout class="QGridLayout" name="gridLayout_7">
+             <item row="1" column="1">
+              <widget class="QSpinBox" name="imageVerticalScalingSpinBox">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="suffix">
+                <string> %</string>
+               </property>
+               <property name="maximum">
+                <number>1000</number>
+               </property>
+              </widget>
+             </item>
+             <item row="1" column="0">
+              <widget class="QLabel" name="imageVerticalScaleLabel">
+               <property name="text">
+                <string>Vertical Scaling:</string>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="2" rowspan="2">
+              <layout class="QVBoxLayout" name="verticalLayout_5">
+               <item>
+                <widget class="LinkButton" name="scalingLockToolButton">
+                 <property name="checkable">
+                  <bool>true</bool>
+                 </property>
+                 <property name="autoRaise">
+                  <bool>true</bool>
+                 </property>
+                </widget>
+               </item>
+              </layout>
+             </item>
+             <item row="0" column="1">
+              <widget class="QSpinBox" name="imageHorizontalScalingSpinBox">
+               <property name="sizePolicy">
+                <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                 <horstretch>0</horstretch>
+                 <verstretch>0</verstretch>
+                </sizepolicy>
+               </property>
+               <property name="suffix">
+                <string> %</string>
+               </property>
+               <property name="maximum">
+                <number>1000</number>
+               </property>
+              </widget>
+             </item>
+             <item row="0" column="0">
+              <widget class="QLabel" name="imageHorizontalScaleLabel">
+               <property name="text">
+                <string>Horizontal Scaling:</string>
+               </property>
+              </widget>
+             </item>
+            </layout>
+           </item>
            <item row="7" column="0">
-            <widget class="QRadioButton" name="imageFrameScalingRadioButton">
-             <property name="text">
-              <string>Scale Image to Frame Size</string>
-             </property>
-             <attribute name="buttonGroup">
-              <string notr="true">scalingButtonGroup</string>
-             </attribute>
-            </widget>
-           </item>
-           <item row="8" column="0">
-            <widget class="QCheckBox" name="imageKeepAspectRatioCheckBox">
-             <property name="text">
-              <string>Keep Aspect Ratio</string>
-             </property>
-            </widget>
-           </item>
-           <item row="9" column="0">
             <spacer name="verticalSpacer_5">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeType">
-              <enum>QSizePolicy::Fixed</enum>
+              <enum>QSizePolicy::Policy::Fixed</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -820,11 +959,10 @@
              </property>
             </spacer>
            </item>
-           <item row="10" column="0">
+           <item row="8" column="0">
             <widget class="QLabel" name="OnScreenPreviewLabel">
              <property name="font">
               <font>
-               <weight>75</weight>
                <bold>true</bold>
               </font>
              </property>
@@ -833,14 +971,14 @@
              </property>
             </widget>
            </item>
-           <item row="11" column="0" colspan="2">
+           <item row="9" column="0" colspan="2">
             <widget class="Line" name="line_4">
              <property name="orientation">
-              <enum>Qt::Horizontal</enum>
+              <enum>Qt::Orientation::Horizontal</enum>
              </property>
             </widget>
            </item>
-           <item row="12" column="0">
+           <item row="10" column="0">
             <widget class="QRadioButton" name="onscreenResolutionFullRadioButton">
              <property name="text">
               <string>Full Resolution</string>
@@ -850,7 +988,7 @@
              </attribute>
             </widget>
            </item>
-           <item row="13" column="0">
+           <item row="11" column="0">
             <widget class="QRadioButton" name="onscreenResolutionNormalRadioButton">
              <property name="text">
               <string>Normal Resolution</string>
@@ -860,7 +998,7 @@
              </attribute>
             </widget>
            </item>
-           <item row="14" column="0">
+           <item row="12" column="0">
             <widget class="QRadioButton" name="onscreenResolutionLowRadioButton">
              <property name="text">
               <string>Low Resolution</string>
@@ -870,10 +1008,10 @@
              </attribute>
             </widget>
            </item>
-           <item row="15" column="0">
+           <item row="13" column="0">
             <spacer name="verticalSpacer_6">
              <property name="orientation">
-              <enum>Qt::Vertical</enum>
+              <enum>Qt::Orientation::Vertical</enum>
              </property>
              <property name="sizeHint" stdset="0">
               <size>
@@ -883,202 +1021,6 @@
              </property>
             </spacer>
            </item>
-           <item row="6" column="0">
-            <layout class="QFormLayout" name="formLayout_5">
-             <item row="0" column="0">
-              <layout class="QGridLayout" name="gridLayout_7">
-               <item row="1" column="0">
-                <widget class="QLabel" name="imageVerticalScaleLabel">
-                 <property name="text">
-                  <string>Vertical Scaling:</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="0" column="1">
-                <widget class="QSpinBox" name="imageHorizontalScalingSpinBox">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="suffix">
-                  <string> %</string>
-                 </property>
-                 <property name="maximum">
-                  <number>1000</number>
-                 </property>
-                </widget>
-               </item>
-               <item row="0" column="0">
-                <widget class="QLabel" name="imageHorizontalScaleLabel">
-                 <property name="text">
-                  <string>Horizontal Scaling:</string>
-                 </property>
-                </widget>
-               </item>
-               <item row="0" column="2" rowspan="2">
-                <widget class="LinkButton" name="scalingLockToolButton">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Fixed" vsizetype="Preferred">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="minimumSize">
-                  <size>
-                   <width>15</width>
-                   <height>0</height>
-                  </size>
-                 </property>
-                 <property name="maximumSize">
-                  <size>
-                   <width>15</width>
-                   <height>16777215</height>
-                  </size>
-                 </property>
-                 <property name="checkable">
-                  <bool>true</bool>
-                 </property>
-                 <property name="autoRaise">
-                  <bool>true</bool>
-                 </property>
-                </widget>
-               </item>
-               <item row="1" column="1">
-                <widget class="QSpinBox" name="imageVerticalScalingSpinBox">
-                 <property name="sizePolicy">
-                  <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-                   <horstretch>0</horstretch>
-                   <verstretch>0</verstretch>
-                  </sizepolicy>
-                 </property>
-                 <property name="suffix">
-                  <string> %</string>
-                 </property>
-                 <property name="maximum">
-                  <number>1000</number>
-                 </property>
-                </widget>
-               </item>
-              </layout>
-             </item>
-             <item row="0" column="1">
-              <spacer name="horizontalSpacer_4">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>40</width>
-                 <height>20</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-            </layout>
-           </item>
-           <item row="0" column="0" colspan="2">
-            <layout class="QGridLayout" name="gridLayout_6">
-             <item row="1" column="4">
-              <widget class="QSpinBox" name="imageFrameLineShadingSpinBox">
-               <property name="suffix">
-                <string> %</string>
-               </property>
-               <property name="maximum">
-                <number>100</number>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="0">
-              <widget class="QLabel" name="imageFillColorLabel">
-               <property name="text">
-                <string>Fill Color:</string>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="3">
-              <widget class="QLabel" name="imageLineColorShadeLabel">
-               <property name="text">
-                <string>Shading:</string>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="1">
-              <widget class="ColorCombo" name="imageFrameFillColorComboBox">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="4">
-              <widget class="QSpinBox" name="imageFrameFillShadingSpinBox">
-               <property name="suffix">
-                <string> %</string>
-               </property>
-               <property name="maximum">
-                <number>100</number>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="0">
-              <widget class="QLabel" name="imageLineColorLabel">
-               <property name="text">
-                <string>Line Color:</string>
-               </property>
-              </widget>
-             </item>
-             <item row="1" column="1">
-              <widget class="ColorCombo" name="imageFrameLineColorComboBox">
-               <property name="sizePolicy">
-                <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-                 <horstretch>0</horstretch>
-                 <verstretch>0</verstretch>
-                </sizepolicy>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="2" rowspan="2">
-              <spacer name="horizontalSpacer_16">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
-               </property>
-               <property name="sizeType">
-                <enum>QSizePolicy::Fixed</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>20</width>
-                 <height>20</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-             <item row="0" column="3">
-              <widget class="QLabel" name="imageFillShadingLabel">
-               <property name="text">
-                <string>Shading:</string>
-               </property>
-              </widget>
-             </item>
-             <item row="0" column="5">
-              <spacer name="horizontalSpacer_3">
-               <property name="orientation">
-                <enum>Qt::Horizontal</enum>
-               </property>
-               <property name="sizeHint" stdset="0">
-                <size>
-                 <width>40</width>
-                 <height>20</height>
-                </size>
-               </property>
-              </spacer>
-             </item>
-            </layout>
-           </item>
           </layout>
          </widget>
         </widget>
@@ -1093,7 +1035,7 @@
        <item row="1" column="0">
         <spacer name="verticalSpacer_8">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -1179,10 +1121,10 @@
          <item row="0" column="2" rowspan="4">
           <spacer name="horizontalSpacer_5">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeType">
-            <enum>QSizePolicy::Fixed</enum>
+            <enum>QSizePolicy::Policy::Fixed</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1225,7 +1167,7 @@
          <item row="0" column="5">
           <spacer name="horizontalSpacer_6">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1259,7 +1201,7 @@
          <item>
           <spacer name="horizontalSpacer_12">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1274,7 +1216,7 @@
        <item>
         <spacer name="verticalSpacer_9">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -1294,7 +1236,7 @@
        <item row="1" column="0">
         <spacer name="verticalSpacer_7">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -1326,10 +1268,10 @@
          <item row="0" column="2" rowspan="3">
           <spacer name="horizontalSpacer_7">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeType">
-            <enum>QSizePolicy::Fixed</enum>
+            <enum>QSizePolicy::Policy::Fixed</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1399,7 +1341,7 @@
          <item row="0" column="5">
           <spacer name="horizontalSpacer_10">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1421,7 +1363,7 @@
        <item row="1" column="0">
         <spacer name="verticalSpacer_11">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -1531,10 +1473,10 @@
          <item row="0" column="2" rowspan="4">
           <spacer name="horizontalSpacer_11">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeType">
-            <enum>QSizePolicy::Fixed</enum>
+            <enum>QSizePolicy::Policy::Fixed</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1567,7 +1509,7 @@
          <item row="0" column="5">
           <spacer name="horizontalSpacer_14">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1601,7 +1543,7 @@
          <item>
           <spacer name="horizontalSpacer_17">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1616,7 +1558,7 @@
        <item>
         <spacer name="verticalSpacer_12">
          <property name="orientation">
-          <enum>Qt::Vertical</enum>
+          <enum>Qt::Orientation::Vertical</enum>
          </property>
          <property name="sizeHint" stdset="0">
           <size>
@@ -1654,7 +1596,7 @@
          <item>
           <spacer name="horizontalSpacer_18">
            <property name="orientation">
-            <enum>Qt::Horizontal</enum>
+            <enum>Qt::Orientation::Horizontal</enum>
            </property>
            <property name="sizeHint" stdset="0">
             <size>
@@ -1679,6 +1621,11 @@
    <header>ui/scrspinbox.h</header>
   </customwidget>
   <customwidget>
+   <class>LinkButton</class>
+   <extends>QToolButton</extends>
+   <header>ui/linkbutton.h</header>
+  </customwidget>
+  <customwidget>
    <class>FontCombo</class>
    <extends>QComboBox</extends>
    <header>ui/fontcombo.h</header>
@@ -1705,11 +1652,6 @@
    <container>1</container>
   </customwidget>
   <customwidget>
-   <class>LinkButton</class>
-   <extends>QToolButton</extends>
-   <header>ui/linkbutton.h</header>
-  </customwidget>
-  <customwidget>
    <class>ArcWidget</class>
    <extends>QWidget</extends>
    <header>ui/arcwidget.h</header>
@@ -1748,12 +1690,8 @@
   <tabstop>imageFrameLineColorComboBox</tabstop>
   <tabstop>imageFrameLineShadingSpinBox</tabstop>
   <tabstop>imageUseEmbeddedClippingPathCheckBox</tabstop>
-  <tabstop>imageFreeScalingRadioButton</tabstop>
   <tabstop>imageHorizontalScalingSpinBox</tabstop>
-  <tabstop>scalingLockToolButton</tabstop>
   <tabstop>imageVerticalScalingSpinBox</tabstop>
-  <tabstop>imageFrameScalingRadioButton</tabstop>
-  <tabstop>imageKeepAspectRatioCheckBox</tabstop>
   <tabstop>onscreenResolutionFullRadioButton</tabstop>
   <tabstop>onscreenResolutionNormalRadioButton</tabstop>
   <tabstop>onscreenResolutionLowRadioButton</tabstop>
@@ -1783,7 +1721,7 @@
  <resources/>
  <connections/>
  <buttongroups>
+  <buttongroup name="scalingButtonGroup"/>
   <buttongroup name="previewButtonGroup"/>
-  <buttongroup name="scalingButtonGroup"/>
  </buttongroups>
 </ui>
Index: scribus/ui/propertiespalette_image.cpp
===================================================================
--- scribus/ui/propertiespalette_image.cpp	(Revision 26266)
+++ scribus/ui/propertiespalette_image.cpp	(Arbeitskopie)
@@ -15,9 +15,11 @@
 #include <QLocale>
 #include <QSignalBlocker>
 
+#include "extimageprops.h"
 #include "localemgr.h"
 #include "pageitem.h"
 #include "propertiespalette_utils.h"
+#include "propertiespalette.h"
 #include "scribuscore.h"
 #include "scribusapp.h"
 #include "scribusview.h"
@@ -32,54 +34,49 @@
 	connect(userActionSniffer, SIGNAL(actionEnd()), this, SLOT(spinboxFinishUserAction()));
 
 	setupUi(this);
-	setSizePolicy( QSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum));
 
 	imagePageNumber->setMinimum(0);
 	imagePageNumber->setSpecialValueText( tr( "Auto" ));
 	imagePageNumber->setDecimals(0);
 	imagePageNumber->setSuffix("");
-	imagePageNumberLabel->setBuddy(imagePageNumber);
 	installSniffer(imagePageNumber);
 	
-//	freeScale = new QRadioButton( "&Free Scaling", this );
-//	freeScale->setChecked( true );
-//	pageLayout_4->addWidget( freeScale );
-
-	xposImgLabel->setBuddy(imageXOffsetSpinBox);
-	yposImgLabel->setBuddy(imageYOffsetSpinBox);
-	
 	imageRotation->setWrapping( true );
 	imageRotation->setNewUnit(6);
 	installSniffer(imageRotation);
-	imageRotationLabel->setBuddy(imageRotation);
 
-	freeScale->setChecked( true );
-	
 	installSniffer(imageXScaleSpinBox);
-	xscaleLabel->setBuddy(imageXScaleSpinBox);
 	installSniffer(imageYScaleSpinBox);
-	yscaleLabel->setBuddy(imageYScaleSpinBox);
+	installSniffer(imgDpiX);
+	installSniffer(imgDpiY);
 
 	keepImageWHRatioButton->setCheckable( true );
 	keepImageWHRatioButton->setAutoRaise( true );
 
-	imgDpiX->setSuffix("");
-	installSniffer(imgDpiX);
-	imgDPIXLabel->setBuddy(imgDpiX);
+	sectionImageDimensions->expand();
+	sectionImageDimensions->setCanSaveState(true);
+	sectionImageDimensions->restorePreferences();
 
-	imgDpiY->setSuffix("");
-	installSniffer(imgDpiY);
-	imgDPIYLabel->setBuddy(imgDpiY);
+	sectionImageEffects->collapse();
+	sectionImageEffects->setCanSaveState(true);
+	sectionImageEffects->restorePreferences();
 
-	keepImageDPIRatioButton->setCheckable( true );
-	keepImageDPIRatioButton->setAutoRaise( true );
+	sectionImageColorManagement->collapse();
+	sectionImageColorManagement->setCanSaveState(true);
+	sectionImageColorManagement->restorePreferences();
 
-	frameScale->setText( tr("&To Frame Size"));
+	sectionImagePDF->collapse();
+	sectionImagePDF->setCanSaveState(true);
+	sectionImagePDF->restorePreferences();
 
-	cbProportional->setEnabled( false );
-	cbProportional->setText( "P&roportional" );
-	cbProportional->setChecked( true );
+	sectionImageLayers->collapse();
+	sectionImageLayers->setCanSaveState(true);
+	sectionImageLayers->restorePreferences();
 
+	sectionImageClippingPaths->collapse();
+	sectionImageClippingPaths->setCanSaveState(true);
+	sectionImageClippingPaths->restorePreferences();
+
 	languageChange();
 
 	connect(imagePageNumber    , SIGNAL(valueChanged(double)), this, SLOT(handleImagePageNumber()));
@@ -90,18 +87,16 @@
 	connect(imageRotation      , SIGNAL(valueChanged(double)), this, SLOT(handleLocalRotation()));
 	connect(imgDpiX            , SIGNAL(valueChanged(double)), this, SLOT(handleDpiX()));
 	connect(imgDpiY            , SIGNAL(valueChanged(double)), this, SLOT(handleDpiY()));
-	connect(keepImageWHRatioButton , SIGNAL(clicked())       , this, SLOT(handleImageWHRatio()));
-	connect(keepImageDPIRatioButton, SIGNAL(clicked())       , this, SLOT(handleImageDPIRatio()));
-	connect(freeScale          , SIGNAL(clicked())           , this, SLOT(handleScaling()));
-	connect(frameScale         , SIGNAL(clicked())           , this, SLOT(handleScaling()));
-	connect(cbProportional     , SIGNAL(stateChanged(int))   , this, SLOT(handleScaling()));
+	connect(keepImageWHRatioButton , SIGNAL(clicked())       , this, SLOT(handleImageAspectRatio()));
+	connect(checkBoxAutoFit    , SIGNAL(toggled(bool))		 , this, SLOT(handleScaling()));
+	connect(keepImageWHRatioButton, SIGNAL(toggled(bool))	 , this, SLOT(handleScaling()));
 	connect(imgEffectsButton   , SIGNAL(clicked())           , this, SLOT(handleImageEffects()));
-	connect(imgExtProperties   , SIGNAL(clicked())           , this, SLOT(handleExtImgProperties()));
 	connect(inputProfiles      , SIGNAL(textActivated(QString)), this, SLOT(handleProfile(QString)));
 	connect(renderIntent       , SIGNAL(activated(int))      , this, SLOT(handleIntent()));
 	connect(compressionMethod  , SIGNAL(activated(int))      , this, SLOT(handleCompressionMethod()));
 	connect(compressionQuality , SIGNAL(activated(int))      , this, SLOT(handleCompressionQuality()));
 	connect(ScQApp, SIGNAL(localeChanged()), this, SLOT(localeChange()));
+	connect(ScQApp, SIGNAL(labelVisibilityChanged(bool)), this, SLOT(toggleLabelVisibility(bool)));
 
 }
 
@@ -247,10 +242,10 @@
 	if (m_haveDoc)
 	{
 		if (ScCore->haveCMS() && m_doc->cmsSettings().CMSinUse)
-			colorMgmtGroup->show();
+			sectionImageColorManagement->show();
 		else
 		{
-			colorMgmtGroup->hide();
+			sectionImageColorManagement->hide();
 			return;
 		}
 
@@ -315,7 +310,7 @@
 	if (m_haveItem)
 		updateProfileList();
 	else if (m_doc)
-		colorMgmtGroup->setVisible(ScCore->haveCMS() && m_doc->cmsSettings().CMSinUse);
+		sectionImageColorManagement->setVisible(ScCore->haveCMS() && m_doc->cmsSettings().CMSinUse);
 }
 
 void PropertiesPalette_Image::showImageRotation(double rot)
@@ -332,13 +327,7 @@
 {
 	if (!m_ScMW || m_ScMW->scriptIsRunning())
 		return;
-	bool whRatioBlocked = keepImageWHRatioButton->blockSignals(true);
-	bool dpiRatioBlocked = keepImageDPIRatioButton->blockSignals(true);
-	if (fabs(scx - scy) > 0.0002)
-	{
-		keepImageWHRatioButton->setChecked(false);
-		keepImageDPIRatioButton->setChecked(false);
-	}
+
 	if (m_haveItem)
 	{
 		imageXOffsetSpinBox->showValue(x * m_unitRatio * m_item->imageXScale());
@@ -357,8 +346,7 @@
 		imgDpiX->showValue(72);
 		imgDpiY->showValue(72);
 	}
-	keepImageWHRatioButton->blockSignals(whRatioBlocked);
-	keepImageDPIRatioButton->blockSignals(dpiRatioBlocked);
+
 }
 
 void PropertiesPalette_Image::handleSelectionChanged()
@@ -440,38 +428,52 @@
 	m_haveItem = false;
 	m_item = item;
 
+	imageLayers->setCurrentItem(m_item, m_ScMW->view);
+	clippingPaths->setCurrentItem(m_item, m_ScMW->view);
+
 	if (m_item->isImageFrame())
 	{
+		ImageInfoRecord *info = &m_item->pixm.imgInfo;
+
 		imagePageNumber->blockSignals(true);
 		if (m_item->imageIsAvailable)
-		{
-			imagePageNumber->setMaximum(m_item->pixm.imgInfo.numberOfPages);
-			imagePageNumber->setEnabled(true);
-		}
-		else
-			imagePageNumber->setEnabled(false);
-		imagePageNumber->setValue(m_item->pixm.imgInfo.actualPageNumber);
+			imagePageNumber->setMaximum(info->numberOfPages);
+		imagePageNumber->setValue(info->actualPageNumber);
+		imagePageNumberLabel->setVisible(info->numberOfPages > 1);
+		imagePageNumber->blockSignals(false);
 
 		compressionMethod->setCurrentIndex(m_item->OverrideCompressionMethod ? m_item->CompressionMethodIndex + 1 : 0);
 		compressionQuality->setCurrentIndex(m_item->OverrideCompressionQuality ? m_item->CompressionQualityIndex + 1 : 0);
-		imagePageNumber->blockSignals(false);
 
 		imageXScaleSpinBox->blockSignals(true);
 		imageYScaleSpinBox->blockSignals(true);
 		imageXOffsetSpinBox->blockSignals(true);
 		imageYOffsetSpinBox->blockSignals(true);
+		imgDpiX->blockSignals(true);
+		imgDpiY->blockSignals(true);
+		keepImageWHRatioButton->blockSignals(true);
+		checkBoxAutoFit->blockSignals(true);
 		imageRotation->blockSignals(true);
 
-		imgEffectsButton->setVisible(m_item->imageIsAvailable && m_item->isRaster);
-		imgExtProperties->setVisible(m_item->imageIsAvailable && m_item->pixm.imgInfo.valid);
+		sectionImageEffects->setVisible(m_item->imageIsAvailable && m_item->isRaster);
+
+		if (m_item->imageIsAvailable && info->valid)
+		{
+			sectionImageLayers->setVisible(info->layerInfo.count() != 0);
+			sectionImageClippingPaths->setVisible(info->PDSpathData.count() != 0);
+		}
+		else
+		{
+			sectionImageLayers->setVisible(false);
+			sectionImageClippingPaths->setVisible(false);
+		}
+
 		bool setter = m_item->ScaleType;
-		freeScale->setChecked(setter);
-		frameScale->setChecked(!setter);
+		checkBoxAutoFit->setChecked(!setter);
+
 		if ((m_item->isLatexFrame()) || (m_item->isOSGFrame()))
 		{
-			freeScale->setEnabled(false);
-			frameScale->setEnabled(false);
-			cbProportional->setEnabled(false);
+			checkBoxAutoFit->setEnabled(false);
 			imageXScaleSpinBox->setEnabled(false);
 			imageYScaleSpinBox->setEnabled(false);
 			imgDpiX->setEnabled(false);
@@ -483,35 +485,24 @@
 			imageYScaleSpinBox->setEnabled(setter);
 			imgDpiX->setEnabled(setter);
 			imgDpiY->setEnabled(setter);
-			cbProportional->setEnabled(!setter);
-			cbProportional->setChecked(m_item->AspectRatio);
-			freeScale->setEnabled(true);
-			frameScale->setEnabled(true);
-			//Necessary for undo action
-			keepImageWHRatioButton->setEnabled(setter);
-			keepImageDPIRatioButton->setEnabled(setter);
+			checkBoxAutoFit->setEnabled(true);
 			keepImageWHRatioButton->setChecked(m_item->AspectRatio);
-			keepImageDPIRatioButton->setChecked(m_item->AspectRatio);
 		}
-//CB Why do we need this? Setting it too much here
-// 		if (setter == true)
-// 		{
-// 			keepImageWHRatioButton->setChecked(setter);
-// 			keepImageDPIRatioButton->setChecked(setter);
-// 		}
-		//imageXOffsetSpinBox->setEnabled(setter);
-		//imageYOffsetSpinBox->setEnabled(setter);
-		//imageRotation->setEnabled(setter);
 
 		imageXScaleSpinBox->blockSignals(false);
 		imageYScaleSpinBox->blockSignals(false);
 		imageXOffsetSpinBox->blockSignals(false);
 		imageYOffsetSpinBox->blockSignals(false);
+		imgDpiX->blockSignals(false);
+		imgDpiY->blockSignals(false);
+		keepImageWHRatioButton->blockSignals(false);
+		checkBoxAutoFit->blockSignals(false);
 		imageRotation->blockSignals(false);
 	}
 	m_haveItem = true;
 
 	showScaleAndOffset(m_item->imageXScale(), m_item->imageYScale(), m_item->imageXOffset(), m_item->imageYOffset());
+
 	double rrR = m_item->imageRotation();
 	if (m_item->imageRotation() > 0)
 		rrR = 360 - rrR;
@@ -521,14 +512,10 @@
 	{
 		updateProfileList();
 	}
-	if (m_item->isOSGFrame())
+	if (m_item->isOSGFrame() || m_item->isSymbol())
 	{
 		setEnabled(false);
 	}
-	if (m_item->isSymbol())
-	{
-		setEnabled(false);
-	}
 	updateSpinBoxConstants();
 }
 
@@ -560,7 +547,6 @@
 	{
 		//CB Don't pass in the scale to the offset change as its taken from the new scale
 		m_doc->itemSelection_SetImageScaleAndOffset(72.0 / imgDpiX->value(), 72.0 / imgDpiY->value(), imageXOffsetSpinBox->value() / m_unitRatio, imageYOffsetSpinBox->value() / m_unitRatio);
-		
 		imageXScaleSpinBox->showValue(m_item->imageXScale() * 100 / 72.0 * m_item->pixm.imgInfo.xres);
 		imageYScaleSpinBox->showValue(m_item->imageYScale() * 100 / 72.0 * m_item->pixm.imgInfo.yres);
 	}
@@ -573,7 +559,7 @@
 	if (m_haveDoc && m_haveItem)
 	{
 		m_doc->itemSelection_SetImageRotation(360 - imageRotation->value());
-		if (frameScale->isChecked())
+		if (checkBoxAutoFit->isChecked())
 		{
 			m_item->adjustPictScale();
 			m_item->update();
@@ -586,40 +572,17 @@
 	if (!m_ScMW || m_ScMW->scriptIsRunning())
 		return;
 
-	if (freeScale == sender())
+	if (checkBoxAutoFit == sender())
 	{
-		frameScale->setChecked(false);
-		freeScale->setChecked(true);
-		cbProportional->setEnabled(false);
-//		imageXOffsetSpinBox->setEnabled(true);
-//		imageYOffsetSpinBox->setEnabled(true);
-		imageXScaleSpinBox->setEnabled(true);
-		imageYScaleSpinBox->setEnabled(true);
-		imgDpiX->setEnabled(true);
-		imgDpiY->setEnabled(true);
-//		imageRotation->setEnabled(true);
-		keepImageWHRatioButton->setEnabled(true);
-		keepImageDPIRatioButton->setEnabled(true);
+		imageXScaleSpinBox->setEnabled(!checkBoxAutoFit->isChecked());
+		imageYScaleSpinBox->setEnabled(!checkBoxAutoFit->isChecked());
+		imgDpiX->setEnabled(!checkBoxAutoFit->isChecked());
+		imgDpiY->setEnabled(!checkBoxAutoFit->isChecked());
 	}
-	if (frameScale == sender())
-	{
-		frameScale->setChecked(true);
-		freeScale->setChecked(false);
-		cbProportional->setEnabled(true);
-//		imageXOffsetSpinBox->setEnabled(false);
-//		imageYOffsetSpinBox->setEnabled(false);
-		imageXScaleSpinBox->setEnabled(false);
-		imageYScaleSpinBox->setEnabled(false);
-		imgDpiX->setEnabled(false);
-		imgDpiY->setEnabled(false);
-//		imageRotation->setEnabled(false);
-		keepImageWHRatioButton->setEnabled(false);
-		keepImageDPIRatioButton->setEnabled(false);
-	}
 
 	if (m_haveDoc && m_haveItem)
 	{
-		m_item->setImageScalingMode(freeScale->isChecked(), cbProportional->isChecked());
+		m_item->setImageScalingMode(!checkBoxAutoFit->isChecked(), keepImageWHRatioButton->isChecked());
 		m_doc->changed();
 		m_doc->changedPagePreview();
 		emit UpdtGui(PageItem::ImageFrame);
@@ -652,7 +615,7 @@
 {
 	bool dpiXBlocked = imgDpiX->blockSignals(true);
 	bool dpiYBlocked = imgDpiY->blockSignals(true);
-	if (keepImageDPIRatioButton->isChecked())
+	if (keepImageWHRatioButton->isChecked())
 		imgDpiY->setValue(imgDpiX->value());
 	handleLocalDpi();
 	imgDpiX->blockSignals(dpiXBlocked);
@@ -663,7 +626,7 @@
 {
 	bool dpiXBlocked = imgDpiX->blockSignals(true);
 	bool dpiYBlocked = imgDpiY->blockSignals(true);
-	if (keepImageDPIRatioButton->isChecked())
+	if (keepImageWHRatioButton->isChecked())
 		imgDpiX->setValue(imgDpiY->value());
 	handleLocalDpi();
 	imgDpiX->blockSignals(dpiXBlocked);
@@ -670,36 +633,15 @@
 	imgDpiY->blockSignals(dpiYBlocked);
 }
 
-void PropertiesPalette_Image::handleImageDPIRatio()
+void PropertiesPalette_Image::handleImageAspectRatio()
 {
 	if (!m_ScMW || m_ScMW->scriptIsRunning())
 		return;
-	bool dpiXBlocked = imgDpiX->blockSignals(true);
-	bool dpiYBlocked = imgDpiY->blockSignals(true);
-	if (keepImageDPIRatioButton->isChecked())
-	{
-		double minXY = qMin(imgDpiX->value(), imgDpiY->value());
-		imgDpiX->setValue(minXY);
-		imgDpiY->setValue(minXY);
-		handleLocalDpi();
-		keepImageWHRatioButton->setChecked(true);
-		cbProportional->setChecked(true);
-	}
-	else
-	{
-		keepImageWHRatioButton->setChecked(false);
-		cbProportional->setChecked(false);
-	}
-	imgDpiX->blockSignals(dpiXBlocked);
-	imgDpiY->blockSignals(dpiYBlocked);
-}
 
-void PropertiesPalette_Image::handleImageWHRatio()
-{
-	if (!m_ScMW || m_ScMW->scriptIsRunning())
-		return;
 	bool xscaleBlocked = imageXScaleSpinBox->blockSignals(true);
 	bool yscaleBlocked = imageYScaleSpinBox->blockSignals(true);
+	bool dpiXBlocked = imgDpiX->blockSignals(true);
+	bool dpiYBlocked = imgDpiY->blockSignals(true);
 	if (keepImageWHRatioButton->isChecked())
 	{
 		double maxXY = qMax(imageXScaleSpinBox->value(), imageYScaleSpinBox->value());
@@ -706,16 +648,16 @@
 		imageXScaleSpinBox->setValue(maxXY);
 		imageYScaleSpinBox->setValue(maxXY);
 		handleLocalScale();
-		keepImageDPIRatioButton->setChecked(true);
-		cbProportional->setChecked(true);
+
+		double minXY = qMin(imgDpiX->value(), imgDpiY->value());
+		imgDpiX->setValue(minXY);
+		imgDpiY->setValue(minXY);
+		handleLocalDpi();
 	}
-	else
-	{
-		keepImageDPIRatioButton->setChecked(false);
-		cbProportional->setChecked(false);
-	}
 	imageXScaleSpinBox->blockSignals(xscaleBlocked);
 	imageYScaleSpinBox->blockSignals(yscaleBlocked);
+	imgDpiX->blockSignals(dpiXBlocked);
+	imgDpiY->blockSignals(dpiYBlocked);
 }
 
 void PropertiesPalette_Image::handleImageEffects()
@@ -725,15 +667,6 @@
 	m_ScMW->ImageEffects();
 }
 
-void PropertiesPalette_Image::handleExtImgProperties()
-{
-	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
-		return;
-	m_ScMW->view->editExtendedImageProperties();
-	m_doc->changed();
-	m_doc->changedPagePreview();
-}
-
 void PropertiesPalette_Image::handleImagePageNumber()
 {
 	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
@@ -823,9 +756,12 @@
 
 	QString ptSuffix = tr(" pt");
 	QString suffix   = (m_haveDoc) ? unitGetSuffixFromIndex(m_doc->unitIndex()) : ptSuffix;
-
 	imageXOffsetSpinBox->setSuffix(suffix);
 	imageYOffsetSpinBox->setSuffix(suffix);
+
+	QString dpiSuffix = tr(" dpi");
+	imgDpiX->setSuffix(dpiSuffix);
+	imgDpiY->setSuffix(dpiSuffix);
 }
 
 void PropertiesPalette_Image::unitChange()
@@ -856,6 +792,12 @@
 	imgDpiY->setLocale(l);
 }
 
+void PropertiesPalette_Image::toggleLabelVisibility(bool v)
+{
+	imagePageNumberLabel->setLabelVisibility(v);
+	imageRotationLabel->setLabelVisibility(v);
+}
+
 bool PropertiesPalette_Image::userActionOn()
 {
 	return m_userActionOn;
Index: scribus/ui/propertiespalette_image.h
===================================================================
--- scribus/ui/propertiespalette_image.h	(Revision 26266)
+++ scribus/ui/propertiespalette_image.h	(Arbeitskopie)
@@ -10,9 +10,7 @@
 #include "ui_propertiespalette_imagebase.h"
 
 #include "scribusapi.h"
-#include "scrpalettebase.h"
 #include "scrspinbox.h"
-#include "sclistboxpixmap.h"
 #include "scguardedptr.h"
 #include "units.h"
 
@@ -73,6 +71,7 @@
 	void languageChange();
 	void unitChange();
 	void localeChange();
+	void toggleLabelVisibility(bool v);
 
 protected slots:
 	void spinboxStartUserAction();
@@ -91,8 +90,7 @@
 	void handleYScale();
 	void handleDpiX();
 	void handleDpiY();
-	void handleImageDPIRatio();
-	void handleImageWHRatio();
+	void handleImageAspectRatio();
 
 	void handleImagePageNumber();
 
@@ -102,7 +100,6 @@
 	void handleCompressionQuality();
 
 	void handleImageEffects();
-	void handleExtImgProperties();
 
 signals:
 	void UpdtGui(int);
Index: scribus/ui/propertiespalette_imagebase.ui
===================================================================
--- scribus/ui/propertiespalette_imagebase.ui	(Revision 26266)
+++ scribus/ui/propertiespalette_imagebase.ui	(Arbeitskopie)
@@ -6,454 +6,624 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>286</width>
-    <height>617</height>
+    <width>257</width>
+    <height>699</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_4">
    <property name="spacing">
-    <number>3</number>
+    <number>0</number>
    </property>
    <property name="leftMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <property name="topMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <property name="rightMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>3</number>
+    <number>0</number>
    </property>
    <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <property name="spacing">
-      <number>3</number>
+    <widget class="SectionContainer" name="sectionImageDimensions">
+     <property name="title" stdset="0">
+      <string>Dimensions</string>
      </property>
-     <item row="2" column="0">
-      <widget class="QLabel" name="xposImgLabel">
-       <property name="text">
-        <string>&amp;X-Pos:</string>
+     <widget class="QWidget" name="page">
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <property name="leftMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="ScrSpinBox" name="imageXOffsetSpinBox">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
+       <property name="topMargin">
+        <number>8</number>
        </property>
-       <property name="toolTip">
-        <string>Horizontal offset of image within frame</string>
+       <property name="rightMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-     <item row="4" column="0">
-      <widget class="QLabel" name="imageRotationLabel">
-       <property name="text">
-        <string>Rotation:</string>
+       <property name="bottomMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-     <item row="4" column="1">
-      <widget class="ScrSpinBox" name="imageRotation">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
+       <item>
+        <layout class="QGridLayout" name="gridLayout">
+         <item row="1" column="1">
+          <widget class="ScrSpinBox" name="imageYOffsetSpinBox">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="toolTip">
+            <string>Vertical offset of image within frame</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="ScrSpinBox" name="imageXOffsetSpinBox">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="toolTip">
+            <string>Horizontal offset of image within frame</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="0">
+          <widget class="QLabel" name="yposImgLabel">
+           <property name="text">
+            <string>Y:</string>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="1" colspan="2">
+          <layout class="QHBoxLayout" name="horizontalLayout_4">
+           <item>
+            <widget class="FormWidget" name="imageRotationLabel">
+             <property name="label" stdset="0">
+              <string>&amp;Rotation</string>
+             </property>
+             <layout class="QHBoxLayout" name="horizontalLayout_5">
+              <property name="leftMargin">
+               <number>0</number>
+              </property>
+              <property name="topMargin">
+               <number>0</number>
+              </property>
+              <property name="rightMargin">
+               <number>0</number>
+              </property>
+              <property name="bottomMargin">
+               <number>0</number>
+              </property>
+              <item>
+               <widget class="ScrSpinBox" name="imageRotation">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                  <horstretch>0</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item>
+            <spacer name="horizontalSpacer_5">
+             <property name="orientation">
+              <enum>Qt::Orientation::Horizontal</enum>
+             </property>
+             <property name="sizeType">
+              <enum>QSizePolicy::Policy::Fixed</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>16</width>
+               <height>0</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+           <item>
+            <widget class="FormWidget" name="imagePageNumberLabel">
+             <property name="label" stdset="0">
+              <string>&amp;Page Number</string>
+             </property>
+             <layout class="QHBoxLayout" name="horizontalLayout_3">
+              <property name="leftMargin">
+               <number>0</number>
+              </property>
+              <property name="topMargin">
+               <number>0</number>
+              </property>
+              <property name="rightMargin">
+               <number>0</number>
+              </property>
+              <property name="bottomMargin">
+               <number>0</number>
+              </property>
+              <item>
+               <widget class="ScrSpinBox" name="imagePageNumber">
+                <property name="sizePolicy">
+                 <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+                  <horstretch>0</horstretch>
+                  <verstretch>0</verstretch>
+                 </sizepolicy>
+                </property>
+                <property name="specialValueText">
+                 <string>Auto</string>
+                </property>
+               </widget>
+              </item>
+             </layout>
+            </widget>
+           </item>
+           <item>
+            <spacer name="horizontalSpacer_2">
+             <property name="orientation">
+              <enum>Qt::Orientation::Horizontal</enum>
+             </property>
+             <property name="sizeHint" stdset="0">
+              <size>
+               <width>0</width>
+               <height>0</height>
+              </size>
+             </property>
+            </spacer>
+           </item>
+          </layout>
+         </item>
+         <item row="0" column="0">
+          <widget class="QLabel" name="xposImgLabel">
+           <property name="text">
+            <string>X:</string>
+           </property>
+          </widget>
+         </item>
+         <item row="2" column="3">
+          <spacer name="horizontalSpacer">
+           <property name="orientation">
+            <enum>Qt::Orientation::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>0</width>
+             <height>0</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+       <item>
+        <widget class="QCheckBox" name="checkBoxAutoFit">
+         <property name="text">
+          <string>Auto-Fit</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <layout class="QGridLayout" name="gridLayout_2">
+         <item row="1" column="2">
+          <widget class="ScrSpinBox" name="imgDpiY">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="toolTip">
+            <string>Effective vertical DPI of the image after scaling</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="0">
+          <widget class="QLabel" name="xscaleLabel">
+           <property name="text">
+            <string>X:</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="1">
+          <widget class="ScrSpinBox" name="imageYScaleSpinBox">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="toolTip">
+            <string>Resize the image vertically</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="ScrSpinBox" name="imageXScaleSpinBox">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="toolTip">
+            <string>Resize the image horizontally</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="3" rowspan="2">
+          <layout class="QVBoxLayout" name="verticalLayout_2">
+           <item>
+            <widget class="LinkButton" name="keepImageWHRatioButton">
+             <property name="toolTip">
+              <string>Keep the X and Y scaling the same</string>
+             </property>
+             <property name="checkable">
+              <bool>true</bool>
+             </property>
+             <property name="checked">
+              <bool>true</bool>
+             </property>
+             <property name="autoRaise">
+              <bool>true</bool>
+             </property>
+            </widget>
+           </item>
+          </layout>
+         </item>
+         <item row="0" column="2">
+          <widget class="ScrSpinBox" name="imgDpiX">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="toolTip">
+            <string>Effective horizontal DPI of the image after scaling</string>
+           </property>
+          </widget>
+         </item>
+         <item row="1" column="0">
+          <widget class="QLabel" name="yscaleLabel">
+           <property name="text">
+            <string>Y:</string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="4">
+          <spacer name="horizontalSpacer_3">
+           <property name="orientation">
+            <enum>Qt::Orientation::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>0</width>
+             <height>0</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
+    </widget>
+   </item>
+   <item>
+    <widget class="SectionContainer" name="sectionImageColorManagement">
+     <property name="title" stdset="0">
+      <string>Color Management</string>
+     </property>
+     <widget class="QWidget" name="page_3">
+      <layout class="QGridLayout" name="gridLayout_3">
+       <property name="leftMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="imagePageNumberLabel">
-       <property name="text">
-        <string>&amp;Page Number:</string>
+       <property name="topMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-     <item row="3" column="0">
-      <widget class="QLabel" name="yposImgLabel">
-       <property name="text">
-        <string>&amp;Y-Pos:</string>
+       <property name="rightMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-     <item row="3" column="1">
-      <widget class="ScrSpinBox" name="imageYOffsetSpinBox">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
+       <property name="bottomMargin">
+        <number>8</number>
        </property>
-       <property name="toolTip">
-        <string>Vertical offset of image within frame</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="ScrSpinBox" name="imagePageNumber">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="specialValueText">
-        <string>Auto</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
+       <item row="1" column="1">
+        <widget class="FormWidget" name="renderIntentLabel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="label" stdset="0">
+          <string>Rendering Intent</string>
+         </property>
+         <layout class="QHBoxLayout" name="horizontalLayout_11">
+          <property name="leftMargin">
+           <number>0</number>
+          </property>
+          <property name="topMargin">
+           <number>0</number>
+          </property>
+          <property name="rightMargin">
+           <number>0</number>
+          </property>
+          <property name="bottomMargin">
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QComboBox" name="renderIntent">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="toolTip">
+             <string>Rendering intent for the image</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="0" column="1">
+        <widget class="FormWidget" name="inputProfLabel">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="label" stdset="0">
+          <string>Input Profile</string>
+         </property>
+         <layout class="QHBoxLayout" name="horizontalLayout_10">
+          <property name="leftMargin">
+           <number>0</number>
+          </property>
+          <property name="topMargin">
+           <number>0</number>
+          </property>
+          <property name="rightMargin">
+           <number>0</number>
+          </property>
+          <property name="bottomMargin">
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QComboBox" name="inputProfiles">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="toolTip">
+             <string>Source profile of the image</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </widget>
+       </item>
+       <item row="0" column="2">
+        <spacer name="horizontalSpacer_8">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>0</width>
+           <height>0</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
+    </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="scalingGroupBox">
-     <property name="title">
-      <string>Scaling</string>
+    <widget class="SectionContainer" name="sectionImagePDF">
+     <property name="title" stdset="0">
+      <string>PDF Compression</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_2">
-      <property name="leftMargin">
-       <number>6</number>
-      </property>
-      <property name="topMargin">
-       <number>6</number>
-      </property>
-      <property name="rightMargin">
-       <number>6</number>
-      </property>
-      <property name="bottomMargin">
-       <number>6</number>
-      </property>
-      <property name="spacing">
-       <number>3</number>
-      </property>
-      <item row="2" column="2" rowspan="2">
-       <widget class="LinkButton" name="keepImageWHRatioButton">
-        <property name="maximumSize">
-         <size>
-          <width>15</width>
-          <height>32767</height>
-         </size>
-        </property>
-        <property name="toolTip">
-         <string>Keep the X and Y scaling the same</string>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-        <property name="autoRaise">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="xscaleLabel">
-        <property name="text">
-         <string>X-Sc&amp;ale:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="ScrSpinBox" name="imageXScaleSpinBox">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Resize the image horizontally</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="yscaleLabel">
-        <property name="text">
-         <string>Y-Scal&amp;e:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="0">
-       <widget class="QLabel" name="imgDPIXLabel">
-        <property name="text">
-         <string>Actual X-DPI:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1">
-       <widget class="ScrSpinBox" name="imgDpiX">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Effective horizontal DPI of the image after scaling</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="0">
-       <widget class="QLabel" name="imgDPIYLabel">
-        <property name="text">
-         <string>Actual Y-DPI:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="1">
-       <widget class="ScrSpinBox" name="imgDpiY">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Effective vertical DPI of the image after scaling</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="2" rowspan="2">
-       <widget class="LinkButton" name="keepImageDPIRatioButton">
-        <property name="maximumSize">
-         <size>
-          <width>15</width>
-          <height>32767</height>
-         </size>
-        </property>
-        <property name="checkable">
-         <bool>true</bool>
-        </property>
-        <property name="checked">
-         <bool>true</bool>
-        </property>
-        <property name="autoRaise">
-         <bool>true</bool>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="ScrSpinBox" name="imageYScaleSpinBox">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Resize the image vertically</string>
-        </property>
-       </widget>
-      </item>
-      <item row="6" column="0" colspan="3">
-       <widget class="QRadioButton" name="frameScale">
-        <property name="toolTip">
-         <string>Make the image fit within the size of the frame</string>
-        </property>
-        <property name="text">
-         <string>&amp;To Frame Size</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0" colspan="3">
-       <widget class="QRadioButton" name="freeScale">
-        <property name="toolTip">
-         <string>Allow the image to be a different size to the frame</string>
-        </property>
-        <property name="text">
-         <string>&amp;Free Scaling</string>
-        </property>
-       </widget>
-      </item>
-      <item row="7" column="1">
-       <widget class="QCheckBox" name="cbProportional">
-        <property name="toolTip">
-         <string>Use image proportions rather than those of the frame</string>
-        </property>
-        <property name="text">
-         <string>Proportional</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
+     <widget class="QWidget" name="page_5">
+      <layout class="QGridLayout" name="gridLayout_5">
+       <item row="0" column="1">
+        <widget class="QLabel" name="compressionMethodLabel">
+         <property name="text">
+          <string>Method:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="2">
+        <widget class="QComboBox" name="compressionMethod">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="toolTip">
+          <string>Compression method used in PDF export for the image</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="2">
+        <widget class="QComboBox" name="compressionQuality">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+         <property name="toolTip">
+          <string>Compression quality used in PDF export for the image</string>
+         </property>
+        </widget>
+       </item>
+       <item row="1" column="1">
+        <widget class="QLabel" name="compressionQualityLabel">
+         <property name="text">
+          <string>Quality:</string>
+         </property>
+         <property name="alignment">
+          <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="3">
+        <spacer name="horizontalSpacer_7">
+         <property name="orientation">
+          <enum>Qt::Orientation::Horizontal</enum>
+         </property>
+         <property name="sizeHint" stdset="0">
+          <size>
+           <width>0</width>
+           <height>0</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="colorMgmtGroup">
-     <property name="title">
-      <string>Color Management</string>
+    <widget class="SectionContainer" name="sectionImageEffects">
+     <property name="title" stdset="0">
+      <string>Effects</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_4">
-      <property name="leftMargin">
-       <number>6</number>
-      </property>
-      <property name="topMargin">
-       <number>6</number>
-      </property>
-      <property name="rightMargin">
-       <number>6</number>
-      </property>
-      <property name="bottomMargin">
-       <number>6</number>
-      </property>
-      <property name="spacing">
-       <number>3</number>
-      </property>
-      <item row="0" column="0">
-       <widget class="QLabel" name="inputProfLabel">
-        <property name="text">
-         <string>Input Profile:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QComboBox" name="inputProfiles">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Source profile of the image</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="renderIntentLabel">
-        <property name="text">
-         <string>Rendering Intent:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QComboBox" name="renderIntent">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Rendering intent for the image</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
+     <widget class="QWidget" name="page_2">
+      <layout class="QVBoxLayout" name="verticalLayout_3">
+       <property name="spacing">
+        <number>4</number>
+       </property>
+       <property name="leftMargin">
+        <number>8</number>
+       </property>
+       <property name="topMargin">
+        <number>8</number>
+       </property>
+       <property name="rightMargin">
+        <number>8</number>
+       </property>
+       <property name="bottomMargin">
+        <number>8</number>
+       </property>
+       <item>
+        <layout class="QHBoxLayout" name="horizontalLayout">
+         <property name="spacing">
+          <number>3</number>
+         </property>
+         <item>
+          <widget class="QToolButton" name="imgEffectsButton">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="text">
+            <string>Image Effects</string>
+           </property>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_4">
+           <property name="orientation">
+            <enum>Qt::Orientation::Horizontal</enum>
+           </property>
+           <property name="sizeHint" stdset="0">
+            <size>
+             <width>0</width>
+             <height>0</height>
+            </size>
+           </property>
+          </spacer>
+         </item>
+        </layout>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="pdfCompressionGroup">
-     <property name="title">
-      <string>PDF Compression</string>
+    <widget class="SectionContainer" name="sectionImageLayers">
+     <property name="title" stdset="0">
+      <string>Layers</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_3">
-      <property name="leftMargin">
-       <number>6</number>
-      </property>
-      <property name="topMargin">
-       <number>6</number>
-      </property>
-      <property name="rightMargin">
-       <number>6</number>
-      </property>
-      <property name="bottomMargin">
-       <number>6</number>
-      </property>
-      <property name="spacing">
-       <number>3</number>
-      </property>
-      <item row="0" column="0">
-       <widget class="QLabel" name="compressionMethodLabel">
-        <property name="text">
-         <string>Method:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="1">
-       <widget class="QComboBox" name="compressionMethod">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Compression method used in PDF export for the image</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="compressionQualityLabel">
-        <property name="text">
-         <string>Quality:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QComboBox" name="compressionQuality">
-        <property name="sizePolicy">
-         <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
-          <horstretch>0</horstretch>
-          <verstretch>0</verstretch>
-         </sizepolicy>
-        </property>
-        <property name="toolTip">
-         <string>Compression quality used in PDF export for the image</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
+     <widget class="QWidget" name="page_4">
+      <layout class="QVBoxLayout" name="verticalLayout_5">
+       <item>
+        <widget class="ImageLayers" name="imageLayers" native="true">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
     </widget>
    </item>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <property name="spacing">
-      <number>3</number>
+    <widget class="SectionContainer" name="sectionImageClippingPaths">
+     <property name="title" stdset="0">
+      <string>Clipping Paths</string>
      </property>
-     <item>
-      <widget class="QToolButton" name="imgEffectsButton">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
+     <widget class="QWidget" name="page_6">
+      <layout class="QVBoxLayout" name="verticalLayout_6">
+       <property name="spacing">
+        <number>4</number>
        </property>
-       <property name="text">
-        <string>Image Effects</string>
+       <property name="leftMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QToolButton" name="imgExtProperties">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
+       <property name="topMargin">
+        <number>8</number>
        </property>
-       <property name="text">
-        <string>Extended Properties</string>
+       <property name="rightMargin">
+        <number>8</number>
        </property>
-      </widget>
-     </item>
-    </layout>
+       <property name="bottomMargin">
+        <number>8</number>
+       </property>
+       <item>
+        <widget class="ImageClippingPaths" name="clippingPaths" native="true">
+         <property name="sizePolicy">
+          <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding">
+           <horstretch>0</horstretch>
+           <verstretch>0</verstretch>
+          </sizepolicy>
+         </property>
+        </widget>
+       </item>
+      </layout>
+     </widget>
+    </widget>
    </item>
    <item>
     <spacer name="verticalSpacer">
      <property name="orientation">
-      <enum>Qt::Vertical</enum>
+      <enum>Qt::Orientation::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>20</width>
+       <width>0</width>
        <height>0</height>
       </size>
      </property>
@@ -463,6 +633,19 @@
  </widget>
  <customwidgets>
   <customwidget>
+   <class>FormWidget</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/form_widget.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>SectionContainer</class>
+   <extends>QWidget</extends>
+   <header>ui/widgets/section_container.h</header>
+   <addpagemethod>setWidget</addpagemethod>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
    <header>ui/scrspinbox.h</header>
@@ -472,27 +655,35 @@
    <extends>QToolButton</extends>
    <header>ui/linkbutton.h</header>
   </customwidget>
+  <customwidget>
+   <class>ImageLayers</class>
+   <extends>QWidget</extends>
+   <header>ui/imagelayers.h</header>
+   <container>1</container>
+  </customwidget>
+  <customwidget>
+   <class>ImageClippingPaths</class>
+   <extends>QWidget</extends>
+   <header>ui/imageclippingpaths.h</header>
+   <container>1</container>
+  </customwidget>
  </customwidgets>
  <tabstops>
-  <tabstop>imagePageNumber</tabstop>
   <tabstop>imageXOffsetSpinBox</tabstop>
   <tabstop>imageYOffsetSpinBox</tabstop>
   <tabstop>imageRotation</tabstop>
-  <tabstop>freeScale</tabstop>
+  <tabstop>imagePageNumber</tabstop>
+  <tabstop>checkBoxAutoFit</tabstop>
   <tabstop>imageXScaleSpinBox</tabstop>
+  <tabstop>imgDpiX</tabstop>
   <tabstop>imageYScaleSpinBox</tabstop>
-  <tabstop>imgDpiX</tabstop>
   <tabstop>imgDpiY</tabstop>
   <tabstop>keepImageWHRatioButton</tabstop>
-  <tabstop>keepImageDPIRatioButton</tabstop>
-  <tabstop>frameScale</tabstop>
-  <tabstop>cbProportional</tabstop>
   <tabstop>inputProfiles</tabstop>
   <tabstop>renderIntent</tabstop>
   <tabstop>compressionMethod</tabstop>
   <tabstop>compressionQuality</tabstop>
   <tabstop>imgEffectsButton</tabstop>
-  <tabstop>imgExtProperties</tabstop>
  </tabstops>
  <resources/>
  <connections/>
Index: scribus/ui/widgets/combo_blendmode.cpp
===================================================================
--- scribus/ui/widgets/combo_blendmode.cpp	(Revision 26266)
+++ scribus/ui/widgets/combo_blendmode.cpp	(Arbeitskopie)
@@ -1,4 +1,5 @@
 #include "combo_blendmode.h"
+#include "scribusstructs.h"
 
 ComboBlendMode::ComboBlendMode(QWidget *parent) : QComboBox(parent)
 {	
@@ -18,22 +19,45 @@
 void ComboBlendMode::initialize()
 {
 	this->clear();
-	this->addItem( tr("Normal"), 0);
-	this->addItem( tr("Darken"), 1);
-	this->addItem( tr("Lighten"), 2);
-	this->addItem( tr("Multiply"), 3);
-	this->addItem( tr("Screen"), 4);
-	this->addItem( tr("Overlay"), 5);
-	this->addItem( tr("Hard Light"), 6);
-	this->addItem( tr("Soft Light"), 7);
-	this->addItem( tr("Difference"), 8);
-	this->addItem( tr("Exclusion"), 9);
-	this->addItem( tr("Color Dodge"), 10);
-	this->addItem( tr("Color Burn"), 11);
-	this->addItem( tr("Hue"), 12);
-	this->addItem( tr("Saturation"), 13);
-	this->addItem( tr("Color"), 14);
-	this->addItem( tr("Luminosity"), 15);
+	this->addItem( tr("Normal"), QVariant::fromValue(BlendMode::Normal));
+	this->addItem( tr("Darken"), QVariant::fromValue(BlendMode::Darken));
+	this->addItem( tr("Lighten"), QVariant::fromValue(BlendMode::Lighten));
+	this->addItem( tr("Multiply"), QVariant::fromValue(BlendMode::Multiply));
+	this->addItem( tr("Screen"), QVariant::fromValue(BlendMode::Screen));
+	this->addItem( tr("Overlay"), QVariant::fromValue(BlendMode::Overlay));
+	this->addItem( tr("Hard Light"), QVariant::fromValue(BlendMode::HardLight));
+	this->addItem( tr("Soft Light"), QVariant::fromValue(BlendMode::Softlight));
+	this->addItem( tr("Difference"), QVariant::fromValue(BlendMode::Difference));
+	this->addItem( tr("Exclusion"), QVariant::fromValue(BlendMode::Exclusion));
+	this->addItem( tr("Color Dodge"), QVariant::fromValue(BlendMode::ColorDodge));
+	this->addItem( tr("Color Burn"), QVariant::fromValue(BlendMode::ColorBurn));
+	this->addItem( tr("Hue"), QVariant::fromValue(BlendMode::Hue));
+	this->addItem( tr("Saturation"), QVariant::fromValue(BlendMode::Saturation));
+	this->addItem( tr("Color"), QVariant::fromValue(BlendMode::Color));
+	this->addItem( tr("Luminosity"), QVariant::fromValue(BlendMode::Luminosity));
 
 	this->setCurrentText( tr("Normal"));
+
+	// TODO: Merge Cairo blend modes with image blend modes
+
+	// blendModes.insert("norm", tr("Normal"));
+	// blendModes.insert("dark", tr("Darken"));
+	// blendModes.insert("lite", tr("Lighten"));
+	// blendModes.insert("hue ", tr("Hue"));
+	// blendModes.insert("sat ", tr("Saturation"));
+	// blendModes.insert("colr", tr("Color"));
+	// blendModes.insert("lum ", tr("Luminosity"));
+	// blendModes.insert("mul ", tr("Multiply"));
+	// blendModes.insert("scrn", tr("Screen"));
+	// blendModes.insert("diss", tr("Dissolve"));
+	// blendModes.insert("over", tr("Overlay"));
+	// blendModes.insert("hLit", tr("Hard Light"));
+	// blendModes.insert("sLit", tr("Soft Light"));
+	// blendModes.insert("diff", tr("Difference"));
+	// blendModes.insert("smud", tr("Exclusion"));
+	// blendModes.insert("div ", tr("Color Dodge"));
+	// blendModes.insert("idiv", tr("Color Burn"));
+	// blendModes.insert("plus", tr("Plus"));
+	// blendModes.insert("dsti", tr("Destination In"));
+	// blendModes.insert("dsto", tr("Destination Out"));
 }
