[GRASS-dev] missing GetToolEnabled for digitizer in GRASS 6.4.2

I think I’ve found the reason that you cannot stop digitizing with a right click in GRASS 6.4.2.

A right click ultimately makes a call to GetToolEnabled. Either this method was never backported to 6.4.2 or the module that contains it is not imported. Because of the reorganized structure in 6.4.3, I can’t tell where this is supposed to be in 6.4.2. Hopefully one of you recognize it and can find it.

Michael

======== error =========

self.toolbar.EnableUndo()
File “/Users/Shared/grass_dev/grass64stable/dist.i386
-apple-darwin11.3.0/etc/wxpython/gui_modules/toolbars.py”,
line 735, in EnableUndo

if self.GetToolEnabled(self.undo) is False:
File “/Applications/GRASS/GRASS-6.4.app/Contents/MacOS/etc
/python/wx/_controls.py”, line 3892, in GetToolEnabled
wx._core
.
PyAssertionError
:
C++ assertion “tool” failed at /BUILD/wxPython-
src-2.8.12.1/src/common/tbarbase.cpp(543) in
GetToolEnabled(): no such tool


C. Michael Barton
Visiting Scientist, Integrated Science Program
National Center for Atmospheric Research &
University Corporation for Atmospheric Research
303-497-2889 (voice)

Director, Center for Social Dynamics & Complexity
Professor of Anthropology, School of Human Evolution & Social Change
Arizona State University
www: http://www.public.asu.edu/~cmbarton, http://csdc.asu.edu

Hi,

2012/2/27 Michael Barton <Michael.Barton@asu.edu>:

I think I've found the reason that you cannot stop digitizing with a right
click in GRASS 6.4.2.

A right click ultimately makes a call to GetToolEnabled. Either this method
was never backported to 6.4.2 or the module that contains it is not
imported. Because of the reorganized structure in 6.4.3, I can't tell where
this is supposed to be in 6.4.2. Hopefully one of you recognize it and can
find it.

ops, this bug has been introduced by me [1] (2012/01/19, so one month
before 6.4.2 release). The undo didn't work perfectly in GRASS 6, so I
decided to remove this tool from the toolbar, unfortunately there is
the side-effect you noted. I did some tests on GNU/Linux where
everything works (wxWidgest is not so strict when using GTK). Anyway I
can reproduce this bug on Windows.

The patch suggested by Anna is OK, the problem is that we can hardly
apply it in `relbr64` for 6.4.2 (code base changed a lot since 6.4.2
has been released). So at this point we would need to force packagers
to apply the patch locally. Happily it's related only to Windows (I
will do the job) and Mac OS X (William?). Unfortunately I don't know
about better solution.

WinGRASS: fixed version uploaded to grass.osgeo.org [2] and OSGeo4W
(`grass-6.4.2-3`). Linux version should be unaffected. Mac OS X
package needs to be updated (see patch at [3]). Testing highly
welcomed (open vector digitizer, digitize new feature).

Martin

[1] http://trac.osgeo.org/grass/changeset/50301/grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/toolbars.py
[2] http://grass.osgeo.org/grass64/binary/mswindows/native/
[3] http://josef.fsv.cvut.cz/~landa/wingrass/wingrass-642.diff

--
Martin Landa <landa.martin gmail.com> * http://geo.fsv.cvut.cz/~landa

Hey, I can stop digitizing now!

Thanks. I'll package updated OS X GRASS as soon as I can.

On Mar 9, 2012, at 7:03 AM, Martin Landa wrote:

Hi,

2012/2/27 Michael Barton <Michael.Barton@asu.edu>:

I think I've found the reason that you cannot stop digitizing with a right
click in GRASS 6.4.2.

A right click ultimately makes a call to GetToolEnabled. Either this method
was never backported to 6.4.2 or the module that contains it is not
imported. Because of the reorganized structure in 6.4.3, I can't tell where
this is supposed to be in 6.4.2. Hopefully one of you recognize it and can
find it.

ops, this bug has been introduced by me [1] (2012/01/19, so one month
before 6.4.2 release). The undo didn't work perfectly in GRASS 6, so I
decided to remove this tool from the toolbar, unfortunately there is
the side-effect you noted. I did some tests on GNU/Linux where
everything works (wxWidgest is not so strict when using GTK). Anyway I
can reproduce this bug on Windows.

The patch suggested by Anna is OK, the problem is that we can hardly
apply it in `relbr64` for 6.4.2 (code base changed a lot since 6.4.2
has been released). So at this point we would need to force packagers
to apply the patch locally. Happily it's related only to Windows (I
will do the job) and Mac OS X (William?). Unfortunately I don't know
about better solution.

WinGRASS: fixed version uploaded to grass.osgeo.org [2] and OSGeo4W
(`grass-6.4.2-3`). Linux version should be unaffected. Mac OS X
package needs to be updated (see patch at [3]). Testing highly
welcomed (open vector digitizer, digitize new feature).

Martin

[1] http://trac.osgeo.org/grass/changeset/50301/grass/branches/releasebranch_6_4/gui/wxpython/gui_modules/toolbars.py
[2] http://grass.osgeo.org/grass64/binary/mswindows/native/
[3] http://josef.fsv.cvut.cz/~landa/wingrass/wingrass-642.diff

--
Martin Landa <landa.martin gmail.com> * http://geo.fsv.cvut.cz/~landa
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/

"We are at war with them. Neither in hatred nor revenge and with no particular pleasure I shall kill every ___ I can until the war is over. That is my duty."

"Don't you even hate 'em?"

"What good would it do if I did? If all the many millions of people of the allied nations devoted an entire year exclusively to hating the ____ it wouldn't kill one ___ nor shorten the war one day."

<Ha, ha> "And it might give 'em all stomach ulcers."

- Tarzan, on war