コード例 #1
0
ファイル: mergeexam.py プロジェクト: fossabot/Taurus
	def __init__ (self, filename, path, parent = None):
		QtGui.QDialog.__init__ (self, parent)

		self.examfile = os.path.join (path, filename)
		if path == "" or filename == "" or not os.path.exists (path) or not os.path.isdir (path) or not os.path.isfile (self.examfile):
			msg = CommonError (self.tr ("File invalid."))
			msg.exec_()
			QtGui.qApp.postEvent (self, QtGui.QCloseEvent())
			return

		self.ui = Ui_player()
		self.ui.setupUi (self)
		self.setWindowFlags (QtCore.Qt.FramelessWindowHint)

		self.leftclicked = False

		winid = self.ui.frameaudio.winId()
		pythonapi.PyCObject_AsVoidPtr.restype = c_void_p
		pythonapi.PyCObject_AsVoidPtr.argtypes = [py_object]
		self.windowId = pythonapi.PyCObject_AsVoidPtr (winid)

		self.ui.frameaudio.mouseReleaseEvent = self.frameMouseRelease

		self.player = Player (self.windowId, self.ui.Sliderprogress.minimum(), self.ui.Sliderprogress.maximum(), self.ui.slidervolume.minimum(), self.ui.slidervolume.maximum())

		self.ui.buttonplayerplay.clicked.connect (self.player.playclickedsignal)
		self.ui.buttonplayerstop.clicked.connect (self.player.stopclickedsignal)
		self.ui.buttonplayerbackward.clicked.connect (self.player.backwardclickedsignal)
		self.ui.buttonplayerforward.clicked.connect (self.player.forwardclickedsignal)
		self.ui.buttonvolume.clicked.connect (self.player.muteornotsignal)
		self.ui.Sliderprogress.valueChanged.connect (self.player.sliderseekvaluesignal)
		self.ui.slidervolume.valueChanged.connect (self.player.slidervolumevaluesignal)

		self.player.updatelabelduration.connect (self.updatelabelduration)
		self.player.updatesliderseek.connect (self.updatesliderseek)
		self.player.updateslidervolume.connect (self.updateslidervolume)
		self.player.setbuttonplay.connect (self.playersetbuttonplay)
		self.player.setbuttonpause.connect (self.playersetbuttonpause)

		self.player.startworker()
		self.player.playurisignal.emit (self.examfile)

		self.ui.label_3.setText (QtCore.QFileInfo (self.examfile).fileName())
		self.ui.label_3.setAlignment (QtCore.Qt.AlignHCenter)

		self.ui.lineeditduration.setEnabled (False)
コード例 #2
0
	def on_buttonpreview_clicked (self):

		self.splitchoose = SplitNotChosen
		self.ui.lineeditstarttime.setEnabled (False)
		self.ui.lineeditendtime.setEnabled (False)

		starttime = str2time (self.ui.lineeditstarttime.text())
		stoptime = str2time (self.ui.lineeditendtime.text())
		if starttime < 0 or stoptime <= starttime:
			msg = CommonError (self.tr ("Start time or stop time invalid."))
			msg.exec_()
			self.ui.buttoncancelbrowse.clicked.emit()
			return

		self.player.setloopsignal.emit (self.ui.lineeditstarttime.text(), self.ui.lineeditendtime.text())

		self.ui.buttonpreview.hide()
		self.ui.buttoncancelbrowse.show()
コード例 #3
0
ファイル: savesplit.py プロジェクト: fossabot/Taurus
    def on_buttonsave_clicked(self):
        if not os.path.isdir(self.ui.lineeditcaveroute.text()):
            self.on_buttonbrowse_clicked()
        else:
            self.splitpath = self.ui.lineeditcaveroute.text()

        self.splitfile = self.ui.lineeditcartoonname.text()

        if self.splitpath == "" or self.splitfile == "":
            return
        elif len(self.splitfile) > 255:
            msg = CommonError(self.tr("Filename too long."))
            msg.exec_()
            return

        self.totranscode = self.ui.checkBox.isChecked()

        self.accept()
コード例 #4
0
ファイル: savesplit.py プロジェクト: ShowingCloud/Taurus
	def on_buttonsave_clicked (self):
		if not os.path.isdir (self.ui.lineeditcaveroute.text()):
			self.on_buttonbrowse_clicked()
		else:
			self.splitpath = self.ui.lineeditcaveroute.text()

		self.splitfile = self.ui.lineeditcartoonname.text()

		if self.splitpath == "" or self.splitfile == "":
			return
		elif len (self.splitfile) > 255:
			msg = CommonError (self.tr ("Filename too long."))
			msg.exec_()
			return

		self.totranscode = self.ui.checkBox.isChecked()

		self.accept()
コード例 #5
0
    def on_buttonconvert_clicked(self):
        model = self.ui.treeView.model()

        if os.path.isdir(self.ui.lineeditoutputroute.text()):
            self.transferpath = self.ui.lineeditoutputroute.text()
        else:
            self.on_buttonbrowse_clicked()

        if self.transferpath == "":
            msg = CommonError(self.tr("Please input output path"))
            msg.exec_()
            return

        self.files = []

        for i in xrange(model.rowCount()):
            f = model.data(model.index(i, 0))
            if os.path.isfile(f):
                self.files.append(f)

        self.accept()
コード例 #6
0
ファイル: newconvert.py プロジェクト: ShowingCloud/Taurus
	def on_buttonconvert_clicked (self):
		model = self.ui.treeView.model()

		if os.path.isdir (self.ui.lineeditoutputroute.text()):
			self.transferpath = self.ui.lineeditoutputroute.text()
		else:
			self.on_buttonbrowse_clicked()

		if self.transferpath == "":
			msg = CommonError (self.tr ("Please input output path"))
			msg.exec_()
			return

		self.files = []

		for i in xrange (model.rowCount()):
			f = model.data (model.index (i, 0))
			if os.path.isfile (f):
				self.files.append (f)

		self.accept()
コード例 #7
0
ファイル: videomerger.py プロジェクト: ShowingCloud/Taurus
	def verifiedtask (self, row, params, verified):

		self.srcfiles[row]['effective'] = verified
		self.srcfiles[row].update (params)

		if not verified:
			return

		num = 0
		for i in xrange (self.items):
			if self.srcfiles[i].get ('effective'):
				num += 1
		self.effectives = num

		if self.effectives == 1:
			self.params = params
		elif self.effectives > 1:
			if not self.checkcompat (self.params, params):
				self.srcfiles[self.items - 1]['effective'] = False
				self.effectives -= 1
				msg = CommonError (self.tr ("Media type not compatible."))
				msg.exec_()
				self.removerowsignal.emit (row)
コード例 #8
0
    def verifiedtask(self, row, params, verified):

        self.srcfiles[row]['effective'] = verified
        self.srcfiles[row].update(params)

        if not verified:
            return

        num = 0
        for i in xrange(self.items):
            if self.srcfiles[i].get('effective'):
                num += 1
        self.effectives = num

        if self.effectives == 1:
            self.params = params
        elif self.effectives > 1:
            if not self.checkcompat(self.params, params):
                self.srcfiles[self.items - 1]['effective'] = False
                self.effectives -= 1
                msg = CommonError(self.tr("Media type not compatible."))
                msg.exec_()
                self.removerowsignal.emit(row)
コード例 #9
0
def Cartoon():

    app = QtGui.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon(':/images/icon.ico'))

    scr = QtGui.QApplication.desktop().screenGeometry()

    QtGui.QApplication.setQuitOnLastWindowClosed(False)

    locale = QtCore.QLocale.system().name()
    appTranslator = QtCore.QTranslator()
    if appTranslator.load(":/cartoon_" + locale):
        app.installTranslator(appTranslator)

    islogin = False

    l = Login()
    l.move(scr.center() - l.rect().center())

    while not islogin:

        if not l.exec_() == QtGui.QDialog.Accepted:
            QtGui.qApp.quit()

        ll = LoginList(l.username, l.password, et99.et_init())
        ll.move(l.pos() + l.rect().center() - ll.rect().center())
        ret = ll.exec_()

        if ret == QtGui.QDialog.Accepted:
            islogin = True
        else:
            l.show()
            l.ui.lineeditcpid.setFocus()

            if ret == QtGui.QDialog.Rejected:
                pe = PasswordError()
            else:
                pe = CommonError(
                    QtGui.qApp.tr(
                        "Connection failed. Please try again later."))
            pe.move(l.pos() + l.rect().center() - pe.rect().center())
            pe.exec_()
            islogin = False

    w = MainWindow(ll.rpc, ll.rpcworker, ll.params)
    w.move(scr.center() - w.rect().center())
    w.show()

    sys.exit(app.exec_())
コード例 #10
0
	def on_buttonsave_clicked (self):
		if not self.playerfile:
			return

		self.splitchoose = SplitNotChosen

		starttime = str2time (self.ui.lineeditstarttime.text())
		stoptime = str2time (self.ui.lineeditendtime.text())
		duration = stoptime - starttime
		if starttime < 0 or duration <= 0:
			msg = CommonError (self.tr ("Start time or stop time invalid."))
			msg.exec_()
			return

		if self.ui.checkboxleadertitle.isChecked():
			title = self.ui.lineeditleadertitle.text()
			if len (title) > 63:
				msg = CommonError (self.tr ("Movie title too long."))
				msg.exec_()
				return
		else:
			title = None

		timestring = "%s -- %s" % (time2str (starttime), time2str (stoptime))

		ss = SaveSplit (self.params['LastSplitPath'])
		ss.move (self.pos() + self.rect().center() - ss.rect().center())
		if not ss.exec_() == QtGui.QDialog.Accepted:
			return

		outputfile = os.path.join (ss.splitpath, ss.splitfile)

		self.splitter = VideoSplitter (self.playerfile, outputfile, starttime, duration, title, ss.totranscode, self.player.params, self)
		self.splitter.addtranscode.connect (self.addtranscode)
		self.splitter.startnewsplit.connect (self.newsplitted)
		self.splitter.startworker (timestring)

		self.splitprog = SplitProg()
		self.splitprog.move (self.pos() + self.rect().center() - self.splitprog.rect().center())
		self.splitter.updatemodel.connect (self.splitprog.setprogressbar)
		self.splitter.finished.connect (self.splitprog.accept)

		if not self.splitprog.exec_() == QtGui.QDialog.Accepted:
			self.splitter.finished.emit()
コード例 #11
0
    def startworker(self, filename, path):

        if not os.path.exists(path) or not os.path.isdir(path):
            msg = CommonError(self.tr("Save destination invalid."))
            msg.exec_()
            return

        if len(self.srcfiles) < 1:
            msg = CommonError(self.tr("Hasn't chosen any video clips."))
            msg.exec_()
            return

        for i in xrange(self.items):
            if self.srcfiles[i].get('effective'):
                self.defaultsrcfile = self.srcfiles[i]
                break

        dstfileinfo = QtCore.QFileInfo(os.path.join(path, filename))
        if dstfileinfo.suffix() == "":
            dstfile = "%s.%s" % (
                dstfileinfo.absoluteFilePath(),
                QtCore.QFileInfo(self.defaultsrcfile.get('srcfile')).suffix())
            dstfileinfo = QtCore.QFileInfo(dstfile)
        dstfile = QtCore.QDir.toNativeSeparators(
            dstfileinfo.absoluteFilePath())
        i = 0
        while os.path.exists(dstfile):
            i += 1
            dstfile = os.path.join(
                QtCore.QDir.toNativeSeparators(dstfileinfo.absolutePath()),
                "%s-%02d.%s" %
                (dstfileinfo.baseName(), i, dstfileinfo.suffix()))
        os.close(os.open(dstfile, os.O_CREAT))
        dstfileinfo = QtCore.QFileInfo(dstfile)

        self.dstfile = QtCore.QDir.toNativeSeparators(
            dstfileinfo.absoluteFilePath())
        self.path = QtCore.QDir.toNativeSeparators(dstfileinfo.absolutePath())
        self.filenamedecided.emit(dstfileinfo.fileName())

        self.startnewmerge.emit(self.path)
        self.dowork()
コード例 #12
0
ファイル: videomerger.py プロジェクト: ShowingCloud/Taurus
	def startworker (self, filename, path):

		if not os.path.exists (path) or not os.path.isdir (path):
			msg = CommonError (self.tr ("Save destination invalid."))
			msg.exec_()
			return

		if len (self.srcfiles) < 1:
			msg = CommonError (self.tr ("Hasn't chosen any video clips."))
			msg.exec_()
			return

		for i in xrange (self.items):
			if self.srcfiles[i].get ('effective'):
				self.defaultsrcfile = self.srcfiles[i]
				break

		dstfileinfo = QtCore.QFileInfo (os.path.join (path, filename))
		if dstfileinfo.suffix() == "":
			dstfile = "%s.%s" % (dstfileinfo.absoluteFilePath(), QtCore.QFileInfo (self.defaultsrcfile.get ('srcfile')).suffix())
			dstfileinfo = QtCore.QFileInfo (dstfile)
		dstfile = QtCore.QDir.toNativeSeparators (dstfileinfo.absoluteFilePath())
		i = 0
		while os.path.exists (dstfile):
			i += 1
			dstfile = os.path.join (QtCore.QDir.toNativeSeparators (dstfileinfo.absolutePath()),
					"%s-%02d.%s" % (dstfileinfo.baseName(), i, dstfileinfo.suffix()))
		os.close (os.open (dstfile, os.O_CREAT))
		dstfileinfo = QtCore.QFileInfo (dstfile)

		self.dstfile = QtCore.QDir.toNativeSeparators (dstfileinfo.absoluteFilePath())
		self.path = QtCore.QDir.toNativeSeparators (dstfileinfo.absolutePath())
		self.filenamedecided.emit (dstfileinfo.fileName())

		self.startnewmerge.emit (self.path)
		self.dowork()
コード例 #13
0
	def on_buttonstart_clicked (self):
		filename = self.ui.lineeditfilenameblank.text()
		path = self.ui.lineeditsaveblank.text()

		if filename == "":
			msg = CommonError (self.tr ("Please input output filename"))
			msg.exec_()
			return
		elif len (filename) > 255:
			msg = CommonError (self.tr ("Filename too long."))
			msg.exec_()
			return
		
		if path == "":
			msg = CommonError (self.tr ("Please input output path"))
			msg.exec_()
			return

		self.merger.startsignal.emit (filename, path)
		self.blockmergeelements()
コード例 #14
0
	def lostconnection (self):
		msg = CommonError (self.tr ("Lost connection to server. Exiting..."))
		msg.exec_()
		QtGui.qApp.quit()