bugfix
0
docs/blocks.md
Normal file → Executable file
0
docs/changelog.md
Normal file → Executable file
0
docs/cn/binds.md
Normal file → Executable file
0
docs/cn/cdf.md
Normal file → Executable file
0
docs/cn/index.md
Normal file → Executable file
0
docs/cn/intro.md
Normal file → Executable file
0
docs/en/box.md
Normal file → Executable file
0
docs/imgs/hello_window.png
Normal file → Executable file
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
0
github-speed-up.md
Normal file → Executable file
0
kivyblocks/__init__.py
Normal file → Executable file
0
kivyblocks/android_rotation.py
Normal file → Executable file
0
kivyblocks/anz/__init__.py
Normal file → Executable file
0
kivyblocks/anz/bluetooth.py
Normal file → Executable file
0
kivyblocks/aplayer.py
Normal file → Executable file
0
kivyblocks/backendfunction.py
Normal file → Executable file
21
kivyblocks/baseWidget.py
Normal file → Executable file
@ -75,7 +75,7 @@ from .threadcall import HttpClient
|
|||||||
from .i18n import I18n
|
from .i18n import I18n
|
||||||
from .widget_css import WidgetCSS
|
from .widget_css import WidgetCSS
|
||||||
from .ready import WidgetReady
|
from .ready import WidgetReady
|
||||||
from .utils import CSize, SUPER
|
from .utils import CSize
|
||||||
from .swipebehavior import SwipeBehavior
|
from .swipebehavior import SwipeBehavior
|
||||||
from .widgetExt.inputext import MyDropDown
|
from .widgetExt.inputext import MyDropDown
|
||||||
|
|
||||||
@ -140,7 +140,7 @@ def ScatterBox(WidgetCSS, WidgetReady, ScatterLayout):
|
|||||||
class Box(WidgetCSS, WidgetReady, BoxLayout):
|
class Box(WidgetCSS, WidgetReady, BoxLayout):
|
||||||
def __init__(self, **kw):
|
def __init__(self, **kw):
|
||||||
try:
|
try:
|
||||||
SUPER(Box, self, kw)
|
super(Box, self).__init__(**kw)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print('Box(',kw,') Error')
|
print('Box(',kw,') Error')
|
||||||
raise e
|
raise e
|
||||||
@ -157,9 +157,7 @@ class VBox(Box):
|
|||||||
Box.__init__(self, **kw)
|
Box.__init__(self, **kw)
|
||||||
|
|
||||||
class SwipeBox(SwipeBehavior, Box):
|
class SwipeBox(SwipeBehavior, Box):
|
||||||
def __init__(self, **kw):
|
pass
|
||||||
SUPER(SwipeBox, self, kw)
|
|
||||||
|
|
||||||
|
|
||||||
class Text(Label):
|
class Text(Label):
|
||||||
lang=StringProperty('')
|
lang=StringProperty('')
|
||||||
@ -182,7 +180,7 @@ class Text(Label):
|
|||||||
if not kwargs.get('text'):
|
if not kwargs.get('text'):
|
||||||
kwargs['text'] = kwargs.get('otext','')
|
kwargs['text'] = kwargs.get('otext','')
|
||||||
|
|
||||||
SUPER(Text, self, kwargs)
|
super(Text, self).__init__(**kwargs)
|
||||||
if self._i18n:
|
if self._i18n:
|
||||||
self.i18n.addI18nWidget(self)
|
self.i18n.addI18nWidget(self)
|
||||||
if self.wrap:
|
if self.wrap:
|
||||||
@ -277,6 +275,7 @@ class Modal(VBox):
|
|||||||
self._target = None
|
self._target = None
|
||||||
super(Modal, self).__init__(**kw)
|
super(Modal, self).__init__(**kw)
|
||||||
self.set_size_position()
|
self.set_size_position()
|
||||||
|
print('size_hint=', self.size_hint, kw)
|
||||||
self._target.bind(size=self.set_size_position)
|
self._target.bind(size=self.set_size_position)
|
||||||
self.register_event_type('on_open')
|
self.register_event_type('on_open')
|
||||||
self.register_event_type('on_pre_open')
|
self.register_event_type('on_pre_open')
|
||||||
@ -299,7 +298,7 @@ class Modal(VBox):
|
|||||||
|
|
||||||
return super().on_touch_down(touch)
|
return super().on_touch_down(touch)
|
||||||
|
|
||||||
def on_target(self):
|
def on_target(self, o, target):
|
||||||
w = Window
|
w = Window
|
||||||
if self.target is not None:
|
if self.target is not None:
|
||||||
w = Factory.Blocks.getWidgetById(self.target)
|
w = Factory.Blocks.getWidgetById(self.target)
|
||||||
@ -324,9 +323,9 @@ class Modal(VBox):
|
|||||||
self.width = self.size_hint_x * self._target.width
|
self.width = self.size_hint_x * self._target.width
|
||||||
if self.size_hint_y:
|
if self.size_hint_y:
|
||||||
self.height = self.size_hint_y * self._target.height
|
self.height = self.size_hint_y * self._target.height
|
||||||
print(self.width, self.height,
|
print("size with target:", self.width, self.height,
|
||||||
self.size_hint_x, self.size_hint_y,
|
self.size_hint, self.size_hint,
|
||||||
self._target.size
|
"target size=", self._target.size
|
||||||
)
|
)
|
||||||
self.set_modal_position()
|
self.set_modal_position()
|
||||||
|
|
||||||
@ -392,7 +391,7 @@ class TimedModal(Modal):
|
|||||||
show_time = NumericProperty(0)
|
show_time = NumericProperty(0)
|
||||||
def __init__(self, **kw):
|
def __init__(self, **kw):
|
||||||
self.time_task = None
|
self.time_task = None
|
||||||
SUPER(TimedModal, self, kw)
|
super(TimedModal, self).__init__(**kw)
|
||||||
|
|
||||||
def open(self, *args, **kw):
|
def open(self, *args, **kw):
|
||||||
if self.time_task is not None:
|
if self.time_task is not None:
|
||||||
|
0
kivyblocks/bgcolorbehavior.py
Normal file → Executable file
0
kivyblocks/block_test.py
Normal file → Executable file
2
kivyblocks/blocks.py
Normal file → Executable file
@ -204,7 +204,7 @@ x = ClassX{klass_cnt}()
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
if url.startswith('file://'):
|
if url.startswith('file://'):
|
||||||
return self.script.dispatch(url, **params)
|
return self.script.dispatch(url, params)
|
||||||
elif url.startswith('http://') or url.startswith('https://'):
|
elif url.startswith('http://') or url.startswith('https://'):
|
||||||
try:
|
try:
|
||||||
hc = HttpClient()
|
hc = HttpClient()
|
||||||
|
28
kivyblocks/blocksapp.py
Normal file → Executable file
@ -60,10 +60,13 @@ class BlocksApp(App):
|
|||||||
with codecs.open(config.css.css_filename, 'r', 'utf-8') as f:
|
with codecs.open(config.css.css_filename, 'r', 'utf-8') as f:
|
||||||
d = json.load(f)
|
d = json.load(f)
|
||||||
self.buildCsses(d)
|
self.buildCsses(d)
|
||||||
if config.css.css_url:
|
try:
|
||||||
hc = HttpClient()
|
if config.css.css_url:
|
||||||
d = hc.get(self.realurl(config.css.css_url))
|
hc = HttpClient()
|
||||||
self.buildCsses(d)
|
d = hc.get(self.realurl(config.css.css_url))
|
||||||
|
self.buildCsses(d)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
def on_rotate(self,*largs):
|
def on_rotate(self,*largs):
|
||||||
self.current_rotation = Window.rotation
|
self.current_rotation = Window.rotation
|
||||||
@ -76,10 +79,19 @@ class BlocksApp(App):
|
|||||||
register_css(k,v)
|
register_css(k,v)
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
i18n = I18n()
|
config = getConfig()
|
||||||
|
self.workers = Workers(maxworkers=config.maxworkers or 80)
|
||||||
|
self.workers.start()
|
||||||
|
try:
|
||||||
|
i18n = I18n()
|
||||||
|
except:
|
||||||
|
i18n = None
|
||||||
self.platform = platform
|
self.platform = platform
|
||||||
self.is_desktop = platform in ['win', 'linux', 'macosx']
|
self.is_desktop = platform in ['win', 'linux', 'macosx']
|
||||||
config = getConfig()
|
self.default_params = {}
|
||||||
|
if config.default_params:
|
||||||
|
self.default_params.update(config.default_params)
|
||||||
|
|
||||||
self.public_headers = {
|
self.public_headers = {
|
||||||
"platform":self.platform
|
"platform":self.platform
|
||||||
}
|
}
|
||||||
@ -88,8 +100,6 @@ class BlocksApp(App):
|
|||||||
Window.bind(on_request_close=self.on_close)
|
Window.bind(on_request_close=self.on_close)
|
||||||
Window.bind(on_rotate=self.on_rotate)
|
Window.bind(on_rotate=self.on_rotate)
|
||||||
Window.bind(size=self.device_info)
|
Window.bind(size=self.device_info)
|
||||||
self.workers = Workers(maxworkers=config.maxworkers or 80)
|
|
||||||
self.workers.start()
|
|
||||||
self.load_csses()
|
self.load_csses()
|
||||||
self.running = True
|
self.running = True
|
||||||
if config.root:
|
if config.root:
|
||||||
@ -163,7 +173,7 @@ class BlocksApp(App):
|
|||||||
}
|
}
|
||||||
self.public_headers.update(device)
|
self.public_headers.update(device)
|
||||||
|
|
||||||
def on_close(self, *args):
|
def on_close(self, *args, **kwargs):
|
||||||
self.workers.running = False
|
self.workers.running = False
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
0
kivyblocks/boxViewer.py
Normal file → Executable file
0
kivyblocks/circle_progress.py
Normal file → Executable file
0
kivyblocks/clickable.py
Normal file → Executable file
0
kivyblocks/color_definitions.py
Normal file → Executable file
0
kivyblocks/colorcalc.py
Normal file → Executable file
0
kivyblocks/command_action.py
Normal file → Executable file
0
kivyblocks/dataloader.py
Normal file → Executable file
0
kivyblocks/date_picker.py
Normal file → Executable file
0
kivyblocks/dateinput.py
Normal file → Executable file
0
kivyblocks/defaultimage.py
Normal file → Executable file
66
kivyblocks/dg.py
Normal file → Executable file
@ -25,7 +25,7 @@ from appPublic.uniqueID import getID
|
|||||||
from appPublic.myTE import string_template_render
|
from appPublic.myTE import string_template_render
|
||||||
|
|
||||||
from .utils import *
|
from .utils import *
|
||||||
from .baseWidget import Text, HBox, VBox, Running
|
from .baseWidget import Text, HBox, VBox
|
||||||
from .scrollpanel import ScrollPanel
|
from .scrollpanel import ScrollPanel
|
||||||
from .paging import Paging, RelatedLoader
|
from .paging import Paging, RelatedLoader
|
||||||
from .ready import WidgetReady
|
from .ready import WidgetReady
|
||||||
@ -56,17 +56,19 @@ class Cell(ButtonBehavior, WidgetCSS, BoxLayout):
|
|||||||
"""
|
"""
|
||||||
self.desc = desc
|
self.desc = desc
|
||||||
self.row = row
|
self.row = row
|
||||||
self.part = self.row.part
|
width = self.desc['width']
|
||||||
self.datagrid = self.part.datagrid
|
height = self.row.part.datagrid.rowHeight()
|
||||||
|
print(f'Cell:{width=}, {height=},value={desc["value"]}')
|
||||||
super().__init__(size_hint=(None,None),
|
super().__init__(size_hint=(None,None),
|
||||||
width = self.desc['width'],
|
width=width,
|
||||||
height = self.row.part.datagrid.rowHeight()
|
bgcolor=[0.1,0.5,0.5],
|
||||||
|
height=height
|
||||||
)
|
)
|
||||||
self.csscls=self.row.part.datagrid.row_normal_css
|
self.csscls=self.row.part.datagrid.row_normal_css
|
||||||
if self.row.header:
|
if self.row.header:
|
||||||
self.csscls=self.row.part.datagrid.header_css
|
self.csscls=self.row.part.datagrid.header_css
|
||||||
if desc['header']:
|
if desc['header']:
|
||||||
bl = Text(i18n=True, otext=str(desc['value']),
|
bl = Text(i18n=True, text=str(desc['value']),
|
||||||
font_size=CSize(1),wrap=True,
|
font_size=CSize(1),wrap=True,
|
||||||
halign='left', valign='middle'
|
halign='left', valign='middle'
|
||||||
)
|
)
|
||||||
@ -74,14 +76,6 @@ class Cell(ButtonBehavior, WidgetCSS, BoxLayout):
|
|||||||
else:
|
else:
|
||||||
self.cell_type = 'data'
|
self.cell_type = 'data'
|
||||||
bl = UiFactory.build_view_widget(desc,self.row.row_data)
|
bl = UiFactory.build_view_widget(desc,self.row.row_data)
|
||||||
if self.row.header and desc['name'] == '_checkable_action_':
|
|
||||||
id = self.row.row_data[idfield]
|
|
||||||
if self.row.part.datagrid.is_checked(id):
|
|
||||||
bl.setValue(True)
|
|
||||||
else:
|
|
||||||
bl.setValue(False)
|
|
||||||
bl.bind(select_state=self.row.checkable_action)
|
|
||||||
|
|
||||||
self.colume_name = desc['name']
|
self.colume_name = desc['name']
|
||||||
if bl:
|
if bl:
|
||||||
self.add_widget(bl)
|
self.add_widget(bl)
|
||||||
@ -99,7 +93,6 @@ class Row(BoxLayout):
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
self.part = part
|
self.part = part
|
||||||
self.datagrid = self.part.datagrid
|
|
||||||
self.header = header
|
self.header = header
|
||||||
self.row_data = data
|
self.row_data = data
|
||||||
self.row_id = None
|
self.row_id = None
|
||||||
@ -114,9 +107,6 @@ class Row(BoxLayout):
|
|||||||
self.height = self.part.datagrid.rowHeight()
|
self.height = self.part.datagrid.rowHeight()
|
||||||
self.init(0)
|
self.init(0)
|
||||||
|
|
||||||
def checkable_action(self, o, *args):
|
|
||||||
self.datagrid.set_checked_rows(self.row_id, o.select_state)
|
|
||||||
|
|
||||||
def on_row_press(self, *args):
|
def on_row_press(self, *args):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -162,6 +152,7 @@ class Header(WidgetReady, ScrollPanel):
|
|||||||
for i,f in enumerate(rd) ]
|
for i,f in enumerate(rd) ]
|
||||||
self.header = Row(self.part,rd,header=True)
|
self.header = Row(self.part,rd,header=True)
|
||||||
self.add_widget(self.header)
|
self.add_widget(self.header)
|
||||||
|
self.size_hint_y = None
|
||||||
self.height = self.header.height
|
self.height = self.header.height
|
||||||
|
|
||||||
class Body(WidgetReady, ScrollPanel):
|
class Body(WidgetReady, ScrollPanel):
|
||||||
@ -182,6 +173,7 @@ class Body(WidgetReady, ScrollPanel):
|
|||||||
row.row_id = id
|
row.row_id = id
|
||||||
self.add_widget(row,index=index)
|
self.add_widget(row,index=index)
|
||||||
self.idRow[id] = row
|
self.idRow[id] = row
|
||||||
|
print(f'row size={row.size}, hint={row.size_hint}')
|
||||||
return row
|
return row
|
||||||
|
|
||||||
def clearRows(self):
|
def clearRows(self):
|
||||||
@ -327,7 +319,6 @@ class DataGrid(VBox):
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
checkable = BooleanProperty(False)
|
|
||||||
row_selected = BooleanProperty(False)
|
row_selected = BooleanProperty(False)
|
||||||
row_normal_css = StringProperty('default')
|
row_normal_css = StringProperty('default')
|
||||||
row_selected_css = StringProperty('default')
|
row_selected_css = StringProperty('default')
|
||||||
@ -341,16 +332,6 @@ class DataGrid(VBox):
|
|||||||
fields = ListProperty(None)
|
fields = ListProperty(None)
|
||||||
tailer = DictProperty(None)
|
tailer = DictProperty(None)
|
||||||
def __init__(self,**options):
|
def __init__(self,**options):
|
||||||
if self.checkable:
|
|
||||||
self.fields.insert(0, {
|
|
||||||
"name":"_checkable_action_",
|
|
||||||
"label":" ",
|
|
||||||
"type":"checkbox",
|
|
||||||
"width":CSize(2),
|
|
||||||
"freeze_flag":True
|
|
||||||
})
|
|
||||||
|
|
||||||
self.checked_rows = []
|
|
||||||
self.select_rowid = None
|
self.select_rowid = None
|
||||||
self.rowheight = None
|
self.rowheight = None
|
||||||
self.on_sizeTask = None
|
self.on_sizeTask = None
|
||||||
@ -388,16 +369,11 @@ class DataGrid(VBox):
|
|||||||
self.tailer_widgets = {}
|
self.tailer_widgets = {}
|
||||||
self.build_tailer(self.tailer)
|
self.build_tailer(self.tailer)
|
||||||
|
|
||||||
def set_checked_rows(self, rowid, flag):
|
|
||||||
if flag and rowid not in self.checked_ids:
|
|
||||||
self.checked_ids.append(rowid)
|
|
||||||
if not flag:
|
|
||||||
self.checked_ids = [ id for id in self.checked_ids if id !=rowid]
|
|
||||||
def on_rowpress(self, *args):
|
def on_rowpress(self, *args):
|
||||||
print('on_rowpress fire, args=', args)
|
print('on_rowpress fire, args=', args)
|
||||||
|
|
||||||
def on_cellpress(self, *args):
|
def on_cellpress(self, *args):
|
||||||
print('on_cesspress fire, args=', args)
|
print('on_cellpress fire, args=', args)
|
||||||
|
|
||||||
def on_headerpress(self, *args):
|
def on_headerpress(self, *args):
|
||||||
print('on_headerpress fire, args=', args)
|
print('on_headerpress fire, args=', args)
|
||||||
@ -462,7 +438,7 @@ class DataGrid(VBox):
|
|||||||
desc = {
|
desc = {
|
||||||
"widgettype":"Text",
|
"widgettype":"Text",
|
||||||
"options":{
|
"options":{
|
||||||
"otext":n,
|
"text":n,
|
||||||
"i18n":True,
|
"i18n":True,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -596,6 +572,7 @@ class DataGrid(VBox):
|
|||||||
self.delRow(id)
|
self.delRow(id)
|
||||||
|
|
||||||
def addRow(self,data, **kw):
|
def addRow(self,data, **kw):
|
||||||
|
# print('addRow()', data)
|
||||||
id = getID()
|
id = getID()
|
||||||
f_row = None
|
f_row = None
|
||||||
if self.freeze_part:
|
if self.freeze_part:
|
||||||
@ -639,6 +616,23 @@ class DataGrid(VBox):
|
|||||||
fs.append(f)
|
fs.append(f)
|
||||||
return fs
|
return fs
|
||||||
|
|
||||||
|
def show_size(self, *args, **kw):
|
||||||
|
print(f'dg:{self.size}')
|
||||||
|
print(f'normal_part:{self.normal_part.size}')
|
||||||
|
print(f'body:{self.normal_part.body.size}')
|
||||||
|
print(f'row:{self.normal_part.body.children[0].size}')
|
||||||
|
print(f'row:{self.normal_part.body.children[0].size}')
|
||||||
|
sp = self.normal_part.body.children[0]
|
||||||
|
print(f'rows={len(sp.children) - 1}')
|
||||||
|
for i, r in enumerate(sp.children):
|
||||||
|
print(f'{i} {r.size=}')
|
||||||
|
if self.normal_part.parent.parent == self:
|
||||||
|
print('part ok')
|
||||||
|
else:
|
||||||
|
print('part parent=', self.normal_part.parent)
|
||||||
|
if self.normal_part.body.parent == self.normal_part:
|
||||||
|
print('body ok')
|
||||||
|
|
||||||
def get_selected_data(self):
|
def get_selected_data(self):
|
||||||
if not self.selected_rowid:
|
if not self.selected_rowid:
|
||||||
return {}
|
return {}
|
||||||
|
0
kivyblocks/download.py
Normal file → Executable file
0
kivyblocks/externalwidgetmanager.py
Normal file → Executable file
0
kivyblocks/ffpyplayer_video.py
Normal file → Executable file
0
kivyblocks/filebrowser.py
Normal file → Executable file
1
kivyblocks/form.py
Normal file → Executable file
@ -32,6 +32,7 @@ form options
|
|||||||
"method"
|
"method"
|
||||||
}
|
}
|
||||||
"cols":"1"
|
"cols":"1"
|
||||||
|
"inputwidth",
|
||||||
"labelwidth":
|
"labelwidth":
|
||||||
"textsize":
|
"textsize":
|
||||||
"inputheight":
|
"inputheight":
|
||||||
|
0
kivyblocks/gps.py
Normal file → Executable file
0
kivyblocks/hack_ffpyplayer.py
Normal file → Executable file
0
kivyblocks/hierarchy.py
Normal file → Executable file
0
kivyblocks/hostimage.py
Normal file → Executable file
0
kivyblocks/httpvplayer.py
Normal file → Executable file
0
kivyblocks/i18n.py
Normal file → Executable file
BIN
kivyblocks/imgs/.DS_Store
vendored
Normal file → Executable file
0
kivyblocks/imgs/Mute64x64.png
Normal file → Executable file
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
0
kivyblocks/imgs/Play64X64.png
Normal file → Executable file
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
0
kivyblocks/imgs/Sound64x64.png
Normal file → Executable file
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
0
kivyblocks/imgs/backword.png
Normal file → Executable file
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
0
kivyblocks/imgs/broken.png
Normal file → Executable file
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
kivyblocks/imgs/bullet_arrow_down.png
Normal file → Executable file
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 201 B |
0
kivyblocks/imgs/bullet_arrow_right.png
Normal file → Executable file
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 315 B |
0
kivyblocks/imgs/cancel.png
Normal file → Executable file
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
0
kivyblocks/imgs/checkbox-off.png
Normal file → Executable file
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
0
kivyblocks/imgs/checkbox-on.png
Normal file → Executable file
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
0
kivyblocks/imgs/clear.png
Normal file → Executable file
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
0
kivyblocks/imgs/conform.png
Normal file → Executable file
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
0
kivyblocks/imgs/crud_add.png
Normal file → Executable file
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
0
kivyblocks/imgs/crud_browser.png
Normal file → Executable file
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
0
kivyblocks/imgs/crud_del.png
Normal file → Executable file
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
0
kivyblocks/imgs/crud_edit.png
Normal file → Executable file
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
0
kivyblocks/imgs/crud_filter.png
Normal file → Executable file
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
0
kivyblocks/imgs/delete.png
Normal file → Executable file
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
0
kivyblocks/imgs/doing.gif
Normal file → Executable file
Before Width: | Height: | Size: 171 KiB After Width: | Height: | Size: 171 KiB |
0
kivyblocks/imgs/download.png
Normal file → Executable file
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
0
kivyblocks/imgs/error.png
Normal file → Executable file
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
0
kivyblocks/imgs/folder.png
Normal file → Executable file
Before Width: | Height: | Size: 537 B After Width: | Height: | Size: 537 B |
0
kivyblocks/imgs/icon_view.png
Normal file → Executable file
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
0
kivyblocks/imgs/info.png
Normal file → Executable file
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
0
kivyblocks/imgs/kivymd_512.png
Normal file → Executable file
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
0
kivyblocks/imgs/kivymd_logo.png
Normal file → Executable file
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB |
0
kivyblocks/imgs/list_view.png
Normal file → Executable file
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
0
kivyblocks/imgs/loading.gif
Normal file → Executable file
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
0
kivyblocks/imgs/loading1.gif
Normal file → Executable file
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 131 KiB |
0
kivyblocks/imgs/menu.png
Normal file → Executable file
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
0
kivyblocks/imgs/musictrack.png
Normal file → Executable file
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
0
kivyblocks/imgs/musictrack_d.png
Normal file → Executable file
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
0
kivyblocks/imgs/next.png
Normal file → Executable file
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
0
kivyblocks/imgs/next_d.png
Normal file → Executable file
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
0
kivyblocks/imgs/org_sound.png
Normal file → Executable file
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
0
kivyblocks/imgs/org_sound_d.png
Normal file → Executable file
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
0
kivyblocks/imgs/origin.jpg
Normal file → Executable file
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
0
kivyblocks/imgs/pause.png
Normal file → Executable file
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
0
kivyblocks/imgs/pause_d.png
Normal file → Executable file
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
0
kivyblocks/imgs/photo.png
Normal file → Executable file
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
0
kivyblocks/imgs/picture_empty.png
Normal file → Executable file
Before Width: | Height: | Size: 463 B After Width: | Height: | Size: 463 B |
0
kivyblocks/imgs/play.png
Normal file → Executable file
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 48 KiB |
0
kivyblocks/imgs/play_d.png
Normal file → Executable file
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
0
kivyblocks/imgs/power64x64.png
Normal file → Executable file
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
0
kivyblocks/imgs/previous.jpg
Normal file → Executable file
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
0
kivyblocks/imgs/quad_shadow-0.png
Normal file → Executable file
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
0
kivyblocks/imgs/quad_shadow-1.png
Normal file → Executable file
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
0
kivyblocks/imgs/quad_shadow-2.png
Normal file → Executable file
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
0
kivyblocks/imgs/quad_shadow.atlas
Normal file → Executable file
0
kivyblocks/imgs/question.png
Normal file → Executable file
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
0
kivyblocks/imgs/rec_shadow-0.png
Normal file → Executable file
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
0
kivyblocks/imgs/rec_shadow-1.png
Normal file → Executable file
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
0
kivyblocks/imgs/rec_shadow.atlas
Normal file → Executable file
0
kivyblocks/imgs/rec_st_shadow-0.png
Normal file → Executable file
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
0
kivyblocks/imgs/rec_st_shadow-1.png
Normal file → Executable file
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
kivyblocks/imgs/rec_st_shadow-2.png
Normal file → Executable file
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |