Skip to content

Commit 3a9d8f5

Browse files
author
yxdragon
committed
viewport and unpreview
1 parent 2a521f6 commit 3a9d8f5

File tree

9 files changed

+36
-24
lines changed

9 files changed

+36
-24
lines changed

imagepy/core/engine/filter.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,10 @@ def show(self, temp=ParaDialog):
105105

106106
self.dialog.on_help = lambda : IPy.show_md(self.title, DocumentManager.get(self.title))
107107
self.dialog.set_handle(lambda x:self.preview(self.ips, x))
108-
if self.modal: return self.dialog.ShowModal() == wx.ID_OK
108+
109109
self.dialog.on_ok = lambda : self.ok(self.ips)
110110
self.dialog.on_cancel = lambda : self.cancel(self.ips)
111+
if self.modal: return self.dialog.ShowModal() == wx.ID_OK
111112
self.dialog.Show()
112113

113114
def run(self, ips, snap, img, para = None):
@@ -184,7 +185,7 @@ def ok(self, ips, para=None, callafter=None):
184185

185186
def cancel(self, ips):
186187
if 'auto_snap' in self.note:
187-
ips.swap()
188+
ips.img[:] = ips.snap
188189
ips.update()
189190

190191
def start(self, para=None, callafter=None):

imagepy/data/markdown.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ p {
4343
margin-bottom: 9px;
4444
}
4545
p img {
46-
width:100%%;
46+
width:100%;
4747
}
4848
h1,
4949
h2,

imagepy/ui/canvas/canvas.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,8 @@ def __del__(self):
243243
canvas.set_lut(lut)
244244
canvas.set_cn(0)
245245
canvas.set_back(astronaut())
246-
canvas.set_cn('rgb', 1)
247-
canvas.set_mode('msk')
246+
canvas.set_cn((0,1,2), True)
247+
canvas.set_mode(0.5)
248248
x = np.arange(512)
249249
y = np.sin(x/30) * 100 + 256
250250
canvas.marks['line'] = {'type':'line', 'lw':3, 'body':np.array([x,y]).T.tolist()}

imagepy/ui/panelconfig.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def init_view(self, items, para, preview=False, modal = True):
6363

6464
def OnDestroy( self, event ):
6565
self.set_handle(None)
66+
self.on_cancel = self.on_ok = self.on_help = None
6667
del self.ctrl_dic
6768

6869
def parse(self, para) :
@@ -92,17 +93,23 @@ def pack(self):
9293

9394
def para_check(self, para, key):pass
9495

95-
def para_changed(self, key):
96+
def para_changed(self, obj):
97+
key = ''
9698
para = self.para
97-
for p in list(para.keys()):
98-
if p in self.ctrl_dic:
99+
for p in self.ctrl_dic:
100+
if p in para:
99101
para[p] = self.ctrl_dic[p].GetValue()
102+
if self.ctrl_dic[p] == obj: key = p
103+
100104
sta = sum([i is None for i in list(para.values())])==0
101105
self.btn_ok.Enable(sta)
102106
if not sta: return
103107
self.para_check(para, key)
104108
if 'preview' not in self.ctrl_dic:return
105-
if not self.ctrl_dic['preview'].GetValue():return
109+
if not self.ctrl_dic['preview'].GetValue():
110+
if key=='preview' and self.on_cancel != None:
111+
return self.on_cancel()
112+
else: return
106113
self.handle(para)
107114

108115
def reset(self, para=None):

imagepy/ui/widgets/colormap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,4 @@ def __init__( self, parent, title):
9595
def Bind(self, z, f): self.f = f
9696

9797
def on_sel(self, event):
98-
self.f(event)
98+
self.f(self)

imagepy/ui/widgets/curvepanel.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ def on_ld(self, event):
6161
self.pts.append((x, 255-y))
6262
self.idx = len(self.pts)-1
6363
self.update()
64-
self.handle(event)
64+
self.handle(self)
6565

6666
def on_lu(self, event):
6767
self.idx = -1
@@ -75,7 +75,7 @@ def on_rd(self, event):
7575
del self.pts[self.idx]
7676
self.idx = -1
7777
self.update()
78-
self.handle(event)
78+
self.handle(self)
7979

8080
def on_mv(self, event):
8181
x = (event.GetX()-self.offset[0])/self.k
@@ -91,7 +91,7 @@ def on_mv(self, event):
9191
y = np.clip(y, 0, 255)
9292
self.pts[self.idx] = (x, 255-y)
9393
self.update()
94-
self.handle(event)
94+
self.handle(self)
9595

9696

9797
def on_paint(self, event):

imagepy/ui/widgets/normal.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def __init__(self, parent, rang, accury, title, unit):
3030
def Bind(self, z, f):self.f = f
3131

3232
def ontext(self, event):
33-
self.f(event)
33+
self.f(self)
3434
if self.GetValue()==None:
3535
self.ctrl.SetBackgroundColour((255,255,0))
3636
else:
@@ -78,7 +78,7 @@ def __init__(self, parent, title, unit):
7878
def Bind(self, z, f):self.f = f
7979

8080
def ontext(self, event):
81-
self.f(event)
81+
self.f(self)
8282

8383
def SetValue(self, n):
8484
self.ctrl.SetValue(n)
@@ -120,7 +120,7 @@ def oncolor(self, event):
120120
rst = dialog.GetColourData().GetColour()
121121
self.ctrl.SetBackgroundColour(rst)
122122
self.ctrl.SetValue(rst.GetAsString(wx.C2S_HTML_SYNTAX))
123-
self.f(event)
123+
self.f(self)
124124
dialog.Destroy()
125125

126126
def SetValue(self, color):
@@ -199,7 +199,7 @@ def Bind(self, z, f):
199199
self.f = f
200200

201201
def on_choice(self, event):
202-
self.f(event)
202+
self.f(self)
203203

204204
def SetValue(self, x):
205205
n = self.choices.index(x) if x in self.choices else 0
@@ -260,7 +260,7 @@ def GetValue(self):
260260

261261
# Virtual event handlers, overide them in your derived class
262262
def on_text( self, event ):
263-
self.f(event)
263+
self.f(self)
264264
if self.GetValue()==None:
265265
self.txt_value.SetBackgroundColour((255,255,0))
266266
else: self.txt_value.SetBackgroundColour((255,255,255))
@@ -292,7 +292,7 @@ def Bind(self, z, f):
292292
self.f = f
293293

294294
def on_check(self, event):
295-
self.f(event)
295+
self.f(self)
296296

297297
def GetValue(self):
298298
return [self.choices[i] for i in self.ctrl.GetCheckedItems()]
@@ -354,14 +354,14 @@ def on_scroll(self, event):
354354
n = value/255.0*(self.max-self.min)+self.min
355355
self.text.SetValue(str(round(n,self.accury) if self.accury>0 else int(n)))
356356
self.text.SetBackgroundColour((255,255,255))
357-
self.f(event)
357+
self.f(self)
358358

359359
def on_spin(self, event):
360360
self.slider.SetValue(self.spin.GetValue())
361361
self.on_scroll(event)
362362

363363
def on_text(self, event):
364-
self.f(event)
364+
self.f(self)
365365
if self.GetValue()==None:
366366
self.text.SetBackgroundColour((255,255,0))
367367
else:
@@ -416,7 +416,7 @@ def __init__(self, parent, title):
416416
self.GetValue = check.GetValue
417417
check.Bind(wx.EVT_CHECKBOX, self.on_check)
418418

419-
def on_check(self, event):self.f(event)
419+
def on_check(self, event):self.f(self)
420420
def Bind(self, z, f): self.f = f
421421

422422
if __name__ == '__main__':

imagepy/ui/widgets/viewport.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ def on_paint(self, event):
4747
wx.BufferedPaintDC(self, self.buffer)
4848

4949
def on_ld(self, event):
50+
self.handle(True)
5051
x, y = event.GetX(), event.GetY()
5152
x = 1.0*(x-self.offx)/self.imgw
5253
y = 1.0*(y-self.offy)/self.imgh
5354
if x<0 or x>1 or y<0 or y>1:return
5455
self.loc = (x*self.ibox[0], y*self.ibox[1])
55-
self.handle()
5656
self.drag = True
5757

5858
def on_lu(self, event):

imagepy/widgets/navigator/navigator_wgt.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ def on_apply(self, event):
7070
self.viewport.set_box(win.canvas.conbox, win.canvas.winbox)
7171

7272
def on_zoom(self, event):
73+
self.on_apply(event)
7374
k = self.scales[self.slider.GetValue()]
7475
self.label.SetLabel('%.2f%%'%(k*100))
7576
win = IPy.get_window()
@@ -81,6 +82,7 @@ def on_zoom(self, event):
8182
self.viewport.set_box(win.canvas.conbox, win.canvas.winbox)
8283

8384
def on_fit(self, event):
85+
self.on_apply(event)
8486
win = IPy.get_window()
8587
if win is None: return
8688
win.canvas.fit()
@@ -92,6 +94,7 @@ def on_fit(self, event):
9294
self.viewport.set_box(win.canvas.conbox, win.canvas.winbox)
9395

9496
def on_one(self, event):
97+
self.on_apply(event)
9598
win = IPy.get_window()
9699
if win is None: return
97100
a,b,c,d = win.canvas.winbox
@@ -102,7 +105,8 @@ def on_one(self, event):
102105
self.label.SetLabel('%.2f%%'%100)
103106
self.viewport.set_box(win.canvas.conbox, win.canvas.winbox)
104107

105-
def on_handle(self):
108+
def on_handle(self, update=False):
109+
if update: self.on_apply(update)
106110
win = IPy.get_window()
107111
if win is None: return
108112
x, y = self.viewport.GetValue()

0 commit comments

Comments
 (0)