attempt to detect end of pptviewer pre-load if ppt is set to loop until ESC

This commit is contained in:
Jonathan Corwin 2011-03-12 17:06:26 +00:00
parent bc4e4147a7
commit 363b49b490
4 changed files with 18 additions and 12 deletions

View File

@ -143,24 +143,23 @@ class MainDisplay(DisplayWidget):
if not background_color.isValid():
background_color = QtCore.Qt.white
splash_image = QtGui.QImage(image_file)
initialFrame = QtGui.QImage(
self.initialFrame = QtGui.QImage(
self.screens.current[u'size'].width(),
self.screens.current[u'size'].height(),
QtGui.QImage.Format_ARGB32_Premultiplied)
QtGui.QImage.Format_ARGB32_Premultiplied)
painter_image = QtGui.QPainter()
painter_image.begin(initialFrame)
painter_image.fillRect(initialFrame.rect(), background_color)
painter_image.begin(self.initialFrame)
painter_image.fillRect(self.initialFrame.rect(), background_color)
painter_image.drawImage(
(self.screens.current[u'size'].width() -
splash_image.width()) / 2,
(self.screens.current[u'size'].height()
- splash_image.height()) / 2, splash_image)
serviceItem = ServiceItem()
serviceItem.bg_image_bytes = image_to_byte(initialFrame)
serviceItem.bg_image_bytes = image_to_byte(self.initialFrame)
self.webView.setHtml(build_html(serviceItem, self.screen,
self.alertTab, self.isLive, None))
self.initialFrame = True
self.__hideMouse()
self.__hideMouse()
# To display or not to display?
if not self.screen[u'primary']:
self.show()
@ -422,7 +421,7 @@ class MainDisplay(DisplayWidget):
"""
log.debug(u'buildHtml')
self.webLoaded = False
self.initialFrame = False
self.initialFrame = None
self.serviceItem = serviceItem
background = None
# We have an image override so keep the image till the theme changes

View File

@ -84,7 +84,7 @@ class PptviewController(PresentationController):
dllpath = os.path.join(self.plugin.pluginManager.basepath,
u'presentations', u'lib', u'pptviewlib', u'pptviewlib.dll')
self.process = cdll.LoadLibrary(dllpath)
#self.process.SetDebug(1)
self.process.SetDebug(1)
def kill(self):
"""

View File

@ -404,7 +404,7 @@ DllExport int GetCurrentSlide(int id)
// Take a step forwards through the show
DllExport void NextStep(int id)
{
DEBUG("NextStep:%d\n", id);
DEBUG("NextStep:%d (%d)\n", id, pptviewobj[id].currentSlide);
if(pptviewobj[id].currentSlide>pptviewobj[id].slideCount)
return;
PostMessage(pptviewobj[id].hWnd2, WM_MOUSEWHEEL, MAKEWPARAM(0, -WHEEL_DELTA), 0);
@ -413,7 +413,7 @@ DllExport void NextStep(int id)
// Take a step backwards through the show
DllExport void PrevStep(int id)
{
DEBUG("PrevStep:%d\n", id);
DEBUG("PrevStep:%d (%d)\n", id, pptviewobj[id].currentSlide);
PostMessage(pptviewobj[id].hWnd2, WM_MOUSEWHEEL, MAKEWPARAM(0, WHEEL_DELTA), 0);
}
@ -630,7 +630,7 @@ LRESULT CALLBACK CwpProc(int nCode, WPARAM wParam, LPARAM lParam){
if((id>=0)&&(nCode==HC_ACTION))
{
if(cwp->message==WM_USER+22)
{
{
if(pptviewobj[id].state != PPT_LOADED)
{
if((pptviewobj[id].currentSlide>0)
@ -651,6 +651,13 @@ LRESULT CALLBACK CwpProc(int nCode, WPARAM wParam, LPARAM lParam){
else
{
pptviewobj[id].currentSlide = cwp->wParam - 255;
if(pptviewobj[id].state != PPT_LOADED)
{
if(pptviewobj[id].currentSlide<pptviewobj[id].slideCount)
{
pptviewobj[id].state = PPT_LOADED;
}
}
if(pptviewobj[id].currentSlide>pptviewobj[id].slideCount)
pptviewobj[id].slideCount = pptviewobj[id].currentSlide;
}