Index: trunk/src/action.c =================================================================== --- trunk/src/action.c (revision 404) +++ trunk/src/action.c (revision 405) @@ -188,6 +188,7 @@ F_ToggleFullPoly, F_ToggleGrid, F_ToggleHideNames, + F_ToggleMinCut, F_ToggleMask, F_ToggleName, F_ToggleObject, @@ -431,6 +432,7 @@ {"ToggleLockNames", F_ToggleLockNames}, {"ToggleOnlyNames", F_ToggleOnlyNames}, {"ToggleHideNames", F_ToggleHideNames}, + {"ToggleMinCut", F_ToggleMinCut}, {"ToggleCheckPlanes", F_ToggleCheckPlanes}, {"ToggleLocalRef", F_ToggleLocalRef}, {"ToggleOrthoMove", F_ToggleOrthoMove}, @@ -2772,6 +2774,10 @@ Redraw (); break; + case F_ToggleMinCut: + TOGGLE_FLAG (ENABLEMINCUTFLAG, PCB); + break; + case F_ToggleShowDRC: TOGGLE_FLAG (SHOWDRCFLAG, PCB); break; Index: trunk/src/const.h =================================================================== --- trunk/src/const.h (revision 404) +++ trunk/src/const.h (revision 405) @@ -300,6 +300,7 @@ #define ONLYNAMESFLAG 0x00080000 #define NEWFULLPOLYFLAG 0x00100000 #define HIDENAMESFLAG 0x00200000 +#define ENABLEMINCUTFLAG 0x00400000 /* --------------------------------------------------------------------------- * object types Index: trunk/src/flags.c =================================================================== --- trunk/src/flags.c (revision 404) +++ trunk/src/flags.c (revision 405) @@ -247,6 +247,7 @@ {"onlynames", FlagTESTFLAG, ONLYNAMESFLAG}, {"newfullpoly", FlagTESTFLAG, NEWFULLPOLYFLAG}, {"hidenames", FlagTESTFLAG, HIDENAMESFLAG}, + {"enablemincut", FlagTESTFLAG, ENABLEMINCUTFLAG}, {"fullpoly", FlagSETTINGS, OffsetOf (SettingType, FullPoly)}, {"grid_units_mm", FlagUnitsMm, -1}, Index: trunk/src/gpcb-menu.res =================================================================== --- trunk/src/gpcb-menu.res (revision 404) +++ trunk/src/gpcb-menu.res (revision 405) @@ -206,6 +206,7 @@ {"Lock Names" checked=locknames Display(ToggleLockNames)} {"Only Names" checked=onlynames Display(ToggleOnlyNames)} {"Hide Names" checked=hidenames Display(ToggleHideNames)} + {"Mincut on shorts" checked=enablemincut Display(ToggleMinCut)} - {"Rubber band mode" checked=rubberband Display(ToggleRubberBandMode)} {"Require unique element names" checked=uniquename Display(ToggleUniqueNames)} Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 404) +++ trunk/src/main.c (revision 405) @@ -1313,11 +1313,12 @@ /* %start-doc options "1 General Options" @ftable @code @item --enable-mincut -Whether to enable mincut (1=yes, 0=no) +Whether to enable mincut (1=yes, 0=no); when disabled, it overrides the setting +read from the pcb. @end ftable %end-doc */ - ISET (EnableMincut, 1, "enable-mincut", "whether to enable mincut (1=yes, 0=no)"), + ISET (EnableMincut, 1, "enable-mincut", "global enable mincut (1=yes, 0=no)"), }; Index: trunk/src/rats_mincut.c =================================================================== --- trunk/src/rats_mincut.c (revision 404) +++ trunk/src/rats_mincut.c (revision 405) @@ -89,6 +89,9 @@ int i, maxedges; int bad_gr = 0; + if (!TEST_FLAG (ENABLEMINCUTFLAG, PCB)) + return bad_gr; + if (!Settings.EnableMincut) return bad_gr; Index: trunk/src/strflags.c =================================================================== --- trunk/src/strflags.c (revision 404) +++ trunk/src/strflags.c (revision 405) @@ -138,6 +138,7 @@ { LOCKNAMESFLAG, N ("locknames"), 1 }, { ONLYNAMESFLAG, N ("onlynames"), 1 }, { HIDENAMESFLAG, N ("hidenames"), 1 }, + { ENABLEMINCUTFLAG, N ("enablemincut"), 1 } }; #undef N