View Issue Details

IDProjectCategoryView StatusLast Update
0017265ScribusUser Interfacepublic2024-09-14 21:06
Reporternitramr Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status newResolutionopen 
PlatformDesktop PCOSUbuntuOS Version24.04 64-bit
Product Version1.7.0.svn 
Target Version1.7.0 
Summary0017265: Indigo UI: Image Properties Redesign
DescriptionI made a redesign of the image properties panel

- the extended image properties are now accessible directly from image properties panel
- the "free scaling" and "to frame size" options are merged to a new "auto-fit" checkbox
TagsNo tags attached.
PatchYes

Activities

nitramr

2024-09-08 19:19

developer  

imageproperties_2024-09-08_01.patch (155,273 bytes)   
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"));
 }
image_props.png (46,457 bytes)   
image_props.png (46,457 bytes)   

ale

2024-09-09 14:20

manager   ~0051314

good idea!

here is my feedback by looking at the screenshot:

- I don't see the page selection.
- On top of "auto fit" we should "also have auto fill" (or is the chain button available also when "auto" is checked?
- There are two X and Y with (probably) slight different meaning.
  It's clear what it does, but W and H could maybe better fitting for the second ones
- I wonder if it would be useful to add buttons for the "adjust image to frame" and "adjust frame to image"...

thanks for creating the patch!

nitramr

2024-09-09 15:51

developer   ~0051317

>> I don't see the page selection.
=> It is visible if the image frame contains a PDF file. As far as I know, it is not used for anything else, or did I miss something?

>> On top of "auto fit" we should "also have auto fill" (or is the chain button available also when "auto" is checked?
=> yes, the link button is not affected by toggling the mode

>>There are two X and Y with (probably) slight different meaning.
  It's clear what it does, but W and H could maybe better fitting for the second ones
=> Good proposal

>> I wonder if it would be useful to add buttons for the "adjust image to frame" and "adjust frame to image"...
=> Funny, I thought the same. Isn't "adjust image to frame" the same as auto fit? I can think of to add a button for "adjust frame to image"

nitramr

2024-09-09 16:11

developer   ~0051318

One thing is not implemented yet. I had an idea to simplify the image effects with a new list.
The plus button shows a list of all available effects based on the active effects. At the moment, some effects are disabled when they are in conflict with already selected effects.

But this part is for another iteration.
image effects.png (13,091 bytes)   
image effects.png (13,091 bytes)   

ale

2024-09-10 08:04

manager   ~0051322

> Isn't "adjust image to frame" the same as auto fit?

You can achieve with both the same result, but they are not the same:
one is a setting which keeps fitting the content when you resize the frame, the other one is a one time action.

if you can, take into consideration that there is a patch for adding the constraint that the image should "fill" the frame, in the direction it does not fill (0015560).
(no need to add it in this patch (except if the team wants it) but you might take it into consideration in the buttons layout)

cbradney

2024-09-12 20:25

administrator   ~0051329

Hi Martin

This has been committed.
Still to resolve:
- X/Y: labels where we used to have X-/Y-Scale: . As it stands, it needs a mention of Scale back.

thanks!
Craig

nitramr

2024-09-14 16:02

developer   ~0051342

Thanks for the reminder. I just forgot to include the label change (W and H) in the last patch. By the way, after thinking about the UI, I created new icons instead of label W/H. What do you prefer?
imageproperties_2024-09-14_01.patch (64,052 bytes)   
Index: resources/iconsets/1_7_0/16/action-scale-height.svg
===================================================================
--- resources/iconsets/1_7_0/16/action-scale-height.svg	(nicht existent)
+++ resources/iconsets/1_7_0/16/action-scale-height.svg	(Arbeitskopie)
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15 1H7V15H15V1ZM14 2H8V14H14V2Z"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M3.5 1L6 4H4V12H6L3.5 15L1 12H3V4H1L3.5 1Z" class="error"/>
+</svg>
Index: resources/iconsets/1_7_0/16/action-scale-width.svg
===================================================================
--- resources/iconsets/1_7_0/16/action-scale-width.svg	(nicht existent)
+++ resources/iconsets/1_7_0/16/action-scale-width.svg	(Arbeitskopie)
@@ -0,0 +1,4 @@
+<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><style>@import '../colors.css';</style>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M1 12.5L4 10V12H12V10L15 12.5L12 15V13H4V15L1 12.5Z" class="error"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15 1H1V9H15V1ZM14 2H2V8H14V2Z"/>
+</svg>
Index: resources/iconsets/1_7_0/1_7_0.xml
===================================================================
--- resources/iconsets/1_7_0/1_7_0.xml	(Revision 26284)
+++ resources/iconsets/1_7_0/1_7_0.xml	(Arbeitskopie)
@@ -148,6 +148,8 @@
 		<icon id="swap" file="16/action-swap.svg" />
 		<icon id="toggle-object-coordination" file="16/object-xycoordination.svg" />
 		<icon id="context-menu" file="16/action-menu.svg" />
+		<icon id="scale-width" file="16/action-scale-width.svg" />
+		<icon id="scale-height" file="16/action-scale-height.svg" />
 			
 		<!-- Alerts -->
 		<icon onLight="#E54545" onDark="#FF6666" id="22/dialog-error.png" file="16/alert-error.svg" />
Index: scribus/ui/propertiespalette_image.cpp
===================================================================
--- scribus/ui/propertiespalette_image.cpp	(Revision 26284)
+++ scribus/ui/propertiespalette_image.cpp	(Arbeitskopie)
@@ -15,11 +15,12 @@
 #include <QLocale>
 #include <QSignalBlocker>
 
-#include "extimageprops.h"
+#include "extimageprops.h"
+#include "iconmanager.h"
 #include "localemgr.h"
 #include "pageitem.h"
 #include "propertiespalette_utils.h"
-#include "propertiespalette.h"
+#include "propertiespalette.h"
 #include "scribuscore.h"
 #include "scribusapp.h"
 #include "scribusview.h"
@@ -47,36 +48,37 @@
 
 	installSniffer(imageXScaleSpinBox);
 	installSniffer(imageYScaleSpinBox);
-	installSniffer(imgDpiX);
-	installSniffer(imgDpiY);
+	installSniffer(imgDpiX);
+	installSniffer(imgDpiY);
 
 	keepImageWHRatioButton->setCheckable( true );
 	keepImageWHRatioButton->setAutoRaise( true );
 
-	sectionImageDimensions->expand();
-	sectionImageDimensions->setCanSaveState(true);
-	sectionImageDimensions->restorePreferences();
+	sectionImageDimensions->expand();
+	sectionImageDimensions->setCanSaveState(true);
+	sectionImageDimensions->restorePreferences();
 
-	sectionImageEffects->collapse();
-	sectionImageEffects->setCanSaveState(true);
-	sectionImageEffects->restorePreferences();
+	sectionImageEffects->collapse();
+	sectionImageEffects->setCanSaveState(true);
+	sectionImageEffects->restorePreferences();
 
-	sectionImageColorManagement->collapse();
-	sectionImageColorManagement->setCanSaveState(true);
-	sectionImageColorManagement->restorePreferences();
+	sectionImageColorManagement->collapse();
+	sectionImageColorManagement->setCanSaveState(true);
+	sectionImageColorManagement->restorePreferences();
 
-	sectionImagePDF->collapse();
-	sectionImagePDF->setCanSaveState(true);
-	sectionImagePDF->restorePreferences();
+	sectionImagePDF->collapse();
+	sectionImagePDF->setCanSaveState(true);
+	sectionImagePDF->restorePreferences();
 
-	sectionImageLayers->collapse();
-	sectionImageLayers->setCanSaveState(true);
-	sectionImageLayers->restorePreferences();
+	sectionImageLayers->collapse();
+	sectionImageLayers->setCanSaveState(true);
+	sectionImageLayers->restorePreferences();
 
-	sectionImageClippingPaths->collapse();
-	sectionImageClippingPaths->setCanSaveState(true);
-	sectionImageClippingPaths->restorePreferences();
-
+	sectionImageClippingPaths->collapse();
+	sectionImageClippingPaths->setCanSaveState(true);
+	sectionImageClippingPaths->restorePreferences();
+
+	iconSetChange();
 	languageChange();
 
 	connect(imagePageNumber    , SIGNAL(valueChanged(double)), this, SLOT(handleImagePageNumber()));
@@ -87,16 +89,17 @@
 	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(handleImageAspectRatio()));
-	connect(checkBoxAutoFit    , SIGNAL(toggled(bool))		 , this, SLOT(handleScaling()));
-	connect(keepImageWHRatioButton, SIGNAL(toggled(bool))	 , 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(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(iconSetChanged()), this, SLOT(iconSetChange()));
 	connect(ScQApp, SIGNAL(localeChanged()), this, SLOT(localeChange()));
-	connect(ScQApp, SIGNAL(labelVisibilityChanged(bool)), this, SLOT(toggleLabelVisibility(bool)));
+	connect(ScQApp, SIGNAL(labelVisibilityChanged(bool)), this, SLOT(toggleLabelVisibility(bool)));
 
 }
 
@@ -242,10 +245,10 @@
 	if (m_haveDoc)
 	{
 		if (ScCore->haveCMS() && m_doc->cmsSettings().CMSinUse)
-			sectionImageColorManagement->show();
+			sectionImageColorManagement->show();
 		else
 		{
-			sectionImageColorManagement->hide();
+			sectionImageColorManagement->hide();
 			return;
 		}
 
@@ -310,7 +313,7 @@
 	if (m_haveItem)
 		updateProfileList();
 	else if (m_doc)
-		sectionImageColorManagement->setVisible(ScCore->haveCMS() && m_doc->cmsSettings().CMSinUse);
+		sectionImageColorManagement->setVisible(ScCore->haveCMS() && m_doc->cmsSettings().CMSinUse);
 }
 
 void PropertiesPalette_Image::showImageRotation(double rot)
@@ -327,7 +330,7 @@
 {
 	if (!m_ScMW || m_ScMW->scriptIsRunning())
 		return;
-
+
 	if (m_haveItem)
 	{
 		imageXOffsetSpinBox->showValue(x * m_unitRatio * m_item->imageXScale());
@@ -346,7 +349,7 @@
 		imgDpiX->showValue(72);
 		imgDpiY->showValue(72);
 	}
-
+
 }
 
 void PropertiesPalette_Image::handleSelectionChanged()
@@ -428,19 +431,19 @@
 	m_haveItem = false;
 	m_item = item;
 
-	imageLayers->setCurrentItem(m_item, m_ScMW->view);
-	clippingPaths->setCurrentItem(m_item, m_ScMW->view);
-
+	imageLayers->setCurrentItem(m_item, m_ScMW->view);
+	clippingPaths->setCurrentItem(m_item, m_ScMW->view);
+
 	if (m_item->isImageFrame())
 	{
-		ImageInfoRecord *info = &m_item->pixm.imgInfo;
-
+		ImageInfoRecord *info = &m_item->pixm.imgInfo;
+
 		imagePageNumber->blockSignals(true);
 		if (m_item->imageIsAvailable)
-			imagePageNumber->setMaximum(info->numberOfPages);
-		imagePageNumber->setValue(info->actualPageNumber);
-		imagePageNumberLabel->setVisible(info->numberOfPages > 1);
-		imagePageNumber->blockSignals(false);
+			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);
@@ -449,31 +452,31 @@
 		imageYScaleSpinBox->blockSignals(true);
 		imageXOffsetSpinBox->blockSignals(true);
 		imageYOffsetSpinBox->blockSignals(true);
-		imgDpiX->blockSignals(true);
-		imgDpiY->blockSignals(true);
-		keepImageWHRatioButton->blockSignals(true);
-		checkBoxAutoFit->blockSignals(true);
+		imgDpiX->blockSignals(true);
+		imgDpiY->blockSignals(true);
+		keepImageWHRatioButton->blockSignals(true);
+		checkBoxAutoFit->blockSignals(true);
 		imageRotation->blockSignals(true);
 
-		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);
-		}
-
+		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;
-		checkBoxAutoFit->setChecked(!setter);
-
+		checkBoxAutoFit->setChecked(!setter);
+
 		if ((m_item->isLatexFrame()) || (m_item->isOSGFrame()))
 		{
-			checkBoxAutoFit->setEnabled(false);
+			checkBoxAutoFit->setEnabled(false);
 			imageXScaleSpinBox->setEnabled(false);
 			imageYScaleSpinBox->setEnabled(false);
 			imgDpiX->setEnabled(false);
@@ -485,7 +488,7 @@
 			imageYScaleSpinBox->setEnabled(setter);
 			imgDpiX->setEnabled(setter);
 			imgDpiY->setEnabled(setter);
-			checkBoxAutoFit->setEnabled(true);
+			checkBoxAutoFit->setEnabled(true);
 			keepImageWHRatioButton->setChecked(m_item->AspectRatio);
 		}
 
@@ -493,16 +496,16 @@
 		imageYScaleSpinBox->blockSignals(false);
 		imageXOffsetSpinBox->blockSignals(false);
 		imageYOffsetSpinBox->blockSignals(false);
-		imgDpiX->blockSignals(false);
-		imgDpiY->blockSignals(false);
-		keepImageWHRatioButton->blockSignals(false);
-		checkBoxAutoFit->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;
@@ -512,7 +515,7 @@
 	{
 		updateProfileList();
 	}
-	if (m_item->isOSGFrame() || m_item->isSymbol())
+	if (m_item->isOSGFrame() || m_item->isSymbol())
 	{
 		setEnabled(false);
 	}
@@ -559,7 +562,7 @@
 	if (m_haveDoc && m_haveItem)
 	{
 		m_doc->itemSelection_SetImageRotation(360 - imageRotation->value());
-		if (checkBoxAutoFit->isChecked())
+		if (checkBoxAutoFit->isChecked())
 		{
 			m_item->adjustPictScale();
 			m_item->update();
@@ -572,17 +575,17 @@
 	if (!m_ScMW || m_ScMW->scriptIsRunning())
 		return;
 
-	if (checkBoxAutoFit == sender())
+	if (checkBoxAutoFit == sender())
 	{
-		imageXScaleSpinBox->setEnabled(!checkBoxAutoFit->isChecked());
-		imageYScaleSpinBox->setEnabled(!checkBoxAutoFit->isChecked());
-		imgDpiX->setEnabled(!checkBoxAutoFit->isChecked());
-		imgDpiY->setEnabled(!checkBoxAutoFit->isChecked());
+		imageXScaleSpinBox->setEnabled(!checkBoxAutoFit->isChecked());
+		imageYScaleSpinBox->setEnabled(!checkBoxAutoFit->isChecked());
+		imgDpiX->setEnabled(!checkBoxAutoFit->isChecked());
+		imgDpiY->setEnabled(!checkBoxAutoFit->isChecked());
 	}
 
 	if (m_haveDoc && m_haveItem)
 	{
-		m_item->setImageScalingMode(!checkBoxAutoFit->isChecked(), keepImageWHRatioButton->isChecked());
+		m_item->setImageScalingMode(!checkBoxAutoFit->isChecked(), keepImageWHRatioButton->isChecked());
 		m_doc->changed();
 		m_doc->changedPagePreview();
 		emit UpdtGui(PageItem::ImageFrame);
@@ -615,7 +618,7 @@
 {
 	bool dpiXBlocked = imgDpiX->blockSignals(true);
 	bool dpiYBlocked = imgDpiY->blockSignals(true);
-	if (keepImageWHRatioButton->isChecked())
+	if (keepImageWHRatioButton->isChecked())
 		imgDpiY->setValue(imgDpiX->value());
 	handleLocalDpi();
 	imgDpiX->blockSignals(dpiXBlocked);
@@ -626,7 +629,7 @@
 {
 	bool dpiXBlocked = imgDpiX->blockSignals(true);
 	bool dpiYBlocked = imgDpiY->blockSignals(true);
-	if (keepImageWHRatioButton->isChecked())
+	if (keepImageWHRatioButton->isChecked())
 		imgDpiX->setValue(imgDpiY->value());
 	handleLocalDpi();
 	imgDpiX->blockSignals(dpiXBlocked);
@@ -633,7 +636,7 @@
 	imgDpiY->blockSignals(dpiYBlocked);
 }
 
-void PropertiesPalette_Image::handleImageAspectRatio()
+void PropertiesPalette_Image::handleImageAspectRatio()
 {
 	if (!m_ScMW || m_ScMW->scriptIsRunning())
 		return;
@@ -640,8 +643,8 @@
 
 	bool xscaleBlocked = imageXScaleSpinBox->blockSignals(true);
 	bool yscaleBlocked = imageYScaleSpinBox->blockSignals(true);
-	bool dpiXBlocked = imgDpiX->blockSignals(true);
-	bool dpiYBlocked = imgDpiY->blockSignals(true);
+	bool dpiXBlocked = imgDpiX->blockSignals(true);
+	bool dpiYBlocked = imgDpiY->blockSignals(true);
 	if (keepImageWHRatioButton->isChecked())
 	{
 		double maxXY = qMax(imageXScaleSpinBox->value(), imageYScaleSpinBox->value());
@@ -648,16 +651,16 @@
 		imageXScaleSpinBox->setValue(maxXY);
 		imageYScaleSpinBox->setValue(maxXY);
 		handleLocalScale();
-
-		double minXY = qMin(imgDpiX->value(), imgDpiY->value());
-		imgDpiX->setValue(minXY);
-		imgDpiY->setValue(minXY);
-		handleLocalDpi();
+
+		double minXY = qMin(imgDpiX->value(), imgDpiY->value());
+		imgDpiX->setValue(minXY);
+		imgDpiY->setValue(minXY);
+		handleLocalDpi();
 	}
 	imageXScaleSpinBox->blockSignals(xscaleBlocked);
 	imageYScaleSpinBox->blockSignals(yscaleBlocked);
-	imgDpiX->blockSignals(dpiXBlocked);
-	imgDpiY->blockSignals(dpiYBlocked);
+	imgDpiX->blockSignals(dpiXBlocked);
+	imgDpiY->blockSignals(dpiYBlocked);
 }
 
 void PropertiesPalette_Image::handleImageEffects()
@@ -714,6 +717,15 @@
 	m_doc->itemSelection_SetCompressionQuality(compressionQuality->currentIndex() - 1);
 }
 
+
+void PropertiesPalette_Image::iconSetChange()
+{
+	IconManager& im = IconManager::instance();
+
+	xscaleLabel->setPixmap(im.loadPixmap("scale-width"));
+	yscaleLabel->setPixmap(im.loadPixmap("scale-height"));
+}
+
 void PropertiesPalette_Image::languageChange()
 {
 	retranslateUi(this);
@@ -758,10 +770,10 @@
 	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);
+
+	QString dpiSuffix = tr(" dpi");
+	imgDpiX->setSuffix(dpiSuffix);
+	imgDpiY->setSuffix(dpiSuffix);
 }
 
 void PropertiesPalette_Image::unitChange()
@@ -792,12 +804,13 @@
 	imgDpiY->setLocale(l);
 }
 
-void PropertiesPalette_Image::toggleLabelVisibility(bool v)
-{
-	imagePageNumberLabel->setLabelVisibility(v);
-	imageRotationLabel->setLabelVisibility(v);
-}
-
+void PropertiesPalette_Image::toggleLabelVisibility(bool v)
+{
+	imagePageNumberLabel->setLabelVisibility(v);
+	imageRotationLabel->setLabelVisibility(v);
+	imageScaleLabel->setLabelVisibility(v);
+}
+
 bool PropertiesPalette_Image::userActionOn()
 {
 	return m_userActionOn;
Index: scribus/ui/propertiespalette_image.h
===================================================================
--- scribus/ui/propertiespalette_image.h	(Revision 26284)
+++ scribus/ui/propertiespalette_image.h	(Arbeitskopie)
@@ -68,10 +68,11 @@
 	void showImageRotation(double rot);
 	void showScaleAndOffset(double scx, double scy, double x, double y);
 
+	void iconSetChange();
 	void languageChange();
 	void unitChange();
 	void localeChange();
-	void toggleLabelVisibility(bool v);
+	void toggleLabelVisibility(bool v);
 
 protected slots:
 	void spinboxStartUserAction();
@@ -90,7 +91,7 @@
 	void handleYScale();
 	void handleDpiX();
 	void handleDpiY();
-	void handleImageAspectRatio();
+	void handleImageAspectRatio();
 
 	void handleImagePageNumber();
 
Index: scribus/ui/propertiespalette_imagebase.ui
===================================================================
--- scribus/ui/propertiespalette_imagebase.ui	(Revision 26284)
+++ scribus/ui/propertiespalette_imagebase.ui	(Arbeitskopie)
@@ -6,624 +6,710 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>257</width>
-    <height>699</height>
+    <width>257</width>
+    <height>732</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout_4">
+  <layout class="QVBoxLayout" name="verticalLayout_4">
    <property name="spacing">
-    <number>0</number>
+    <number>0</number>
    </property>
    <property name="leftMargin">
-    <number>0</number>
+    <number>0</number>
    </property>
    <property name="topMargin">
-    <number>0</number>
+    <number>0</number>
    </property>
    <property name="rightMargin">
-    <number>0</number>
+    <number>0</number>
    </property>
    <property name="bottomMargin">
-    <number>0</number>
+    <number>0</number>
    </property>
    <item>
-    <widget class="SectionContainer" name="sectionImageDimensions">
-     <property name="title" stdset="0">
-      <string>Dimensions</string>
+    <widget class="SectionContainer" name="sectionImageDimensions">
+     <property name="title" stdset="0">
+      <string>Dimensions</string>
      </property>
-     <widget class="QWidget" name="page">
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <property name="leftMargin">
-        <number>8</number>
+     <widget class="QWidget" name="page">
+      <layout class="QVBoxLayout" name="verticalLayout">
+       <property name="leftMargin">
+        <number>8</number>
        </property>
-       <property name="topMargin">
-        <number>8</number>
+       <property name="topMargin">
+        <number>8</number>
        </property>
-       <property name="rightMargin">
-        <number>8</number>
+       <property name="rightMargin">
+        <number>8</number>
        </property>
-       <property name="bottomMargin">
-        <number>8</number>
+       <property name="bottomMargin">
+        <number>8</number>
        </property>
-       <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>
+       <item>
+        <layout class="QGridLayout" name="gridLayout">
+         <property name="horizontalSpacing">
+          <number>4</number>
+         </property>
+         <property name="verticalSpacing">
+          <number>8</number>
+         </property>
+         <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>
+           <property name="alignment">
+            <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
+           </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>
+           <property name="alignment">
+            <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
+           </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>
+         <item row="2" column="0">
+          <spacer name="horizontalSpacer_6">
+           <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>24</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="QHBoxLayout" name="horizontalLayout_2">
+         <property name="spacing">
+          <number>4</number>
+         </property>
+         <item>
+          <widget class="FormWidget" name="imageScaleLabel">
+           <property name="sizePolicy">
+            <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+             <horstretch>0</horstretch>
+             <verstretch>0</verstretch>
+            </sizepolicy>
+           </property>
+           <property name="label" stdset="0">
+            <string>Image &amp;Scale</string>
+           </property>
+           <layout class="QGridLayout" name="gridLayout_4">
+            <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>
+            <property name="horizontalSpacing">
+             <number>4</number>
+            </property>
+            <property name="verticalSpacing">
+             <number>8</number>
+            </property>
+            <item row="1" column="0">
+             <widget class="QLabel" name="yscaleLabel">
+              <property name="text">
+               <string/>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
+              </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="0">
+             <widget class="QLabel" name="xscaleLabel">
+              <property name="text">
+               <string/>
+              </property>
+              <property name="alignment">
+               <set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
+              </property>
+             </widget>
+            </item>
+            <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="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="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="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="2" column="0">
+             <spacer name="horizontalSpacer_11">
+              <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>24</width>
+                <height>0</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </widget>
+         </item>
+         <item>
+          <spacer name="horizontalSpacer_10">
+           <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>
-       <property name="topMargin">
-        <number>8</number>
+       <property name="topMargin">
+        <number>8</number>
        </property>
-       <property name="rightMargin">
-        <number>8</number>
+       <property name="rightMargin">
+        <number>8</number>
        </property>
-       <property name="bottomMargin">
-        <number>8</number>
+       <property name="bottomMargin">
+        <number>8</number>
        </property>
-       <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 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="SectionContainer" name="sectionImagePDF">
-     <property name="title" stdset="0">
-      <string>PDF Compression</string>
+    <widget class="SectionContainer" name="sectionImagePDF">
+     <property name="title" stdset="0">
+      <string>PDF Compression</string>
      </property>
-     <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 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="SectionContainer" name="sectionImageEffects">
-     <property name="title" stdset="0">
-      <string>Effects</string>
+    <widget class="SectionContainer" name="sectionImageEffects">
+     <property name="title" stdset="0">
+      <string>Effects</string>
      </property>
-     <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 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="SectionContainer" name="sectionImageLayers">
-     <property name="title" stdset="0">
-      <string>Layers</string>
+    <widget class="SectionContainer" name="sectionImageLayers">
+     <property name="title" stdset="0">
+      <string>Layers</string>
      </property>
-     <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 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>
-    <widget class="SectionContainer" name="sectionImageClippingPaths">
-     <property name="title" stdset="0">
-      <string>Clipping Paths</string>
+    <widget class="SectionContainer" name="sectionImageClippingPaths">
+     <property name="title" stdset="0">
+      <string>Clipping Paths</string>
      </property>
-     <widget class="QWidget" name="page_6">
-      <layout class="QVBoxLayout" name="verticalLayout_6">
-       <property name="spacing">
-        <number>4</number>
+     <widget class="QWidget" name="page_6">
+      <layout class="QVBoxLayout" name="verticalLayout_6">
+       <property name="spacing">
+        <number>4</number>
        </property>
-       <property name="leftMargin">
-        <number>8</number>
+       <property name="leftMargin">
+        <number>8</number>
        </property>
-       <property name="topMargin">
-        <number>8</number>
+       <property name="topMargin">
+        <number>8</number>
        </property>
-       <property name="rightMargin">
-        <number>8</number>
+       <property name="rightMargin">
+        <number>8</number>
        </property>
-       <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>
+       <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::Orientation::Vertical</enum>
+      <enum>Qt::Orientation::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>0</width>
+       <width>0</width>
        <height>0</height>
       </size>
      </property>
@@ -633,22 +719,22 @@
  </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>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>
+   <header location="global">ui/scrspinbox.h</header>
   </customwidget>
   <customwidget>
    <class>LinkButton</class>
@@ -655,27 +741,27 @@
    <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>
+  <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>imageXOffsetSpinBox</tabstop>
   <tabstop>imageYOffsetSpinBox</tabstop>
   <tabstop>imageRotation</tabstop>
-  <tabstop>imagePageNumber</tabstop>
-  <tabstop>checkBoxAutoFit</tabstop>
+  <tabstop>imagePageNumber</tabstop>
+  <tabstop>checkBoxAutoFit</tabstop>
   <tabstop>imageXScaleSpinBox</tabstop>
-  <tabstop>imgDpiX</tabstop>
+  <tabstop>imgDpiX</tabstop>
   <tabstop>imageYScaleSpinBox</tabstop>
   <tabstop>imgDpiY</tabstop>
   <tabstop>keepImageWHRatioButton</tabstop>
image_scale.png (9,450 bytes)   
image_scale.png (9,450 bytes)   

cbradney

2024-09-14 21:06

administrator   ~0051343

Perfect, committed! Thanks Martin

Issue History

Date Modified Username Field Change
2024-09-08 19:19 nitramr New Issue
2024-09-08 19:19 nitramr File Added: imageproperties_2024-09-08_01.patch
2024-09-08 19:19 nitramr File Added: image_props.png
2024-09-09 14:20 ale Note Added: 0051314
2024-09-09 15:51 nitramr Note Added: 0051317
2024-09-09 16:11 nitramr Note Added: 0051318
2024-09-09 16:11 nitramr File Added: image effects.png
2024-09-10 08:04 ale Note Added: 0051322
2024-09-12 20:25 cbradney Note Added: 0051329
2024-09-14 16:02 nitramr Note Added: 0051342
2024-09-14 16:02 nitramr File Added: imageproperties_2024-09-14_01.patch
2024-09-14 16:02 nitramr File Added: image_scale.png
2024-09-14 21:06 cbradney Note Added: 0051343