def render_preview(self):
     image = self.current_image
     if image is None:
         return
     QtUtil.preview_image(image.image_file, self.view.imageLabel,
                          self.view.imageWidget)
     self.set_image_up_shade(image)
     self.set_image_down_shade(image)
     self.view.upVerticalSlider.setRange(0, image.height)
     self.view.downVerticalSlider.setRange(0, image.height)
     self.view.upVerticalSlider.setValue(image.up)
     self.view.downVerticalSlider.setValue(image.height - image.down)
 def render_stitching_preview(self):
     images = self.get_images(self.preview_mode)
     if len(images) > 0:
         temp_file = TempFileUtil.get_temp_file(prefix="snapshot_preview_",
                                                suffix=".jpg")
         self.preview_image_file = ImageUtil.vertical_stitch(
             images, temp_file)
         QtUtil.preview_image(temp_file, self.view.previewLabel,
                              self.view.previewWidget)
         os.remove(temp_file)
     else:
         self.preview_image_file = None
         self.view.previewLabel.clear()
Esempio n. 3
0
 def on_media_state_changed(self, state):
     # TODO: find a method to update view instead of these tricks
     # After pause, the video will re-scale to original size, this is used to fix this.
     QtUtil.central(self.view.videoWidget, self.view.videoBackgroundWidget,
                    self.snapshot.width, self.snapshot.height, 2, 2)
     if state == 0:
         # TODO: find a method to update view instead of these tricks
         self.view.videoWidget.hide()
         self.model.isPlaying = False
         self.view.update_icon(self.view.playButton, "play")
         self.view.mediaPositionSlider.hide()
         self.view.mediaPositionSlider.setValue(0)
         self.view.mediaPositionSlider.show()
     elif state == QMediaPlayer.PausedState:
         self.view.update_icon(self.view.playButton, "play")
     else:
         self.view.update_icon(self.view.playButton, "pause")
Esempio n. 4
0
 def __init__(self, router):
     super(PlayerController, self).__init__(router, PlayerWindow())
     self.model = SnapshotModel()
     self.snapshot = Snapshot()
     self.snapshotSound = QSound(
         QtUtil.resource_path(
             os.path.join("windows", "player", "snapshot.wav")))
     self.__bind(self.view)
 def __init__(self, router):
     super(ImageStitchingController, self).__init__(router,
                                                    ImageStitchingWindow())
     self.current_image = None
     self.preview_image_file = None
     self.preview_mode = 0
     self.router.subscribe('snapshot', self)
     self.files = []
     self.text_detector = TextDetector()
     self.magicSound = QSound(
         QtUtil.resource_path(
             os.path.join("windows", "stitching", "magic.wav")))
     self.__bind(self.view)
Esempio n. 6
0
# -*- coding: utf-8 -*-

import sys

import os
from PyQt5 import QtGui

from PyQt5.QtWidgets import QApplication

from pluto.ui.player.controllers import PlayerController
from pluto.ui.qt.mvc.routers import Router
from pluto.ui.stitcher.controllers import ImageStitchingController
from pluto.ui.qt.qtutils import QtUtil
import qdarkstyle

if __name__ == '__main__':
    app = QApplication(sys.argv)
    # setup stylesheet
    app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
    app.setWindowIcon(
        QtGui.QIcon(QtUtil.resource_path(os.path.join('windows',
                                                      'pluto.png'))))
    router = Router(app)
    router.add_ctrl('player', PlayerController(router))
    router.add_ctrl('image', ImageStitchingController(router))
    router.go('player')
    sys.exit(app.exec_())
 def on_output_preview_resize(self, event):
     if self.preview_image_file is not None:
         QtUtil.central(self.view.previewLabel, self.view.previewWidget,
                        self.preview_image_file.width,
                        self.preview_image_file.height)
 def on_item_preview_resize(self, event):
     if self.current_image is not None:
         QtUtil.central(self.view.imageLabel, self.view.imageWidget,
                        self.current_image.width, self.current_image.height)
         self.set_image_up_shade(self.current_image)
         self.set_image_down_shade(self.current_image)
Esempio n. 9
0
 def on_position_changed(self, position):
     # TODO: find a method to update view instead of these tricks
     QtUtil.central(self.view.videoWidget, self.view.videoBackgroundWidget,
                    self.snapshot.width, self.snapshot.height)
     self.view.mediaPositionSlider.setValue(position)
     self.view.progressLabel.setText(TimeUtil.format_ms(position))
Esempio n. 10
0
 def on_video_resize(self, event):
     QtUtil.central(self.view.videoWidget, self.view.videoBackgroundWidget,
                    self.snapshot.width, self.snapshot.height)
Esempio n. 11
0
 def set_video(self, file_name, width, height):
     self.view.mediaPlayer.setMedia(
         QMediaContent(QUrl.fromLocalFile(file_name)))
     QtUtil.central(self.view.videoWidget, self.view.videoBackgroundWidget,
                    width, height, 2, 2)
     self.on_play()
Esempio n. 12
0
 def __init__(self, parent=None, ui_path="windows", ui_file=""):
     super(View, self).__init__(parent)
     self._icons = dict()
     if ui_file:
         uic.loadUi(QtUtil.resource_path(os.path.join(ui_path, ui_file)),
                    self)
Esempio n. 13
0
 def add_icon(self, icon, path):
     name = icon.split(".")[0]
     self._icons[name] = QtUtil.icon(icon, path)