def createLowRightButton(self, label, type, movieIn, movieOut, movieShake): item = TextButton(label, TextButton.RIGHT, type, self.window.mainSceneRoot, TextButton.PANEL) item.setRecursiveVisible(False) item.setZValue(10) sw = self.window.scene.sceneRect().width() xOffset = 70 # Create in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1800) anim.setStartValue( QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt( 0.5, QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt( 0.7, QPointF(xOffset + 535, Colors.contentStartY + Colors.contentHeight - 35)) anim.setEndValue( QPointF(xOffset + 535, Colors.contentStartY + Colors.contentHeight - 26)) movieIn.append(anim) # Create out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(400) anim.setStartValue( QPointF(xOffset + 535, Colors.contentStartY + Colors.contentHeight - 26)) anim.setEndValue( QPointF(sw, Colors.contentStartY + Colors.contentHeight - 26)) movieOut.append(anim)
def createInfo(self, item, name): movie_in = self.score.insertMovie(name) movie_out = self.score.insertMovie(name + ' -out') item.setZValue(8) item.setRecursiveVisible(False) xOffset = 230.0 infoIn = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) infoIn.setDuration(650) infoIn.setStartValue( QPointF(self.window.scene.sceneRect().width(), Colors.contentStartY)) infoIn.setKeyValueAt(0.60, QPointF(xOffset, Colors.contentStartY)) infoIn.setKeyValueAt(0.70, QPointF(xOffset + 20, Colors.contentStartY)) infoIn.setKeyValueAt(0.80, QPointF(xOffset, Colors.contentStartY)) infoIn.setKeyValueAt(0.90, QPointF(xOffset + 7, Colors.contentStartY)) infoIn.setEndValue(QPointF(xOffset, Colors.contentStartY)) movie_in.append(infoIn) infoOut = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) infoOut.setCurveShape(QEasingCurve.InQuad) infoOut.setDuration(300) infoOut.setHideOnFinished(True) infoOut.setStartValue(QPointF(xOffset, Colors.contentStartY)) infoOut.setEndValue(QPointF(-600, Colors.contentStartY)) movie_out.append(infoOut)
def createLowRightLeafButton(self, label, xOffset, type, movieIn, movieOut, movieShake): item = TextButton(label, TextButton.RIGHT, type, self.window.mainSceneRoot, TextButton.PANEL) item.setRecursiveVisible(False) item.setZValue(10) sw = self.window.scene.sceneRect().width() sh = self.window.scene.sceneRect().height() # Create in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1050) anim.setStartValue(QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt(0.10, QPointF(sw, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt(0.30, QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt(0.35, QPointF(xOffset + 30, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt(0.40, QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt(0.45, QPointF(xOffset + 5, Colors.contentStartY + Colors.contentHeight - 35)) anim.setKeyValueAt(0.50, QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) anim.setEndValue(QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) movieIn.append(anim) # Create out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(300) anim.setStartValue(QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) anim.setEndValue(QPointF(xOffset, sh)) movieOut.append(anim)
def createLowLeftButton(self, label, type, movieIn, movieOut, movieShake, menuString=""): button = TextButton(label, TextButton.RIGHT, type, self.window.mainSceneRoot, TextButton.PANEL) if menuString: button.setMenuString(menuString) button.setRecursiveVisible(False) button.setZValue(10) iw = button.sceneBoundingRect().width() xOffset = 15 # Create in-animation. buttonIn = DemoItemAnimation(button, DemoItemAnimation.ANIM_IN) buttonIn.setDuration(1800) buttonIn.setStartValue( QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setKeyValueAt( 0.5, QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setKeyValueAt( 0.7, QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setEndValue( QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) movieIn.append(buttonIn) # Create out-animation. buttonOut = DemoItemAnimation(button, DemoItemAnimation.ANIM_OUT) buttonOut.setHideOnFinished(True) buttonOut.setDuration(400) buttonOut.setStartValue( QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) buttonOut.setEndValue( QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 26)) movieOut.append(buttonOut) if movieShake is not None: shakeAnim = DemoItemAnimation(button, DemoItemAnimation.ANIM_UNSPECIFIED) shakeAnim.setDuration(650) shakeAnim.setStartValue(buttonIn.endValue()) shakeAnim.setKeyValueAt(0.60, buttonIn.endValue()) shakeAnim.setKeyValueAt(0.70, buttonIn.endValue() + QPointF(-3, 0)) shakeAnim.setKeyValueAt(0.80, buttonIn.endValue() + QPointF(2, 0)) shakeAnim.setKeyValueAt(0.90, buttonIn.endValue() + QPointF(-1, 0)) shakeAnim.setEndValue(buttonIn.endValue()) movieShake.append(shakeAnim)
def createTicker(self): if Colors.noTicker: return movie_in = self.score.insertMovie('ticker') movie_out = self.score.insertMovie('ticker -out') movie_activate = self.score.insertMovie('ticker -activate') movie_deactivate = self.score.insertMovie('ticker -deactivate') self.ticker = ItemCircleAnimation() self.ticker.setZValue(50) self.ticker.hide() # Move ticker in. qtendpos = 485 qtPosY = 120 self.tickerInAnim = DemoItemAnimation(self.ticker, DemoItemAnimation.ANIM_IN) self.tickerInAnim.setDuration(500) self.tickerInAnim.setStartValue(QPointF(self.window.scene.sceneRect().width(), Colors.contentStartY + qtPosY)) self.tickerInAnim.setKeyValueAt(0.60, QPointF(qtendpos, Colors.contentStartY + qtPosY)) self.tickerInAnim.setKeyValueAt(0.70, QPointF(qtendpos + 30, Colors.contentStartY + qtPosY)) self.tickerInAnim.setKeyValueAt(0.80, QPointF(qtendpos, Colors.contentStartY + qtPosY)) self.tickerInAnim.setKeyValueAt(0.90, QPointF(qtendpos + 5, Colors.contentStartY + qtPosY)) self.tickerInAnim.setEndValue(QPointF(qtendpos, Colors.contentStartY + qtPosY)) movie_in.append(self.tickerInAnim) # Move ticker out. qtOut = DemoItemAnimation(self.ticker, DemoItemAnimation.ANIM_OUT) qtOut.setHideOnFinished(True) qtOut.setDuration(500) qtOut.setStartValue(QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtOut.setEndValue(QPointF(self.window.scene.sceneRect().width() + 700, Colors.contentStartY + qtPosY)) movie_out.append(qtOut) # Move ticker in on activate. qtActivate = DemoItemAnimation(self.ticker) qtActivate.setDuration(400) qtActivate.setStartValue(QPointF(self.window.scene.sceneRect().width(), Colors.contentStartY + qtPosY)) qtActivate.setKeyValueAt(0.60, QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtActivate.setKeyValueAt(0.70, QPointF(qtendpos + 30, Colors.contentStartY + qtPosY)) qtActivate.setKeyValueAt(0.80, QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtActivate.setKeyValueAt(0.90, QPointF(qtendpos + 5, Colors.contentStartY + qtPosY)) qtActivate.setEndValue(QPointF(qtendpos, Colors.contentStartY + qtPosY)) movie_activate.append(qtActivate) # Move ticker out on deactivate. qtDeactivate = DemoItemAnimation(self.ticker) qtDeactivate.setHideOnFinished(True) qtDeactivate.setDuration(400) qtDeactivate.setStartValue(QPointF(qtendpos, Colors.contentStartY + qtPosY)) qtDeactivate.setEndValue(QPointF(qtendpos, 800)) movie_deactivate.append(qtDeactivate)
def createLowLeftButton(self, label, type, movieIn, movieOut, movieShake, menuString=""): button = TextButton(label, TextButton.RIGHT, type, self.window.mainSceneRoot, TextButton.PANEL) if menuString: button.setMenuString(menuString) button.setRecursiveVisible(False) button.setZValue(10) iw = button.sceneBoundingRect().width() xOffset = 15 # Create in-animation. buttonIn = DemoItemAnimation(button, DemoItemAnimation.ANIM_IN) buttonIn.setDuration(1800) buttonIn.setStartValue(QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setKeyValueAt(0.5, QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setKeyValueAt(0.7, QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 35)) buttonIn.setEndValue(QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) movieIn.append(buttonIn) # Create out-animation. buttonOut = DemoItemAnimation(button, DemoItemAnimation.ANIM_OUT) buttonOut.setHideOnFinished(True) buttonOut.setDuration(400) buttonOut.setStartValue(QPointF(xOffset, Colors.contentStartY + Colors.contentHeight - 26)) buttonOut.setEndValue(QPointF(-iw, Colors.contentStartY + Colors.contentHeight - 26)) movieOut.append(buttonOut) if movieShake is not None: shakeAnim = DemoItemAnimation(button, DemoItemAnimation.ANIM_UNSPECIFIED) shakeAnim.setDuration(650) shakeAnim.setStartValue(buttonIn.endValue()) shakeAnim.setKeyValueAt(0.60, buttonIn.endValue()) shakeAnim.setKeyValueAt(0.70, buttonIn.endValue() + QPointF(-3, 0)) shakeAnim.setKeyValueAt(0.80, buttonIn.endValue() + QPointF(2, 0)) shakeAnim.setKeyValueAt(0.90, buttonIn.endValue() + QPointF(-1, 0)) shakeAnim.setEndValue(buttonIn.endValue()) movieShake.append(shakeAnim)
def createInfo(self, item, name): movie_in = self.score.insertMovie(name) movie_out = self.score.insertMovie(name + ' -out') item.setZValue(8) item.setRecursiveVisible(False) xOffset = 230.0 infoIn = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) infoIn.setDuration(650) infoIn.setStartValue(QPointF(self.window.scene.sceneRect().width(), Colors.contentStartY)) infoIn.setKeyValueAt(0.60, QPointF(xOffset, Colors.contentStartY)) infoIn.setKeyValueAt(0.70, QPointF(xOffset + 20, Colors.contentStartY)) infoIn.setKeyValueAt(0.80, QPointF(xOffset, Colors.contentStartY)) infoIn.setKeyValueAt(0.90, QPointF(xOffset + 7, Colors.contentStartY)) infoIn.setEndValue(QPointF(xOffset, Colors.contentStartY)) movie_in.append(infoIn) infoOut = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) infoOut.setCurveShape(QEasingCurve.InQuad) infoOut.setDuration(300) infoOut.setHideOnFinished(True) infoOut.setStartValue(QPointF(xOffset, Colors.contentStartY)) infoOut.setEndValue(QPointF(-600, Colors.contentStartY)) movie_out.append(infoOut)
def createMenu(self, category, type): sw = self.window.scene.sceneRect().width() xOffset = 15 yOffset = 10 maxExamples = Colors.menuCount menuIndex = 1 name = category.getAttribute('name') currentNode = self._first_element(category) currentMenu = '%s -menu%d' % (name, menuIndex) while currentNode is not None: movieIn = self.score.insertMovie(currentMenu) movieOut = self.score.insertMovie(currentMenu + ' -out') movieNextTopOut = self.score.insertMovie(currentMenu + ' -top_out') movieNextBottomOut = self.score.insertMovie(currentMenu + ' -bottom_out') movieNextTopIn = self.score.insertMovie(currentMenu + ' -top_in') movieNextBottomIn = self.score.insertMovie(currentMenu + ' -bottom_in') movieShake = self.score.insertMovie(currentMenu + ' -shake') i = 0 while currentNode is not None and i < maxExamples: # Create a normal menu button. label = currentNode.getAttribute('name') item = TextButton(label, TextButton.LEFT, type, self.window.mainSceneRoot) item.setRecursiveVisible(False) item.setZValue(10) ih = item.sceneBoundingRect().height() iw = item.sceneBoundingRect().width() ihp = ih + 3 # Create in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1000 + (i * 20)) anim.setStartValue(QPointF(xOffset, -ih)) anim.setKeyValueAt(0.20, QPointF(xOffset, -ih)) anim.setKeyValueAt( 0.50, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (10 * float(i / 4.0)))) anim.setKeyValueAt( 0.60, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt( 0.70, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (5 * float(i / 4.0)))) anim.setKeyValueAt( 0.80, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt( 0.90, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (2 * float(i / 4.0)))) anim.setEndValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieIn.append(anim) # Create out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(700 + (30 * i)) anim.setStartValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.60, QPointF(xOffset, 600 - ih - ih)) anim.setKeyValueAt(0.65, QPointF(xOffset + 20, 600 - ih)) anim.setEndValue(QPointF(sw + iw, 600 - ih)) movieOut.append(anim) # Create shake-animation. anim = DemoItemAnimation(item) anim.setDuration(700) anim.setStartValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt( 0.55, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY - i * 2.0)) anim.setKeyValueAt( 0.70, QPointF(xOffset - 10, (i * ihp) + yOffset + Colors.contentStartY - i * 1.5)) anim.setKeyValueAt( 0.80, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY - i * 1.0)) anim.setKeyValueAt( 0.90, QPointF(xOffset - 2, (i * ihp) + yOffset + Colors.contentStartY - i * 0.5)) anim.setEndValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieShake.append(anim) # Create next-menu top-out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(200 + (30 * i)) anim.setStartValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt( 0.70, QPointF(xOffset, yOffset + Colors.contentStartY)) anim.setEndValue(QPointF(-iw, yOffset + Colors.contentStartY)) movieNextTopOut.append(anim) # Create next-menu bottom-out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(200 + (30 * i)) anim.setStartValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt( 0.70, QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setEndValue( QPointF(-iw, (maxExamples * ihp) + yOffset + Colors.contentStartY)) movieNextBottomOut.append(anim) # Create next-menu top-in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(700 - (30 * i)) anim.setStartValue(QPointF(-iw, yOffset + Colors.contentStartY)) anim.setKeyValueAt( 0.30, QPointF(xOffset, yOffset + Colors.contentStartY)) anim.setEndValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieNextTopIn.append(anim) # Create next-menu bottom-in-animation. reverse = maxExamples - i anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1000 - (30 * reverse)) anim.setStartValue( QPointF(-iw, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt( 0.30, QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setEndValue( QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieNextBottomIn.append(anim) i += 1 currentNode = self._next_element(currentNode) if currentNode is not None and i == maxExamples: # We need another menu, so register for 'more' and 'back' # buttons. menuIndex += 1 self.info.setdefault( currentMenu, {})['more'] = '%s -menu%d' % (name, menuIndex) currentMenu = '%s -menu%d' % (name, menuIndex) self.info.setdefault( currentMenu, {})['back'] = '%s -menu%d' % (name, menuIndex - 1)
def createMenu(self, category, type): sw = self.window.scene.sceneRect().width() xOffset = 15 yOffset = 10 maxExamples = Colors.menuCount menuIndex = 1 name = category.getAttribute('name') currentNode = self._first_element(category) currentMenu = '%s -menu%d' % (name, menuIndex) while currentNode is not None: movieIn = self.score.insertMovie(currentMenu) movieOut = self.score.insertMovie(currentMenu + ' -out') movieNextTopOut = self.score.insertMovie(currentMenu + ' -top_out') movieNextBottomOut = self.score.insertMovie(currentMenu + ' -bottom_out') movieNextTopIn = self.score.insertMovie(currentMenu + ' -top_in') movieNextBottomIn = self.score.insertMovie(currentMenu + ' -bottom_in') movieShake = self.score.insertMovie(currentMenu + ' -shake') i = 0 while currentNode is not None and i < maxExamples: # Create a normal menu button. label = currentNode.getAttribute('name') item = TextButton(label, TextButton.LEFT, type, self.window.mainSceneRoot) item.setRecursiveVisible(False) item.setZValue(10) ih = item.sceneBoundingRect().height() iw = item.sceneBoundingRect().width() ihp = ih + 3 # Create in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1000 + (i * 20)) anim.setStartValue(QPointF(xOffset, -ih)) anim.setKeyValueAt(0.20, QPointF(xOffset, -ih)) anim.setKeyValueAt(0.50, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (10 * float(i / 4.0)))) anim.setKeyValueAt(0.60, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.70, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (5 * float(i / 4.0)))) anim.setKeyValueAt(0.80, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.90, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY + (2 * float(i / 4.0)))) anim.setEndValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieIn.append(anim) # Create out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(700 + (30 * i)) anim.setStartValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.60, QPointF(xOffset, 600 - ih - ih)) anim.setKeyValueAt(0.65, QPointF(xOffset + 20, 600 - ih)) anim.setEndValue(QPointF(sw + iw, 600 - ih)) movieOut.append(anim) # Create shake-animation. anim = DemoItemAnimation(item) anim.setDuration(700) anim.setStartValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.55, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY - i*2.0)) anim.setKeyValueAt(0.70, QPointF(xOffset - 10, (i * ihp) + yOffset + Colors.contentStartY - i*1.5)) anim.setKeyValueAt(0.80, QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY - i*1.0)) anim.setKeyValueAt(0.90, QPointF(xOffset - 2, (i * ihp) + yOffset + Colors.contentStartY - i*0.5)) anim.setEndValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieShake.append(anim) # Create next-menu top-out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(200 + (30 * i)) anim.setStartValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.70, QPointF(xOffset, yOffset + Colors.contentStartY)) anim.setEndValue(QPointF(-iw, yOffset + Colors.contentStartY)) movieNextTopOut.append(anim) # Create next-menu bottom-out-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_OUT) anim.setHideOnFinished(True) anim.setDuration(200 + (30 * i)) anim.setStartValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.70, QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setEndValue(QPointF(-iw, (maxExamples * ihp) + yOffset + Colors.contentStartY)) movieNextBottomOut.append(anim) # Create next-menu top-in-animation. anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(700 - (30 * i)) anim.setStartValue(QPointF(-iw, yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.30, QPointF(xOffset, yOffset + Colors.contentStartY)) anim.setEndValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieNextTopIn.append(anim) # Create next-menu bottom-in-animation. reverse = maxExamples - i anim = DemoItemAnimation(item, DemoItemAnimation.ANIM_IN) anim.setDuration(1000 - (30 * reverse)) anim.setStartValue(QPointF(-iw, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setKeyValueAt(0.30, QPointF(xOffset, (maxExamples * ihp) + yOffset + Colors.contentStartY)) anim.setEndValue(QPointF(xOffset, (i * ihp) + yOffset + Colors.contentStartY)) movieNextBottomIn.append(anim) i += 1 currentNode = self._next_element(currentNode) if currentNode is not None and i == maxExamples: # We need another menu, so register for 'more' and 'back' # buttons. menuIndex += 1 self.info.setdefault(currentMenu, {})['more'] = '%s -menu%d' % (name, menuIndex) currentMenu = '%s -menu%d' % (name, menuIndex) self.info.setdefault(currentMenu, {})['back'] = '%s -menu%d' % (name, menuIndex - 1)