Skip to content

Commit 23eb553

Browse files
committed
fix page change
1 parent 4004d84 commit 23eb553

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

kivy/core/image/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -475,9 +475,10 @@ def _get_page(self):
475475
return self._page
476476

477477
def _set_page(self, page):
478+
self._page = page
478479
self.image = ImageLoader.load(self._filename, page=page)
479-
self._page = self.image.page
480480
self._texture = self.image.texture
481+
self.dispatch('on_texture')
481482

482483
page = property(_get_page, _set_page,
483484
doc='Get/set the displayed page of a pdf')

kivy/core/image/img_pdf.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
except:
88
raise
99

10+
from kivy.cache import Cache
1011
from kivy.logger import Logger
1112
from kivy.core.image import ImageLoaderBase, ImageData, ImageLoader
1213

14+
from kivy.graphics.texture import Texture, TextureRegion
1315
Debug = False
1416

1517
import io
@@ -60,4 +62,32 @@ def load(self, filename):
6062

6163
return (ImageData(size[0], size[1], 'rgba', im.tostring()),)
6264

65+
def populate(self):
66+
self._textures = []
67+
if __debug__:
68+
Logger.trace('Image: %r, populate to textures (%d)' %
69+
(self.filename, len(self._data)))
70+
71+
# first, check if a texture with the same name already exist in the
72+
# cache
73+
uid = '%s|%s|%s' % (
74+
self.filename,
75+
self._mipmap,
76+
hasattr(self, 'page') and self.page or 0)
77+
78+
texture = Cache.get('kv.texture', uid)
79+
80+
# if not create it and append to the cache
81+
if texture is None:
82+
texture = Texture.create_from_data(
83+
self._data[0], mipmap=self._mipmap)
84+
Cache.append('kv.texture', uid, texture)
85+
86+
# set as our current texture
87+
self._textures.append(texture)
88+
89+
# release data if ask
90+
if not self.keep_data:
91+
self._data[0].release_data()
92+
6393
ImageLoader.register(ImageLoaderPDF)

0 commit comments

Comments
 (0)