Print

Print


Thanks Wayne

Have noticed another 'feature'. Its a problem with using keyboard shortcuts after you type in a chemical shift value in the bottom left hand corner of the 3D window to select a specific plane. The typing cursor stays in where you type in the number - so if you now try to type 'm' for mark in the spectrum itself then it just goes into the chemical shift part and does not create a mark, the only way I found I could use the keyboard shortcuts was to close the 3D window completely and re-open it.

Richard
________________________________________
From: CcpNmr software mailing list [[log in to unmask]] on behalf of Wayne Boucher [[log in to unmask]]
Sent: Monday, March 12, 2012 2:32 PM
To: [log in to unmask]
Subject: Re: Markers in Windows 2.1.5

OK, I've figured it out.  It turns out that the way Windows handles the
x,y coordinates of events when you have multiple strips is completely
different than in Unix, and in particular you get the x, y of the point
relative to the top left of the window rather than relative to the strip
top left.

So we added a function just for Windows which corrects for this.  It
corrects for y by subtracting off the height of the toolbar (already
something that worries me).  It corrects for x by figuring out which strip
you are in (if there is more than one) and subtracting off the relevant
number for this (which can only be obtained by looking at where the point
is relative to the top left of the screen).

This was missing logic to exactly deal with the case when the mark was in
the last strip, so the x was coming out relative to the top left of the
screen instead of relative to the top left of that last strip.

Anyway, this will be fixed in the next (2.2.2) release.  If you can figure
out how to edit the code (you probably need Administrator priviliges) then
in the file ccpn/python/ccpnmr/analysis/frames/WindowFrame.py look for the
function modifyKeyEvent() and you'll see:

     else:
       for col in range(ncols-1):
         canvas = canvases[0][col+1]
         #print 'modifyKeyEvent: in x loop:', col, x, canvas.winfo_rootx()
         if x < canvas.winfo_rootx():
           canvas = canvases[0][col]
           x = x - canvas.winfo_rootx()
           break
       else:
         canvas = canvases[0][ncols-1]
         x = x - canvas.winfo_rootx()

where the bottom three lines are extra (i.e. the fix).  Your email client
has probably mashed the indentation: that final "else:" should be lined up
with the "for" (i.e. the "e" in the same column as the "f"), and the other
two lines indented two spaces extra relative to that.

Further down the y also needs changing:

     else:
       for row in range(nrows-1, 0, -1):
         canvas = canvases[row-1][0]
         #print 'modifyKeyEvent: in y loop:', col, y, canvas.winfo_rooty()
         if y < canvas.winfo_rooty():
           canvas = canvases[row][0]
           y = y - canvas.winfo_rooty()
           break
       else:
         canvas = canvases[0][0]
         y = y - canvas.winfo_rooty()

So again the three lines at the bottom are extra.

Wayne

On Mon, 12 Mar 2012, Richard Harris wrote:

> Hi Wayne
>
> Yes that is what I am seeing just the last (righthand most) strip window - I didn't realise that the vertical portion of the mark was offset.
>
> richard
>
> ________________________________________
> From: CcpNmr software mailing list [[log in to unmask]] on behalf of Wayne Boucher [[log in to unmask]]
> Sent: Monday, March 12, 2012 1:29 PM
> To: [log in to unmask]
> Subject: Re: Markers in Windows 2.1.5
>
> One other thing I just noticed.  In the last strip, it is in fact creating
> a proper mark, both horizontal and vertical, it's just that the vertical
> one is at some semi-random (unintended) location, i.e. not where you
> clicked, so you just don't see it on the screen.
>
> Wayne
>
> On Mon, 12 Mar 2012, Wayne Boucher wrote:
>
>> Hello,
>>
>> Just trying it now, it looks like the Marks are created ok except for the
>> rightmost strip (when there is more than one strip), is that what you are
>> seeing, or is it not working for any set of strips.  (So one of the weird
>> things is that it is working ok for me if there are no strips.)
>>
>> Wayne
>>
>> On Mon, 12 Mar 2012, Richard Harris wrote:
>>
>>> Hi All
>>>
>>> I think there might be a bug in the 2.1.5 Windows version.
>>> When putting a Mark on a spectrum in a 3D window that is not H(x), N(y) it
>>> seems to only draw a horizontal line rather than a full mark. I've seen
>>> this behaviour in both a H(x), H(y), N(z) and H(x), C(y), N(z) windows, but
>>> it marks fine in the orthogonal windows - H(x), N(y), C/H(z) windows.
>>>
>>> Richard
>>
>