diff --git a/scribus/ui/propertiespalette_image.cpp b/scribus/ui/propertiespalette_image.cpp
index b0ae4ea434..5ee684c6ad 100644
--- a/scribus/ui/propertiespalette_image.cpp
+++ b/scribus/ui/propertiespalette_image.cpp
@@ -110,6 +110,8 @@ PropertiesPalette_Image::PropertiesPalette_Image( QWidget* parent) : QWidget(par
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(alignvertical , SIGNAL(currentIndexChanged(int)) , this, SLOT(alignImageVertical(int)));
+ connect(alignhorozintal , SIGNAL(currentIndexChanged(int)), this, SLOT(alignImageHorozintal(int)));
}
void PropertiesPalette_Image::updateSpinBoxConstants()
@@ -902,4 +904,59 @@ void PropertiesPalette_Image::spinboxFinishUserAction()
}
}
+void PropertiesPalette_Image::alignImageVertical(int idx){
+ if (!m_ScMW || m_ScMW->scriptIsRunning())
+ return;
+ if ((m_haveDoc) && (m_haveItem) && (m_item->asImageFrame()))
+ {
+ double newY;
+ double imageHeight = m_item->pixm.height() * m_item->imageYScale() * m_item->pixm.imgInfo.lowResScale;
+ double frameHeight= m_item->height();
+
+ switch (idx)
+ {
+ case 1:
+ newY = 0;
+ break;
+ case 2:
+ newY = (frameHeight - imageHeight) / 2.0;
+ break;
+ case 3:
+ newY = frameHeight - imageHeight;
+ break;
+ default:
+ newY = m_item->imageYOffset(); //do nothing
+ break;
+ }
+ m_doc->itemSelection_SetImageOffset(m_item->imageXOffset(), newY / m_item->imageYScale());
+ }
+}
+
+void PropertiesPalette_Image::alignImageHorozintal(int idx) {
+ if (!m_ScMW || m_ScMW->scriptIsRunning())
+ return;
+
+ if ((m_haveDoc) && (m_haveItem) && (m_item->asImageFrame()))
+ {
+ double newX;
+ double imageWidth = m_item->pixm.width() * m_item->imageXScale() * m_item->pixm.imgInfo.lowResScale;
+ double frameWidth = m_item->width();
+ switch (idx)
+ {
+ case 1:
+ newX = 0;
+ break;
+ case 2:
+ newX = (frameWidth - imageWidth) / 2.0;
+ break;
+ case 3:
+ newX = frameWidth - imageWidth;
+ break;
+ default:
+ newX = m_item->imageXOffset(); // do nothing
+ break;
+ }
+ m_doc->itemSelection_SetImageOffset(newX / m_item->imageXScale(), m_item->imageYOffset());
+ }
+}
diff --git a/scribus/ui/propertiespalette_image.h b/scribus/ui/propertiespalette_image.h
index fb4e46baa2..d4fdb12d53 100644
--- a/scribus/ui/propertiespalette_image.h
+++ b/scribus/ui/propertiespalette_image.h
@@ -103,6 +103,8 @@ private slots:
void handleImageEffects();
void handleExtImgProperties();
+ void alignImageVertical(int);
+ void alignImageHorozintal(int);
signals:
void UpdtGui(int);
diff --git a/scribus/ui/propertiespalette_imagebase.ui b/scribus/ui/propertiespalette_imagebase.ui
index cfb44ca751..eb03f92aa7 100644
--- a/scribus/ui/propertiespalette_imagebase.ui
+++ b/scribus/ui/propertiespalette_imagebase.ui
@@ -6,8 +6,8 @@
0
0
- 286
- 617
+ 297
+ 690
@@ -17,7 +17,16 @@
2
-
+
+ 2
+
+
+ 2
+
+
+ 2
+
+
2
-
@@ -63,13 +72,6 @@
- -
-
-
- Y-Pos:
-
-
-
-
@@ -80,6 +82,13 @@
+ -
+
+
+ Y-Pos:
+
+
+
-
@@ -89,6 +98,77 @@
+ -
+
+
+ Alignment
+
+
+
-
+
+
+ Horizontal
+
+
+
+ -
+
+
+ Vertical
+
+
+
+ -
+
+
-
+
+ None
+
+
+ -
+
+ Left
+
+
+ -
+
+ Center
+
+
+ -
+
+ Right
+
+
+
+
+ -
+
+
-
+
+ None
+
+
+ -
+
+ Top
+
+
+ -
+
+ Middle
+
+
+ -
+
+ Bottom
+
+
+
+
+
+
+
-
@@ -200,17 +280,17 @@
- -
-
+
-
+
- Proportional
+ To Frame Size
- -
-
+
-
+
- To Frame Size
+ Proportional
@@ -223,13 +303,6 @@
Color Management
- -
-
-
- Input Profile
-
-
-
-
@@ -250,6 +323,13 @@
-
+ -
+
+
+ Input Profile
+
+
+
@@ -326,6 +406,9 @@
+ -
+
+
-
@@ -365,8 +448,6 @@
imgDpiY
keepImageWHRatioButton
keepImageDPIRatioButton
- frameScale
- cbProportional
inputProfiles
renderIntent
compressionMethod