geda-developers team mailing list archive
-
geda-developers team
-
Mailing list archive
-
Message #00070
RFC: increment dialog patch [dev list]
Hey all,
I have finally decided to take a look at bug 699464:
https://bugs.launchpad.net/pcb/+bug/699464
This bug is regarding the fact that the Preferences->Increments dialog
does nothing as of now. (Nothing is saved, and the relevant values are
ignored by gpcb-menu.res.)
The following partial fix changes gpcb-menu.res to give 0 to the
ChangeSize funtions, rather than the hardcoded +/-5mil. The functions
then interpret 0 as "preference-defined value". Therefore, the dialog
will affect the current session, though the preferences are still not
saved.
(Actually, it passes "+" and "-" instead of 0. My recent commit d4ec435e
is needed for GetValue() to have correct behavior for this input.)
This is a user-visible change, so I am posting it for comments before
pushing.
diff --git a/src/action.c b/src/action.c
index 700bf29..b29d40b 100644
--- a/src/action.c
+++ b/src/action.c
@@ -2193,6 +2193,9 @@ ActionSetValue (int argc, char **argv, Coord x, Coord y)
SetGrid (value, false);
else
{
+ if (value == 0)
+ value = val[0] == '-' ? -Settings.increments->grid
+ : Settings.increments->grid;
/* On the way down, short against the minimum
* PCB drawing unit */
if ((value + PCB->Grid) < 1)
@@ -2206,6 +2209,9 @@ ActionSetValue (int argc, char **argv, Coord x, Coord y)
case F_LineSize:
case F_Line:
+ if (!absolute && value == 0)
+ value = val[0] == '-' ? -Settings.increments->line
+ : Settings.increments->line;
SetLineSize (absolute ? value : value + Settings.LineThickness);
hid_action ("RouteStylesChanged");
break;
@@ -4048,6 +4054,9 @@ ActionChangeSize (int argc, char **argv, Coord x, Coord y)
if (function && delta)
{
value = GetValue (delta, units, &absolute);
+ if (value == 0)
+ value = delta[0] == '-' ? -Settings.increments->size
+ : Settings.increments->size;
switch (GetFunctionID (function))
{
case F_Object:
@@ -4207,6 +4216,9 @@ ActionChangeClearSize (int argc, char **argv, Coord x, Coord y)
if (function && delta)
{
value = 2 * GetValue (delta, units, &absolute);
+ if (value == 0)
+ value = delta[0] == '-' ? -Settings.increments->clear
+ : Settings.increments->clear;
switch (GetFunctionID (function))
{
case F_Object:
diff --git a/src/gpcb-menu.res.in b/src/gpcb-menu.res.in
index 0c15b1c..f28edff 100644
--- a/src/gpcb-menu.res.in
+++ b/src/gpcb-menu.res.in
@@ -144,10 +144,8 @@ MainMenu =
{"0.5 mm" checked=gridsize,0.50mm SetUnits(mm) SetValue(Grid,0.5mm)}
{"1 mm" checked=gridsize,1mm SetUnits(mm) SetValue(Grid,1mm)}
-
- {"Grid -5mil" SetValue(Grid,-5,mil) a={"Shift-G" "Shift<Key>g"}}
- {"Grid +5mil" SetValue(Grid,+5,mil) a={"G" "<Key>g"}}
- {"Grid -0.05mm" SetValue(Grid,-0.05,mm) a={"Shift-Ctrl-G" "Shift Ctrl<Key>g"}}
- {"Grid +0.05mm" SetValue(Grid,+0.05,mm) a={"Ctrl-G" "Ctrl<Key>g"}}
+ {"Grid -" SetValue(Grid,-) a={"Shift-G" "Shift<Key>g"}}
+ {"Grid +" SetValue(Grid,+) a={"G" "<Key>g"}}
}
{"Realign grid" GetXY(Click to set the grid origin) Display(ToggleGrid)}
-
@@ -400,12 +398,12 @@ MainMenu =
{"ChangeHole Object" a={"Ctrl-H" "Ctrl<Key>h"} ChangeHole(Object)}
{"ChangeJoin Object" a={"J" "<Key>j"} ChangeJoin(Object)}
{"ChangeJoin SelectedObject" a={"Shift-J" "Shift<Key>j"} ChangeJoin(SelectedObjects)}
- {"Clear Object +2 mil" a={"K" "<Key>k"} ChangeClearSize(Object,+2,mil)}
- {"Clear Object -2 mil" a={"Shift-K" "Shift<Key>k"} ChangeClearSize(Object,-2,mil)}
- {"Clear Selected +2 mil" a={"Ctrl-K" "Ctrl<Key>k"} ChangeClearSize(SelectedObjects,+2,mil)}
- {"Clear Selected -2 mil" a={"Shift-Ctrl-K" "Shift Ctrl<Key>k"} ChangeClearSize(SelectedObjects,-2,mil)}
- {"Line Tool size +5 mil" a={"L" "<Key>l"} SetValue(LineSize,+5,mil)}
- {"Line Tool size -5 mil" a={"Shift-L" "Shift<Key>l"} SetValue(LineSize,-5,mil)}
+ {"Clear Object +" a={"K" "<Key>k"} ChangeClearSize(Object,+)}
+ {"Clear Object -" a={"Shift-K" "Shift<Key>k"} ChangeClearSize(Object,-)}
+ {"Clear Selected +" a={"Ctrl-K" "Ctrl<Key>k"} ChangeClearSize(SelectedObjects,+)}
+ {"Clear Selected -" a={"Shift-Ctrl-K" "Shift Ctrl<Key>k"} ChangeClearSize(SelectedObjects,-)}
+ {"Line Tool size +" a={"L" "<Key>l"} SetValue(LineSize,+)}
+ {"Line Tool size -" a={"Shift-L" "Shift<Key>l"} SetValue(LineSize,-)}
{"Move Object to current layer" a={"M" "<Key>m"} MoveToCurrentLayer(Object)}
{"MarkCrosshair" a={"Ctrl-M" "Ctrl<Key>m"} MarkCrosshair()}
{"Select shortest rat" a={"Shift-N" "Shift<Key>n"} AddRats(Close)}
@@ -419,8 +417,8 @@ MainMenu =
{"Polygon PreviousPoint" a={"P" "<Key>p"} Polygon(PreviousPoint)}
{"Polygon Close" a={"Shift-P" "Shift<Key>p"} Polygon(Close)}
{"ChangeSquare Object" a={"Q" "<Key>q"} ChangeSquare(ToggleObject)}
- {"ChangeSize +5 mil" a={"S" "<Key>s"} ChangeSize(Object,+5,mil)}
- {"ChangeSize -5 mil" a={"Shift-S" "Shift<Key>s"} ChangeSize(Object,-5,mil)}
+ {"ChangeSize +" a={"S" "<Key>s"} ChangeSize(Object,+)}
+ {"ChangeSize -" a={"Shift-S" "Shift<Key>s"} ChangeSize(Object,-)}
{"ChangeDrill +5 mil" a={"Alt-S" "Alt<Key>s"} ChangeDrillSize(Object,+5,mil)}
{"ChangeDrill -5 mil" a={"Alt-Shift-S" "Alt Shift<Key>s"} ChangeDrillSize(Object,-5,mil)}
{"Text Tool scale +10 mil" a={"T" "<Key>t"} SetValue(TextScale,+10,mil)}
diff --git a/src/pcb-menu.res.in b/src/pcb-menu.res.in
index 7e6e8bd..84c4a45 100644
--- a/src/pcb-menu.res.in
+++ b/src/pcb-menu.res.in
@@ -111,10 +111,8 @@ MainMenu =
{"0.5 mm" checked=gridsize,0.50mm SetUnits(mm) SetValue(Grid,0.5mm)}
{"1 mm" checked=gridsize,1mm SetUnits(mm) SetValue(Grid,1mm)}
-
- {"Grid -5mil" SetValue(Grid,-5,mil) a={"Shift-G" "Shift<Key>g"}}
- {"Grid +5mil" SetValue(Grid,+5,mil) a={"G" "<Key>g"}}
- {"Grid -0.05mm" SetValue(Grid,-0.05,mm) a={"Shift-Ctrl-G" "Shift Ctrl<Key>g"}}
- {"Grid +0.05mm" SetValue(Grid,+0.05,mm) a={"Ctrl-G" "Ctrl<Key>g"}}
+ {"Grid -" SetValue(Grid,-) a={"Shift-G" "Shift<Key>g"}}
+ {"Grid +" SetValue(Grid,+) a={"G" "<Key>g"}}
}
-
{"Shown Layers"
@@ -383,12 +381,12 @@ MainMenu =
{"ChangeHole Object" a={"Ctrl-H" "Ctrl<Key>h"} ChangeHole(Object)}
{"ChangeJoin Object" a={"J" "<Key>j"} ChangeJoin(Object)}
{"ChangeJoin SelectedObject" a={"Shift-J" "Shift<Key>j"} ChangeJoin(SelectedObjects)}
- {"Clear Object +2 mil" a={"K" "<Key>k"} ChangeClearSize(Object,+2,mil)}
- {"Clear Object -2 mil" a={"Shift-K" "Shift<Key>k"} ChangeClearSize(Object,-2,mil)}
- {"Clear Selected +2 mil" a={"Ctrl-K" "Ctrl<Key>k"} ChangeClearSize(SelectedObjects,+2,mil)}
- {"Clear Selected -2 mil" a={"Shift-Ctrl-K" "Shift Ctrl<Key>k"} ChangeClearSize(SelectedObjects,-2,mil)}
- {"Line Tool size +5 mil" a={"L" "<Key>l"} SetValue(LineSize,+5,mil)}
- {"Line Tool size -5 mil" a={"Shift-L" "Shift<Key>l"} SetValue(LineSize,-5,mil)}
+ {"Clear Object +" a={"K" "<Key>k"} ChangeClearSize(Object,+)}
+ {"Clear Object -" a={"Shift-K" "Shift<Key>k"} ChangeClearSize(Object,-)}
+ {"Clear Selected +" a={"Ctrl-K" "Ctrl<Key>k"} ChangeClearSize(SelectedObjects,+)}
+ {"Clear Selected -" a={"Shift-Ctrl-K" "Shift Ctrl<Key>k"} ChangeClearSize(SelectedObjects,-)}
+ {"Line Tool size +" a={"L" "<Key>l"} SetValue(LineSize,+)}
+ {"Line Tool size -" a={"Shift-L" "Shift<Key>l"} SetValue(LineSize,-)}
{"Move Object to current layer" a={"M" "<Key>m"} MoveToCurrentLayer(Object)}
{"MarkCrosshair" a={"Ctrl-M" "Ctrl<Key>m"} MarkCrosshair()}
{"Select shortest rat" a={"Shift-N" "Shift<Key>n"} AddRats(Close)}
@@ -402,8 +400,8 @@ MainMenu =
{"Polygon PreviousPoint" a={"P" "<Key>p"} Polygon(PreviousPoint)}
{"Polygon Close" a={"Shift-P" "Shift<Key>p"} Polygon(Close)}
{"ChangeSquare Object" a={"Q" "<Key>q"} ChangeSquare(Object)}
- {"ChangeSize +5 mil" a={"S" "<Key>s"} ChangeSize(Object,+5,mil)}
- {"ChangeSize -5 mil" a={"Shift-S" "Shift<Key>s"} ChangeSize(Object,-5,mil)}
+ {"ChangeSize +" a={"S" "<Key>s"} ChangeSize(Object,+)}
+ {"ChangeSize -" a={"Shift-S" "Shift<Key>s"} ChangeSize(Object,-)}
{"ChangeDrill +5 mil" a={"Alt-S" "Alt<Key>s"} ChangeDrillSize(Object,+5,mil)}
{"ChangeDrill -5 mil" a={"Alt-Shift-S" "Alt Shift<Key>s"} ChangeDrillSize(Object,-5,mil)}
{"Text Tool scale +10 mil" a={"T" "<Key>t"} SetValue(TextScale,+10,mil)}
----- End forwarded message -----
--
Andrew Poelstra
Email: asp11 at sfu.ca OR apoelstra at wpsoftware.net
Web: http://www.wpsoftware.net/andrew
"You shouldn't trust every quote you read on the Internet." -- Socrates