def getting_pixmaps(self):
        for snapshot in self.snapshots:
            preview_files_objects = snapshot.get_previewable_files_objects()
            for preview_file_obj in preview_files_objects:
                web_file_obj = preview_file_obj.get_web_preview()
                if not web_file_obj:
                    web_file_obj = preview_file_obj

                if web_file_obj.is_meta_file_obj():
                    meta_file_object = web_file_obj.get_meta_file_object()
                    pixmap = Qt4Gui.QPixmap(meta_file_object.get_all_files_list(first=True))
                else:
                    pixmap = Qt4Gui.QPixmap(web_file_obj.get_full_abs_path())

                if not pixmap.isNull():
                    self.pix_list.append(pixmap.scaledToWidth(640, QtCore.Qt.SmoothTransformation))
                    self.file_list.append(preview_file_obj)

        self.create_scene()
    def rotate_pixmaps(self, index=None):

        if self.pix_list and self.pm_list:

            idx = index % len(self.pix_list)
            pm_idx = index % len(self.pm_list)

            pixmap = Qt4Gui.QPixmap(self.pix_list[idx])

            if not pixmap.isNull():
                self.pm_list[pm_idx].add_pixmap(pixmap.scaledToWidth(640, QtCore.Qt.SmoothTransformation))

            self.previewGraphicsView.setSceneRect(self.pm_list[pm_idx].pixmap_item.boundingRect())
            self.previewGraphicsView.fitInView(self.pm_list[pm_idx].pixmap_item.boundingRect(), QtCore.Qt.KeepAspectRatio)
    def update_scene(self):
        if self.pix_list:

            self.clear_scene()

            self.pm_list = [self.pm1, self.pm2, self.pm3]

            for i, pm in enumerate(self.pm_list):
                pixmap = Qt4Gui.QPixmap(self.pix_list[i % len(self.pix_list)])
                if pixmap.isNull():
                    pm.set_op(0.0)
                else:
                    pm.add_pixmap(pixmap.scaledToWidth(640, QtCore.Qt.SmoothTransformation))


            self.previewGraphicsView.setSceneRect(self.pm1.pixmap_item.boundingRect())
            self.previewGraphicsView.fitInView(self.pm1.pixmap_item.boundingRect(), QtCore.Qt.KeepAspectRatio)

        self.imagesSlider.setValue(0)

        if not self.machine.isRunning():
            self.machine.start()
    def setupUi(self, richedit):
        richedit.setObjectName("richedit")
        richedit.resize(506, 22)
        self.horizontalLayout = QtGui.QHBoxLayout(richedit)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.boldButton = QtGui.QToolButton(richedit)
        self.boldButton.setToolTip("Set selected Text Bold")
        self.boldButton.setStatusTip("Set selected Text Bold")
        icon = Qt4Gui.QIcon()
        icon.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_bold.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.boldButton.setIcon(icon)
        self.boldButton.setCheckable(True)
        self.boldButton.setAutoRaise(True)
        self.boldButton.setObjectName("boldButton")
        self.horizontalLayout.addWidget(self.boldButton)
        self.italicButton = QtGui.QToolButton(richedit)
        icon1 = Qt4Gui.QIcon()
        icon1.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_italic.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.italicButton.setIcon(icon1)
        self.italicButton.setCheckable(True)
        self.italicButton.setAutoRaise(True)
        self.italicButton.setObjectName("italicButton")
        self.horizontalLayout.addWidget(self.italicButton)
        self.underlinedButton = QtGui.QToolButton(richedit)
        icon2 = Qt4Gui.QIcon()
        icon2.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_underline.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.underlinedButton.setIcon(icon2)
        self.underlinedButton.setCheckable(True)
        self.underlinedButton.setAutoRaise(True)
        self.underlinedButton.setObjectName("underlinedButton")
        self.horizontalLayout.addWidget(self.underlinedButton)
        self.strikedButton = QtGui.QToolButton(richedit)
        self.strikedButton.setText("")
        icon3 = Qt4Gui.QIcon()
        icon3.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_strikethrough.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.strikedButton.setIcon(icon3)
        self.strikedButton.setCheckable(True)
        self.strikedButton.setAutoRaise(True)
        self.strikedButton.setObjectName("strikedButton")
        self.horizontalLayout.addWidget(self.strikedButton)
        self.leftButton = QtGui.QToolButton(richedit)
        self.leftButton.setText("")
        icon4 = Qt4Gui.QIcon()
        icon4.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_align_left.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.leftButton.setIcon(icon4)
        self.leftButton.setCheckable(True)
        self.leftButton.setAutoRaise(True)
        self.leftButton.setObjectName("leftButton")
        self.horizontalLayout.addWidget(self.leftButton)
        self.centerButton = QtGui.QToolButton(richedit)
        self.centerButton.setText("")
        icon5 = Qt4Gui.QIcon()
        icon5.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_align_center.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.centerButton.setIcon(icon5)
        self.centerButton.setCheckable(True)
        self.centerButton.setAutoRaise(True)
        self.centerButton.setObjectName("centerButton")
        self.horizontalLayout.addWidget(self.centerButton)
        self.rightButton = QtGui.QToolButton(richedit)
        self.rightButton.setText("")
        icon6 = Qt4Gui.QIcon()
        icon6.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_align_right.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.rightButton.setIcon(icon6)
        self.rightButton.setCheckable(True)
        self.rightButton.setAutoRaise(True)
        self.rightButton.setObjectName("rightButton")
        self.horizontalLayout.addWidget(self.rightButton)
        self.justButton = QtGui.QToolButton(richedit)
        self.justButton.setText("")
        icon7 = Qt4Gui.QIcon()
        icon7.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_align_justify.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.justButton.setIcon(icon7)
        self.justButton.setCheckable(True)
        self.justButton.setAutoRaise(True)
        self.justButton.setObjectName("justButton")
        self.horizontalLayout.addWidget(self.justButton)
        self.numbersListButton = QtGui.QToolButton(richedit)
        self.numbersListButton.setText("")
        icon8 = Qt4Gui.QIcon()
        icon8.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_list_numbers.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.numbersListButton.setIcon(icon8)
        self.numbersListButton.setAutoRaise(True)
        self.numbersListButton.setObjectName("numbersListButton")
        self.horizontalLayout.addWidget(self.numbersListButton)
        self.bulletsListButton = QtGui.QToolButton(richedit)
        self.bulletsListButton.setText("")
        icon9 = Qt4Gui.QIcon()
        icon9.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_list_bullets.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.bulletsListButton.setIcon(icon9)
        self.bulletsListButton.setAutoRaise(True)
        self.bulletsListButton.setObjectName("bulletsListButton")
        self.horizontalLayout.addWidget(self.bulletsListButton)
        self.downTextButton = QtGui.QToolButton(richedit)
        self.downTextButton.setText("")
        icon10 = Qt4Gui.QIcon()
        icon10.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_subscript.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.downTextButton.setIcon(icon10)
        self.downTextButton.setAutoRaise(True)
        self.downTextButton.setObjectName("downTextButton")
        self.horizontalLayout.addWidget(self.downTextButton)
        self.upTextButton = QtGui.QToolButton(richedit)
        self.upTextButton.setText("")
        icon11 = Qt4Gui.QIcon()
        icon11.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_superscript.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.upTextButton.setIcon(icon11)
        self.upTextButton.setAutoRaise(True)
        self.upTextButton.setObjectName("upTextButton")
        self.horizontalLayout.addWidget(self.upTextButton)
        self.capsButton = QtGui.QToolButton(richedit)
        self.capsButton.setText("")
        icon12 = Qt4Gui.QIcon()
        icon12.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_allcaps.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.capsButton.setIcon(icon12)
        self.capsButton.setAutoRaise(True)
        self.capsButton.setObjectName("capsButton")
        self.horizontalLayout.addWidget(self.capsButton)
        self.smallCapsButton = QtGui.QToolButton(richedit)
        self.smallCapsButton.setText("")
        icon13 = Qt4Gui.QIcon()
        icon13.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/text_smallcaps.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.smallCapsButton.setIcon(icon13)
        self.smallCapsButton.setAutoRaise(True)
        self.smallCapsButton.setObjectName("smallCapsButton")
        self.horizontalLayout.addWidget(self.smallCapsButton)
        self.fontcolorButton = QtGui.QToolButton(richedit)
        self.fontcolorButton.setText("")
        icon14 = Qt4Gui.QIcon()
        icon14.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/color_wheel.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.fontcolorButton.setIcon(icon14)
        self.fontcolorButton.setAutoRaise(True)
        self.fontcolorButton.setObjectName("fontcolorButton")
        self.horizontalLayout.addWidget(self.fontcolorButton)
        self.fontButton = QtGui.QToolButton(richedit)
        self.fontButton.setText("")
        icon15 = Qt4Gui.QIcon()
        icon15.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/font.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.fontButton.setIcon(icon15)
        self.fontButton.setAutoRaise(True)
        self.fontButton.setObjectName("fontButton")
        self.horizontalLayout.addWidget(self.fontButton)
        self.linkButton = QtGui.QToolButton(richedit)
        self.linkButton.setText("")
        icon16 = Qt4Gui.QIcon()
        icon16.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/link_add.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.linkButton.setIcon(icon16)
        self.linkButton.setAutoRaise(True)
        self.linkButton.setObjectName("linkButton")
        self.horizontalLayout.addWidget(self.linkButton)
        self.pictureButton = QtGui.QToolButton(richedit)
        self.pictureButton.setText("")
        icon17 = Qt4Gui.QIcon()
        icon17.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/picture_add.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.pictureButton.setIcon(icon17)
        self.pictureButton.setAutoRaise(True)
        self.pictureButton.setObjectName("pictureButton")
        self.horizontalLayout.addWidget(self.pictureButton)
        self.folderButton = QtGui.QToolButton(richedit)
        self.folderButton.setText("")
        icon18 = Qt4Gui.QIcon()
        icon18.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/folder_add.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.folderButton.setIcon(icon18)
        self.folderButton.setAutoRaise(True)
        self.folderButton.setObjectName("folderButton")
        self.horizontalLayout.addWidget(self.folderButton)
        self.cutButton = QtGui.QToolButton(richedit)
        self.cutButton.setText("")
        icon19 = Qt4Gui.QIcon()
        icon19.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/cut_red.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.cutButton.setIcon(icon19)
        self.cutButton.setAutoRaise(True)
        self.cutButton.setObjectName("cutButton")
        self.horizontalLayout.addWidget(self.cutButton)
        self.copyButton = QtGui.QToolButton(richedit)
        self.copyButton.setText("")
        icon20 = Qt4Gui.QIcon()
        icon20.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/page_white_copy.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.copyButton.setIcon(icon20)
        self.copyButton.setAutoRaise(True)
        self.copyButton.setObjectName("copyButton")
        self.horizontalLayout.addWidget(self.copyButton)
        self.pasteButton = QtGui.QToolButton(richedit)
        self.pasteButton.setText("")
        icon21 = Qt4Gui.QIcon()
        icon21.addPixmap(Qt4Gui.QPixmap(":/ui_richedit/gliph/richedit/page_white_paste.png"), Qt4Gui.QIcon.Normal, Qt4Gui.QIcon.Off)
        self.pasteButton.setIcon(icon21)
        self.pasteButton.setAutoRaise(True)
        self.pasteButton.setObjectName("pasteButton")
        self.horizontalLayout.addWidget(self.pasteButton)
        spacerItem = QtGui.QSpacerItem(0, 8, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.horizontalLayout.setStretch(22, 1)

        self.retranslateUi(richedit)
        QtCore.QMetaObject.connectSlotsByName(richedit)
        richedit.setTabOrder(self.boldButton, self.italicButton)
        richedit.setTabOrder(self.italicButton, self.underlinedButton)
        richedit.setTabOrder(self.underlinedButton, self.strikedButton)
        richedit.setTabOrder(self.strikedButton, self.leftButton)
        richedit.setTabOrder(self.leftButton, self.centerButton)
        richedit.setTabOrder(self.centerButton, self.rightButton)
        richedit.setTabOrder(self.rightButton, self.justButton)
        richedit.setTabOrder(self.justButton, self.numbersListButton)
        richedit.setTabOrder(self.numbersListButton, self.fontcolorButton)
        richedit.setTabOrder(self.fontcolorButton, self.pictureButton)
        richedit.setTabOrder(self.pictureButton, self.linkButton)
        richedit.setTabOrder(self.linkButton, self.folderButton)
        richedit.setTabOrder(self.folderButton, self.copyButton)
        richedit.setTabOrder(self.copyButton, self.cutButton)
    def create_scene(self):
        self.scene_created = True

        self.pm1 = Pixmap(self)
        self.pm2 = Pixmap(self)
        self.pm3 = Pixmap(self)

        self.scene.addItem(self.pm1.pixmap_item)
        self.scene.addItem(self.pm2.pixmap_item)
        self.scene.addItem(self.pm3.pixmap_item)

        # animation
        self.machine = QtCore.QStateMachine()
        self.state1 = QtCore.QState()
        self.state2 = QtCore.QState()
        self.state3 = QtCore.QState()

        self.state1.assignProperty(self.pm1, 'pos', QtCore.QPoint(0, 0))
        self.state1.assignProperty(self.pm1, 'opacity', 1)

        self.state2.assignProperty(self.pm1, 'pos', QtCore.QPoint(-255, 0))
        self.state2.assignProperty(self.pm1, 'opacity', 0)

        self.state3.assignProperty(self.pm1, 'pos', QtCore.QPoint(255, 0))
        self.state3.assignProperty(self.pm1, 'opacity', 0)

        self.state1.assignProperty(self.pm2, 'pos', QtCore.QPoint(255, 0))
        self.state1.assignProperty(self.pm2, 'opacity', 0)

        self.state2.assignProperty(self.pm2, 'pos', QtCore.QPoint(0, 0))
        self.state2.assignProperty(self.pm2, 'opacity', 1)

        self.state3.assignProperty(self.pm2, 'pos', QtCore.QPoint(-255, 0))
        self.state3.assignProperty(self.pm2, 'opacity', 0)

        self.state1.assignProperty(self.pm3, 'pos', QtCore.QPoint(-255, 0))
        self.state1.assignProperty(self.pm3, 'opacity', 0)

        self.state2.assignProperty(self.pm3, 'pos', QtCore.QPoint(255, 0))
        self.state2.assignProperty(self.pm3, 'opacity', 0)

        self.state3.assignProperty(self.pm3, 'pos', QtCore.QPoint(0, 0))
        self.state3.assignProperty(self.pm3, 'opacity', 1)

        self.pm1_anm = QtCore.QPropertyAnimation(self.pm1, 'pos', self)
        self.pm1_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo)
        self.pm1_anm.setDuration(300)

        self.pm1_anm_o = QtCore.QPropertyAnimation(self.pm1, 'opacity', self)
        self.pm1_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo)
        self.pm1_anm_o.setDuration(200)

        self.pm2_anm = QtCore.QPropertyAnimation(self.pm2, 'pos', self)
        self.pm2_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo)
        self.pm2_anm.setDuration(300)

        self.pm2_anm_o = QtCore.QPropertyAnimation(self.pm2, 'opacity', self)
        self.pm2_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo)
        self.pm2_anm_o.setDuration(200)

        self.pm3_anm = QtCore.QPropertyAnimation(self.pm3, 'pos', self)
        self.pm3_anm.setEasingCurve(QtCore.QEasingCurve.OutExpo)
        self.pm3_anm.setDuration(300)

        self.pm3_anm_o = QtCore.QPropertyAnimation(self.pm3, 'opacity', self)
        self.pm3_anm_o.setEasingCurve(QtCore.QEasingCurve.OutExpo)
        self.pm3_anm_o.setDuration(200)

        self.t4 = self.state1.addTransition(self.value_decreased, self.state3)
        self.t4.addAnimation(self.pm1_anm)
        self.t4.addAnimation(self.pm1_anm_o)
        self.t4.addAnimation(self.pm2_anm)
        self.t4.addAnimation(self.pm2_anm_o)
        self.t4.addAnimation(self.pm3_anm)
        self.t4.addAnimation(self.pm3_anm_o)

        self.t5 = self.state2.addTransition(self.value_decreased, self.state1)
        self.t5.addAnimation(self.pm1_anm)
        self.t5.addAnimation(self.pm1_anm_o)
        self.t5.addAnimation(self.pm2_anm)
        self.t5.addAnimation(self.pm2_anm_o)
        self.t5.addAnimation(self.pm3_anm)
        self.t5.addAnimation(self.pm3_anm_o)

        self.t6 = self.state3.addTransition(self.value_decreased, self.state2)
        self.t6.addAnimation(self.pm1_anm)
        self.t6.addAnimation(self.pm1_anm_o)
        self.t6.addAnimation(self.pm2_anm)
        self.t6.addAnimation(self.pm2_anm_o)
        self.t6.addAnimation(self.pm3_anm)
        self.t6.addAnimation(self.pm3_anm_o)

        self.t1 = self.state1.addTransition(self.value_increased, self.state2)
        self.t1.addAnimation(self.pm1_anm)
        self.t1.addAnimation(self.pm1_anm_o)
        self.t1.addAnimation(self.pm2_anm)
        self.t1.addAnimation(self.pm2_anm_o)
        self.t1.addAnimation(self.pm3_anm)
        self.t1.addAnimation(self.pm3_anm_o)

        self.t2 = self.state2.addTransition(self.value_increased, self.state3)
        self.t2.addAnimation(self.pm1_anm)
        self.t2.addAnimation(self.pm1_anm_o)
        self.t2.addAnimation(self.pm2_anm)
        self.t2.addAnimation(self.pm2_anm_o)
        self.t2.addAnimation(self.pm3_anm)
        self.t2.addAnimation(self.pm3_anm_o)

        self.t3 = self.state3.addTransition(self.value_increased, self.state1)
        self.t3.addAnimation(self.pm1_anm)
        self.t3.addAnimation(self.pm1_anm_o)
        self.t3.addAnimation(self.pm2_anm)
        self.t3.addAnimation(self.pm2_anm_o)
        self.t3.addAnimation(self.pm3_anm)
        self.t3.addAnimation(self.pm3_anm_o)

        # initial fill
        if self.pix_list:
            self.pm_list = [self.pm1, self.pm2, self.pm3]
            for i, pm in enumerate(self.pm_list):
                pixmap = Qt4Gui.QPixmap(self.pix_list[i % len(self.pix_list)])
                if not pixmap.isNull():
                    pm.add_pixmap(pixmap.scaledToWidth(640, QtCore.Qt.SmoothTransformation))

            self.previewGraphicsView.setSceneRect(self.pm1.pixmap_item.boundingRect())
            self.previewGraphicsView.fitInView(self.pm1.pixmap_item.boundingRect(), QtCore.Qt.KeepAspectRatio)

        self.imagesSlider.setValue(0)

        if not self.machine.isRunning():
            self.machine.addState(self.state1)
            self.machine.addState(self.state2)
            self.machine.addState(self.state3)
            self.machine.setInitialState(self.state1)
            self.machine.start()
 def clear_scene(self):
     if self.scene_created:
         self.pm1.add_pixmap(Qt4Gui.QPixmap())
         self.pm2.add_pixmap(Qt4Gui.QPixmap())
         self.pm3.add_pixmap(Qt4Gui.QPixmap())