View Issue Details

IDProjectCategoryView StatusLast Update
0017113ScribusUsabilitypublic2024-02-12 21:30
Reporterpmjdebruijn Assigned Tojghali  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version1.6.2.svn 
Fixed in Version1.6.2.svn 
Summary0017113: MarginWidget steps at 1" at a time, too coarse
DescriptionCurrent when creating a new document (when working in inches), stepping the margin/bleed values, happens at 1" per mouseclick, which is much too coarse.

This seems to happen because the step is just set to 1 regardless of unitOfMeasure, there it may be 1" 1mm 1pt or whatever, and while it makes sense for millimeter it doesn't for inches.

The attached patch, adds a utility function in units.cpp, which centralized this stepping factor per UnitOfMeasure, which is then applied in the NewDoc window.

For Inches I've chosen a step size of 0.125" which is perfect for bleed, since this is almost the universally used bleed value for countries using Imperial measurements. And for margins it's a lot better than 1" as well, while still offering steps that align for full round inches.

This patch is however only one part of the issue, currently the default margins are set to 40pts, which don't result in a round number for either inches or millimeters:

prefsmanager.cpp: appPrefs.docSetupPrefs.margins.set(40, 40, 40, 40);
scpage.cpp: Margins(40,40,40,40),
scpage.cpp: initialMargins(40,40,40,40),

So I'd suggest changing this at least to 54, so it aligns with 0.75"=54pt/72pt, which is evenly divisible by 0.125" (and almost aligns to 19(.05)mm), but more ideally the default should probably be dependent on the unit of measure, or maybe apply some rounding after converting to the local unitOfMeasure? But I wasn't quite sure how to approach this.
Though I don't see this as a blocking issue to apply the current patches as they are, since they shouldn't negatively affect any usecase I can think of at least.

Tangentially Related Sidenote:
double unitGetRatioFromIndex(const int index) // shouldn't this have SCRIBUS_API set, see both ./scribus/units.cpp and ./scribus/units.h
Steps To ReproduceFile -> New
Default Unit: Inches
Margins Guides / Bleeds (either), Press the up/down buttons, and see the value change by full inches.
TagsNo tags attached.
PatchYes

Activities

pmjdebruijn

2024-01-09 18:38

reporter  

newdoc-unitofmeasure.patch (3,300 bytes)   
diff -Nurpd a/scribus/ui/marginwidget.cpp b/scribus/ui/marginwidget.cpp
--- a/scribus/ui/marginwidget.cpp	2024-01-07 18:06:55.000000000 +0100
+++ b/scribus/ui/marginwidget.cpp	2024-01-09 18:34:00.141637796 +0100
@@ -143,6 +143,16 @@ MarginWidget::MarginWidget( QWidget* par
 		addTab(bleedPage, tr("Bleeds"));
 	}
 
+	topR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	bottomR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	leftR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	rightR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+
+	BleedLeft->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	BleedRight->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	BleedTop->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	BleedBottom->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+
 	// hints
 	topR->setToolTip( "<qt>" + tr( "Distance between the top margin guide and the edge of the page" ) + "</qt>");
 	bottomR->setToolTip( "<qt>" + tr( "Distance between the bottom margin guide and the edge of the page" ) + "</qt>");
@@ -354,6 +364,17 @@ void MarginWidget::setNewUnit(int newUni
 		connect(BleedTop, SIGNAL(valueChanged(double)), this, SLOT(changeBleeds()));
 		connect(BleedBottom, SIGNAL(valueChanged(double)), this, SLOT(changeBleeds()));
 	}
+
+	topR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	bottomR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	leftR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	rightR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+
+	BleedLeft->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	BleedRight->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	BleedTop->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	BleedBottom->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+
 	connect(topR, SIGNAL(valueChanged(double)), this, SLOT(setTop()));
 	connect(bottomR, SIGNAL(valueChanged(double)), this, SLOT(setBottom()));
 	connect(leftR, SIGNAL(valueChanged(double)), this, SLOT(setLeft()));
diff -Nurpd a/scribus/units.cpp b/scribus/units.cpp
--- a/scribus/units.cpp	2024-01-07 18:07:07.000000000 +0100
+++ b/scribus/units.cpp	2024-01-09 18:30:58.088950628 +0100
@@ -28,6 +28,20 @@ for which a new license (GPL+exception)
 #include "units.h"
 
 /*!
+ * @brief Returns the SingleStep for the selected unit of measure.
+ */
+double SCRIBUS_API unitGetSingleStepFromIndex(const int index)
+{
+        switch (index)
+        {
+                case SC_IN:
+			return 0.125;
+                default:
+			return 1;
+        }
+}
+
+/*!
  * @brief Returns the ratio to points for the selected unit of measure. Ratios are for: PT, MM, IN, P, CM, C. DEG and PCT return 1.0 as they will never convert
  */
 double unitGetRatioFromIndex(const int index)
diff -Nurpd a/scribus/units.h b/scribus/units.h
--- a/scribus/units.h	2024-01-07 18:07:14.000000000 +0100
+++ b/scribus/units.h	2024-01-09 18:27:09.311993576 +0100
@@ -48,6 +48,7 @@ enum scUnit {
 	SC_PCT         = 7
 };
 
+double SCRIBUS_API unitGetSingleStepFromIndex(const int index);
 double SCRIBUS_API unitGetRatioFromIndex(const int index);
 int SCRIBUS_API unitGetBaseFromIndex(const int index);
 QString SCRIBUS_API unitGetStrFromIndex(const int index);
newdoc-unitofmeasure.patch (3,300 bytes)   
initialmargins-54.patch (1,260 bytes)   
diff -Nurpd a/scribus/prefsmanager.cpp b/scribus/prefsmanager.cpp
--- a/scribus/prefsmanager.cpp	2024-01-07 18:07:07.000000000 +0100
+++ b/scribus/prefsmanager.cpp	2024-01-09 19:02:26.136744976 +0100
@@ -313,7 +313,7 @@ void PrefsManager::initDefaults()
 	PageSize defaultPageSize(appPrefs.docSetupPrefs.pageSize);
 	appPrefs.docSetupPrefs.pageWidth = defaultPageSize.width();
 	appPrefs.docSetupPrefs.pageHeight = defaultPageSize.height();
-	appPrefs.docSetupPrefs.margins.set(40, 40, 40, 40);
+	appPrefs.docSetupPrefs.margins.set(54, 54, 54, 54);
 	appPrefs.docSetupPrefs.marginPreset = 0;
 	appPrefs.docSetupPrefs.bleeds.set(0, 0, 0, 0);
 	appPrefs.hyphPrefs.specialWords.clear();
diff -Nurpd a/scribus/scpage.cpp b/scribus/scpage.cpp
--- a/scribus/scpage.cpp	2024-01-07 18:07:07.000000000 +0100
+++ b/scribus/scpage.cpp	2024-01-09 19:04:38.273406876 +0100
@@ -39,8 +39,8 @@ for which a new license (GPL+exception)
 ScPage::ScPage(const double x, const double y, const double b, const double h) :
 	UndoObject(QObject::tr("Page")),
 	SingleObservable<ScPage>(nullptr),
-	Margins(40,40,40,40),
-	initialMargins(40,40,40,40),
+	Margins(54, 54, 54, 54),
+	initialMargins(54, 54, 54, 54),
 	undoManager(UndoManager::instance()),
 	m_xOffset(x),
 	m_yOffset(y),
initialmargins-54.patch (1,260 bytes)   

cbradney

2024-01-09 19:59

administrator   ~0050861

If you hold down shift while scrolling, you will get 0.1 increments instead of 1

pmjdebruijn

2024-01-10 17:40

reporter   ~0050866

Thanks for the hint, but though that doesn't really solve anything.

Users shouldn't need to know some Qt related hotkey to get a useful Spinbox.

Steps of 0.125" are preferable for inches over steps of 0.1", as this is how Imperial measuring tapes etc are marked as well. And then there's the practical point about bleed which is usually 0.125" in Imperial measurement using countries.

So the point of these two patches, is to improve the default user experience.

So I hope you'll considering applying them.

Attached: Minor rework of the function in units.cpp
newdoc-unitofmeasure-2.patch (3,251 bytes)   
diff -Nurpd a/scribus/ui/marginwidget.cpp b/scribus/ui/marginwidget.cpp
--- a/scribus/ui/marginwidget.cpp	2024-01-07 18:06:55.000000000 +0100
+++ b/scribus/ui/marginwidget.cpp	2024-01-09 18:34:00.141637796 +0100
@@ -143,6 +143,16 @@ MarginWidget::MarginWidget( QWidget* par
 		addTab(bleedPage, tr("Bleeds"));
 	}
 
+	topR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	bottomR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	leftR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	rightR->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+
+	BleedLeft->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	BleedRight->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	BleedTop->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+	BleedBottom->setSingleStep(unitGetSingleStepFromIndex(unitIndex));
+
 	// hints
 	topR->setToolTip( "<qt>" + tr( "Distance between the top margin guide and the edge of the page" ) + "</qt>");
 	bottomR->setToolTip( "<qt>" + tr( "Distance between the bottom margin guide and the edge of the page" ) + "</qt>");
@@ -354,6 +364,17 @@ void MarginWidget::setNewUnit(int newUni
 		connect(BleedTop, SIGNAL(valueChanged(double)), this, SLOT(changeBleeds()));
 		connect(BleedBottom, SIGNAL(valueChanged(double)), this, SLOT(changeBleeds()));
 	}
+
+	topR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	bottomR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	leftR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	rightR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+
+	BleedLeft->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	BleedRight->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	BleedTop->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+	BleedBottom->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex));
+
 	connect(topR, SIGNAL(valueChanged(double)), this, SLOT(setTop()));
 	connect(bottomR, SIGNAL(valueChanged(double)), this, SLOT(setBottom()));
 	connect(leftR, SIGNAL(valueChanged(double)), this, SLOT(setLeft()));
diff -Nurpd a/scribus/units.cpp b/scribus/units.cpp
--- a/scribus/units.cpp	2024-01-07 18:07:07.000000000 +0100
+++ b/scribus/units.cpp	2024-01-09 18:30:58.088950628 +0100
@@ -28,6 +28,19 @@ for which a new license (GPL+exception)
 #include "units.h"
 
 /*!
+ * @brief Returns the SingleStep for the selected unit of measure.
+ */
+double SCRIBUS_API unitGetSingleStepFromIndex(const int index)
+{
+	switch (index)
+	{
+		case SC_IN:
+			return 0.125;
+        }
+        return 1;
+}
+
+/*!
  * @brief Returns the ratio to points for the selected unit of measure. Ratios are for: PT, MM, IN, P, CM, C. DEG and PCT return 1.0 as they will never convert
  */
 double unitGetRatioFromIndex(const int index)
diff -Nurpd a/scribus/units.h b/scribus/units.h
--- a/scribus/units.h	2024-01-07 18:07:14.000000000 +0100
+++ b/scribus/units.h	2024-01-09 18:27:09.311993576 +0100
@@ -48,6 +48,7 @@ enum scUnit {
 	SC_PCT         = 7
 };
 
+double SCRIBUS_API unitGetSingleStepFromIndex(const int index);
 double SCRIBUS_API unitGetRatioFromIndex(const int index);
 int SCRIBUS_API unitGetBaseFromIndex(const int index);
 QString SCRIBUS_API unitGetStrFromIndex(const int index);
newdoc-unitofmeasure-2.patch (3,251 bytes)   

cbradney

2024-01-10 18:50

administrator   ~0050867

ITs not a Qt function, its a Scribus function. There are lots of things that our spinboxes do.. like allowing maths inside them.. basics like 1+3 (4).. or 1cm+10mm = 2cm or 1in+1cm etc.. different spin increments are a feature we added. These are documented in the help I believe (they were for sure at some point). While we might consider this patch, those functions also need considering.. the shift change would need to also adjust if the unit went from 1 to 0.125.

pmjdebruijn

2024-01-10 20:43

reporter   ~0050870

Ah I see, thanks for pointing that out. I'll work up a new patch tomorrow.

pmjdebruijn

2024-01-10 20:46

reporter   ~0050871

Actually here's work in progress, but it's not quite right... So I'll follow up tomorrow, but at least you can see what direction I'm trying to take this...

btw, shouldn't const int index in units.cpp/h actually be const scUnit index ?
newdoc-unitofmeasure-3.patch (5,014 bytes)   
diff -Nurpd a/scribus/ui/marginwidget.cpp b/scribus/ui/marginwidget.cpp
--- a/scribus/ui/marginwidget.cpp	2024-01-07 18:06:55.000000000 +0100
+++ b/scribus/ui/marginwidget.cpp	2024-01-10 21:32:10.800668530 +0100
@@ -143,6 +143,16 @@ MarginWidget::MarginWidget( QWidget* par
 		addTab(bleedPage, tr("Bleeds"));
 	}
 
+	topR->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+	bottomR->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+	leftR->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+	rightR->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+
+	BleedLeft->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+	BleedRight->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+	BleedTop->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+	BleedBottom->setSingleStep(unitGetSingleStepFromIndex(unitIndex, SC_BASE));
+
 	// hints
 	topR->setToolTip( "<qt>" + tr( "Distance between the top margin guide and the edge of the page" ) + "</qt>");
 	bottomR->setToolTip( "<qt>" + tr( "Distance between the bottom margin guide and the edge of the page" ) + "</qt>");
@@ -354,6 +364,17 @@ void MarginWidget::setNewUnit(int newUni
 		connect(BleedTop, SIGNAL(valueChanged(double)), this, SLOT(changeBleeds()));
 		connect(BleedBottom, SIGNAL(valueChanged(double)), this, SLOT(changeBleeds()));
 	}
+
+	topR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+	bottomR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+	leftR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+	rightR->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+
+	BleedLeft->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+	BleedRight->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+	BleedTop->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+	BleedBottom->setSingleStep(unitGetSingleStepFromIndex(newUnitIndex, SC_BASE));
+
 	connect(topR, SIGNAL(valueChanged(double)), this, SLOT(setTop()));
 	connect(bottomR, SIGNAL(valueChanged(double)), this, SLOT(setBottom()));
 	connect(leftR, SIGNAL(valueChanged(double)), this, SLOT(setLeft()));
diff -Nurpd a/scribus/ui/scrspinbox.cpp b/scribus/ui/scrspinbox.cpp
--- a/scribus/ui/scrspinbox.cpp	2024-01-07 18:06:55.000000000 +0100
+++ b/scribus/ui/scrspinbox.cpp	2024-01-10 21:32:10.800668530 +0100
@@ -342,22 +342,22 @@ bool ScrSpinBox::eventFilter(QObject* wa
 		bool altB = wheelEvent->modifiers() & Qt::AltModifier;
 		if (shiftB && !altB)
 		{
-			setSingleStep(0.1);
+			setSingleStep(unitGetSingleStepFromIndex(m_unitIndex, SC_SMALL));
 			retval = QAbstractSpinBox::event(event);
 		} 
 		else if (!shiftB && altB)
 		{
-			setSingleStep(10.0);
+			setSingleStep(unitGetSingleStepFromIndex(m_unitIndex, SC_BIG));
 			retval = QAbstractSpinBox::event(event);
 		}
 		else if (shiftB && altB)
 		{
-			setSingleStep(0.01);
+			setSingleStep(unitGetSingleStepFromIndex(m_unitIndex, SC_TINY));
 			retval = QAbstractSpinBox::event(event);
 		}
 		else
 		{
-			setSingleStep(1.0);
+			setSingleStep(unitGetSingleStepFromIndex(m_unitIndex, SC_BASE));
 			retval = QAbstractSpinBox::event(event);
 		}
 		return retval;
diff -Nurpd a/scribus/units.cpp b/scribus/units.cpp
--- a/scribus/units.cpp	2024-01-07 18:07:07.000000000 +0100
+++ b/scribus/units.cpp	2024-01-10 21:33:23.273031234 +0100
@@ -28,6 +28,37 @@ for which a new license (GPL+exception)
 #include "units.h"
 
 /*!
+ * @brief Returns the SingleStep for the selected unit of measure.
+ */
+double SCRIBUS_API unitGetSingleStepFromIndex(const int index, const scMagnitude magnitude)
+{
+	double ret;
+
+	switch (index)
+	{
+		case SC_IN:
+			ret = 0.125;
+			switch (magnitude)
+			{
+				case SC_TINY:
+					ret /= 4;
+					break;
+				case SC_SMALL:
+					ret /= 2;
+					break;
+				case SC_BIG:
+					ret *= 8;
+					break;
+			}
+			break;
+		default:
+			ret = pow(10, magnitude);
+        }
+
+        return ret;
+}
+
+/*!
  * @brief Returns the ratio to points for the selected unit of measure. Ratios are for: PT, MM, IN, P, CM, C. DEG and PCT return 1.0 as they will never convert
  */
 double unitGetRatioFromIndex(const int index)
diff -Nurpd a/scribus/units.h b/scribus/units.h
--- a/scribus/units.h	2024-01-07 18:07:14.000000000 +0100
+++ b/scribus/units.h	2024-01-10 21:32:10.800668530 +0100
@@ -29,6 +29,14 @@ for which a new license (GPL+exception)
 #define UNITMIN 0
 #define UNITMAX 7
 
+// powers of ten used as index
+enum scMagnitude {
+	SC_TINY  = -2,
+	SC_SMALL = -1,
+	SC_BASE	 =  0,
+	SC_BIG   =  1
+};
+
 enum scUnit {
 	SC_POINTS      = 0,
 	SC_PT          = 0,
@@ -48,6 +56,7 @@ enum scUnit {
 	SC_PCT         = 7
 };
 
+double SCRIBUS_API unitGetSingleStepFromIndex(const int index, const scMagnitude magnitude);
 double SCRIBUS_API unitGetRatioFromIndex(const int index);
 int SCRIBUS_API unitGetBaseFromIndex(const int index);
 QString SCRIBUS_API unitGetStrFromIndex(const int index);
newdoc-unitofmeasure-3.patch (5,014 bytes)   

pmjdebruijn

2024-01-11 17:06

reporter   ~0050881

So it's probably working fine, but it seems xfwm is catching Shift/Alt so I actually can't test this properly.

What confused me, is that Ctrl also shifts the magnitude by * 10, presumably this really is a Qt thing, which is why I couldn't find that behavior in ScrSpinBox.

But in the process for hunting a bug that actually wasn't a bug, I think I found a much better way to implement this, entirely in ScrSpinBox itself.
newdoc-unitofmeasure-4.patch (2,082 bytes)   
diff -Nurpd a/scribus/ui/scrspinbox.cpp b/scribus/ui/scrspinbox.cpp
--- a/scribus/ui/scrspinbox.cpp	2024-01-07 18:06:55.000000000 +0100
+++ b/scribus/ui/scrspinbox.cpp	2024-01-11 17:52:52.928675514 +0100
@@ -43,7 +43,7 @@ void ScrSpinBox::init(int unitIndex)
 	setSuffix(unitGetSuffixFromIndex(m_unitIndex));
 	setDecimals(unitGetPrecisionFromIndex(m_unitIndex));
 	setLocale(LocaleManager::instance().userPreferredLocale());
-	setSingleStep(1.0);
+	setSingleStep((m_unitIndex == SC_INCHES) ? 0.125 : 1.0);
 	lineEdit()->setValidator(nullptr);
 	disconnect(this, SIGNAL(valueChanged(const QString &)), this, SLOT(textChanged()));
 	connect(this, SIGNAL(valueChanged(const QString &)), this, SLOT(textChanged()));
@@ -52,7 +52,7 @@ void ScrSpinBox::init(int unitIndex)
 
 double ScrSpinBox::unitRatio() const
 {
-	return unitGetRatioFromIndex(m_unitIndex); 
+	return unitGetRatioFromIndex(m_unitIndex);
 }
 
 void ScrSpinBox::setValue(int val)
@@ -113,7 +113,7 @@ void ScrSpinBox::setNewUnit(int unitInde
 	double newUnitRatio = unitGetRatioFromIndex(unitIndex);
 	setMinimum(oldMin * newUnitRatio);
 	setMaximum(oldMax * newUnitRatio);
-	setSingleStep(1.0);
+	setSingleStep((m_unitIndex == SC_INCHES) ? 0.125 : 1.0);
 	m_unitIndex = unitIndex;
  	setValue(oldVal * newUnitRatio);
 }
@@ -342,22 +342,22 @@ bool ScrSpinBox::eventFilter(QObject* wa
 		bool altB = wheelEvent->modifiers() & Qt::AltModifier;
 		if (shiftB && !altB)
 		{
-			setSingleStep(0.1);
+			setSingleStep((m_unitIndex == SC_INCHES) ? 0.0625 : 0.1);
 			retval = QAbstractSpinBox::event(event);
-		} 
+		}
 		else if (!shiftB && altB)
 		{
-			setSingleStep(10.0);
+			setSingleStep((m_unitIndex == SC_INCHES) ? 1.0 : 10.0);
 			retval = QAbstractSpinBox::event(event);
 		}
 		else if (shiftB && altB)
 		{
-			setSingleStep(0.01);
+			setSingleStep((m_unitIndex == SC_INCHES) ? 0.03125 : 0.01);
 			retval = QAbstractSpinBox::event(event);
 		}
 		else
 		{
-			setSingleStep(1.0);
+			setSingleStep((m_unitIndex == SC_INCHES) ? 0.125 : 1.0);
 			retval = QAbstractSpinBox::event(event);
 		}
 		return retval;
newdoc-unitofmeasure-4.patch (2,082 bytes)   

cbradney

2024-01-11 18:03

administrator   ~0050882

Nope, *10 is also our work. ScrSpinBox has a lot of functionality we added.

pmjdebruijn

2024-01-12 08:52

reporter   ~0050883

No it's not, at least not as far as I can tell:
https://github.com/scribusproject/scribus/blob/master/scribus/ui/scrspinbox.cpp#L342 there is no handler for Ctrl there...

Yes you have a *10 handler implemented but that's mapped as (!shiftB && altB)

jghali

2024-02-12 21:30

administrator   ~0050982

@pmjdebruijn, I applied your newdoc-unitofmeasure-4 patch to 1.6.2.svn and 1.7.0.svn. Thanks!

Issue History

Date Modified Username Field Change
2024-01-09 18:38 pmjdebruijn New Issue
2024-01-09 18:38 pmjdebruijn File Added: newdoc-unitofmeasure.patch
2024-01-09 18:38 pmjdebruijn File Added: initialmargins-54.patch
2024-01-09 19:59 cbradney Note Added: 0050861
2024-01-10 17:40 pmjdebruijn Note Added: 0050866
2024-01-10 17:40 pmjdebruijn File Added: newdoc-unitofmeasure-2.patch
2024-01-10 18:50 cbradney Note Added: 0050867
2024-01-10 20:43 pmjdebruijn Note Added: 0050870
2024-01-10 20:46 pmjdebruijn Note Added: 0050871
2024-01-10 20:46 pmjdebruijn File Added: newdoc-unitofmeasure-3.patch
2024-01-11 17:06 pmjdebruijn Note Added: 0050881
2024-01-11 17:06 pmjdebruijn File Added: newdoc-unitofmeasure-4.patch
2024-01-11 18:03 cbradney Note Added: 0050882
2024-01-12 08:52 pmjdebruijn Note Added: 0050883
2024-02-12 21:30 jghali Assigned To => jghali
2024-02-12 21:30 jghali Status new => resolved
2024-02-12 21:30 jghali Resolution open => fixed
2024-02-12 21:30 jghali Fixed in Version => 1.6.2.svn
2024-02-12 21:30 jghali Note Added: 0050982