Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit056ada8

Browse files
imageview: fix double button bug
1 parentd2457e5 commit056ada8

File tree

1 file changed

+43
-30
lines changed
  • internal_filesystem/apps/com.micropythonos.imageview/assets

1 file changed

+43
-30
lines changed

‎internal_filesystem/apps/com.micropythonos.imageview/assets/imageview.py‎

Lines changed: 43 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def onCreate(self):
2424
self.image.center()
2525
self.image.add_flag(lv.obj.FLAG.CLICKABLE)
2626
#self.image.add_event_cb(self.print_events, lv.EVENT.ALL, None)
27-
self.image.add_event_cb(lambdae:self.play(),lv.EVENT.CLICKED,None)
27+
#self.image.add_event_cb(lambda e: self.toggle_fullscreen(),lv.EVENT.CLICKED,None)
2828
self.label=lv.label(screen)
2929
self.label.set_text('Loading images from\n{self.imagedir}')
3030
self.label.align(lv.ALIGN.TOP_MID,0,0)
@@ -36,8 +36,8 @@ def onCreate(self):
3636
prev_label.set_text(lv.SYMBOL.LEFT)
3737
self.play_button=lv.button(screen)
3838
self.play_button.align(lv.ALIGN.BOTTOM_MID,0,0)
39-
self.play_button.add_flag(lv.obj.FLAG.HIDDEN)
4039
self.play_button.set_style_opa(lv.OPA.TRANSP,0)
40+
#self.play_button.add_flag(lv.obj.FLAG.HIDDEN)
4141
#self.play_button.add_event_cb(lambda e: self.unfocus_if_not_fullscreen(),lv.EVENT.FOCUSED,None)
4242
#self.play_button.set_style_shadow_opa(lv.OPA.TRANSP, 0)
4343
#self.play_button.add_event_cb(lambda e: self.play(),lv.EVENT.CLICKED,None)
@@ -67,6 +67,7 @@ def onResume(self, screen):
6767
self.images.append(fullname)
6868
# Begin with one image:
6969
self.show_next_image()
70+
self.stop_fullscreen()
7071
#self.image_timer = lv.timer_create(self.show_next_image, 1000, None)
7172

7273
defonStop(self,screen):
@@ -107,49 +108,60 @@ def show_prev_image(self, event=None):
107108
print(f"show_prev_image showing{name}")
108109
self.show_image(name)
109110

110-
defplay(self,event=None):
111+
deftoggle_fullscreen(self,event=None):
111112
print("playing...")
112113
ifself.fullscreen:
113-
print("stopping fullscreen")
114114
self.fullscreen=False
115-
mpos.ui.anim.smooth_show(self.label)
116-
mpos.ui.anim.smooth_show(self.prev_button)
117-
#mpos.ui.anim.smooth_show(self.play_button)
118-
self.play_button.add_flag(lv.obj.FLAG.HIDDEN)
119-
mpos.ui.anim.smooth_show(self.next_button)
115+
self.stop_fullscreen()
120116
else:
121-
print("starting fullscreen")
122117
self.fullscreen=True
123-
mpos.ui.anim.smooth_hide(self.label)
124-
mpos.ui.anim.smooth_hide(self.prev_button,hide=False)
125-
#mpos.ui.anim.smooth_hide(self.play_button, hide=False)
126-
self.play_button.remove_flag(lv.obj.FLAG.HIDDEN)
127-
mpos.ui.anim.smooth_hide(self.next_button,hide=False)
118+
self.start_fullscreen()
128119
self.scale_image()
129120

121+
defstop_fullscreen(self):
122+
print("stopping fullscreen")
123+
mpos.ui.anim.smooth_show(self.label)
124+
mpos.ui.anim.smooth_show(self.prev_button)
125+
#mpos.ui.anim.smooth_show(self.play_button)
126+
self.play_button.add_flag(lv.obj.FLAG.HIDDEN)# make it not accepting focus
127+
mpos.ui.anim.smooth_show(self.next_button)
128+
129+
defstart_fullscreen(self):
130+
print("starting fullscreen")
131+
mpos.ui.anim.smooth_hide(self.label)
132+
mpos.ui.anim.smooth_hide(self.prev_button,hide=False)
133+
#mpos.ui.anim.smooth_hide(self.play_button, hide=False)
134+
self.play_button.remove_flag(lv.obj.FLAG.HIDDEN)# make it accepting focus
135+
mpos.ui.anim.smooth_hide(self.next_button,hide=False)
136+
self.unfocus()# focus on the invisible center button, not previous or next
137+
130138
defshow_prev_image_if_fullscreen(self,event=None):
131139
ifself.fullscreen:
132-
self.unfocus(True)
140+
self.unfocus()
133141
self.show_prev_image()
134142

135143
defshow_next_image_if_fullscreen(self,event=None):
136144
ifself.fullscreen:
137-
self.unfocus(False)
145+
self.unfocus()
138146
self.show_next_image()
139147

140-
defunfocus_if_not_fullscreen(self,event=None):
141-
ifnotself.fullscreen:
142-
self.unfocus(False)
143-
144-
defunfocus(self,next):
148+
defunfocus(self):
145149
group=lv.group_get_default()
146-
# This doesn't work, and group.focus_obj() is missing, so need to do this hack:
147-
#b = group.get_focused()
148-
#b.remove_state(lv.STATE.FOCUSED)
149-
ifnext:
150-
group.focus_next()
151-
else:
152-
group.focus_prev()
150+
print("got focus group")
151+
# group.focus_obj(self.play_button) would be better but appears missing?!
152+
b=group.get_focused()
153+
print("got focus button")
154+
#b.remove_state(lv.STATE.FOCUSED) # this doesn't seem to work to remove focus
155+
ifb:
156+
print("checking which button is focused")
157+
ifb==self.next_button:
158+
print("next is focused")
159+
group.focus_prev()
160+
elifb==self.prev_button:
161+
print("prev is focused")
162+
group.focus_next()
163+
else:
164+
print("focus isn't on next or previous, leaving it...")
153165

154166
defshow_next_image(self,event=None):
155167
print("showing next image...")
@@ -188,5 +200,6 @@ def scale_image(self):
188200
scale_factor_h=round(lvgl_h*256/image_h)
189201
print(f"scale_factors:{scale_factor_w},{scale_factor_h}")
190202
self.image.set_size(lvgl_w,lvgl_h)
191-
self.image.set_scale(max(scale_factor_w,scale_factor_h))
203+
#self.image.set_scale(max(scale_factor_w,scale_factor_h)) # fills the entire screen but cuts off borders
204+
self.image.set_scale(min(scale_factor_w,scale_factor_h))
192205
print(f"after set_scale, the LVGL image has size:{self.image.get_width()}x{self.image.get_height()}")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp