bugfix
This commit is contained in:
parent
313274b376
commit
f1e493ca8e
@ -122,15 +122,9 @@ class BoxViewer(VBox):
|
|||||||
idx = data['idx']
|
idx = data['idx']
|
||||||
widgets = data['widgets']
|
widgets = data['widgets']
|
||||||
|
|
||||||
self._fbo = Fbo(size=self.size)
|
with self.fboContext():
|
||||||
with self._fbo:
|
|
||||||
self._background_color = Color(0,0,0,1)
|
|
||||||
self._background_rect = Rectangle(size=self.size)
|
|
||||||
for r in recs:
|
for r in recs:
|
||||||
self.showObject(widgets, r, index=idx)
|
self.showObject(widgets, r, index=idx)
|
||||||
with self.canvas:
|
|
||||||
self._fbo_rect = Rectangle(size=self.size,
|
|
||||||
texture=self._fbo.texture)
|
|
||||||
|
|
||||||
self.subwidgets += widgets
|
self.subwidgets += widgets
|
||||||
|
|
||||||
|
66
kivyblocks/container.py
Normal file
66
kivyblocks/container.py
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# container is ScrollView with a dataloader
|
||||||
|
from kivy.uix.scrollview import ScroppView
|
||||||
|
from kivy.properties import DictProperty, ListProperty, BooleanProperty
|
||||||
|
from .paging import Paging, RelatedLoader
|
||||||
|
|
||||||
|
class LayoutBuildFailed(Exception):
|
||||||
|
def __init__(self, desc):
|
||||||
|
self.desc = desc
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.desc)
|
||||||
|
|
||||||
|
def __expr__(self):
|
||||||
|
return str(self)
|
||||||
|
|
||||||
|
class Container(ScrollView):
|
||||||
|
"""
|
||||||
|
"loader":{
|
||||||
|
"page":1,
|
||||||
|
"rows":60,
|
||||||
|
"dataurl":"eeee",
|
||||||
|
"params":{
|
||||||
|
k:v
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"""
|
||||||
|
loader = DictProperty({})
|
||||||
|
data = ListProperty(None)
|
||||||
|
layout = DictProperty({})
|
||||||
|
viewer = DictProperty({})
|
||||||
|
extend_x = BooleanProperty(False)
|
||||||
|
content = None
|
||||||
|
def __init__(self, **kw):
|
||||||
|
super(Container, self).__init__(**kw)
|
||||||
|
self.content = Blocks.widgetBuild(self.layout, self)
|
||||||
|
if not self.content:
|
||||||
|
raise LayoutBuildFailed
|
||||||
|
if self.do_scroll_x:
|
||||||
|
self.content.bind(minimum_height=layout.setter('width'))
|
||||||
|
if self.do_scroll_y:
|
||||||
|
self.content.bind(minimum_height=layout.setter('height'))
|
||||||
|
super().add_widget(self.content)
|
||||||
|
self.dataloader = RelatedLoader(target=self, **self.loader)
|
||||||
|
self.dataloader.bind(on_deletepage=self.delete_page)
|
||||||
|
self.dataloader.bind(on_pageloaded=self.add_page)
|
||||||
|
self.dataloader.bind(on_pageloaded=self.update_tailer_info)
|
||||||
|
self.dataloader.bind(on_newbegin=self.clearRows)
|
||||||
|
|
||||||
|
def delete_page(self, ):
|
||||||
|
def add_page(self, ):
|
||||||
|
def clear_records(self, ):
|
||||||
|
|
||||||
|
def add_widget(self, w, index=0):
|
||||||
|
return self.content.add_widget(w,index=index)
|
||||||
|
|
||||||
|
def remove_widget(self, w):
|
||||||
|
return self.content.remove_widget(w)
|
||||||
|
|
||||||
|
def clear_widgets(self):
|
||||||
|
return self.content.clear_widgets()
|
||||||
|
|
||||||
|
def add_data(self, row_data):
|
||||||
|
desc = self.transfer(row_data)
|
||||||
|
w = Blocks.widgetBuild(desc)
|
||||||
|
if w:
|
||||||
|
self.add_widget(w)
|
@ -10,7 +10,6 @@ from kivy.uix.gridlayout import GridLayout
|
|||||||
from kivy.uix.boxlayout import BoxLayout
|
from kivy.uix.boxlayout import BoxLayout
|
||||||
from kivy.uix.scrollview import ScrollView
|
from kivy.uix.scrollview import ScrollView
|
||||||
from kivy.uix.label import Label
|
from kivy.uix.label import Label
|
||||||
from kivy.graphics import Fbo
|
|
||||||
from kivy.uix.button import ButtonBehavior
|
from kivy.uix.button import ButtonBehavior
|
||||||
from kivy.clock import Clock
|
from kivy.clock import Clock
|
||||||
from kivy.properties import BooleanProperty, StringProperty, \
|
from kivy.properties import BooleanProperty, StringProperty, \
|
||||||
@ -533,19 +532,6 @@ class DataGrid(VBox):
|
|||||||
for r in recs1:
|
for r in recs1:
|
||||||
id = self.addRow(r,index=idx)
|
id = self.addRow(r,index=idx)
|
||||||
ids.append(id)
|
ids.append(id)
|
||||||
"""
|
|
||||||
self._fbo = Fbo(size=self.size)
|
|
||||||
with self._fbo:
|
|
||||||
self._background_color = Color(0,0,0,1)
|
|
||||||
self._background_rect = Rectangle(size=self.size)
|
|
||||||
for r in recs1:
|
|
||||||
id = self.addRow(r,index=idx)
|
|
||||||
ids.append(id)
|
|
||||||
with self.canvas:
|
|
||||||
self._fbo_rect = Rectangle(size=self.size,
|
|
||||||
texture=self._fbo.texture)
|
|
||||||
"""
|
|
||||||
|
|
||||||
data['idx'] = idx
|
data['idx'] = idx
|
||||||
data['ids'] = ids
|
data['ids'] = ids
|
||||||
data['data'] = recs2
|
data['data'] = recs2
|
||||||
@ -557,16 +543,9 @@ class DataGrid(VBox):
|
|||||||
page = data['page']
|
page = data['page']
|
||||||
idx = data['idx']
|
idx = data['idx']
|
||||||
ids = data['ids']
|
ids = data['ids']
|
||||||
self._fbo = Fbo(size=self.size)
|
|
||||||
with self._fbo:
|
|
||||||
self._background_color = Color(0,0,0,1)
|
|
||||||
self._background_rect = Rectangle(size=self.size)
|
|
||||||
for r in recs:
|
for r in recs:
|
||||||
id = self.addRow(r,index=idx)
|
id = self.addRow(r,index=idx)
|
||||||
ids.append(id)
|
ids.append(id)
|
||||||
with self.canvas:
|
|
||||||
self._fbo_rect = Rectangle(size=self.size,
|
|
||||||
texture=self._fbo.texture)
|
|
||||||
self._dataloader.bufferObjects(page,ids)
|
self._dataloader.bufferObjects(page,ids)
|
||||||
x = self._dataloader.getLocater()
|
x = self._dataloader.getLocater()
|
||||||
self.locater(x)
|
self.locater(x)
|
||||||
@ -576,12 +555,13 @@ class DataGrid(VBox):
|
|||||||
self.delRow(id)
|
self.delRow(id)
|
||||||
|
|
||||||
def addRow(self,data, **kw):
|
def addRow(self,data, **kw):
|
||||||
# print('addRow()', data)
|
# print('#########addRow() ---------')
|
||||||
id = getID()
|
id = getID()
|
||||||
f_row = None
|
f_row = None
|
||||||
if self.freeze_part:
|
if self.freeze_part:
|
||||||
self.freeze_part.body.addRow(id, data, **kw)
|
self.freeze_part.body.addRow(id, data, **kw)
|
||||||
self.normal_part.body.addRow(id, data, **kw)
|
self.normal_part.body.addRow(id, data, **kw)
|
||||||
|
# print('#########addRow()==========')
|
||||||
return id
|
return id
|
||||||
|
|
||||||
def delRow(self,id,**kw):
|
def delRow(self,id,**kw):
|
||||||
|
@ -19,14 +19,14 @@ class NewVideo(Video):
|
|||||||
center_screen = BooleanProperty(False)
|
center_screen = BooleanProperty(False)
|
||||||
h_pattern = DictProperty(None)
|
h_pattern = DictProperty(None)
|
||||||
def __init__(self, **kw):
|
def __init__(self, **kw):
|
||||||
hack_mediaplayer()
|
|
||||||
Video.__init__(self, **kw)
|
|
||||||
Window.allow_screensaver = False
|
|
||||||
set_log_callback(self.ffplayerLog)
|
|
||||||
self.register_event_type('on_open_failed')
|
self.register_event_type('on_open_failed')
|
||||||
self.register_event_type('on_leave_focus')
|
self.register_event_type('on_leave_focus')
|
||||||
self.register_event_type('on_enter_focus')
|
self.register_event_type('on_enter_focus')
|
||||||
self.register_event_type('on_load_success')
|
self.register_event_type('on_load_success')
|
||||||
|
hack_mediaplayer()
|
||||||
|
Video.__init__(self, **kw)
|
||||||
|
Window.allow_screensaver = False
|
||||||
|
set_log_callback(self.ffplayerLog)
|
||||||
self.bind(source=self.record_start_time)
|
self.bind(source=self.record_start_time)
|
||||||
self.bind(loaded=self.on_video_loaded)
|
self.bind(loaded=self.on_video_loaded)
|
||||||
self.load_status = None
|
self.load_status = None
|
||||||
@ -34,6 +34,9 @@ class NewVideo(Video):
|
|||||||
if self.h_pattern:
|
if self.h_pattern:
|
||||||
[ set_headers_pattern(k,v) for k,v in self.h_pattern.items() ]
|
[ set_headers_pattern(k,v) for k,v in self.h_pattern.items() ]
|
||||||
|
|
||||||
|
def on_h_pattern(self, o, v):
|
||||||
|
pass
|
||||||
|
|
||||||
def set_patternheaders(self, pattern, headers_str):
|
def set_patternheaders(self, pattern, headers_str):
|
||||||
set_headers_pattern(pattern, headers_str)
|
set_headers_pattern(pattern, headers_str)
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ from kivyblocks.baseWidget import Running
|
|||||||
from appPublic.registerfunction import getRegisterFunctionByName
|
from appPublic.registerfunction import getRegisterFunctionByName
|
||||||
|
|
||||||
class VideoBehavior(object):
|
class VideoBehavior(object):
|
||||||
|
_player = None
|
||||||
v_src = StringProperty(None)
|
v_src = StringProperty(None)
|
||||||
status = OptionProperty('stop', \
|
status = OptionProperty('stop', \
|
||||||
options=['stop', 'play', 'pause'])
|
options=['stop', 'play', 'pause'])
|
||||||
@ -41,7 +42,6 @@ class VideoBehavior(object):
|
|||||||
renderto = OptionProperty('foreground', options=['background', 'foreground', 'cover'])
|
renderto = OptionProperty('foreground', options=['background', 'foreground', 'cover'])
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
self._player = None
|
|
||||||
self.change_size_task = None
|
self.change_size_task = None
|
||||||
self._update_task = None
|
self._update_task = None
|
||||||
self.running = None
|
self.running = None
|
||||||
|
Loading…
Reference in New Issue
Block a user