View Issue Details

IDProjectCategoryView StatusLast Update
0015896ScribusProperties Palettepublic2019-11-27 07:09
Reporterale Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Product Version1.5.6.svn 
Target VersionFixed in Version 
Summary0015896: [PATCH] Indigo UI: shrink the size of the XYZ pane
Descriptionfollowing martin's Indigo UI project, i've started shrinking the XYZ pane in the properties palette.

some notes:

- the name of the item disappears.
  martin planned, to put in an "advanced" expandable section, i'd prefer to make the name editable in the outline window: it's a better place for it! (a separate patch will follow; please wait for that patch before committing this one)
- the group and ungroup buttons are removed (they are actions, not properties; the are other and better ways to group items)
- martin puts the basepoint at top left (most prominent place!), i'd prefer putting it at the bottom right (it's not so often used...)
- martin puts the "do not export item" button in the "advanced" expandable section.
  as i wrote in 0015894 i did not expect it, but i've found an ok place for it... please discuss there if we can remove the button. i would be really be really glad if we can get rid of it.
TagsNo tags attached.
PatchYes

Relationships

related to 0015813 new Indigo UI: remove the item name from the Properties Palette 
related to 0009048 new Better control for the origin and basepoint of all frames 

Activities

ale

2019-11-01 17:15

manager  

xyz-3.png (20,970 bytes)
xyz-3.png (20,970 bytes)

ale

2019-11-01 17:48

manager   ~0046896

Last edited: 2019-11-04 18:25

View 2 revisions

[there is a newer patch further down...]

here is the patch.

the one open issue, is the rotation icon that cannot be read.
we can of course keep the unicode character... it's probably good enough (and in the current state of the icon, probably even better)

the images can be downloaded from the merge request on gitlab:

https://gitlab.com/scribus/scribus/merge_requests/8

there will be an appimage as soon as the CI has done its work.

just one note: if we can remove the "do not export" button, then i would align the basepoint widget to the right of the panel.

and, as discussed on irc: if somebody can provide better (quality) icons: you're very welcome!

i've not tested it throughly, but i think that the patch is ready for review and commit.
(or as soon i've (somebody has) submitted a patch for the "outline" window... i plan to do it tomorrow...)



indigo-pp-xyz.diff (32,117 bytes)
diff --git a/resources/iconsets/1_5_1/16/flip-object-horizontal.png b/resources/iconsets/1_5_1/16/flip-object-horizontal.png
index b5053fa7f..ccc1e982a 100644
Binary files a/resources/iconsets/1_5_1/16/flip-object-horizontal.png and b/resources/iconsets/1_5_1/16/flip-object-horizontal.png differ
diff --git a/resources/iconsets/1_5_1/16/flip-object-vertical.png b/resources/iconsets/1_5_1/16/flip-object-vertical.png
index d94b746f7..d3281a0f0 100644
Binary files a/resources/iconsets/1_5_1/16/flip-object-vertical.png and b/resources/iconsets/1_5_1/16/flip-object-vertical.png differ
diff --git a/resources/iconsets/1_5_1/chain-small-closed.png b/resources/iconsets/1_5_1/chain-small-closed.png
new file mode 100644
index 000000000..d5105d0a4
Binary files /dev/null and b/resources/iconsets/1_5_1/chain-small-closed.png differ
diff --git a/resources/iconsets/1_5_1/chain-small-open.png b/resources/iconsets/1_5_1/chain-small-open.png
new file mode 100644
index 000000000..d32371f6a
Binary files /dev/null and b/resources/iconsets/1_5_1/chain-small-open.png differ
diff --git a/resources/iconsets/1_5_1/group.png b/resources/iconsets/1_5_1/group.png
deleted file mode 100644
index d2aae0af6..000000000
Binary files a/resources/iconsets/1_5_1/group.png and /dev/null differ
diff --git a/resources/iconsets/1_5_1/level-bottom.png b/resources/iconsets/1_5_1/level-bottom.png
new file mode 100644
index 000000000..89dd044a8
Binary files /dev/null and b/resources/iconsets/1_5_1/level-bottom.png differ
diff --git a/resources/iconsets/1_5_1/level-down.png b/resources/iconsets/1_5_1/level-down.png
new file mode 100644
index 000000000..de94d3c76
Binary files /dev/null and b/resources/iconsets/1_5_1/level-down.png differ
diff --git a/resources/iconsets/1_5_1/level-top.png b/resources/iconsets/1_5_1/level-top.png
new file mode 100644
index 000000000..d34bc0084
Binary files /dev/null and b/resources/iconsets/1_5_1/level-top.png differ
diff --git a/resources/iconsets/1_5_1/level-up.png b/resources/iconsets/1_5_1/level-up.png
new file mode 100644
index 000000000..d863d84a8
Binary files /dev/null and b/resources/iconsets/1_5_1/level-up.png differ
diff --git a/resources/iconsets/1_5_1/ungroup.png b/resources/iconsets/1_5_1/ungroup.png
deleted file mode 100644
index 52a8f19b9..000000000
Binary files a/resources/iconsets/1_5_1/ungroup.png and /dev/null differ
diff --git a/scribus/ui/propertiespalette_xyz.cpp b/scribus/ui/propertiespalette_xyz.cpp
index 62be16af1..52268ee77 100644
--- a/scribus/ui/propertiespalette_xyz.cpp
+++ b/scribus/ui/propertiespalette_xyz.cpp
@@ -61,32 +61,30 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	connect(userActionSniffer, SIGNAL(actionStart()), this, SLOT(spinboxStartUserAction()));
 	connect(userActionSniffer, SIGNAL(actionEnd()), this, SLOT(spinboxFinishUserAction()));
 
-	nameEdit->setFocusPolicy(Qt::ClickFocus);
-
 	installSniffer(xposSpin);
 	installSniffer(yposSpin);
 	installSniffer(widthSpin);
 	installSniffer(heightSpin);
 
+	IconManager& im=IconManager::instance();
+
 	keepFrameWHRatioButton->setCheckable( true );
-	keepFrameWHRatioButton->setAutoRaise( true );
-	keepFrameWHRatioButton->setMaximumSize( QSize( 15, 32767 ) );
-	keepFrameWHRatioButton->setChecked(false);
+	{
+		QIcon icon = QIcon();
+		icon.addPixmap(im.loadPixmap("chain-small-closed.png"), QIcon::Normal, QIcon::On);
+		icon.addPixmap(im.loadPixmap("chain-small-open.png"), QIcon::Normal, QIcon::Off);
+		keepFrameWHRatioButton->setIcon(icon);
+	}
 
+	// rotation->setPixmap(im.loadPixmap("rotation.png")); // TODO: using the unicode char might even be better... but i did not manage to load the pixmap in the label
 	rotationSpin->setNewUnit(6);
 	rotationSpin->setWrapping( true );
 	installSniffer(rotationSpin);
-	rotationLabel->setBuddy(rotationSpin);
-
-	IconManager& im=IconManager::instance();
-	levelUp->setIcon(im.loadIcon("16/go-up.png"));
-	levelDown->setIcon(im.loadIcon("16/go-down.png"));
-	levelTop->setIcon(im.loadIcon("16/go-top.png"));
-	levelBottom->setIcon(im.loadIcon("16/go-bottom.png"));
-	levelLabel->setAlignment( Qt::AlignCenter );
 
-	doGroup->setIcon(im.loadIcon("group.png"));
-	doUnGroup->setIcon(im.loadIcon("ungroup.png"));
+	levelUp->setIcon(IconManager::instance().loadIcon("level-up.png"));
+	levelDown->setIcon(IconManager::instance().loadIcon("level-down.png"));
+	levelTop->setIcon(IconManager::instance().loadIcon("level-top.png"));
+	levelBottom->setIcon(IconManager::instance().loadIcon("level-bottom.png"));
 
 	flipH->setIcon(im.loadIcon("16/flip-object-horizontal.png"));
 	flipH->setCheckable( true );
@@ -128,12 +126,9 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	connect(levelBottom, SIGNAL(clicked()), this, SLOT(handleBack()));
 	connect(basePointWidget, SIGNAL(buttonClicked(int)), this, SLOT(handleBasePoint(int)));
 
-	connect(nameEdit , SIGNAL(Leaved()) , this, SLOT(handleNewName()));
 	connect(doLock   , SIGNAL(clicked()), this, SLOT(handleLock()));
 	connect(noPrint  , SIGNAL(clicked()), this, SLOT(handlePrint()));
 	connect(noResize , SIGNAL(clicked()), this, SLOT(handleLockSize()));
-	connect(doGroup  , SIGNAL(clicked()), this, SLOT(handleGrouping()) );
-	connect(doUnGroup, SIGNAL(clicked()), this, SLOT(handleUngrouping()) );
 
 	m_haveItem = false;
 	xposSpin->showValue(0);
@@ -203,19 +198,16 @@ void PropertiesPalette_XYZ::unsetDoc()
 	m_haveItem = false;
 	m_doc   = nullptr;
 	m_item  = nullptr;
-	nameEdit->clear();
 	xposSpin->setConstants(nullptr);
 	yposSpin->setConstants(nullptr);
 	widthSpin->setConstants(nullptr);
 	heightSpin->setConstants(nullptr);
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(false);
 	flipH->setEnabled(false);
 	flipV->setEnabled(false);
-	xposLabel->setText( tr( "&X-Pos:" ) );
-	yposLabel->setText( tr( "&Y-Pos:" ) );
-	widthLabel->setText( tr( "&Width:" ) );
-	heightLabel->setText( tr( "&Height:" ) );
+	xposLabel->setText(tr("&X"));
+	yposLabel->setText(tr("&Y"));
+	widthLabel->setText(tr("&W"));
+	heightLabel->setText(tr("&H"));
 	xposSpin->showValue(0);
 	yposSpin->showValue(0);
 	widthSpin->showValue(0);
@@ -288,16 +280,11 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	if (!m_doc)
 		setDoc(item->doc());
 
-	disconnect(nameEdit, SIGNAL(Leaved()), this, SLOT(handleNewName()));
-
 	m_haveItem = false;
 	m_item = item;
 
-	nameEdit->setText(m_item->itemName());
 	levelLabel->setText( QString::number(m_item->level()) );
 
-	connect(nameEdit, SIGNAL(Leaved()), this, SLOT(handleNewName()));
-
 //CB replaces old emits from PageItem::emitAllToGUI()
 	disconnect(xposSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewX()));
 	disconnect(yposSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewY()));
@@ -344,29 +331,34 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	connect(flipV   , SIGNAL(clicked()), this, SLOT(handleFlipV()), Qt::UniqueConnection);
 	connect(rotationSpin, SIGNAL(valueChanged(double)), this, SLOT(handleRotation()), Qt::UniqueConnection);
 
-	bool setter = false;
-	xposSpin->setEnabled(!setter);
-	yposSpin->setEnabled(!setter);
-	bool haveSameParent = m_doc->m_Selection->objectsHaveSameParent();
-	levelGroup->setEnabled(haveSameParent && !item->locked());
+	xposSpin->setEnabled(true);
+	yposSpin->setEnabled(true);
+	{
+		bool enabled = m_doc->m_Selection->objectsHaveSameParent() && !item->locked();
+		levelTop->setEnabled(enabled);
+		levelUp->setEnabled(enabled);
+		levelDown->setEnabled(enabled);
+		levelBottom->setEnabled(enabled);
+	}
+	// TODO: what is doing this?
 	if ((m_item->isGroup()) && (!m_item->isSingleSel))
 	{
 		setEnabled(true);
 	}
 	if ((m_item->itemType() == PageItem::Line) && m_lineMode)
 	{
-		xposLabel->setText( tr( "&X1:" ) );
-		yposLabel->setText( tr( "Y&1:" ) );
-		widthLabel->setText( tr( "X&2:" ) );
-		heightLabel->setText( tr( "&Y2:" ) );
+		xposLabel->setText(tr("&X1"));
+		yposLabel->setText(tr("Y&1"));
+		widthLabel->setText(tr("X&2"));
+		heightLabel->setText(tr("&Y2"));
 		rotationSpin->setEnabled(false);
 	}
 	else
 	{
-		xposLabel->setText( tr( "&X-Pos:" ) );
-		yposLabel->setText( tr( "&Y-Pos:" ) );
-		widthLabel->setText( tr( "&Width:" ) );
-		heightLabel->setText( tr( "&Height:" ) );
+		xposLabel->setText(tr("&X"));
+		yposLabel->setText(tr("&Y"));
+		widthLabel->setText(tr("&W"));
+		heightLabel->setText(tr("&H"));
 		rotationSpin->setEnabled(true);
 	}
 	m_haveItem = true;
@@ -389,14 +381,6 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 		rrR = 360 - rrR;
 	noResize->setEnabled(!m_item->isArc());
 	
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(false);
-	if ((m_doc->m_Selection->count() > 1) && (haveSameParent))
-		doGroup->setEnabled(true);
-	if (m_doc->m_Selection->count() == 1)
-		doUnGroup->setEnabled(m_item->isGroup());
-	if ((m_doc->appMode == modeEditClip) && (m_item->isGroup()))
-		doUnGroup->setEnabled(false);
 	if (m_item->asOSGFrame())
 	{
 		setEnabled(true);
@@ -413,7 +397,6 @@ void PropertiesPalette_XYZ::handleAppModeChanged(int oldMode, int mode)
 {
 	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
 		return;
-	doUnGroup->setEnabled(mode != modeEdit && mode != modeEditClip && m_item->isGroup());
 	doLock->setEnabled(mode != modeEditClip);
 }
 
@@ -422,8 +405,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 	if (!m_haveDoc || !m_ScMW || m_ScMW->scriptIsRunning())
 		return;
 
-	nameEdit->setEnabled(m_doc->m_Selection->count() == 1);
-
 	PageItem* currItem = currentItemFromSelection();
 	if (m_doc->m_Selection->count() > 1)
 	{
@@ -458,7 +439,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		heightSpin->setEnabled(true);
 		rotationSpin->setEnabled(true);
 
-		nameEdit->setEnabled(false);
 		flipH->setCheckable( false );
 		flipV->setCheckable( false );
 		flipH->setChecked(false);
@@ -474,12 +454,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		int itemType = currItem ? (int) currItem->itemType() : -1;
 		
 		m_haveItem = (itemType!=-1);
-		if (itemType == -1)
-		{
-			doGroup->setEnabled(false);
-			doUnGroup->setEnabled(false);
-		}
-		nameEdit->setEnabled(true);
 		basePointWidget->setEnabled(true);
 
 		setEnabled(true);
@@ -1187,6 +1161,7 @@ void PropertiesPalette_XYZ::handleFlipV()
 	m_ScMW->scrActions["itemFlipV"]->toggle();
 }
 
+/*
 void PropertiesPalette_XYZ::handleNewName()
 {
 	if (m_ScMW->scriptIsRunning() || !m_haveDoc || !m_haveItem)
@@ -1233,6 +1208,7 @@ void PropertiesPalette_XYZ::handleNewName()
 		}
 	}
 }
+*/
 
 void PropertiesPalette_XYZ::installSniffer(ScrSpinBox *spinBox)
 {
@@ -1359,20 +1335,3 @@ void PropertiesPalette_XYZ::showFlippedV(bool isFlippedV)
 {
 	flipV->setChecked(isFlippedV);
 }
-
-void PropertiesPalette_XYZ::handleGrouping()
-{
-	m_ScMW->GroupObj();
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(true);
-	handleSelectionChanged();
-	//FIXME
-	//TabStack->setItemEnabled(idShapeItem, false);
-}
-
-void PropertiesPalette_XYZ::handleUngrouping()
-{
-	m_ScMW->UnGroupObj();
-	m_doc->invalidateAll();
-	m_doc->regionsChanged()->update(QRect());
-}
diff --git a/scribus/ui/propertiespalette_xyz.h b/scribus/ui/propertiespalette_xyz.h
index 7892c5043..3d31181e5 100644
--- a/scribus/ui/propertiespalette_xyz.h
+++ b/scribus/ui/propertiespalette_xyz.h
@@ -84,9 +84,6 @@ private slots:
 	void handleLock();
 	void handleLockSize();
 	void handlePrint();
-	void handleNewName();
-	void handleGrouping();
-	void handleUngrouping();
 
 protected slots:
 	//virtual void reject();
diff --git a/scribus/ui/propertiespalette_xyzbase.ui b/scribus/ui/propertiespalette_xyzbase.ui
index 06e9c35d5..9171e3d76 100644
--- a/scribus/ui/propertiespalette_xyzbase.ui
+++ b/scribus/ui/propertiespalette_xyzbase.ui
@@ -30,353 +30,104 @@
     <number>0</number>
    </property>
    <item>
-    <widget class="QGroupBox" name="nameGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Name</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <property name="spacing">
-       <number>2</number>
-      </property>
-      <property name="leftMargin">
-       <number>2</number>
-      </property>
-      <property name="topMargin">
-       <number>2</number>
-      </property>
-      <property name="rightMargin">
-       <number>2</number>
-      </property>
-      <property name="bottomMargin">
-       <number>2</number>
-      </property>
-      <item>
-       <widget class="NameWidget" name="nameEdit">
-        <property name="focusPolicy">
-         <enum>Qt::ClickFocus</enum>
-        </property>
-        <property name="toolTip">
-         <string>Name of selected object</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="geoGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Geometry</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <property name="leftMargin">
-       <number>2</number>
-      </property>
-      <property name="topMargin">
-       <number>2</number>
-      </property>
-      <property name="rightMargin">
-       <number>2</number>
-      </property>
-      <property name="bottomMargin">
-       <number>2</number>
-      </property>
-      <item>
-       <layout class="QGridLayout" name="geoGroupLayout">
-        <property name="leftMargin">
-         <number>5</number>
-        </property>
-        <property name="topMargin">
-         <number>5</number>
-        </property>
-        <property name="rightMargin">
-         <number>5</number>
-        </property>
-        <property name="bottomMargin">
-         <number>5</number>
-        </property>
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QLabel" name="xposLabel">
-          <property name="text">
-           <string>&amp;X-Pos:</string>
-          </property>
-          <property name="buddy">
-           <cstring>xposSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="ScrSpinBox" name="xposSpin">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="toolTip">
-           <string>Horizontal position of current basepoint</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QLabel" name="widthLabel">
-          <property name="text">
-           <string>&amp;Width:</string>
-          </property>
-          <property name="buddy">
-           <cstring>widthSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="yposLabel">
-          <property name="text">
-           <string>&amp;Y-Pos:</string>
-          </property>
-          <property name="buddy">
-           <cstring>yposSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="ScrSpinBox" name="yposSpin">
-          <property name="toolTip">
-           <string>Vertical position of current basepoint</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1">
-         <widget class="ScrSpinBox" name="widthSpin">
-          <property name="toolTip">
-           <string>Width of current selection</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QLabel" name="heightLabel">
-          <property name="text">
-           <string>&amp;Height:</string>
-          </property>
-          <property name="buddy">
-           <cstring>heightSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="1">
-         <widget class="ScrSpinBox" name="heightSpin">
-          <property name="toolTip">
-           <string>Height of current selection</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="0">
-         <widget class="QLabel" name="rotationLabel">
-          <property name="text">
-           <string>&amp;Rotation:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="1">
-         <widget class="ScrSpinBox" name="rotationSpin">
-          <property name="toolTip">
-           <string>Rotation of object at current basepoint</string>
-          </property>
-          <property name="wrapping">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="0">
-         <widget class="QLabel" name="basepointLabel">
-          <property name="toolTip">
-           <string>Point from which measurements or rotation angles are referenced</string>
-          </property>
-          <property name="text">
-           <string>Basepoint:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="1">
-         <widget class="BasePointWidget" name="basePointWidget" native="true"/>
-        </item>
-        <item row="2" column="2" rowspan="2">
-         <widget class="LinkButton" name="keepFrameWHRatioButton">
-          <property name="maximumSize">
-           <size>
-            <width>15</width>
-            <height>32767</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Keep the aspect ratio</string>
-          </property>
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="checkable">
-           <bool>true</bool>
-          </property>
-          <property name="autoRaise">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QGroupBox" name="levelGroup">
-       <property name="title">
-        <string>Level</string>
+    <layout class="QGridLayout" name="gridLayout_3">
+     <item row="1" column="4">
+      <widget class="QLabel" name="heightLabel">
+       <property name="text">
+        <string>&amp;H</string>
+       </property>
+       <property name="buddy">
+        <cstring>heightSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="xposLabel">
+       <property name="text">
+        <string>&amp;X:</string>
+       </property>
+       <property name="buddy">
+        <cstring>xposSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="5">
+      <widget class="ScrSpinBox" name="heightSpin">
+       <property name="toolTip">
+        <string>Height of current selection</string>
        </property>
-       <layout class="QGridLayout" name="gridLayout">
-        <property name="leftMargin">
-         <number>5</number>
-        </property>
-        <property name="topMargin">
-         <number>5</number>
-        </property>
-        <property name="rightMargin">
-         <number>5</number>
-        </property>
-        <property name="bottomMargin">
-         <number>5</number>
-        </property>
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QToolButton" name="levelUp">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move one level up</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QToolButton" name="levelDown">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move one level down</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QToolButton" name="levelTop">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move to front</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="QToolButton" name="levelBottom">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move to back</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="2" rowspan="2">
-         <widget class="QLabel" name="levelLabel">
-          <property name="toolTip">
-           <string>Indicates the level the object is on, 1 means the object is at the bottom</string>
-          </property>
-          <property name="text">
-           <string>0</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
       </widget>
      </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
+     <item row="0" column="2">
+      <widget class="ScrSpinBox" name="xposSpin">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
        </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
+       <property name="toolTip">
+        <string>Horizontal position of current basepoint</string>
        </property>
-      </spacer>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="ScrSpinBox" name="widthSpin">
+       <property name="toolTip">
+        <string>Width of current selection</string>
+       </property>
+      </widget>
      </item>
-     <item>
-      <layout class="QGridLayout" name="gridLayout_2">
-       <item row="0" column="0">
-        <widget class="QToolButton" name="doGroup">
+     <item row="0" column="5">
+      <widget class="ScrSpinBox" name="yposSpin">
+       <property name="toolTip">
+        <string>Vertical position of current basepoint</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="4">
+      <widget class="QLabel" name="yposLabel">
+       <property name="text">
+        <string>&amp;Y:</string>
+       </property>
+       <property name="buddy">
+        <cstring>yposSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="widthLabel">
+       <property name="text">
+        <string>&amp;W</string>
+       </property>
+       <property name="buddy">
+        <cstring>widthSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="2" colspan="2">
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <widget class="ScrSpinBox" name="rotationSpin">
          <property name="toolTip">
-          <string>Group the selected objects</string>
+          <string>Rotation of object at current basepoint</string>
          </property>
-         <property name="text">
-          <string/>
+         <property name="wrapping">
+          <bool>true</bool>
          </property>
         </widget>
        </item>
-       <item row="1" column="0">
-        <widget class="QToolButton" name="doUnGroup">
+       <item>
+        <widget class="QToolButton" name="flipV">
          <property name="toolTip">
-          <string>Ungroup the selected group</string>
+          <string>Flip vertically</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="1">
+       <item>
         <widget class="QToolButton" name="flipH">
          <property name="toolTip">
           <string>Flip horizontally</string>
@@ -386,48 +137,159 @@
          </property>
         </widget>
        </item>
-       <item row="1" column="1">
-        <widget class="QToolButton" name="flipV">
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <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="1" column="6">
+      <widget class="QToolButton" name="noResize">
+       <property name="toolTip">
+        <string>Lock or unlock the size of the object</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="rotation">
+       <property name="text">
+        <string>⟳</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="6">
+      <widget class="QToolButton" name="doLock">
+       <property name="toolTip">
+        <string>Lock or unlock the object</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="2" colspan="2">
+      <layout class="QHBoxLayout" name="horizontalLayout_5">
+       <item>
+        <widget class="QToolButton" name="levelTop">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Flip vertically</string>
+          <string>Move to front</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="2">
-        <widget class="QToolButton" name="doLock">
+       <item>
+        <widget class="QToolButton" name="levelUp">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Lock or unlock the object</string>
+          <string>Move one level up</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="1" column="2">
-        <widget class="QToolButton" name="noPrint">
+       <item>
+        <widget class="QToolButton" name="levelDown">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Enable or disable exporting of the object</string>
+          <string>Move one level down</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="3">
-        <widget class="QToolButton" name="noResize">
+       <item>
+        <widget class="QToolButton" name="levelBottom">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Lock or unlock the size of the object</string>
+          <string>Move to back</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
+       <item>
+        <widget class="QLabel" name="levelLabel">
+         <property name="toolTip">
+          <string>Indicates the level the object is on, 1 means the object is at the bottom</string>
+         </property>
+         <property name="text">
+          <string>0</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer name="horizontalSpacer">
+         <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="2" column="5" rowspan="3">
+      <widget class="BasePointWidget" name="basePointWidget" native="true"/>
+     </item>
+     <item row="2" column="6">
+      <widget class="QToolButton" name="noPrint">
+       <property name="toolTip">
+        <string>Enable or disable exporting of the object</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="3">
+      <widget class="QToolButton" name="keepFrameWHRatioButton">
+       <property name="text">
+        <string>...</string>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
    <item>
@@ -446,11 +308,6 @@
   </layout>
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>NameWidget</class>
-   <extends>QLineEdit</extends>
-   <header>ui/propertiespalette_utils.h</header>
-  </customwidget>
   <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
@@ -462,11 +319,6 @@
    <header>ui/basepointwidget.h</header>
    <container>1</container>
   </customwidget>
-  <customwidget>
-   <class>LinkButton</class>
-   <extends>QToolButton</extends>
-   <header>ui/linkbutton.h</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
indigo-pp-xyz.diff (32,117 bytes)

PeterBenedek

2019-11-01 19:31

developer   ~0046897

" - martin puts the basepoint at top left (most prominent place!), i'd prefer putting it at the bottom right (it's not so often used...)"

Sorry ale, but I do not agree.
Basepoint function is very important, it must be used many times during editing, in case if the work is serious!
I suggest that if it is in the lower right corner, make bigger (like Martin's basepoint).

Martin's_basepoint.jpg (20,060 bytes)
Martin's_basepoint.jpg (20,060 bytes)

jghali

2019-11-01 19:57

administrator   ~0046898

There is one big problem with this patch: it removes the item name edit field without moving it in another place.

PeterBenedek

2019-11-01 20:20

developer   ~0046900

Proposal:

"Move icon" in the Inkscape (symbolic icons) very nice.
What do you think?

Move_icons.jpg (2,654 bytes)
Move_icons.jpg (2,654 bytes)

PeterBenedek

2019-11-01 20:34

developer   ~0046901

From field switch order (if you pressed the tabulator button) the H field is left out.

ale

2019-11-01 21:33

manager   ~0046902

@jean, as written above, my plan would be to move the editable item name to the outline window... i really would like to avoid to have it in a "hidden" part of the palette like martin was suggesting.
@peter, yes i like those up and down icons, too can youp rovide 4 png files of the right size? i think that 16 x 16 should be fine.
@peter: i'm fine with using martin's basepoint widget. but i prefer to first get the new laoyut with the existing one and -- as we shortly discussed with craig in irc -- later replace it with a nicer / more useful one. (martin's has also two more anchor points, which means that the logic of the code has to slightly change...)


and yes, the icons need some more polishing... (and we also need the dark theme icons...).

jghali

2019-11-02 05:38

administrator   ~0046905

Last edited: 2019-11-02 05:42

View 2 revisions

@ale, that would be the wrong way to do it, see my response on 0015897. That would also imply that user working on PDF forms would need to use an additional dialog window, the document outline window, to do their job. And given the performance impact this dialog has when opened, I would prefer to avoid giving users another reason to open it.

cbradney

2019-11-02 06:43

administrator   ~0046907

Agree, this needs more work. Item name should not disappear from this palette.

ale

2019-11-02 07:36

manager   ~0046909

the performance argument is indeed a very valid one.

the main goal of my effort is to make both the properties palette and content palette, with most sections expanded, to use at most half of the vertical space on a typical screen (ok, my screen).

in my experience, very few users have a use for the item name and it's difficult to place it somewhere without using a full line.
(of course, the ones who are participating in this thread are the ones that are most likely to see a use for it... but somebody who creates a book, a flyer or a magazine will probably never edit an item name)

as written above, martin wanted an expanding "advanced" section for the xyz pane.
personally, i don't like the idea: an item should belong to a place or not.
so we should find the right place for each thing, rather than hiding what we don't like.

a (temporary?) compromise, could to create an "advanced" collapsing section for the whole properties palette and put in there things like the "item name" and the "do not export" button...
what do you think about that?

PeterBenedek

2019-11-02 10:08

developer   ~0046911

Last edited: 2019-11-02 10:10

View 2 revisions

" but somebody who creates a book, a flyer or a magazine will probably never edit an item name"

Only a opinion.
I've been using it for ten years the scribus but I've never edited name of item.

PeterBenedek

2019-11-02 10:33

developer   ~0046912

Proposal:

The values ​​of X and Y shouldn't be side by side, but under each other.
Side by side terrible.

ale

2019-11-02 11:28

manager   ~0046914

Last edited: 2019-11-02 11:31

View 2 revisions

i've implemented this layout without much thoughts on this specific topic.

i see that the three other main dtp software has them vertical. in two columns
inkscape has it all horizontally: x, y, w, h.

having x,y and w,h horizontally, allows us to use very little space and imo a very logical placement for the three lock buttons (proportions, position, size).

i wonder if side by side is just something that is just as good once somebody gets used to it or if it has real drawbacks.
(the tab order is currently broken, but i will fix it as soon as possible)

personally, in scribus, i don't look at the values as having any meaning. i just go to adjust a single value to something correct and i check visually on the canvas that everything looks ok.
but i agree that if you want to check the x,y coordinates (or the w.h pair) it's more comfortable if they are stacked on top of each other rather than side by side.

if you can suggest a good layout with the three buttons, i can try a different proposal, otherwise i'd suggest to keep it as is and we will see if in practice it is as disturbing as it seems at first sight.
now, that the single items are in place, it's not hard to move them around.

and after having written all this i've tried to shuffle around the fields and buttons... would the attached proposal be better?
the xy wh are for sure to your taste... but are the lock buttons ok?

ale

2019-11-02 11:29

manager  

xyz-4.png (30,362 bytes)
xyz-4.png (30,362 bytes)

ale

2019-11-02 11:37

manager   ~0046916

i attache the xcf with a layer per label / button

xyz-4.xcf (75,050 bytes)

PeterBenedek

2019-11-02 12:22

developer   ~0046917

New and old Properties.
I thought so.
Opinion?

xyz-4_modified_PeterB.xcf (80,919 bytes)
Basepoint.jpg (32,841 bytes)
Basepoint.jpg (32,841 bytes)

PeterBenedek

2019-11-02 13:00

developer   ~0046919

Just a idea...

xyz_PeterB.jpg (34,670 bytes)
xyz_PeterB.jpg (34,670 bytes)

ale

2019-11-02 13:24

manager   ~0046923

i don't know, i really don't like the basepoint on the left.
personally, i (almost) never change it... it's probably because i don't rotate so often the items.

i have the feeling that the last proposal with the three columns attracts my eyes fully in the wrong place.

also, i'm trying to use as little vertical (and horizontal) space as possible...

i can try to make a merge request with my poposal above, without the "do not export item", the new level icons, and with a new widget for the base point aligned to the right... (having seen your screenshot above has given me an idea how to easily tweak the current widget to look better... but four of the buttons won't be clickable for now)

it will take a couple of hours...

PeterBenedek

2019-11-02 14:20

developer   ~0046924

The left basepoint is important for the continuity of work.
You choose the alignment and then X-pos or Y-pos.

Set a simple example for you...

alignment.gif (332,316 bytes)
alignment.gif (332,316 bytes)

PeterBenedek

2019-11-02 14:26

developer  

xyz_PeterB-2.jpg (34,103 bytes)
xyz_PeterB-2.jpg (34,103 bytes)

ale

2019-11-02 16:13

manager   ~0046927

i wrote a very intelligent note to this topic but it somehow got lost.

i will not write it again just this:

here is an appimage with the proposal above, inclusive the new widget for the basepoint (it does not work yet, but you can click the position that correspond at the ones that are implemented in scribus):

https://gitlab.com/a.l.e/scribus/-/jobs/340092171/artifacts/file/Scribus-nightly-x86_64.AppImage

personally, i really like it.

ps.: btw, the new widget is much simpler and cleaner than the previous one : - )

PeterBenedek

2019-11-02 17:49

developer   ~0046929

-- Padlock icon is wrong place (I don't understand the logic).
-- Would be needed a small padding inside the widget.
-- ale! Please! Basepoint widget let it be the left of the panel.

PeterBenedek

2019-11-02 18:51

developer   ~0046930

Compromise?

Please consider the possibility.

PeterBenedek

2019-11-02 19:05

developer   ~0046931

Move icons sequence: I change the order

XYZ_compromise.jpg (17,944 bytes)
XYZ_compromise.jpg (17,944 bytes)

ale

2019-11-02 19:30

manager   ~0046932

peter, i really don't understand why you want so hard the basepoint to the left.

in the gif above, i don't understand either why you're changing the basepoint.
you have the snap to item activated and you can align the frames without copy pasting the position.
(it's a clever trick, but there are easier ways to get items to be on top of each other...)

indeed, i've never seen somebody using the basepoint in such an intensive way!

i would say that the most typical use of the base point i can think of is to get the rotation to behave correctly.
but i might also be an edge case...

my reasons for having on the right side are:

- it allows to have a more compact widget.
- normally, what i want to reach is one of fields among x, y, w, and h... and rotation... and it's those fields that i'd like to give the best visibility
- we can use the same widgets for possibly creating an horizontal toolbar by separating this in two.

for the lock buttons, i agree that the logic is not really good.
martin's idea was to have the position (full) lock attached to the x, y fields and the size lock attached to the w and h.
the size constraint is also attached to the w and h.

i guess that the fact that it's easier to place the luck buttons was the reason why martin has put x and y on a line instead of a column.

i've tried to put together one last proposal...

https://gitlab.com/a.l.e/scribus/-/jobs/340133784/artifacts/file/Scribus-nightly-x86_64.AppImage

this time the basepoint is working.

there are some spacing and padding issues, but i'd like to solve them when all the widgets will be reworked and we can go through all the spacings and find a common solution for the whole palette.

you're welcome to try it out in the appimage and see if it's really so terrible to use...

xyz-5.png (16,285 bytes)
xyz-5.png (16,285 bytes)

ale

2019-11-02 19:42

manager   ~0046933

your latest proposal has crossed mine.

personally, the part i use most in the xyz panel are the level buttons... followed by the rotation... sometimes i set the width to a given value in mm.

the two proposals are very similar. but i'd prefer to keep on the left side the small fields with rotation and levels... and the big basepoint can easily be reached on the right side.

PeterBenedek

2019-11-02 20:17

developer   ~0046934

"you have the snap to item activated and you can align the frames without copy pasting the position."
It is not the alignment that matters, but the order of the operation.
If you first set a value and then click the basepoint, the end result will be different.
Correct order: set the basepoint --> set the value
That is why the basepoint should be to the left.

Proposal:
Please change the order of the movement buttons (https://bugs.scribus.net/file_download.php?file_id=10691&type=bug)
Correct order: Move to back, Move one level down, Move level one up, Move up

PeterBenedek

2019-11-03 08:09

developer   ~0046938

Last edited: 2019-11-03 08:10

View 2 revisions

Hi ale.

Thank you for your work, and your time.
Basepoint is bigger, that's great.
X below Y, thats excellent.

Final request :-)
In your original proposal the basepoint was below the H field.
Is this possible?



ale_original.jpg (13,524 bytes)
ale_original.jpg (13,524 bytes)
peter_request.jpg (8,649 bytes)
peter_request.jpg (8,649 bytes)

ale

2019-11-03 11:40

manager   ~0046939

Last edited: 2019-11-03 11:44

View 3 revisions

a new appimage with the order of the level ups an downs reversed and left aligned right basepoint...

https://gitlab.com/a.l.e/scribus/-/jobs/340305155/artifacts/file/Scribus-nightly-x86_64.AppImage


the behavior when enlarging the palette is not correct yet...
this is a general issue with the panels...
i'd like to find a solution for it when all the panes have been adapted. (then we will know what's the minimal and maximal width)

ale

2019-11-03 11:43

manager  

xyz-6.png (17,362 bytes)
xyz-6.png (17,362 bytes)

PeterBenedek

2019-11-03 12:14

developer   ~0046940

I am very grateful for it.

Two little things.
1) basepoint flipp horizontally icon is wrong
2) basepoint tool middle left icon bigger than the rest (yours too, but not so much: basepoint_middle_left_size.jpg)

thanks again

ale

2019-11-03 12:47

manager   ~0046941

a new appimage with both things (hopefully) fixed!

https://gitlab.com/a.l.e/scribus/-/jobs/340325646/artifacts/file/Scribus-nightly-x86_64.AppImage

thanks for reporting the two issue!

PeterBenedek

2019-11-03 13:32

developer   ~0046943

Last edited: 2019-11-03 13:34

View 2 revisions

Icons on the Flip buttons need to be replace because, they represent the operation incorrectly.



Flip_buttons.jpg (10,972 bytes)
Flip_buttons.jpg (10,972 bytes)

ale

2019-11-03 14:48

manager   ~0046945

oooops. uploaded.

https://gitlab.com/a.l.e/scribus/-/jobs/340353267/artifacts/file/Scribus-nightly-x86_64.AppImage

i was testing with the wrong shape (a line...) and i did not see that it was not correct...

PeterBenedek

2019-11-03 15:26

developer   ~0046946

Perfect :-)

ale

2019-11-04 17:16

manager   ~0046955

here is a new patch...

https://gitlab.com/scribus/scribus/merge_requests/11

indigo-pp-xyz-peter.diff (52,026 bytes)
diff --git a/resources/iconsets/1_5_1/16/flip-object-horizontal.png b/resources/iconsets/1_5_1/16/flip-object-horizontal.png
index b5053fa7f..32b36a363 100644
Binary files a/resources/iconsets/1_5_1/16/flip-object-horizontal.png and b/resources/iconsets/1_5_1/16/flip-object-horizontal.png differ
diff --git a/resources/iconsets/1_5_1/16/flip-object-vertical.png b/resources/iconsets/1_5_1/16/flip-object-vertical.png
index d94b746f7..6602230d6 100644
Binary files a/resources/iconsets/1_5_1/16/flip-object-vertical.png and b/resources/iconsets/1_5_1/16/flip-object-vertical.png differ
diff --git a/resources/iconsets/1_5_1/16/level-bottom.png b/resources/iconsets/1_5_1/16/level-bottom.png
new file mode 100644
index 000000000..d97871f60
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-bottom.png differ
diff --git a/resources/iconsets/1_5_1/16/level-down.png b/resources/iconsets/1_5_1/16/level-down.png
new file mode 100644
index 000000000..a7022c426
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-down.png differ
diff --git a/resources/iconsets/1_5_1/16/level-top.png b/resources/iconsets/1_5_1/16/level-top.png
new file mode 100644
index 000000000..f0a4400cb
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-top.png differ
diff --git a/resources/iconsets/1_5_1/16/level-up.png b/resources/iconsets/1_5_1/16/level-up.png
new file mode 100644
index 000000000..7d64fe3b7
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-up.png differ
diff --git a/resources/iconsets/1_5_1/rotation.png b/resources/iconsets/1_5_1/rotation.png
new file mode 100644
index 000000000..4288effc9
Binary files /dev/null and b/resources/iconsets/1_5_1/rotation.png differ
diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt
index a92433cb1..29dd78740 100644
--- a/scribus/CMakeLists.txt
+++ b/scribus/CMakeLists.txt
@@ -157,6 +157,7 @@ set(SCRIBUS_UI_SRC
 	ui/prefs_pdfexportbase.ui
 	ui/prefs_tableofcontentsbase.ui
 	ui/prefs_documentitemattributesbase.ui
+	ui/basepointwidgetbase.ui
 	ui/printdialogbase.ui
 	ui/propertiespalette_groupbase.ui
 	ui/propertiespalette_imagebase.ui
diff --git a/scribus/ui/basepointwidget.cpp b/scribus/ui/basepointwidget.cpp
index c6dca8f09..d9af4482d 100644
--- a/scribus/ui/basepointwidget.cpp
+++ b/scribus/ui/basepointwidget.cpp
@@ -7,197 +7,84 @@ for which a new license (GPL+exception) is in place.
 
 #include "basepointwidget.h"
 
-BasePointWidget::BasePointWidget(QWidget *pa, int mode) : QWidget(pa)
-{
-	m_mode = mode;
-	if (m_mode == 0)
-	{
-		setMinimumSize(QSize(48, 48));
-		setMaximumSize(QSize(48, 48));
-	}
-	else
-	{
-		setMinimumSize(QSize(48, 16));
-		setMaximumSize(QSize(48, 16));
-	}
-	setMouseTracking(true);
-	selectedBase = 0;
-	hooveredBase = -1;
-	Mpressed = false;
-} 
+#include <QButtonGroup>
+#include "iconmanager.h"
 
-void BasePointWidget::paintEvent(QPaintEvent *e)
+BasePointWidget::BasePointWidget(QWidget *parent) : QWidget(parent)
 {
-	QPainter p;
-	p.begin(this);
-	p.setRenderHint(QPainter::Antialiasing, true);
-	p.setBrush(palette().color(QPalette::Window));
-	p.setPen(Qt::NoPen);
-	p.drawRect(0, 0, width(), height());
-	p.setBrush(Qt::black);
-	p.setPen(QPen(palette().color(QPalette::WindowText), 1));
-	if (m_mode == 0)
-	{
-		p.drawEllipse( 4,  4, 10, 10);
-		p.drawEllipse(34,  4, 10, 10);
-		p.drawEllipse(19, 19, 10, 10);
-		p.drawEllipse( 4, 34, 10, 10);
-		p.drawEllipse(34, 34, 10, 10);
-	}
-	else
-	{
-		p.drawEllipse( 4,  4, 10, 10);
-		p.drawEllipse(19,  4, 10, 10);
-		p.drawEllipse(34,  4, 10, 10);
-	}
-	p.setPen(QPen(palette().color(QPalette::WindowText), 2));
-	if (m_mode == 0)
-	{
-		p.drawLine(8, 8, 33, 8);
-		p.drawLine(8, 38, 33, 38);
-		p.drawLine(8, 8, 8, 33);
-		p.drawLine(38, 8, 38, 33);
-	}
-	else
-		p.drawLine(8, 8, 33, 8);
-	p.setBrush(Qt::white);
-	p.setPen(QPen(palette().color(QPalette::WindowText), 2));
-	if (m_mode == 0)
-	{
-		p.drawEllipse( 3,  3, 10, 10);
-		p.drawEllipse(33,  3, 10, 10);
-		p.drawEllipse(18, 18, 10, 10);
-		p.drawEllipse( 3, 33, 10, 10);
-		p.drawEllipse(33, 33, 10, 10);
-	}
-	else
-	{
-		p.drawEllipse( 3,  3, 10, 10);
-		p.drawEllipse(18,  3, 10, 10);
-		p.drawEllipse(33,  3, 10, 10);
-	}
-	if (hooveredBase > -1)
-	{
-		p.setBrush(Qt::NoBrush);
-		p.setPen(QPen(palette().color(QPalette::Highlight), 1));
-		if (hooveredBase == 0)
-			p.drawEllipse( 4,  4, 8, 8);
-		else if (hooveredBase == 1)
-			p.drawEllipse(34,  4, 8, 8);
-		else if (hooveredBase == 2)
-		{
-			if (m_mode == 0)
-				p.drawEllipse(19, 19, 8, 8);
-			else
-				p.drawEllipse(19,  4, 8, 8);
-		}
-		else if (hooveredBase == 3)
-			p.drawEllipse( 4, 34, 8, 8);
-		else if (hooveredBase == 4)
-			p.drawEllipse(34, 34, 8, 8);
-	}
-	p.setBrush(palette().color(QPalette::WindowText));
-	p.setPen(Qt::NoPen);
-	if (selectedBase == 0)
-		p.drawEllipse( 5, 5, 6, 6);
-	else if (selectedBase == 1)
-		p.drawEllipse(35, 5, 6, 6);
-	else if (selectedBase == 2)
-	{
-		if (m_mode == 0)
-			p.drawEllipse(20, 20, 6, 6);
-		else
-			p.drawEllipse(20,  5, 6, 6);
-	}
-	else if (selectedBase == 3)
-		p.drawEllipse( 5, 35, 6, 6);
-	else if (selectedBase == 4)
-		p.drawEllipse(35, 35, 6, 6);
-	p.end();
-}
+	setupUi(this);
 
-void BasePointWidget::mousePressEvent(QMouseEvent *m)
-{
-	m->accept();
-	Mpressed = true;
-}
+	auto group = new QButtonGroup(this);
+	group->addButton(buttonNE);
+	group->addButton(buttonNW);
+	group->addButton(buttonCenter);
+	group->addButton(buttonSE);
+	group->addButton(buttonSW);
 
-void BasePointWidget::mouseReleaseEvent(QMouseEvent *m)
-{
-	m->accept();
-	if (Mpressed)
-	{
-		QPoint p = m->pos();
-		if (m_mode == 0)
-		{
-			if (QRect( 3,  3, 10, 10).contains(p))
-				selectedBase = 0;
-			else if (QRect(33,  3, 10, 10).contains(p))
-				selectedBase = 1;
-			else if (QRect(18, 18, 10, 10).contains(p))
-				selectedBase = 2;
-			else if (QRect( 3, 33, 10, 10).contains(p))
-				selectedBase = 3;
-			else if (QRect(33, 33, 10, 10).contains(p))
-				selectedBase = 4;
-		}
-		else
-		{
-			if (QRect( 3,  3, 9, 9).contains(p))
-				selectedBase = 0;
-			else if (QRect(33,  3, 10, 10).contains(p))
-				selectedBase = 1;
-			else if (QRect(18,  3, 10, 10).contains(p))
-				selectedBase = 2;
-		}
-		emit buttonClicked(selectedBase);
-	}
-	update();
-}
+	buttonE->setEnabled(false);
+	buttonN->setEnabled(false);
+	buttonW->setEnabled(false);
+	buttonS->setEnabled(false);
 
-void BasePointWidget::mouseMoveEvent(QMouseEvent *m)
-{
-	m->accept();
-	QPoint p = m->pos();
-	hooveredBase = -1;
-	if (m_mode == 0)
-	{
-		if (QRect( 3,  3, 10, 10).contains(p))
-			hooveredBase = 0;
-		else if (QRect(33,  3, 10, 10).contains(p))
-			hooveredBase = 1;
-		else if (QRect(18, 18, 10, 10).contains(p))
-			hooveredBase = 2;
-		else if (QRect( 3, 33, 10, 10).contains(p))
-			hooveredBase = 3;
-		else if (QRect(33, 33, 10, 10).contains(p))
-			hooveredBase = 4;
-	}
-	else
-	{
-		if (QRect( 3,  3, 10, 10).contains(p))
-			hooveredBase = 0;
-		else if (QRect(33,  3, 10, 10).contains(p))
-			hooveredBase = 1;
-		else if (QRect(18,  3, 10, 10).contains(p))
-			hooveredBase = 2;
-	}
-	update();
-}
+	IconManager& im=IconManager::instance();
+
+	loadIcon(im, buttonNE);
+	loadIcon(im, buttonN);
+	loadIcon(im, buttonNW);
+	loadIcon(im, buttonE);
+	loadIcon(im, buttonCenter);
+	loadIcon(im, buttonW);
+	loadIcon(im, buttonSE);
+	loadIcon(im, buttonS);
+	loadIcon(im, buttonSW);
 
-void BasePointWidget::leaveEvent(QEvent*)
+	connect(buttonNE, &QToolButton::clicked, [this]() { emit buttonClicked(0); });
+	connect(buttonNW, &QToolButton::clicked, [this]() { emit buttonClicked(1); });
+	connect(buttonCenter, &QToolButton::clicked, [this]() { emit buttonClicked(2); });
+	connect(buttonSE, &QToolButton::clicked, [this]() { emit buttonClicked(3); });
+	connect(buttonSW, &QToolButton::clicked, [this]() { emit buttonClicked(4); });
+} 
+
+void BasePointWidget::loadIcon(IconManager& im, QToolButton* button)
 {
-	hooveredBase = -1;
-	update();
+	QIcon icon = QIcon();
+	icon.addPixmap(im.loadPixmap("16/baseline-checked.png"), QIcon::Normal, QIcon::On);
+	icon.addPixmap(im.loadPixmap("16/baseline-unchecked.png"), QIcon::Normal, QIcon::Off);
+	button->setIcon(icon);
 }
 
 int BasePointWidget::checkedId()
 {
-	return selectedBase;
+	if (buttonNE->isChecked())
+		return 0;
+	else if (buttonNW->isChecked())
+		return 1;
+	else if (buttonCenter->isChecked())
+		return 2;
+	else if (buttonSE->isChecked())
+		return 3;
+	else if (buttonSW->isChecked())
+		return 4;
+	return 0;
 }
 
 void BasePointWidget::setCheckedId(int id)
 {
-	selectedBase = id;
-	update();
+	switch (id) {
+		case 0:
+			buttonNE->setChecked(true);
+			break;
+		case 1:
+			buttonNW->setChecked(true);
+			break;
+		case 2:
+			buttonCenter->setChecked(true);
+			break;
+		case 3:
+			buttonSE->setChecked(true);
+			break;
+		case 4:
+			buttonSE->setChecked(true);
+			break;
+	}
 }
diff --git a/scribus/ui/basepointwidget.h b/scribus/ui/basepointwidget.h
index abfde3c9f..0ae85bd2c 100644
--- a/scribus/ui/basepointwidget.h
+++ b/scribus/ui/basepointwidget.h
@@ -7,18 +7,19 @@ for which a new license (GPL+exception) is in place.
 #ifndef BASEPOINTWIDGET_H
 #define BASEPOINTWIDGET_H
 
+#include "ui_basepointwidgetbase.h"
+
 #include <QWidget>
-#include <QPaintEvent>
-#include <QMouseEvent>
-#include <QPainter>
 #include "scribusapi.h"
 
-class SCRIBUS_API BasePointWidget : public QWidget
+class IconManager;
+
+class SCRIBUS_API BasePointWidget : public QWidget, public Ui::BasePointWidgetBase
 {
 	Q_OBJECT
 
 public:
-	BasePointWidget(QWidget *pa, int mode = 0);
+	BasePointWidget(QWidget *parent);
 	~BasePointWidget() {}
 	/**
 	  BasePoint values:
@@ -30,16 +31,8 @@ public:
 	  */
 	int checkedId();
 	void setCheckedId(int id);
-	void paintEvent(QPaintEvent *e);
-	void mousePressEvent(QMouseEvent *m);
-	void mouseReleaseEvent(QMouseEvent *);
-	void mouseMoveEvent(QMouseEvent *m);
-	void leaveEvent(QEvent*);
 private:
-	int m_mode;
-	int selectedBase;
-	int hooveredBase;
-	bool Mpressed;
+	void loadIcon(IconManager& im, QToolButton* button);
 signals:
 	void buttonClicked(int);
 };
diff --git a/scribus/ui/basepointwidgetbase.ui b/scribus/ui/basepointwidgetbase.ui
new file mode 100644
index 000000000..66d3a24f0
--- /dev/null
+++ b/scribus/ui/basepointwidgetbase.ui
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>BasePointWidgetBase</class>
+ <widget class="QWidget" name="BasePointWidgetBase">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>62</width>
+    <height>51</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <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="spacing">
+    <number>1</number>
+   </property>
+   <item row="1" column="0">
+    <widget class="QToolButton" name="buttonE">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="2">
+    <widget class="QToolButton" name="buttonN">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="3">
+    <widget class="QToolButton" name="buttonW">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="3">
+    <widget class="QToolButton" name="buttonNW">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0">
+    <widget class="QToolButton" name="buttonNE">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="2">
+    <widget class="QToolButton" name="buttonCenter">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <widget class="QToolButton" name="buttonSE">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="2">
+    <widget class="QToolButton" name="buttonS">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="3">
+    <widget class="QToolButton" name="buttonSW">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>buttonNE</tabstop>
+  <tabstop>buttonN</tabstop>
+  <tabstop>buttonNW</tabstop>
+  <tabstop>buttonE</tabstop>
+  <tabstop>buttonCenter</tabstop>
+  <tabstop>buttonW</tabstop>
+  <tabstop>buttonSE</tabstop>
+  <tabstop>buttonS</tabstop>
+  <tabstop>buttonSW</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/scribus/ui/propertiespalette_xyz.cpp b/scribus/ui/propertiespalette_xyz.cpp
index 62be16af1..8666a0188 100644
--- a/scribus/ui/propertiespalette_xyz.cpp
+++ b/scribus/ui/propertiespalette_xyz.cpp
@@ -61,32 +61,35 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	connect(userActionSniffer, SIGNAL(actionStart()), this, SLOT(spinboxStartUserAction()));
 	connect(userActionSniffer, SIGNAL(actionEnd()), this, SLOT(spinboxFinishUserAction()));
 
-	nameEdit->setFocusPolicy(Qt::ClickFocus);
-
 	installSniffer(xposSpin);
 	installSniffer(yposSpin);
 	installSniffer(widthSpin);
 	installSniffer(heightSpin);
 
-	keepFrameWHRatioButton->setCheckable( true );
-	keepFrameWHRatioButton->setAutoRaise( true );
-	keepFrameWHRatioButton->setMaximumSize( QSize( 15, 32767 ) );
+	IconManager& im=IconManager::instance();
+
+	// keepFrameWHRatioButton->setCheckable(true);
+	// {
+	// 	QIcon icon = QIcon();
+	// 	icon.addPixmap(im.loadPixmap("chain-small-closed.png"), QIcon::Normal, QIcon::On);
+	// 	icon.addPixmap(im.loadPixmap("chain-small-open.png"), QIcon::Normal, QIcon::Off);
+	// 	keepFrameWHRatioButton->setIcon(icon);
+	// }
+
+	keepFrameWHRatioButton->setCheckable(true);
+	keepFrameWHRatioButton->setAutoRaise(true);
+	keepFrameWHRatioButton->setMaximumSize(QSize(15, 32767));
 	keepFrameWHRatioButton->setChecked(false);
 
+	// rotation->setPixmap(im.loadPixmap("rotation.png")); // TODO: using the unicode char might even be better... but i did not manage to load the pixmap in the label
 	rotationSpin->setNewUnit(6);
 	rotationSpin->setWrapping( true );
 	installSniffer(rotationSpin);
-	rotationLabel->setBuddy(rotationSpin);
-
-	IconManager& im=IconManager::instance();
-	levelUp->setIcon(im.loadIcon("16/go-up.png"));
-	levelDown->setIcon(im.loadIcon("16/go-down.png"));
-	levelTop->setIcon(im.loadIcon("16/go-top.png"));
-	levelBottom->setIcon(im.loadIcon("16/go-bottom.png"));
-	levelLabel->setAlignment( Qt::AlignCenter );
 
-	doGroup->setIcon(im.loadIcon("group.png"));
-	doUnGroup->setIcon(im.loadIcon("ungroup.png"));
+	levelUp->setIcon(IconManager::instance().loadIcon("16/level-up.png"));
+	levelDown->setIcon(IconManager::instance().loadIcon("16/level-down.png"));
+	levelTop->setIcon(IconManager::instance().loadIcon("16/level-top.png"));
+	levelBottom->setIcon(IconManager::instance().loadIcon("16/level-bottom.png"));
 
 	flipH->setIcon(im.loadIcon("16/flip-object-horizontal.png"));
 	flipH->setCheckable( true );
@@ -99,12 +102,6 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	a.addPixmap(im.loadPixmap("16/lock-unlocked.png"), QIcon::Normal, QIcon::Off);
 	doLock->setIcon(a);
 
-	noPrint->setCheckable( true );
-	QIcon a2 = QIcon();
-	a2.addPixmap(im.loadPixmap("NoPrint.png"), QIcon::Normal, QIcon::On);
-	a2.addPixmap(im.loadPixmap("16/document-print.png"), QIcon::Normal, QIcon::Off);
-	noPrint->setIcon(a2);
-
 	noResize->setCheckable( true );
 	QIcon a3 = QIcon();
 	a3.addPixmap(im.loadPixmap("framenoresize.png"), QIcon::Normal, QIcon::On);
@@ -128,12 +125,8 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	connect(levelBottom, SIGNAL(clicked()), this, SLOT(handleBack()));
 	connect(basePointWidget, SIGNAL(buttonClicked(int)), this, SLOT(handleBasePoint(int)));
 
-	connect(nameEdit , SIGNAL(Leaved()) , this, SLOT(handleNewName()));
 	connect(doLock   , SIGNAL(clicked()), this, SLOT(handleLock()));
-	connect(noPrint  , SIGNAL(clicked()), this, SLOT(handlePrint()));
 	connect(noResize , SIGNAL(clicked()), this, SLOT(handleLockSize()));
-	connect(doGroup  , SIGNAL(clicked()), this, SLOT(handleGrouping()) );
-	connect(doUnGroup, SIGNAL(clicked()), this, SLOT(handleUngrouping()) );
 
 	m_haveItem = false;
 	xposSpin->showValue(0);
@@ -203,19 +196,16 @@ void PropertiesPalette_XYZ::unsetDoc()
 	m_haveItem = false;
 	m_doc   = nullptr;
 	m_item  = nullptr;
-	nameEdit->clear();
 	xposSpin->setConstants(nullptr);
 	yposSpin->setConstants(nullptr);
 	widthSpin->setConstants(nullptr);
 	heightSpin->setConstants(nullptr);
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(false);
 	flipH->setEnabled(false);
 	flipV->setEnabled(false);
-	xposLabel->setText( tr( "&X-Pos:" ) );
-	yposLabel->setText( tr( "&Y-Pos:" ) );
-	widthLabel->setText( tr( "&Width:" ) );
-	heightLabel->setText( tr( "&Height:" ) );
+	xposLabel->setText(tr("&X"));
+	yposLabel->setText(tr("&Y"));
+	widthLabel->setText(tr("&W"));
+	heightLabel->setText(tr("&H"));
 	xposSpin->showValue(0);
 	yposSpin->showValue(0);
 	widthSpin->showValue(0);
@@ -235,20 +225,20 @@ void PropertiesPalette_XYZ::setLineMode(int lineMode)
 {
 	if (lineMode == 0)
 	{
-		xposLabel->setText( tr( "&X-Pos:" ) );
-		yposLabel->setText( tr( "&Y-Pos:" ) );
-		widthLabel->setText( tr( "&Width:" ) );
-		heightLabel->setText( tr( "&Height:" ) );
+		xposLabel->setText(tr("&X"));
+		yposLabel->setText(tr("&Y"));
+		widthLabel->setText(tr("&W"));
+		heightLabel->setText(tr("&H"));
 		rotationSpin->setEnabled(true);
 		heightSpin->setEnabled(false);
 		m_lineMode = false;
 	}
 	else
 	{
-		xposLabel->setText( tr( "&X1:" ) );
-		yposLabel->setText( tr( "Y&1:" ) );
-		widthLabel->setText( tr( "X&2:" ) );
-		heightLabel->setText( tr( "&Y2:" ) );
+		xposLabel->setText(tr("&X1:"));
+		yposLabel->setText(tr("Y&1:"));
+		widthLabel->setText(tr("X&2:"));
+		heightLabel->setText(tr("&Y2:"));
 		rotationSpin->setEnabled(false);
 		heightSpin->setEnabled(true);
 		m_lineMode = true;
@@ -288,23 +278,17 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	if (!m_doc)
 		setDoc(item->doc());
 
-	disconnect(nameEdit, SIGNAL(Leaved()), this, SLOT(handleNewName()));
-
 	m_haveItem = false;
 	m_item = item;
 
-	nameEdit->setText(m_item->itemName());
 	levelLabel->setText( QString::number(m_item->level()) );
 
-	connect(nameEdit, SIGNAL(Leaved()), this, SLOT(handleNewName()));
-
 //CB replaces old emits from PageItem::emitAllToGUI()
 	disconnect(xposSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewX()));
 	disconnect(yposSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewY()));
 	disconnect(widthSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewW()));
 	disconnect(heightSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewH()));
 	disconnect(doLock, SIGNAL(clicked()), this, SLOT(handleLock()));
-	disconnect(noPrint, SIGNAL(clicked()), this, SLOT(handlePrint()));
 	disconnect(noResize, SIGNAL(clicked()), this, SLOT(handleLockSize()));
 	disconnect(flipH, SIGNAL(clicked()), this, SLOT(handleFlipH()));
 	disconnect(flipV, SIGNAL(clicked()), this, SLOT(handleFlipV()));
@@ -323,7 +307,6 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	flipH->setCheckable(checkableFlip);
 	flipV->setCheckable(checkableFlip);
 
-	noPrint->setChecked(!item->printEnabled());
 	showFlippedH(item->imageFlippedH());
 	showFlippedV(item->imageFlippedV());
 	double rr = item->rotation();
@@ -338,35 +321,39 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	connect(widthSpin   , SIGNAL(valueChanged(double)), this, SLOT(handleNewW()), Qt::UniqueConnection);
 	connect(heightSpin  , SIGNAL(valueChanged(double)), this, SLOT(handleNewH()), Qt::UniqueConnection);
 	connect(doLock  , SIGNAL(clicked()), this, SLOT(handleLock()), Qt::UniqueConnection);
-	connect(noPrint , SIGNAL(clicked()), this, SLOT(handlePrint()), Qt::UniqueConnection);
 	connect(noResize, SIGNAL(clicked()), this, SLOT(handleLockSize()), Qt::UniqueConnection);
 	connect(flipH   , SIGNAL(clicked()), this, SLOT(handleFlipH()), Qt::UniqueConnection);
 	connect(flipV   , SIGNAL(clicked()), this, SLOT(handleFlipV()), Qt::UniqueConnection);
 	connect(rotationSpin, SIGNAL(valueChanged(double)), this, SLOT(handleRotation()), Qt::UniqueConnection);
 
-	bool setter = false;
-	xposSpin->setEnabled(!setter);
-	yposSpin->setEnabled(!setter);
-	bool haveSameParent = m_doc->m_Selection->objectsHaveSameParent();
-	levelGroup->setEnabled(haveSameParent && !item->locked());
+	xposSpin->setEnabled(true);
+	yposSpin->setEnabled(true);
+	{
+		bool enabled = m_doc->m_Selection->objectsHaveSameParent() && !item->locked();
+		levelTop->setEnabled(enabled);
+		levelUp->setEnabled(enabled);
+		levelDown->setEnabled(enabled);
+		levelBottom->setEnabled(enabled);
+	}
+	// TODO: what is doing this?
 	if ((m_item->isGroup()) && (!m_item->isSingleSel))
 	{
 		setEnabled(true);
 	}
 	if ((m_item->itemType() == PageItem::Line) && m_lineMode)
 	{
-		xposLabel->setText( tr( "&X1:" ) );
-		yposLabel->setText( tr( "Y&1:" ) );
-		widthLabel->setText( tr( "X&2:" ) );
-		heightLabel->setText( tr( "&Y2:" ) );
+		xposLabel->setText(tr("&X1"));
+		yposLabel->setText(tr("Y&1"));
+		widthLabel->setText(tr("X&2"));
+		heightLabel->setText(tr("&Y2"));
 		rotationSpin->setEnabled(false);
 	}
 	else
 	{
-		xposLabel->setText( tr( "&X-Pos:" ) );
-		yposLabel->setText( tr( "&Y-Pos:" ) );
-		widthLabel->setText( tr( "&Width:" ) );
-		heightLabel->setText( tr( "&Height:" ) );
+		xposLabel->setText(tr("&X"));
+		yposLabel->setText(tr("&Y"));
+		widthLabel->setText(tr("&W"));
+		heightLabel->setText(tr("&H"));
 		rotationSpin->setEnabled(true);
 	}
 	m_haveItem = true;
@@ -389,14 +376,6 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 		rrR = 360 - rrR;
 	noResize->setEnabled(!m_item->isArc());
 	
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(false);
-	if ((m_doc->m_Selection->count() > 1) && (haveSameParent))
-		doGroup->setEnabled(true);
-	if (m_doc->m_Selection->count() == 1)
-		doUnGroup->setEnabled(m_item->isGroup());
-	if ((m_doc->appMode == modeEditClip) && (m_item->isGroup()))
-		doUnGroup->setEnabled(false);
 	if (m_item->asOSGFrame())
 	{
 		setEnabled(true);
@@ -413,7 +392,6 @@ void PropertiesPalette_XYZ::handleAppModeChanged(int oldMode, int mode)
 {
 	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
 		return;
-	doUnGroup->setEnabled(mode != modeEdit && mode != modeEditClip && m_item->isGroup());
 	doLock->setEnabled(mode != modeEditClip);
 }
 
@@ -422,8 +400,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 	if (!m_haveDoc || !m_ScMW || m_ScMW->scriptIsRunning())
 		return;
 
-	nameEdit->setEnabled(m_doc->m_Selection->count() == 1);
-
 	PageItem* currItem = currentItemFromSelection();
 	if (m_doc->m_Selection->count() > 1)
 	{
@@ -441,10 +417,10 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 			m_ScMW->view->RCenter = FPoint(gx, gy + gh);
 		else if (bp == 4)
 			m_ScMW->view->RCenter = FPoint(gx + gw, gy + gh);
-		xposLabel->setText( tr( "&X-Pos:" ) );
-		yposLabel->setText( tr( "&Y-Pos:" ) );
-		widthLabel->setText( tr( "&Width:" ) );
-		heightLabel->setText( tr( "&Height:" ) );
+		xposLabel->setText(tr("&X"));
+		yposLabel->setText(tr("&Y"));
+		widthLabel->setText(tr("&W"));
+		heightLabel->setText(tr("&H"));
 
 		xposSpin->showValue(gx);
 		yposSpin->showValue(gy);
@@ -458,7 +434,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		heightSpin->setEnabled(true);
 		rotationSpin->setEnabled(true);
 
-		nameEdit->setEnabled(false);
 		flipH->setCheckable( false );
 		flipV->setCheckable( false );
 		flipH->setChecked(false);
@@ -474,12 +449,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		int itemType = currItem ? (int) currItem->itemType() : -1;
 		
 		m_haveItem = (itemType!=-1);
-		if (itemType == -1)
-		{
-			doGroup->setEnabled(false);
-			doUnGroup->setEnabled(false);
-		}
-		nameEdit->setEnabled(true);
 		basePointWidget->setEnabled(true);
 
 		setEnabled(true);
@@ -509,10 +478,10 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		switch (itemType)
 		{
 		case -1:
-			xposLabel->setText( tr( "&X-Pos:" ) );
-			yposLabel->setText( tr( "&Y-Pos:" ) );
-			widthLabel->setText( tr( "&Width:" ) );
-			heightLabel->setText( tr( "&Height:" ) );
+			xposLabel->setText(tr("&X"));
+			yposLabel->setText(tr("&Y"));
+			widthLabel->setText(tr("&W"));
+			heightLabel->setText(tr("&H"));
 
 			xposSpin->showValue(0);
 			yposSpin->showValue(0);
@@ -1166,13 +1135,6 @@ void PropertiesPalette_XYZ::handleLockSize()
 	m_ScMW->scrActions["itemLockSize"]->toggle();
 }
 
-void PropertiesPalette_XYZ::handlePrint()
-{
-	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
-		return;
-	m_ScMW->scrActions["itemPrintingEnabled"]->toggle();
-}
-
 void PropertiesPalette_XYZ::handleFlipH()
 {
 	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
@@ -1187,6 +1149,7 @@ void PropertiesPalette_XYZ::handleFlipV()
 	m_ScMW->scrActions["itemFlipV"]->toggle();
 }
 
+/*
 void PropertiesPalette_XYZ::handleNewName()
 {
 	if (m_ScMW->scriptIsRunning() || !m_haveDoc || !m_haveItem)
@@ -1233,6 +1196,7 @@ void PropertiesPalette_XYZ::handleNewName()
 		}
 	}
 }
+*/
 
 void PropertiesPalette_XYZ::installSniffer(ScrSpinBox *spinBox)
 {
@@ -1345,11 +1309,6 @@ void PropertiesPalette_XYZ::showSizeLocked(bool isSizeLocked)
 	noResize->setChecked(isSizeLocked);
 }
 
-void PropertiesPalette_XYZ::showPrintingEnabled(bool isPrintingEnabled)
-{
-	noPrint->setChecked(!isPrintingEnabled);
-}
-
 void PropertiesPalette_XYZ::showFlippedH(bool isFlippedH)
 {
 	flipH->setChecked(isFlippedH);
@@ -1359,20 +1318,3 @@ void PropertiesPalette_XYZ::showFlippedV(bool isFlippedV)
 {
 	flipV->setChecked(isFlippedV);
 }
-
-void PropertiesPalette_XYZ::handleGrouping()
-{
-	m_ScMW->GroupObj();
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(true);
-	handleSelectionChanged();
-	//FIXME
-	//TabStack->setItemEnabled(idShapeItem, false);
-}
-
-void PropertiesPalette_XYZ::handleUngrouping()
-{
-	m_ScMW->UnGroupObj();
-	m_doc->invalidateAll();
-	m_doc->regionsChanged()->update(QRect());
-}
diff --git a/scribus/ui/propertiespalette_xyz.h b/scribus/ui/propertiespalette_xyz.h
index 7892c5043..4c2c2c3be 100644
--- a/scribus/ui/propertiespalette_xyz.h
+++ b/scribus/ui/propertiespalette_xyz.h
@@ -14,10 +14,10 @@ for which a new license (GPL+exception) is in place.
 #include "linkbutton.h"
 #include "sclistboxpixmap.h"
 #include "scguardedptr.h"
+#include "pageitem.h"
 
 class BasePointWidget;
 class NameWidget;
-class PageItem;
 class ScribusDoc;
 class Selection;
 class ScribusMainWindow;
@@ -61,7 +61,6 @@ public slots:
 	void showRotation(double r);
 	void showLocked(bool);
 	void showSizeLocked(bool);
-	void showPrintingEnabled(bool);
 	void showFlippedH(bool);
 	void showFlippedV(bool);
 
@@ -83,10 +82,6 @@ private slots:
 	void handleBasePoint(int m);
 	void handleLock();
 	void handleLockSize();
-	void handlePrint();
-	void handleNewName();
-	void handleGrouping();
-	void handleUngrouping();
 
 protected slots:
 	//virtual void reject();
diff --git a/scribus/ui/propertiespalette_xyzbase.ui b/scribus/ui/propertiespalette_xyzbase.ui
index 06e9c35d5..f97d98476 100644
--- a/scribus/ui/propertiespalette_xyzbase.ui
+++ b/scribus/ui/propertiespalette_xyzbase.ui
@@ -30,404 +30,265 @@
     <number>0</number>
    </property>
    <item>
-    <widget class="QGroupBox" name="nameGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Name</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <property name="spacing">
-       <number>2</number>
-      </property>
-      <property name="leftMargin">
-       <number>2</number>
-      </property>
-      <property name="topMargin">
-       <number>2</number>
-      </property>
-      <property name="rightMargin">
-       <number>2</number>
-      </property>
-      <property name="bottomMargin">
-       <number>2</number>
-      </property>
-      <item>
-       <widget class="NameWidget" name="nameEdit">
-        <property name="focusPolicy">
-         <enum>Qt::ClickFocus</enum>
-        </property>
-        <property name="toolTip">
-         <string>Name of selected object</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="geoGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Geometry</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <property name="leftMargin">
-       <number>2</number>
-      </property>
-      <property name="topMargin">
-       <number>2</number>
-      </property>
-      <property name="rightMargin">
-       <number>2</number>
-      </property>
-      <property name="bottomMargin">
-       <number>2</number>
-      </property>
-      <item>
-       <layout class="QGridLayout" name="geoGroupLayout">
-        <property name="leftMargin">
-         <number>5</number>
-        </property>
-        <property name="topMargin">
-         <number>5</number>
-        </property>
-        <property name="rightMargin">
-         <number>5</number>
-        </property>
-        <property name="bottomMargin">
-         <number>5</number>
-        </property>
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QLabel" name="xposLabel">
-          <property name="text">
-           <string>&amp;X-Pos:</string>
-          </property>
-          <property name="buddy">
-           <cstring>xposSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="ScrSpinBox" name="xposSpin">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="toolTip">
-           <string>Horizontal position of current basepoint</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QLabel" name="widthLabel">
-          <property name="text">
-           <string>&amp;Width:</string>
-          </property>
-          <property name="buddy">
-           <cstring>widthSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="yposLabel">
-          <property name="text">
-           <string>&amp;Y-Pos:</string>
-          </property>
-          <property name="buddy">
-           <cstring>yposSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="ScrSpinBox" name="yposSpin">
-          <property name="toolTip">
-           <string>Vertical position of current basepoint</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1">
-         <widget class="ScrSpinBox" name="widthSpin">
-          <property name="toolTip">
-           <string>Width of current selection</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QLabel" name="heightLabel">
-          <property name="text">
-           <string>&amp;Height:</string>
-          </property>
-          <property name="buddy">
-           <cstring>heightSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="1">
-         <widget class="ScrSpinBox" name="heightSpin">
-          <property name="toolTip">
-           <string>Height of current selection</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="0">
-         <widget class="QLabel" name="rotationLabel">
-          <property name="text">
-           <string>&amp;Rotation:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="1">
-         <widget class="ScrSpinBox" name="rotationSpin">
-          <property name="toolTip">
-           <string>Rotation of object at current basepoint</string>
-          </property>
-          <property name="wrapping">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="0">
-         <widget class="QLabel" name="basepointLabel">
-          <property name="toolTip">
-           <string>Point from which measurements or rotation angles are referenced</string>
-          </property>
-          <property name="text">
-           <string>Basepoint:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="1">
-         <widget class="BasePointWidget" name="basePointWidget" native="true"/>
-        </item>
-        <item row="2" column="2" rowspan="2">
-         <widget class="LinkButton" name="keepFrameWHRatioButton">
-          <property name="maximumSize">
-           <size>
-            <width>15</width>
-            <height>32767</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Keep the aspect ratio</string>
-          </property>
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="checkable">
-           <bool>true</bool>
-          </property>
-          <property name="autoRaise">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QGroupBox" name="levelGroup">
-       <property name="title">
-        <string>Level</string>
+    <layout class="QGridLayout" name="gridLayout_3">
+     <item row="0" column="1">
+      <widget class="QLabel" name="xposLabel">
+       <property name="text">
+        <string>&amp;X:</string>
+       </property>
+       <property name="buddy">
+        <cstring>xposSpin</cstring>
        </property>
-       <layout class="QGridLayout" name="gridLayout">
-        <property name="leftMargin">
-         <number>5</number>
-        </property>
-        <property name="topMargin">
-         <number>5</number>
-        </property>
-        <property name="rightMargin">
-         <number>5</number>
-        </property>
-        <property name="bottomMargin">
-         <number>5</number>
-        </property>
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QToolButton" name="levelUp">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move one level up</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QToolButton" name="levelDown">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move one level down</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QToolButton" name="levelTop">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move to front</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="QToolButton" name="levelBottom">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move to back</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="2" rowspan="2">
-         <widget class="QLabel" name="levelLabel">
-          <property name="toolTip">
-           <string>Indicates the level the object is on, 1 means the object is at the bottom</string>
-          </property>
-          <property name="text">
-           <string>0</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
       </widget>
      </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
+     <item row="0" column="2">
+      <widget class="ScrSpinBox" name="xposSpin">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
        </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
+       <property name="toolTip">
+        <string>Horizontal position of current basepoint</string>
        </property>
-      </spacer>
+      </widget>
      </item>
-     <item>
-      <layout class="QGridLayout" name="gridLayout_2">
-       <item row="0" column="0">
-        <widget class="QToolButton" name="doGroup">
+     <item row="2" column="2" colspan="2">
+      <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <item>
+        <widget class="ScrSpinBox" name="rotationSpin">
+         <property name="toolTip">
+          <string>Rotation of object at current basepoint</string>
+         </property>
+         <property name="wrapping">
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="flipH">
          <property name="toolTip">
-          <string>Group the selected objects</string>
+          <string>Flip horizontally</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="1" column="0">
-        <widget class="QToolButton" name="doUnGroup">
+       <item>
+        <widget class="QToolButton" name="flipV">
          <property name="toolTip">
-          <string>Ungroup the selected group</string>
+          <string>Flip vertically</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="1">
-        <widget class="QToolButton" name="flipH">
+       <item>
+        <spacer name="horizontalSpacer_2">
+         <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="1" column="6">
+      <widget class="QToolButton" name="noResize">
+       <property name="toolTip">
+        <string>Lock or unlock the size of the object</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="rotation">
+       <property name="text">
+        <string>⟳</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="2" colspan="2">
+      <layout class="QHBoxLayout" name="horizontalLayout_5">
+       <item>
+        <widget class="QToolButton" name="levelBottom">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Flip horizontally</string>
+          <string>Move to back</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="1" column="1">
-        <widget class="QToolButton" name="flipV">
+       <item>
+        <widget class="QToolButton" name="levelDown">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Flip vertically</string>
+          <string>Move one level down</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="2">
-        <widget class="QToolButton" name="doLock">
+       <item>
+        <widget class="QToolButton" name="levelUp">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Lock or unlock the object</string>
+          <string>Move one level up</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="1" column="2">
-        <widget class="QToolButton" name="noPrint">
+       <item>
+        <widget class="QToolButton" name="levelTop">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Enable or disable exporting of the object</string>
+          <string>Move to front</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="3">
-        <widget class="QToolButton" name="noResize">
+       <item>
+        <widget class="QLabel" name="levelLabel">
          <property name="toolTip">
-          <string>Lock or unlock the size of the object</string>
+          <string>Indicates the level the object is on, 1 means the object is at the bottom</string>
          </property>
          <property name="text">
-          <string/>
+          <string>0</string>
          </property>
         </widget>
        </item>
+       <item>
+        <spacer name="horizontalSpacer">
+         <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="1" column="1">
+      <widget class="QLabel" name="yposLabel">
+       <property name="text">
+        <string>&amp;Y:</string>
+       </property>
+       <property name="buddy">
+        <cstring>yposSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2">
+      <widget class="ScrSpinBox" name="yposSpin">
+       <property name="toolTip">
+        <string>Vertical position of current basepoint</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="3">
+      <widget class="QLabel" name="widthLabel">
+       <property name="text">
+        <string>&amp;W</string>
+       </property>
+       <property name="buddy">
+        <cstring>widthSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="3">
+      <widget class="QLabel" name="heightLabel">
+       <property name="text">
+        <string>&amp;H</string>
+       </property>
+       <property name="buddy">
+        <cstring>heightSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="4">
+      <widget class="ScrSpinBox" name="widthSpin">
+       <property name="toolTip">
+        <string>Width of current selection</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="4">
+      <widget class="ScrSpinBox" name="heightSpin">
+       <property name="toolTip">
+        <string>Height of current selection</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="6">
+      <widget class="QToolButton" name="doLock">
+       <property name="toolTip">
+        <string>Lock or unlock the object</string>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="5" rowspan="2">
+      <widget class="LinkButton" name="keepFrameWHRatioButton">
+       <property name="minimumSize">
+        <size>
+         <width>8</width>
+         <height>43</height>
+        </size>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="4" rowspan="3" alignment="Qt::AlignLeft">
+      <widget class="BasePointWidget" name="basePointWidget" native="true"/>
+     </item>
     </layout>
    </item>
    <item>
@@ -446,11 +307,6 @@
   </layout>
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>NameWidget</class>
-   <extends>QLineEdit</extends>
-   <header>ui/propertiespalette_utils.h</header>
-  </customwidget>
   <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
@@ -468,6 +324,21 @@
    <header>ui/linkbutton.h</header>
   </customwidget>
  </customwidgets>
+ <tabstops>
+  <tabstop>xposSpin</tabstop>
+  <tabstop>yposSpin</tabstop>
+  <tabstop>widthSpin</tabstop>
+  <tabstop>heightSpin</tabstop>
+  <tabstop>keepFrameWHRatioButton</tabstop>
+  <tabstop>rotationSpin</tabstop>
+  <tabstop>flipH</tabstop>
+  <tabstop>levelBottom</tabstop>
+  <tabstop>levelDown</tabstop>
+  <tabstop>levelUp</tabstop>
+  <tabstop>levelTop</tabstop>
+  <tabstop>doLock</tabstop>
+  <tabstop>noResize</tabstop>
+ </tabstops>
  <resources/>
  <connections/>
 </ui>
indigo-pp-xyz-peter.diff (52,026 bytes)

PeterBenedek

2019-11-04 18:03

developer   ~0046957

Last edited: 2019-11-04 18:04

View 2 revisions

I miss the padding of panel.
Martin's solution in Indigo project: http://forums.scribus.net/index.php?action=dlattach;topic=1617.0;attach=1989;image

ale

2019-11-04 18:24

manager   ~0046958

Last edited: 2019-11-05 06:55

View 3 revisions

@peterbenedek , i'd like to look at it towards the end of the implementation of the UI panels.

currently, there are so many things that are not finished yet and i don't know what is wrong because of the older panels and how exactly the whole palette will look like at the end of the process.

i'd like to suggest that i finish the panels in the properties panel and we can then, when everything is new in, talk about it again?
before starting the huge work on the text panel...

as soon as the xyz is in, i'd like to get in touch with martin: i need explanations on the color panels... he might also have more general feedback.

PeterBenedek

2019-11-04 18:46

developer   ~0046960

I mean.
Ok.
They did a fantastic job.

PeterBenedek

2019-11-05 08:34

developer   ~0046968

Last edited: 2019-11-05 08:38

View 2 revisions

You don't have to do anything, just listen to this...

Therefore, Basepoint is important to be first in the line of operation (related ticket 0015903)...
I made a flowchart of the problem:

Task: Adjust the height of the object, top to bottom.
Explanation: All operations in the XYZ panel depend on the position of the currently selected base point, even if you do not need to set it before each operation.



Basepoint_left.jpg (137,266 bytes)
Basepoint_left.jpg (137,266 bytes)

ale

2019-11-05 13:49

manager   ~0046974

Last edited: 2019-11-05 13:50

View 2 revisions

peter, i have understood your point very well.
and you're 100% right.

but i also believe that most of the time, most users want to look at the values or set them without changing the basepoint.

i found it very interesting to see how intensively you use it, but i don't think i have ever seen anybody changing the basepoint at all.
i also think that if you look for speed, scribus provides better ways to tweak your items, without the need to go to the properties palette.
(personally, in most cases i would go for alt(-shift)-arrow or a guide.)

in the past, i've never read any complaint that the "old" scribus placement of the basepoinit would be bad.
and that's not because it was good (it was terrible), but because most people don't use it. or when they use it, they're in a slow workflow anyway.

bubu

2019-11-05 19:17

reporter   ~0046978

Hi devs, finally I found this discussion. I'm so happy to see you developing this feature.

I'm nobody here just a translator and a user. But I try tho help you.

As a user...
1. I agree to remove the label of the object from this palette. I never renamed object in normal document, only when I created PDF forms, but in PDF properties palette there are a possibility to rename the object. https://gitlab.com/scribus/scribus/merge_requests/8#note_239173966
2. I usually use origin tool. It's a useful tool. The original "vertical" Scribus XYZ palette was clear: origin tool belongs to X,Y,W,H fields _and_ rotate field. This is broken in new proposals here.
3. Original origin tool was better: It was clear that it has 5 states. When I see this new tool - inspired by InDesign - I think there is 9 states... but it's not true. And new tool is more checkbox like and not radio button like. When I see more squares (=checkboxes) I think I can select multiple states... but it's not true, I can select only one state (like radio buttons). So circles - original look - is better here.

I don't want to criticize, but to help. So here is sketch mockup, how can we join origin tool to X, Y, W, H fields and rotate field. I hope this helps you.

ale

2019-11-05 21:35

manager   ~0046980

i plan to use the same widget also for the lines, so i would like to avoid the old 5 circles widget.

i don't know why martin suggested 9 squares, but if we stick with 5 possible values, then i agree that we should make it more clear which buttons can be clicked and which not.
it's probably just a matter of using a different color for those buttons... or simply hiding them.
but i think that the final goal was to have 9 possible states.

i really like the widget you propose above, but it's a bit harder to draw... (basically, the code must draw it; with the boxes martin suggests, it's just a bunch of buttons with a png on top of each; "automatically" layouted)

if you have a proposal for better icons, they're very welcome. but, if possible, i'd like to keep the grid of buttons: it makes things much easier on the programming side.
as said, the other constraint is that it should be easy, to use the same schema (and widget) also for the lines (with only three possible values).

concerning the basepoint on the left: personally i don't "like" the fact that, then, the other buttons are layouted in a "random" way.
where i could see a usable solution, is the proposal a, but with the flip buttons below the rotation input field

b is too cramped for me.

also, the levels are harder to reach... and that's the z part of xyz : - )

my conclusion?

if possible i'd like to stick with the patch as is and get it accepted as fast as possible.
once it's in, we can further discuss where to place the basepoint widget.
and proposal a is not a bad start, if you both really are so uncomfortable with the widget on the right.

ale

2019-11-06 08:07

manager   ~0046986

here is a branch with what i could "easily" (still more than an hour of work i could not use for the color panel... mostly spent on fighting designer's grid awkwardness) do out of bubu's a proposal.

https://gitlab.com/a.l.e/scribus/tree/indigo-pp-xyz-bubu

https://gitlab.com/a.l.e/scribus/-/jobs/342954448/artifacts/file/Scribus-nightly-x86_64.AppImage

two comments:

- i'm not sure it would look good, but on the semantics side, i would switch levels and locks...
- the basepoint widget could shrink a bit and/or get better icons... drawing a square behind the circles might be possible.

my position has not changed:

- the levels are a bit hidden (switching levels and locks might help)
- i'd prefer to see the previous patch being committed asap and continue the discussion in a different ticket.

xyz-bubu-01.png (8,620 bytes)
xyz-bubu-01.png (8,620 bytes)

PeterBenedek

2019-11-06 08:45

developer   ~0046988

ale, this fantastic. The basepoint tool is finally convenient to use
I am grateful for it.

bubu

2019-11-06 08:50

reporter   ~0046989

Thank you ale, this layout is much better!

ale

2019-11-06 10:22

manager   ~0046991

yes @peterbenedek, but now it's the levels that are not convenient to use : - (
and the rotation.
(if i change the basepoint, before the next movement, i have to take care to reset it to the top left; and if i don't change the basepoint, i have to move around my item to fix its position *and* look for the rotation in the middle of the widget).
i really, think that this layout is worse for those who do not use often the basepoint.

i wonder, if the basepoint shouldn't automatically go back to the top left if you have not used any function that rely on it for more than one minute (or other more or less short time : - )
and you could set the default basepoint in the document settings / preferences.

and the basepoint widget feels too big to me... but i hope that you both will be able to improve on that : - ) (while respecting the fact that it's a 3 x 3 grid!)
after this patch has been accepted!

ale

2019-11-08 09:30

manager   ~0047034

here is the "bubu" patch...

please pick one of the two latest diff files

(the new pngs can be downloaded from gitlab, see the links above)

xyz-bubu.diff (54,014 bytes)
diff --git a/resources/iconsets/1_5_1/16/basepoint-checked.png b/resources/iconsets/1_5_1/16/basepoint-checked.png
new file mode 100644
index 000000000..328a6c389
Binary files /dev/null and b/resources/iconsets/1_5_1/16/basepoint-checked.png differ
diff --git a/resources/iconsets/1_5_1/16/basepoint-unchecked.png b/resources/iconsets/1_5_1/16/basepoint-unchecked.png
new file mode 100644
index 000000000..15581f9d1
Binary files /dev/null and b/resources/iconsets/1_5_1/16/basepoint-unchecked.png differ
diff --git a/resources/iconsets/1_5_1/16/flip-object-horizontal.png b/resources/iconsets/1_5_1/16/flip-object-horizontal.png
index b5053fa7f..32b36a363 100644
Binary files a/resources/iconsets/1_5_1/16/flip-object-horizontal.png and b/resources/iconsets/1_5_1/16/flip-object-horizontal.png differ
diff --git a/resources/iconsets/1_5_1/16/flip-object-vertical.png b/resources/iconsets/1_5_1/16/flip-object-vertical.png
index d94b746f7..6602230d6 100644
Binary files a/resources/iconsets/1_5_1/16/flip-object-vertical.png and b/resources/iconsets/1_5_1/16/flip-object-vertical.png differ
diff --git a/resources/iconsets/1_5_1/16/level-bottom.png b/resources/iconsets/1_5_1/16/level-bottom.png
new file mode 100644
index 000000000..d97871f60
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-bottom.png differ
diff --git a/resources/iconsets/1_5_1/16/level-down.png b/resources/iconsets/1_5_1/16/level-down.png
new file mode 100644
index 000000000..a7022c426
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-down.png differ
diff --git a/resources/iconsets/1_5_1/16/level-top.png b/resources/iconsets/1_5_1/16/level-top.png
new file mode 100644
index 000000000..f0a4400cb
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-top.png differ
diff --git a/resources/iconsets/1_5_1/16/level-up.png b/resources/iconsets/1_5_1/16/level-up.png
new file mode 100644
index 000000000..7d64fe3b7
Binary files /dev/null and b/resources/iconsets/1_5_1/16/level-up.png differ
diff --git a/resources/iconsets/1_5_1/chain-small-closed.png b/resources/iconsets/1_5_1/chain-small-closed.png
new file mode 100644
index 000000000..d5105d0a4
Binary files /dev/null and b/resources/iconsets/1_5_1/chain-small-closed.png differ
diff --git a/resources/iconsets/1_5_1/chain-small-open.png b/resources/iconsets/1_5_1/chain-small-open.png
new file mode 100644
index 000000000..d32371f6a
Binary files /dev/null and b/resources/iconsets/1_5_1/chain-small-open.png differ
diff --git a/resources/iconsets/1_5_1/group.png b/resources/iconsets/1_5_1/group.png
deleted file mode 100644
index d2aae0af6..000000000
Binary files a/resources/iconsets/1_5_1/group.png and /dev/null differ
diff --git a/resources/iconsets/1_5_1/rotation.png b/resources/iconsets/1_5_1/rotation.png
new file mode 100644
index 000000000..4288effc9
Binary files /dev/null and b/resources/iconsets/1_5_1/rotation.png differ
diff --git a/resources/iconsets/1_5_1/ungroup.png b/resources/iconsets/1_5_1/ungroup.png
deleted file mode 100644
index 52a8f19b9..000000000
Binary files a/resources/iconsets/1_5_1/ungroup.png and /dev/null differ
diff --git a/scribus/CMakeLists.txt b/scribus/CMakeLists.txt
index a92433cb1..29dd78740 100644
--- a/scribus/CMakeLists.txt
+++ b/scribus/CMakeLists.txt
@@ -157,6 +157,7 @@ set(SCRIBUS_UI_SRC
 	ui/prefs_pdfexportbase.ui
 	ui/prefs_tableofcontentsbase.ui
 	ui/prefs_documentitemattributesbase.ui
+	ui/basepointwidgetbase.ui
 	ui/printdialogbase.ui
 	ui/propertiespalette_groupbase.ui
 	ui/propertiespalette_imagebase.ui
diff --git a/scribus/ui/basepointwidget.cpp b/scribus/ui/basepointwidget.cpp
index c6dca8f09..8d141a47b 100644
--- a/scribus/ui/basepointwidget.cpp
+++ b/scribus/ui/basepointwidget.cpp
@@ -7,197 +7,86 @@ for which a new license (GPL+exception) is in place.
 
 #include "basepointwidget.h"
 
-BasePointWidget::BasePointWidget(QWidget *pa, int mode) : QWidget(pa)
-{
-	m_mode = mode;
-	if (m_mode == 0)
-	{
-		setMinimumSize(QSize(48, 48));
-		setMaximumSize(QSize(48, 48));
-	}
-	else
-	{
-		setMinimumSize(QSize(48, 16));
-		setMaximumSize(QSize(48, 16));
-	}
-	setMouseTracking(true);
-	selectedBase = 0;
-	hooveredBase = -1;
-	Mpressed = false;
-} 
+#include <QButtonGroup>
+#include "iconmanager.h"
 
-void BasePointWidget::paintEvent(QPaintEvent *e)
+BasePointWidget::BasePointWidget(QWidget *parent) : QWidget(parent)
 {
-	QPainter p;
-	p.begin(this);
-	p.setRenderHint(QPainter::Antialiasing, true);
-	p.setBrush(palette().color(QPalette::Window));
-	p.setPen(Qt::NoPen);
-	p.drawRect(0, 0, width(), height());
-	p.setBrush(Qt::black);
-	p.setPen(QPen(palette().color(QPalette::WindowText), 1));
-	if (m_mode == 0)
-	{
-		p.drawEllipse( 4,  4, 10, 10);
-		p.drawEllipse(34,  4, 10, 10);
-		p.drawEllipse(19, 19, 10, 10);
-		p.drawEllipse( 4, 34, 10, 10);
-		p.drawEllipse(34, 34, 10, 10);
-	}
-	else
-	{
-		p.drawEllipse( 4,  4, 10, 10);
-		p.drawEllipse(19,  4, 10, 10);
-		p.drawEllipse(34,  4, 10, 10);
-	}
-	p.setPen(QPen(palette().color(QPalette::WindowText), 2));
-	if (m_mode == 0)
-	{
-		p.drawLine(8, 8, 33, 8);
-		p.drawLine(8, 38, 33, 38);
-		p.drawLine(8, 8, 8, 33);
-		p.drawLine(38, 8, 38, 33);
-	}
-	else
-		p.drawLine(8, 8, 33, 8);
-	p.setBrush(Qt::white);
-	p.setPen(QPen(palette().color(QPalette::WindowText), 2));
-	if (m_mode == 0)
-	{
-		p.drawEllipse( 3,  3, 10, 10);
-		p.drawEllipse(33,  3, 10, 10);
-		p.drawEllipse(18, 18, 10, 10);
-		p.drawEllipse( 3, 33, 10, 10);
-		p.drawEllipse(33, 33, 10, 10);
-	}
-	else
-	{
-		p.drawEllipse( 3,  3, 10, 10);
-		p.drawEllipse(18,  3, 10, 10);
-		p.drawEllipse(33,  3, 10, 10);
-	}
-	if (hooveredBase > -1)
-	{
-		p.setBrush(Qt::NoBrush);
-		p.setPen(QPen(palette().color(QPalette::Highlight), 1));
-		if (hooveredBase == 0)
-			p.drawEllipse( 4,  4, 8, 8);
-		else if (hooveredBase == 1)
-			p.drawEllipse(34,  4, 8, 8);
-		else if (hooveredBase == 2)
-		{
-			if (m_mode == 0)
-				p.drawEllipse(19, 19, 8, 8);
-			else
-				p.drawEllipse(19,  4, 8, 8);
-		}
-		else if (hooveredBase == 3)
-			p.drawEllipse( 4, 34, 8, 8);
-		else if (hooveredBase == 4)
-			p.drawEllipse(34, 34, 8, 8);
-	}
-	p.setBrush(palette().color(QPalette::WindowText));
-	p.setPen(Qt::NoPen);
-	if (selectedBase == 0)
-		p.drawEllipse( 5, 5, 6, 6);
-	else if (selectedBase == 1)
-		p.drawEllipse(35, 5, 6, 6);
-	else if (selectedBase == 2)
-	{
-		if (m_mode == 0)
-			p.drawEllipse(20, 20, 6, 6);
-		else
-			p.drawEllipse(20,  5, 6, 6);
-	}
-	else if (selectedBase == 3)
-		p.drawEllipse( 5, 35, 6, 6);
-	else if (selectedBase == 4)
-		p.drawEllipse(35, 35, 6, 6);
-	p.end();
-}
+	setupUi(this);
 
-void BasePointWidget::mousePressEvent(QMouseEvent *m)
-{
-	m->accept();
-	Mpressed = true;
-}
+	auto group = new QButtonGroup(this);
+	group->addButton(buttonNE);
+	group->addButton(buttonNW);
+	group->addButton(buttonCenter);
+	group->addButton(buttonSE);
+	group->addButton(buttonSW);
 
-void BasePointWidget::mouseReleaseEvent(QMouseEvent *m)
-{
-	m->accept();
-	if (Mpressed)
-	{
-		QPoint p = m->pos();
-		if (m_mode == 0)
-		{
-			if (QRect( 3,  3, 10, 10).contains(p))
-				selectedBase = 0;
-			else if (QRect(33,  3, 10, 10).contains(p))
-				selectedBase = 1;
-			else if (QRect(18, 18, 10, 10).contains(p))
-				selectedBase = 2;
-			else if (QRect( 3, 33, 10, 10).contains(p))
-				selectedBase = 3;
-			else if (QRect(33, 33, 10, 10).contains(p))
-				selectedBase = 4;
-		}
-		else
-		{
-			if (QRect( 3,  3, 9, 9).contains(p))
-				selectedBase = 0;
-			else if (QRect(33,  3, 10, 10).contains(p))
-				selectedBase = 1;
-			else if (QRect(18,  3, 10, 10).contains(p))
-				selectedBase = 2;
-		}
-		emit buttonClicked(selectedBase);
-	}
-	update();
-}
+	buttonE->setVisible(false);
+	buttonN->setVisible(false);
+	buttonW->setVisible(false);
+	buttonS->setVisible(false);
 
-void BasePointWidget::mouseMoveEvent(QMouseEvent *m)
-{
-	m->accept();
-	QPoint p = m->pos();
-	hooveredBase = -1;
-	if (m_mode == 0)
-	{
-		if (QRect( 3,  3, 10, 10).contains(p))
-			hooveredBase = 0;
-		else if (QRect(33,  3, 10, 10).contains(p))
-			hooveredBase = 1;
-		else if (QRect(18, 18, 10, 10).contains(p))
-			hooveredBase = 2;
-		else if (QRect( 3, 33, 10, 10).contains(p))
-			hooveredBase = 3;
-		else if (QRect(33, 33, 10, 10).contains(p))
-			hooveredBase = 4;
-	}
-	else
-	{
-		if (QRect( 3,  3, 10, 10).contains(p))
-			hooveredBase = 0;
-		else if (QRect(33,  3, 10, 10).contains(p))
-			hooveredBase = 1;
-		else if (QRect(18,  3, 10, 10).contains(p))
-			hooveredBase = 2;
-	}
-	update();
+	IconManager& im=IconManager::instance();
+
+	loadIcon(im, buttonNE);
+	loadIcon(im, buttonN);
+	loadIcon(im, buttonNW);
+	loadIcon(im, buttonE);
+	loadIcon(im, buttonCenter);
+	loadIcon(im, buttonW);
+	loadIcon(im, buttonSE);
+	loadIcon(im, buttonS);
+	loadIcon(im, buttonSW);
+
+	setStyleSheet("QToolButton {border: none;}");
+
+	connect(buttonNE, &QToolButton::clicked, [this]() { emit buttonClicked(0); });
+	connect(buttonNW, &QToolButton::clicked, [this]() { emit buttonClicked(1); });
+	connect(buttonCenter, &QToolButton::clicked, [this]() { emit buttonClicked(2); });
+	connect(buttonSE, &QToolButton::clicked, [this]() { emit buttonClicked(3); });
+	connect(buttonSW, &QToolButton::clicked, [this]() { emit buttonClicked(4); });
 }
 
-void BasePointWidget::leaveEvent(QEvent*)
+void BasePointWidget::loadIcon(IconManager& im, QToolButton* button)
 {
-	hooveredBase = -1;
-	update();
+	QIcon icon = QIcon();
+	icon.addPixmap(im.loadPixmap("16/basepoint-checked.png"), QIcon::Normal, QIcon::On);
+	icon.addPixmap(im.loadPixmap("16/basepoint-unchecked.png"), QIcon::Normal, QIcon::Off);
+	button->setIcon(icon);
 }
 
 int BasePointWidget::checkedId()
 {
-	return selectedBase;
+	if (buttonNE->isChecked())
+		return 0;
+	else if (buttonNW->isChecked())
+		return 1;
+	else if (buttonCenter->isChecked())
+		return 2;
+	else if (buttonSE->isChecked())
+		return 3;
+	else if (buttonSW->isChecked())
+		return 4;
+	return 0;
 }
 
 void BasePointWidget::setCheckedId(int id)
 {
-	selectedBase = id;
-	update();
+	switch (id) {
+		case 0:
+			buttonNE->setChecked(true);
+			break;
+		case 1:
+			buttonNW->setChecked(true);
+			break;
+		case 2:
+			buttonCenter->setChecked(true);
+			break;
+		case 3:
+			buttonSE->setChecked(true);
+			break;
+		case 4:
+			buttonSE->setChecked(true);
+			break;
+	}
 }
diff --git a/scribus/ui/basepointwidget.h b/scribus/ui/basepointwidget.h
index abfde3c9f..0ae85bd2c 100644
--- a/scribus/ui/basepointwidget.h
+++ b/scribus/ui/basepointwidget.h
@@ -7,18 +7,19 @@ for which a new license (GPL+exception) is in place.
 #ifndef BASEPOINTWIDGET_H
 #define BASEPOINTWIDGET_H
 
+#include "ui_basepointwidgetbase.h"
+
 #include <QWidget>
-#include <QPaintEvent>
-#include <QMouseEvent>
-#include <QPainter>
 #include "scribusapi.h"
 
-class SCRIBUS_API BasePointWidget : public QWidget
+class IconManager;
+
+class SCRIBUS_API BasePointWidget : public QWidget, public Ui::BasePointWidgetBase
 {
 	Q_OBJECT
 
 public:
-	BasePointWidget(QWidget *pa, int mode = 0);
+	BasePointWidget(QWidget *parent);
 	~BasePointWidget() {}
 	/**
 	  BasePoint values:
@@ -30,16 +31,8 @@ public:
 	  */
 	int checkedId();
 	void setCheckedId(int id);
-	void paintEvent(QPaintEvent *e);
-	void mousePressEvent(QMouseEvent *m);
-	void mouseReleaseEvent(QMouseEvent *);
-	void mouseMoveEvent(QMouseEvent *m);
-	void leaveEvent(QEvent*);
 private:
-	int m_mode;
-	int selectedBase;
-	int hooveredBase;
-	bool Mpressed;
+	void loadIcon(IconManager& im, QToolButton* button);
 signals:
 	void buttonClicked(int);
 };
diff --git a/scribus/ui/basepointwidgetbase.ui b/scribus/ui/basepointwidgetbase.ui
new file mode 100644
index 000000000..66d3a24f0
--- /dev/null
+++ b/scribus/ui/basepointwidgetbase.ui
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>BasePointWidgetBase</class>
+ <widget class="QWidget" name="BasePointWidgetBase">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>62</width>
+    <height>51</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>Form</string>
+  </property>
+  <layout class="QGridLayout" name="gridLayout">
+   <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="spacing">
+    <number>1</number>
+   </property>
+   <item row="1" column="0">
+    <widget class="QToolButton" name="buttonE">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="2">
+    <widget class="QToolButton" name="buttonN">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="3">
+    <widget class="QToolButton" name="buttonW">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="3">
+    <widget class="QToolButton" name="buttonNW">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0">
+    <widget class="QToolButton" name="buttonNE">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="2">
+    <widget class="QToolButton" name="buttonCenter">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0">
+    <widget class="QToolButton" name="buttonSE">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="2">
+    <widget class="QToolButton" name="buttonS">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="3">
+    <widget class="QToolButton" name="buttonSW">
+     <property name="minimumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="maximumSize">
+      <size>
+       <width>16</width>
+       <height>16</height>
+      </size>
+     </property>
+     <property name="text">
+      <string>...</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <tabstops>
+  <tabstop>buttonNE</tabstop>
+  <tabstop>buttonN</tabstop>
+  <tabstop>buttonNW</tabstop>
+  <tabstop>buttonE</tabstop>
+  <tabstop>buttonCenter</tabstop>
+  <tabstop>buttonW</tabstop>
+  <tabstop>buttonSE</tabstop>
+  <tabstop>buttonS</tabstop>
+  <tabstop>buttonSW</tabstop>
+ </tabstops>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/scribus/ui/propertiespalette_xyz.cpp b/scribus/ui/propertiespalette_xyz.cpp
index 4eb8a45ed..9f86ff715 100644
--- a/scribus/ui/propertiespalette_xyz.cpp
+++ b/scribus/ui/propertiespalette_xyz.cpp
@@ -62,32 +62,35 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	connect(userActionSniffer, SIGNAL(actionStart()), this, SLOT(spinboxStartUserAction()));
 	connect(userActionSniffer, SIGNAL(actionEnd()), this, SLOT(spinboxFinishUserAction()));
 
-	nameEdit->setFocusPolicy(Qt::ClickFocus);
-
 	installSniffer(xposSpin);
 	installSniffer(yposSpin);
 	installSniffer(widthSpin);
 	installSniffer(heightSpin);
 
-	keepFrameWHRatioButton->setCheckable( true );
-	keepFrameWHRatioButton->setAutoRaise( true );
-	keepFrameWHRatioButton->setMaximumSize( QSize( 15, 32767 ) );
+	IconManager& im=IconManager::instance();
+
+	// keepFrameWHRatioButton->setCheckable(true);
+	// {
+	// 	QIcon icon = QIcon();
+	// 	icon.addPixmap(im.loadPixmap("chain-small-closed.png"), QIcon::Normal, QIcon::On);
+	// 	icon.addPixmap(im.loadPixmap("chain-small-open.png"), QIcon::Normal, QIcon::Off);
+	// 	keepFrameWHRatioButton->setIcon(icon);
+	// }
+
+	keepFrameWHRatioButton->setCheckable(true);
+	keepFrameWHRatioButton->setAutoRaise(true);
+	keepFrameWHRatioButton->setMaximumSize(QSize(15, 32767));
 	keepFrameWHRatioButton->setChecked(false);
 
+	// rotation->setPixmap(im.loadPixmap("rotation.png")); // TODO: using the unicode char might even be better... but i did not manage to load the pixmap in the label
 	rotationSpin->setNewUnit(6);
 	rotationSpin->setWrapping( true );
 	installSniffer(rotationSpin);
-	rotationLabel->setBuddy(rotationSpin);
-
-	IconManager& im=IconManager::instance();
-	levelUp->setIcon(im.loadIcon("16/go-up.png"));
-	levelDown->setIcon(im.loadIcon("16/go-down.png"));
-	levelTop->setIcon(im.loadIcon("16/go-top.png"));
-	levelBottom->setIcon(im.loadIcon("16/go-bottom.png"));
-	levelLabel->setAlignment( Qt::AlignCenter );
 
-	doGroup->setIcon(im.loadIcon("group.png"));
-	doUnGroup->setIcon(im.loadIcon("ungroup.png"));
+	levelUp->setIcon(IconManager::instance().loadIcon("16/level-up.png"));
+	levelDown->setIcon(IconManager::instance().loadIcon("16/level-down.png"));
+	levelTop->setIcon(IconManager::instance().loadIcon("16/level-top.png"));
+	levelBottom->setIcon(IconManager::instance().loadIcon("16/level-bottom.png"));
 
 	flipH->setIcon(im.loadIcon("16/flip-object-horizontal.png"));
 	flipH->setCheckable( true );
@@ -100,12 +103,6 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	a.addPixmap(im.loadPixmap("16/lock-unlocked.png"), QIcon::Normal, QIcon::Off);
 	doLock->setIcon(a);
 
-	noPrint->setCheckable( true );
-	QIcon a2 = QIcon();
-	a2.addPixmap(im.loadPixmap("NoPrint.png"), QIcon::Normal, QIcon::On);
-	a2.addPixmap(im.loadPixmap("16/document-print.png"), QIcon::Normal, QIcon::Off);
-	noPrint->setIcon(a2);
-
 	noResize->setCheckable( true );
 	QIcon a3 = QIcon();
 	a3.addPixmap(im.loadPixmap("framenoresize.png"), QIcon::Normal, QIcon::On);
@@ -129,12 +126,8 @@ PropertiesPalette_XYZ::PropertiesPalette_XYZ( QWidget* parent) : QWidget(parent)
 	connect(levelBottom, SIGNAL(clicked()), this, SLOT(handleBack()));
 	connect(basePointWidget, SIGNAL(buttonClicked(int)), this, SLOT(handleBasePoint(int)));
 
-	connect(nameEdit , SIGNAL(Leaved()) , this, SLOT(handleNewName()));
 	connect(doLock   , SIGNAL(clicked()), this, SLOT(handleLock()));
-	connect(noPrint  , SIGNAL(clicked()), this, SLOT(handlePrint()));
 	connect(noResize , SIGNAL(clicked()), this, SLOT(handleLockSize()));
-	connect(doGroup  , SIGNAL(clicked()), this, SLOT(handleGrouping()) );
-	connect(doUnGroup, SIGNAL(clicked()), this, SLOT(handleUngrouping()) );
 
 	m_haveItem = false;
 	xposSpin->showValue(0);
@@ -204,19 +197,16 @@ void PropertiesPalette_XYZ::unsetDoc()
 	m_haveItem = false;
 	m_doc   = nullptr;
 	m_item  = nullptr;
-	nameEdit->clear();
 	xposSpin->setConstants(nullptr);
 	yposSpin->setConstants(nullptr);
 	widthSpin->setConstants(nullptr);
 	heightSpin->setConstants(nullptr);
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(false);
 	flipH->setEnabled(false);
 	flipV->setEnabled(false);
-	xposLabel->setText( tr( "&X-Pos:" ) );
-	yposLabel->setText( tr( "&Y-Pos:" ) );
-	widthLabel->setText( tr( "&Width:" ) );
-	heightLabel->setText( tr( "&Height:" ) );
+	xposLabel->setText(tr("&X"));
+	yposLabel->setText(tr("&Y"));
+	widthLabel->setText(tr("&W"));
+	heightLabel->setText(tr("&H"));
 	xposSpin->showValue(0);
 	yposSpin->showValue(0);
 	widthSpin->showValue(0);
@@ -236,20 +226,20 @@ void PropertiesPalette_XYZ::setLineMode(int lineMode)
 {
 	if (lineMode == 0)
 	{
-		xposLabel->setText( tr( "&X-Pos:" ) );
-		yposLabel->setText( tr( "&Y-Pos:" ) );
-		widthLabel->setText( tr( "&Width:" ) );
-		heightLabel->setText( tr( "&Height:" ) );
+		xposLabel->setText(tr("&X"));
+		yposLabel->setText(tr("&Y"));
+		widthLabel->setText(tr("&W"));
+		heightLabel->setText(tr("&H"));
 		rotationSpin->setEnabled(true);
 		heightSpin->setEnabled(false);
 		m_lineMode = false;
 	}
 	else
 	{
-		xposLabel->setText( tr( "&X1:" ) );
-		yposLabel->setText( tr( "Y&1:" ) );
-		widthLabel->setText( tr( "X&2:" ) );
-		heightLabel->setText( tr( "&Y2:" ) );
+		xposLabel->setText(tr("&X1:"));
+		yposLabel->setText(tr("Y&1:"));
+		widthLabel->setText(tr("X&2:"));
+		heightLabel->setText(tr("&Y2:"));
 		rotationSpin->setEnabled(false);
 		heightSpin->setEnabled(true);
 		m_lineMode = true;
@@ -289,23 +279,17 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	if (!m_doc)
 		setDoc(item->doc());
 
-	disconnect(nameEdit, SIGNAL(Leaved()), this, SLOT(handleNewName()));
-
 	m_haveItem = false;
 	m_item = item;
 
-	nameEdit->setText(m_item->itemName());
 	levelLabel->setText( QString::number(m_item->level()) );
 
-	connect(nameEdit, SIGNAL(Leaved()), this, SLOT(handleNewName()));
-
 //CB replaces old emits from PageItem::emitAllToGUI()
 	disconnect(xposSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewX()));
 	disconnect(yposSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewY()));
 	disconnect(widthSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewW()));
 	disconnect(heightSpin, SIGNAL(valueChanged(double)), this, SLOT(handleNewH()));
 	disconnect(doLock, SIGNAL(clicked()), this, SLOT(handleLock()));
-	disconnect(noPrint, SIGNAL(clicked()), this, SLOT(handlePrint()));
 	disconnect(noResize, SIGNAL(clicked()), this, SLOT(handleLockSize()));
 	disconnect(flipH, SIGNAL(clicked()), this, SLOT(handleFlipH()));
 	disconnect(flipV, SIGNAL(clicked()), this, SLOT(handleFlipV()));
@@ -324,7 +308,6 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	flipH->setCheckable(checkableFlip);
 	flipV->setCheckable(checkableFlip);
 
-	noPrint->setChecked(!item->printEnabled());
 	showFlippedH(item->imageFlippedH());
 	showFlippedV(item->imageFlippedV());
 	double rr = item->rotation();
@@ -339,35 +322,39 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 	connect(widthSpin   , SIGNAL(valueChanged(double)), this, SLOT(handleNewW()), Qt::UniqueConnection);
 	connect(heightSpin  , SIGNAL(valueChanged(double)), this, SLOT(handleNewH()), Qt::UniqueConnection);
 	connect(doLock  , SIGNAL(clicked()), this, SLOT(handleLock()), Qt::UniqueConnection);
-	connect(noPrint , SIGNAL(clicked()), this, SLOT(handlePrint()), Qt::UniqueConnection);
 	connect(noResize, SIGNAL(clicked()), this, SLOT(handleLockSize()), Qt::UniqueConnection);
 	connect(flipH   , SIGNAL(clicked()), this, SLOT(handleFlipH()), Qt::UniqueConnection);
 	connect(flipV   , SIGNAL(clicked()), this, SLOT(handleFlipV()), Qt::UniqueConnection);
 	connect(rotationSpin, SIGNAL(valueChanged(double)), this, SLOT(handleRotation()), Qt::UniqueConnection);
 
-	bool setter = false;
-	xposSpin->setEnabled(!setter);
-	yposSpin->setEnabled(!setter);
-	bool haveSameParent = m_doc->m_Selection->objectsHaveSameParent();
-	levelGroup->setEnabled(haveSameParent && !item->locked());
+	xposSpin->setEnabled(true);
+	yposSpin->setEnabled(true);
+	{
+		bool enabled = m_doc->m_Selection->objectsHaveSameParent() && !item->locked();
+		levelTop->setEnabled(enabled);
+		levelUp->setEnabled(enabled);
+		levelDown->setEnabled(enabled);
+		levelBottom->setEnabled(enabled);
+	}
+	// TODO: what is doing this?
 	if ((m_item->isGroup()) && (!m_item->isSingleSel))
 	{
 		setEnabled(true);
 	}
 	if ((m_item->itemType() == PageItem::Line) && m_lineMode)
 	{
-		xposLabel->setText( tr( "&X1:" ) );
-		yposLabel->setText( tr( "Y&1:" ) );
-		widthLabel->setText( tr( "X&2:" ) );
-		heightLabel->setText( tr( "&Y2:" ) );
+		xposLabel->setText(tr("&X1"));
+		yposLabel->setText(tr("Y&1"));
+		widthLabel->setText(tr("X&2"));
+		heightLabel->setText(tr("&Y2"));
 		rotationSpin->setEnabled(false);
 	}
 	else
 	{
-		xposLabel->setText( tr( "&X-Pos:" ) );
-		yposLabel->setText( tr( "&Y-Pos:" ) );
-		widthLabel->setText( tr( "&Width:" ) );
-		heightLabel->setText( tr( "&Height:" ) );
+		xposLabel->setText(tr("&X"));
+		yposLabel->setText(tr("&Y"));
+		widthLabel->setText(tr("&W"));
+		heightLabel->setText(tr("&H"));
 		rotationSpin->setEnabled(true);
 	}
 	m_haveItem = true;
@@ -390,14 +377,6 @@ void PropertiesPalette_XYZ::setCurrentItem(PageItem *item)
 		rrR = 360 - rrR;
 	noResize->setEnabled(!m_item->isArc());
 	
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(false);
-	if ((m_doc->m_Selection->count() > 1) && (haveSameParent))
-		doGroup->setEnabled(true);
-	if (m_doc->m_Selection->count() == 1)
-		doUnGroup->setEnabled(m_item->isGroup());
-	if ((m_doc->appMode == modeEditClip) && (m_item->isGroup()))
-		doUnGroup->setEnabled(false);
 	if (m_item->asOSGFrame())
 	{
 		setEnabled(true);
@@ -414,7 +393,6 @@ void PropertiesPalette_XYZ::handleAppModeChanged(int oldMode, int mode)
 {
 	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
 		return;
-	doUnGroup->setEnabled(mode != modeEdit && mode != modeEditClip && m_item->isGroup());
 	doLock->setEnabled(mode != modeEditClip);
 }
 
@@ -423,8 +401,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 	if (!m_haveDoc || !m_ScMW || m_ScMW->scriptIsRunning())
 		return;
 
-	nameEdit->setEnabled(m_doc->m_Selection->count() == 1);
-
 	PageItem* currItem = currentItemFromSelection();
 	if (m_doc->m_Selection->count() > 1)
 	{
@@ -442,10 +418,10 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 			m_ScMW->view->RCenter = FPoint(gx, gy + gh);
 		else if (bp == 4)
 			m_ScMW->view->RCenter = FPoint(gx + gw, gy + gh);
-		xposLabel->setText( tr( "&X-Pos:" ) );
-		yposLabel->setText( tr( "&Y-Pos:" ) );
-		widthLabel->setText( tr( "&Width:" ) );
-		heightLabel->setText( tr( "&Height:" ) );
+		xposLabel->setText(tr("&X"));
+		yposLabel->setText(tr("&Y"));
+		widthLabel->setText(tr("&W"));
+		heightLabel->setText(tr("&H"));
 
 		xposSpin->showValue(gx);
 		yposSpin->showValue(gy);
@@ -459,7 +435,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		heightSpin->setEnabled(true);
 		rotationSpin->setEnabled(true);
 
-		nameEdit->setEnabled(false);
 		flipH->setCheckable( false );
 		flipV->setCheckable( false );
 		flipH->setChecked(false);
@@ -475,12 +450,6 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		int itemType = currItem ? (int) currItem->itemType() : -1;
 		
 		m_haveItem = (itemType!=-1);
-		if (itemType == -1)
-		{
-			doGroup->setEnabled(false);
-			doUnGroup->setEnabled(false);
-		}
-		nameEdit->setEnabled(true);
 		basePointWidget->setEnabled(true);
 
 		setEnabled(true);
@@ -510,10 +479,10 @@ void PropertiesPalette_XYZ::handleSelectionChanged()
 		switch (itemType)
 		{
 		case -1:
-			xposLabel->setText( tr( "&X-Pos:" ) );
-			yposLabel->setText( tr( "&Y-Pos:" ) );
-			widthLabel->setText( tr( "&Width:" ) );
-			heightLabel->setText( tr( "&Height:" ) );
+			xposLabel->setText(tr("&X"));
+			yposLabel->setText(tr("&Y"));
+			widthLabel->setText(tr("&W"));
+			heightLabel->setText(tr("&H"));
 
 			xposSpin->showValue(0);
 			yposSpin->showValue(0);
@@ -1155,13 +1124,6 @@ void PropertiesPalette_XYZ::handleLockSize()
 	m_ScMW->scrActions["itemLockSize"]->toggle();
 }
 
-void PropertiesPalette_XYZ::handlePrint()
-{
-	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
-		return;
-	m_ScMW->scrActions["itemPrintingEnabled"]->toggle();
-}
-
 void PropertiesPalette_XYZ::handleFlipH()
 {
 	if (!m_haveDoc || !m_haveItem || !m_ScMW || m_ScMW->scriptIsRunning())
@@ -1176,6 +1138,7 @@ void PropertiesPalette_XYZ::handleFlipV()
 	m_ScMW->scrActions["itemFlipV"]->toggle();
 }
 
+/*
 void PropertiesPalette_XYZ::handleNewName()
 {
 	if (m_ScMW->scriptIsRunning() || !m_haveDoc || !m_haveItem)
@@ -1222,6 +1185,7 @@ void PropertiesPalette_XYZ::handleNewName()
 		}
 	}
 }
+*/
 
 void PropertiesPalette_XYZ::installSniffer(ScrSpinBox *spinBox)
 {
@@ -1334,11 +1298,6 @@ void PropertiesPalette_XYZ::showSizeLocked(bool isSizeLocked)
 	noResize->setChecked(isSizeLocked);
 }
 
-void PropertiesPalette_XYZ::showPrintingEnabled(bool isPrintingEnabled)
-{
-	noPrint->setChecked(!isPrintingEnabled);
-}
-
 void PropertiesPalette_XYZ::showFlippedH(bool isFlippedH)
 {
 	flipH->setChecked(isFlippedH);
@@ -1348,20 +1307,3 @@ void PropertiesPalette_XYZ::showFlippedV(bool isFlippedV)
 {
 	flipV->setChecked(isFlippedV);
 }
-
-void PropertiesPalette_XYZ::handleGrouping()
-{
-	m_ScMW->GroupObj();
-	doGroup->setEnabled(false);
-	doUnGroup->setEnabled(true);
-	handleSelectionChanged();
-	//FIXME
-	//TabStack->setItemEnabled(idShapeItem, false);
-}
-
-void PropertiesPalette_XYZ::handleUngrouping()
-{
-	m_ScMW->UnGroupObj();
-	m_doc->invalidateAll();
-	m_doc->regionsChanged()->update(QRect());
-}
diff --git a/scribus/ui/propertiespalette_xyz.h b/scribus/ui/propertiespalette_xyz.h
index 7892c5043..4c2c2c3be 100644
--- a/scribus/ui/propertiespalette_xyz.h
+++ b/scribus/ui/propertiespalette_xyz.h
@@ -14,10 +14,10 @@ for which a new license (GPL+exception) is in place.
 #include "linkbutton.h"
 #include "sclistboxpixmap.h"
 #include "scguardedptr.h"
+#include "pageitem.h"
 
 class BasePointWidget;
 class NameWidget;
-class PageItem;
 class ScribusDoc;
 class Selection;
 class ScribusMainWindow;
@@ -61,7 +61,6 @@ public slots:
 	void showRotation(double r);
 	void showLocked(bool);
 	void showSizeLocked(bool);
-	void showPrintingEnabled(bool);
 	void showFlippedH(bool);
 	void showFlippedV(bool);
 
@@ -83,10 +82,6 @@ private slots:
 	void handleBasePoint(int m);
 	void handleLock();
 	void handleLockSize();
-	void handlePrint();
-	void handleNewName();
-	void handleGrouping();
-	void handleUngrouping();
 
 protected slots:
 	//virtual void reject();
diff --git a/scribus/ui/propertiespalette_xyzbase.ui b/scribus/ui/propertiespalette_xyzbase.ui
index 06e9c35d5..bc7e21453 100644
--- a/scribus/ui/propertiespalette_xyzbase.ui
+++ b/scribus/ui/propertiespalette_xyzbase.ui
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>280</width>
+    <width>635</width>
     <height>333</height>
    </rect>
   </property>
@@ -30,404 +30,289 @@
     <number>0</number>
    </property>
    <item>
-    <widget class="QGroupBox" name="nameGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Name</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout">
-      <property name="spacing">
-       <number>2</number>
-      </property>
-      <property name="leftMargin">
-       <number>2</number>
-      </property>
-      <property name="topMargin">
-       <number>2</number>
-      </property>
-      <property name="rightMargin">
-       <number>2</number>
-      </property>
-      <property name="bottomMargin">
-       <number>2</number>
-      </property>
-      <item>
-       <widget class="NameWidget" name="nameEdit">
-        <property name="focusPolicy">
-         <enum>Qt::ClickFocus</enum>
-        </property>
-        <property name="toolTip">
-         <string>Name of selected object</string>
-        </property>
-       </widget>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <widget class="QGroupBox" name="geoGroup">
-     <property name="sizePolicy">
-      <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
-     <property name="title">
-      <string>Geometry</string>
-     </property>
-     <layout class="QVBoxLayout" name="verticalLayout_2">
-      <property name="leftMargin">
-       <number>2</number>
-      </property>
-      <property name="topMargin">
-       <number>2</number>
-      </property>
-      <property name="rightMargin">
-       <number>2</number>
-      </property>
-      <property name="bottomMargin">
-       <number>2</number>
-      </property>
-      <item>
-       <layout class="QGridLayout" name="geoGroupLayout">
-        <property name="leftMargin">
-         <number>5</number>
-        </property>
-        <property name="topMargin">
-         <number>5</number>
-        </property>
-        <property name="rightMargin">
-         <number>5</number>
-        </property>
-        <property name="bottomMargin">
-         <number>5</number>
-        </property>
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QLabel" name="xposLabel">
-          <property name="text">
-           <string>&amp;X-Pos:</string>
-          </property>
-          <property name="buddy">
-           <cstring>xposSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="ScrSpinBox" name="xposSpin">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
-          </property>
-          <property name="toolTip">
-           <string>Horizontal position of current basepoint</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="0">
-         <widget class="QLabel" name="widthLabel">
-          <property name="text">
-           <string>&amp;Width:</string>
-          </property>
-          <property name="buddy">
-           <cstring>widthSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="yposLabel">
-          <property name="text">
-           <string>&amp;Y-Pos:</string>
-          </property>
-          <property name="buddy">
-           <cstring>yposSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="ScrSpinBox" name="yposSpin">
-          <property name="toolTip">
-           <string>Vertical position of current basepoint</string>
-          </property>
-         </widget>
-        </item>
-        <item row="2" column="1">
-         <widget class="ScrSpinBox" name="widthSpin">
-          <property name="toolTip">
-           <string>Width of current selection</string>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="0">
-         <widget class="QLabel" name="heightLabel">
-          <property name="text">
-           <string>&amp;Height:</string>
-          </property>
-          <property name="buddy">
-           <cstring>heightSpin</cstring>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="1">
-         <widget class="ScrSpinBox" name="heightSpin">
-          <property name="toolTip">
-           <string>Height of current selection</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="0">
-         <widget class="QLabel" name="rotationLabel">
-          <property name="text">
-           <string>&amp;Rotation:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="4" column="1">
-         <widget class="ScrSpinBox" name="rotationSpin">
-          <property name="toolTip">
-           <string>Rotation of object at current basepoint</string>
-          </property>
-          <property name="wrapping">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="0">
-         <widget class="QLabel" name="basepointLabel">
-          <property name="toolTip">
-           <string>Point from which measurements or rotation angles are referenced</string>
-          </property>
-          <property name="text">
-           <string>Basepoint:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="5" column="1">
-         <widget class="BasePointWidget" name="basePointWidget" native="true"/>
-        </item>
-        <item row="2" column="2" rowspan="2">
-         <widget class="LinkButton" name="keepFrameWHRatioButton">
-          <property name="maximumSize">
-           <size>
-            <width>15</width>
-            <height>32767</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Keep the aspect ratio</string>
-          </property>
-          <property name="text">
-           <string>...</string>
-          </property>
-          <property name="checkable">
-           <bool>true</bool>
-          </property>
-          <property name="autoRaise">
-           <bool>true</bool>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-     </layout>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_2">
-     <item>
-      <widget class="QGroupBox" name="levelGroup">
-       <property name="title">
-        <string>Level</string>
+    <layout class="QGridLayout" name="gridLayout_3">
+     <item row="1" column="5">
+      <widget class="QLabel" name="heightLabel">
+       <property name="text">
+        <string>&amp;H</string>
+       </property>
+       <property name="buddy">
+        <cstring>heightSpin</cstring>
        </property>
-       <layout class="QGridLayout" name="gridLayout">
-        <property name="leftMargin">
-         <number>5</number>
-        </property>
-        <property name="topMargin">
-         <number>5</number>
-        </property>
-        <property name="rightMargin">
-         <number>5</number>
-        </property>
-        <property name="bottomMargin">
-         <number>5</number>
-        </property>
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <item row="0" column="0">
-         <widget class="QToolButton" name="levelUp">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move one level up</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="0">
-         <widget class="QToolButton" name="levelDown">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move one level down</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QToolButton" name="levelTop">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move to front</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="QToolButton" name="levelBottom">
-          <property name="maximumSize">
-           <size>
-            <width>22</width>
-            <height>22</height>
-           </size>
-          </property>
-          <property name="toolTip">
-           <string>Move to back</string>
-          </property>
-          <property name="text">
-           <string/>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="2" rowspan="2">
-         <widget class="QLabel" name="levelLabel">
-          <property name="toolTip">
-           <string>Indicates the level the object is on, 1 means the object is at the bottom</string>
-          </property>
-          <property name="text">
-           <string>0</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
       </widget>
      </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
+     <item row="0" column="7" rowspan="2">
+      <widget class="LinkButton" name="keepFrameWHRatioButton">
+       <property name="minimumSize">
+        <size>
+         <width>8</width>
+         <height>43</height>
+        </size>
+       </property>
+       <property name="text">
+        <string>...</string>
+       </property>
+       <property name="checkable">
+        <bool>true</bool>
        </property>
-       <property name="sizeHint" stdset="0">
+      </widget>
+     </item>
+     <item row="0" column="5">
+      <widget class="QLabel" name="widthLabel">
+       <property name="text">
+        <string>&amp;W</string>
+       </property>
+       <property name="buddy">
+        <cstring>widthSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="xposLabel">
+       <property name="text">
+        <string>&amp;X:</string>
+       </property>
+       <property name="buddy">
+        <cstring>xposSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="5" colspan="2">
+      <layout class="QHBoxLayout" name="horizontalLayout_3">
+       <item>
+        <widget class="QToolButton" name="noResize">
+         <property name="toolTip">
+          <string>Lock or unlock the size of the object</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="doLock">
+         <property name="toolTip">
+          <string>Lock or unlock the object</string>
+         </property>
+         <property name="text">
+          <string/>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <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="1" column="1">
+      <widget class="QLabel" name="yposLabel">
+       <property name="text">
+        <string>&amp;Y:</string>
+       </property>
+       <property name="buddy">
+        <cstring>yposSpin</cstring>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="2" rowspan="3">
+      <widget class="BasePointWidget" name="basePointWidget" native="true">
+       <property name="minimumSize">
         <size>
-         <width>40</width>
+         <width>20</width>
          <height>20</height>
         </size>
        </property>
-      </spacer>
+      </widget>
      </item>
-     <item>
-      <layout class="QGridLayout" name="gridLayout_2">
-       <item row="0" column="0">
-        <widget class="QToolButton" name="doGroup">
+     <item row="1" column="6">
+      <widget class="ScrSpinBox" name="heightSpin">
+       <property name="toolTip">
+        <string>Height of current selection</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="6">
+      <widget class="ScrSpinBox" name="widthSpin">
+       <property name="toolTip">
+        <string>Width of current selection</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="5" colspan="2">
+      <layout class="QHBoxLayout" name="horizontalLayout_5">
+       <item>
+        <widget class="QToolButton" name="levelBottom">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Group the selected objects</string>
+          <string>Move to back</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="1" column="0">
-        <widget class="QToolButton" name="doUnGroup">
+       <item>
+        <widget class="QToolButton" name="levelDown">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Ungroup the selected group</string>
+          <string>Move one level down</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="1">
-        <widget class="QToolButton" name="flipH">
+       <item>
+        <widget class="QToolButton" name="levelUp">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Flip horizontally</string>
+          <string>Move one level up</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="1" column="1">
-        <widget class="QToolButton" name="flipV">
+       <item>
+        <widget class="QToolButton" name="levelTop">
+         <property name="maximumSize">
+          <size>
+           <width>22</width>
+           <height>22</height>
+          </size>
+         </property>
          <property name="toolTip">
-          <string>Flip vertically</string>
+          <string>Move to front</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="2">
-        <widget class="QToolButton" name="doLock">
+       <item>
+        <widget class="QLabel" name="levelLabel">
          <property name="toolTip">
-          <string>Lock or unlock the object</string>
+          <string>Indicates the level the object is on, 1 means the object is at the bottom</string>
          </property>
          <property name="text">
-          <string/>
+          <string>0</string>
          </property>
         </widget>
        </item>
-       <item row="1" column="2">
-        <widget class="QToolButton" name="noPrint">
+       <item>
+        <spacer name="horizontalSpacer">
+         <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="2" column="4">
+      <widget class="ScrSpinBox" name="rotationSpin">
+       <property name="toolTip">
+        <string>Rotation of object at current basepoint</string>
+       </property>
+       <property name="wrapping">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="3">
+      <widget class="QLabel" name="rotation">
+       <property name="text">
+        <string>⟳</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="4">
+      <layout class="QHBoxLayout" name="horizontalLayout">
+       <item>
+        <widget class="QToolButton" name="flipV">
          <property name="toolTip">
-          <string>Enable or disable exporting of the object</string>
+          <string>Flip vertically</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
-       <item row="0" column="3">
-        <widget class="QToolButton" name="noResize">
+       <item>
+        <widget class="QToolButton" name="flipH">
          <property name="toolTip">
-          <string>Lock or unlock the size of the object</string>
+          <string>Flip horizontally</string>
          </property>
          <property name="text">
           <string/>
          </property>
         </widget>
        </item>
+       <item>
+        <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>
+     <item row="0" column="2" colspan="3">
+      <widget class="ScrSpinBox" name="xposSpin">
+       <property name="sizePolicy">
+        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+         <horstretch>0</horstretch>
+         <verstretch>0</verstretch>
+        </sizepolicy>
+       </property>
+       <property name="toolTip">
+        <string>Horizontal position of current basepoint</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="2" colspan="3">
+      <widget class="ScrSpinBox" name="yposSpin">
+       <property name="toolTip">
+        <string>Vertical position of current basepoint</string>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
    <item>
@@ -446,11 +331,6 @@
   </layout>
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>NameWidget</class>
-   <extends>QLineEdit</extends>
-   <header>ui/propertiespalette_utils.h</header>
-  </customwidget>
   <customwidget>
    <class>ScrSpinBox</class>
    <extends>QDoubleSpinBox</extends>
@@ -468,6 +348,14 @@
    <header>ui/linkbutton.h</header>
   </customwidget>
  </customwidgets>
+ <tabstops>
+  <tabstop>xposSpin</tabstop>
+  <tabstop>yposSpin</tabstop>
+  <tabstop>levelBottom</tabstop>
+  <tabstop>levelDown</tabstop>
+  <tabstop>levelUp</tabstop>
+  <tabstop>levelTop</tabstop>
+ </tabstops>
  <resources/>
  <connections/>
 </ui>
xyz-bubu.diff (54,014 bytes)

ranjithsiji

2019-11-27 07:09

reporter   ~0047150

What is the status of this feature? Will it go into the main code?

Issue History

Date Modified Username Field Change
2019-11-01 17:15 ale New Issue
2019-11-01 17:15 ale File Added: xyz-3.png
2019-11-01 17:48 ale File Added: indigo-pp-xyz.diff
2019-11-01 17:48 ale Note Added: 0046896
2019-11-01 19:31 PeterBenedek File Added: Martin's_basepoint.jpg
2019-11-01 19:31 PeterBenedek Note Added: 0046897
2019-11-01 19:57 jghali Note Added: 0046898
2019-11-01 19:57 jghali Summary Inidigo UI: shrink the size of the XYZ pane => Indigo UI: shrink the size of the XYZ pane
2019-11-01 20:20 PeterBenedek File Added: Move_icons.jpg
2019-11-01 20:20 PeterBenedek Note Added: 0046900
2019-11-01 20:34 PeterBenedek Note Added: 0046901
2019-11-01 21:33 ale Note Added: 0046902
2019-11-02 05:38 jghali Note Added: 0046905
2019-11-02 05:42 jghali Note Edited: 0046905 View Revisions
2019-11-02 06:43 cbradney Note Added: 0046907
2019-11-02 07:36 ale Note Added: 0046909
2019-11-02 10:08 PeterBenedek Note Added: 0046911
2019-11-02 10:10 PeterBenedek Note Edited: 0046911 View Revisions
2019-11-02 10:33 PeterBenedek Note Added: 0046912
2019-11-02 11:28 ale File Added: xyz-4.png
2019-11-02 11:28 ale Note Added: 0046914
2019-11-02 11:29 ale File Deleted: xyz-4.png
2019-11-02 11:29 ale File Added: xyz-4.png
2019-11-02 11:31 ale Note Edited: 0046914 View Revisions
2019-11-02 11:37 ale File Added: xyz-4.xcf
2019-11-02 11:37 ale Note Added: 0046916
2019-11-02 12:22 PeterBenedek File Added: xyz_modified.jpg
2019-11-02 12:22 PeterBenedek File Added: xyz-4_modified_PeterB.xcf
2019-11-02 12:22 PeterBenedek File Added: Basepoint.jpg
2019-11-02 12:22 PeterBenedek Note Added: 0046917
2019-11-02 13:00 PeterBenedek File Added: xyz_PeterB.jpg
2019-11-02 13:00 PeterBenedek Note Added: 0046919
2019-11-02 13:24 ale Note Added: 0046923
2019-11-02 14:20 PeterBenedek File Added: xyz_02_PeterB.jpg
2019-11-02 14:20 PeterBenedek File Added: alignment.gif
2019-11-02 14:20 PeterBenedek Note Added: 0046924
2019-11-02 14:26 PeterBenedek File Deleted: xyz_02_PeterB.jpg
2019-11-02 14:26 PeterBenedek File Added: xyz_PeterB-2.jpg
2019-11-02 16:13 ale Note Added: 0046927
2019-11-02 17:38 PeterBenedek File Deleted: xyz_modified.jpg
2019-11-02 17:49 PeterBenedek Note Added: 0046929
2019-11-02 18:51 PeterBenedek File Added: XYZ_compromise.jpg
2019-11-02 18:51 PeterBenedek Note Added: 0046930
2019-11-02 19:02 PeterBenedek File Deleted: XYZ_compromise.jpg
2019-11-02 19:05 PeterBenedek File Added: XYZ_compromise.jpg
2019-11-02 19:05 PeterBenedek Note Added: 0046931
2019-11-02 19:30 ale File Added: xyz-5.png
2019-11-02 19:30 ale Note Added: 0046932
2019-11-02 19:42 ale Note Added: 0046933
2019-11-02 20:17 PeterBenedek Note Added: 0046934
2019-11-03 08:09 PeterBenedek File Added: ale_original.jpg
2019-11-03 08:09 PeterBenedek File Added: peter_request.jpg
2019-11-03 08:09 PeterBenedek Note Added: 0046938
2019-11-03 08:10 PeterBenedek Note Edited: 0046938 View Revisions
2019-11-03 11:40 ale Note Added: 0046939
2019-11-03 11:41 ale Note Edited: 0046939 View Revisions
2019-11-03 11:43 ale File Added: xyz-6.png
2019-11-03 11:44 ale Note Edited: 0046939 View Revisions
2019-11-03 12:14 PeterBenedek File Added: basepoint_flipp_horizontally.jpg
2019-11-03 12:14 PeterBenedek File Added: basepoint_middle_left_size.jpg
2019-11-03 12:14 PeterBenedek Note Added: 0046940
2019-11-03 12:47 ale Note Added: 0046941
2019-11-03 13:02 PeterBenedek File Added: Flip.jpg
2019-11-03 13:22 PeterBenedek File Deleted: Flip.jpg
2019-11-03 13:32 PeterBenedek File Added: Flip_buttons.jpg
2019-11-03 13:32 PeterBenedek Note Added: 0046943
2019-11-03 13:34 PeterBenedek Note Edited: 0046943 View Revisions
2019-11-03 14:48 ale Note Added: 0046945
2019-11-03 15:26 PeterBenedek Note Added: 0046946
2019-11-04 17:16 ale File Added: indigo-pp-xyz-peter.diff
2019-11-04 17:16 ale Note Added: 0046955
2019-11-04 17:17 ale Summary Indigo UI: shrink the size of the XYZ pane => [PATCH] Indigo UI: shrink the size of the XYZ pane
2019-11-04 17:17 ale Patch No => Yes
2019-11-04 18:03 PeterBenedek Note Added: 0046957
2019-11-04 18:04 PeterBenedek Note Edited: 0046957 View Revisions
2019-11-04 18:24 ale Note Added: 0046958
2019-11-04 18:24 ale Note Edited: 0046958 View Revisions
2019-11-04 18:25 ale Note Edited: 0046896 View Revisions
2019-11-04 18:46 PeterBenedek Note Added: 0046960
2019-11-05 06:55 ale Note Edited: 0046958 View Revisions
2019-11-05 07:41 ale Relationship added related to 0015813
2019-11-05 08:34 PeterBenedek File Added: Basepoint_left.jpg
2019-11-05 08:34 PeterBenedek Note Added: 0046968
2019-11-05 08:38 PeterBenedek Note Edited: 0046968 View Revisions
2019-11-05 13:49 ale Note Added: 0046974
2019-11-05 13:50 ale Note Edited: 0046974 View Revisions
2019-11-05 14:06 ale Relationship added related to 0009048
2019-11-05 19:17 bubu File Added: Scribus, shrink the size of the XYZ pane.svg.png
2019-11-05 19:17 bubu Note Added: 0046978
2019-11-05 21:35 ale Note Added: 0046980
2019-11-06 08:07 ale File Added: xyz-bubu-01.png
2019-11-06 08:07 ale Note Added: 0046986
2019-11-06 08:45 PeterBenedek Note Added: 0046988
2019-11-06 08:50 bubu Note Added: 0046989
2019-11-06 10:22 ale Note Added: 0046991
2019-11-08 09:30 ale File Added: xyz-bubu.diff
2019-11-08 09:30 ale Note Added: 0047034
2019-11-27 07:09 ranjithsiji Note Added: 0047150