Example #1
0
    def accept(self):
        fehler = 1
        actor_added = False
        actor_adding_asked = False
        while fehler:
            darsteller, fehler, fehler_index = self.darsteller_pruefen(str(self.lineEditNeuDarsteller.text()).title())
            if fehler:
                if fehler == 1:
                    zu_lesen = "SELECT darsteller FROM pordb_pseudo WHERE pseudo = %s"
                    self.lese_func = DBLesen(self, zu_lesen, darsteller[fehler_index].title().strip())
                    res = DBLesen.get_data(self.lese_func)
                    if res:
                        messageBox = QtGui.QMessageBox()
                        messageBox.addButton(self.trUtf8("Yes"), QtGui.QMessageBox.AcceptRole)
                        messageBox.addButton(self.trUtf8("No, correct entry"), QtGui.QMessageBox.RejectRole)
                        messageBox.addButton(self.trUtf8("No, add new actor"), QtGui.QMessageBox.ActionRole)
                        messageBox.setWindowTitle(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias."))
                        messageBox.setIcon(QtGui.QMessageBox.Question)
                        messageBox.setText(self.trUtf8("Do you want to take this actor instead?"))
                        messageBox.setDetailedText(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias. If you want to take this actor, click on yes, else change your entry or add a new actor to the database."))
                        message = messageBox.exec_()
                        if message == 0:
                            darsteller_alt = str(self.lineEditNeuDarsteller.text()).title().strip()
                            darsteller_neu = darsteller_alt.replace(darsteller[fehler_index].strip(), str(res[0][0]).strip())
                            try:
                                self.lineEditNeuDarsteller.setText(darsteller_neu)
                            except:
                                pass
                            return
                        elif message == 2:
                            self.darsteller_addieren(darsteller, fehler_index)
                            actor_added = True
                elif fehler == 2:
                    message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("You have entered some actors twice, please correct"))
                    return
                if actor_adding_asked:
                    return
                if not actor_added:
                    self.darsteller_addieren(darsteller, fehler_index)
                    actor_adding_asked = True
        titel = self.lineEditNeuTitel.text()
        if darsteller:
            darsteller = self.darsteller_sortieren(darsteller)
        if self.checkBoxUninteressant.isChecked():
            darsteller.append("(Uninteressant)")
        try:
            cd = int(self.lineEditNeuCD.text())
        except:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("CD is not a number"))
            return
        bild = self.lineEditNeuBild.text()

        if not self.radioButtonVorhandenJa.isChecked() and not self.radioButtonVorhandenNein.isChecked():
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie is available"))
            return
        if self.radioButtonVorhandenJa.isChecked():
            vorhanden = "x"
        else:
            vorhanden = ""

        if not self.radioButtonGesehenNein.isChecked() and not self.radioButtonGesehenJa.isChecked():
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie has been watched"))
            return
        if self.radioButtonGesehenNein.isChecked():
            gesehen = " "
        else:
            gesehen = "x"
            
        try:
            original = str(self.lineEditNeuOriginal.text()).title().split()
        except:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error: original title has invalid characters"))
            return
        
        # get rid of double spaces
        original = " ".join(original)

        if len(original) > 256:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error, original title is longer than 256 characters."))
            return
        if not self.radioButtonCoverJa.isChecked() and not self.radioButtonCoverNein.isChecked():
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please check if image file is a cover"))
            return
        if self.radioButtonVorhandenJa.isChecked() and self.comboBoxDefinition.currentIndex() == 0 and not self.cover_austauschen:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please select a resolution"))
            return
        if self.radioButtonVorhandenNein.isChecked() and self.comboBoxDefinition.currentIndex() != 0:
            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Video is not in stock: resolution deleted"))
            self.comboBoxDefinition.setCurrentIndex(0)
        zu_erfassen = []
        if self.korrektur and not self.undo:
            darsteller_liste = self.darsteller.strip().split(", ")
            if not darsteller_liste[0]:
                darsteller_liste = []
            for i in darsteller_liste:
                werte = []
                werte.append(i)
                zu_erfassen.append(["UPDATE pordb_darsteller SET anzahl = anzahl - 1 WHERE darsteller = %s", werte])
            if not self.radioButtonCoverJa.isChecked():
                bilddatei_alt = os.path.join(self.verzeichnis_thumbs, "cd" + str(self.cd_alt), str(bild).rstrip())
                if str(cd) != self.cd_alt:
                    bilddatei_neu = os.path.join(self.verzeichnis_thumbs, "cd" + str(cd), str(bild).rstrip())
                    os.renames(bilddatei_alt, bilddatei_neu)
                else:
                    if self.bilddatei != bilddatei_alt:
                        bilddatei = QtGui.QImage(self.bilddatei).scaled(size, QtCore.Qt.KeepAspectRatio)
                        if bilddatei.save(bilddatei_alt):
                            os.remove(self.bilddatei)
                        else:
                            message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
                            return
            werte = []
            werte.append(self.cd_alt)
            werte.append(bild)
            zu_erfassen.append(["DELETE FROM pordb_partner WHERE cd = %s AND bild = %s", werte])
            werte = []
            werte.append(titel)
            werte.append(", ".join(darsteller))
            werte.append(cd)
            werte.append(bild)
            werte.append(gesehen)
            werte.append(original)
            zu_erfassen_zw = "UPDATE pordb_vid SET titel = %s, darsteller = %s, cd = %s, bild = %s, gesehen = %s, original = %s, csf = %s, csh = %s, cst = %s, csc = %s, csx = %s, cso = %s, csv = %s, csb = %s, csa = %s, css = %s, csk = %s, hd = %s, vorhanden = %s, remarks = %s, stars = %s WHERE cd = %s AND bild = %s"
            if self.spinBoxF.value() > 0:
                werte.append(self.spinBoxF.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxH.value() > 0:
                werte.append(self.spinBoxH.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxT.value() > 0:
                werte.append(self.spinBoxT.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxC.value() > 0:
                werte.append(self.spinBoxC.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxX.value() > 0:
                werte.append(self.spinBoxX.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxO.value() > 0:
                werte.append(self.spinBoxO.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxV.value() > 0:
                werte.append(self.spinBoxV.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxB.value() > 0:
                werte.append(self.spinBoxB.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxA.value() > 0:
                werte.append(self.spinBoxA.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxS.value() > 0:
                werte.append(self.spinBoxS.value())
                self.spinBoxK.setValue(0)
            else:
                werte.append(0)
            if self.spinBoxK.value() > 0:
                werte.append(self.spinBoxK.value())
            else:
                werte.append(0)
            if self.comboBoxDefinition.currentIndex() == 0:
                werte.append(None)
            elif self.comboBoxDefinition.currentIndex() == 1:
                werte.append("0")
            elif self.comboBoxDefinition.currentIndex() == 2:
                werte.append("1")
            elif self.comboBoxDefinition.currentIndex() == 3:
                werte.append("2")
            elif self.comboBoxDefinition.currentIndex() == 4:
                werte.append("3")
            elif self.comboBoxDefinition.currentIndex() == 5:
                werte.append("9")
            werte.append(vorhanden)
            werte.append(self.plainTextEditRemarks.toPlainText())
            werte.append(self.set_stars)
            werte.append(self.cd_alt)
            werte.append(bild)
            if self.radioButtonCoverJa.isChecked() and self.cover_austauschen:
                if os.path.exists(os.path.join(self.verzeichnis_thumbs, "cd" + str(self.cd_alt), bild.rstrip())):
                    # Bild war Thumbnail im CD Verzeichnis -> dieses löschen und neues im Cover Verzeichnis anlegen
                    os.remove(os.path.join(self.verzeichnis_thumbs, "cd" + str(self.cd_alt), bild.rstrip()))
                    os.rename(self.bilddatei, os.path.join(self.verzeichnis_cover, self.bild.strip()))
                else:
                    os.rename(self.bilddatei, os.path.join(self.verzeichnis_cover, self.bild.strip()))
        else:
            if self.radioButtonCoverJa.isChecked() and not original:
                message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("When adding a cover you must also enter a movie title"))
                return
            if self.undo:
                bilddatei = QtGui.QImage(os.path.join(self.verzeichnis_trash, bild))
            else:
                if self.radioButtonCoverJa.isChecked():
                    bilddatei = QtGui.QImage(os.path.join(self.verzeichnis, bild))
                else:
                    bilddatei = QtGui.QImage(os.path.join(self.verzeichnis, bild)).scaled(size, QtCore.Qt.KeepAspectRatio)
            if self.radioButtonCoverJa.isChecked():
                newfilename = os.path.join(self.verzeichnis_cover, bild)
            else:
                newfilename = os.path.join(self.verzeichnis_thumbs, "cd" +str(cd), bild)
            # hier klappt noch etwas nicht richtig mit den Partnern, wenn len>256
            if len(bild) > 256 or os.path.exists(newfilename):
                neue_bilddatei = BilddateiUmbenennen(newfilename)
                if neue_bilddatei.exec_():
                    try:
                        bild_alt = os.path.join(self.verzeichnis, bild)
                        bild_neu = os.path.join(self.verzeichnis, neue_bilddatei.lineEditDateiname.text())
                        os.rename(bild_alt, bild_neu)
                        newfilename = os.path.join(os.path.dirname(newfilename), neue_bilddatei.lineEditDateiname.text())
                        bild = neue_bilddatei.lineEditDateiname.text()
                        titel = str(bild.split('.')[0])
                    except:
                        message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error on renaming image file"))
                        return
                else:
                    return
            else:
                if not os.path.exists(os.path.dirname(newfilename)):
                    os.mkdir(os.path.dirname(newfilename))
            if bilddatei.save(newfilename):
                if not self.undo:
                    os.remove(os.path.join(self.verzeichnis, str(bild)))
            else:
                message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
                return
            werte = []
            werte.append("pordb_vid_primkey_seq")
            zu_lesen = "SELECT nextval(%s)"
            self.lese_func = DBLesen(self, zu_lesen, werte)
            res = DBLesen.get_data(self.lese_func)
            werte = []
            werte.append(titel)
            werte.append(", ".join(darsteller))
            werte.append(cd)
            werte.append(bild)
            werte.append(gesehen)
            werte.append(original)
            werte.append("")
            werte.append(vorhanden)
            werte.append(res[0][0])
            zu_erfassen_zw = "INSERT INTO pordb_vid VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"
            if self.spinBoxF.value() > 0:
                cs = self.spinBoxF.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxH.value() > 0:
                cs = self.spinBoxH.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxT.value() > 0:
                cs = self.spinBoxT.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxC.value() > 0:
                cs = self.spinBoxC.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxX.value() > 0:
                cs = self.spinBoxX.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxO.value() > 0:
                cs = self.spinBoxO.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxV.value() > 0:
                cs = self.spinBoxV.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxB.value() > 0:
                cs = self.spinBoxB.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxA.value() > 0:
                cs = self.spinBoxA.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxS.value() > 0:
                cs = self.spinBoxS.value()
            else:
                cs = 0
            werte.append(cs)
            
            if self.spinBoxK.value() > 0:
                cs = self.spinBoxK.value()
            else:
                cs = 0
            werte.append(cs)
                
            if self.comboBoxDefinition.currentIndex() == 0:
                werte.append(None)
            elif self.comboBoxDefinition.currentIndex() == 1:
                werte.append("0")
            elif self.comboBoxDefinition.currentIndex() == 2:
                werte.append("1")
            elif self.comboBoxDefinition.currentIndex() == 3:
                werte.append("2")
            elif self.comboBoxDefinition.currentIndex() == 4:
                werte.append("3")
            elif self.comboBoxDefinition.currentIndex() == 5:
                werte.append("9")
                
            werte.append(self.plainTextEditRemarks.toPlainText())
            werte.append(self.set_stars)
            
        zu_erfassen.append([zu_erfassen_zw, werte])
            
        for i in darsteller:
            if i.lstrip() == "" or i.lstrip() == "?":
                continue
            werte = []
            werte.append(i)
            zu_erfassen.append(["UPDATE pordb_darsteller SET anzahl = anzahl + 1 WHERE darsteller = %s", werte])
            if i == "" or i == "?" or i == "(Uninteressant)" or i == "(Komplett)" or i == "(Schlechte Qualitaet)":
                continue
            zu_erfassen.append(["DELETE FROM pordb_darsteller100 WHERE darsteller = %s", werte])
            zu_erfassen.append(["INSERT INTO pordb_darsteller100 (darsteller) VALUES (%s)", werte])
            
            partner_zaehler = 0
            if i.strip() != "(Uninteressant)" and i.strip() != "Defekt":
                zu_lesen = "SELECT sex FROM pordb_darsteller WHERE darsteller = %s"
                self.lese_func = DBLesen(self, zu_lesen, i)
                res = DBLesen.get_data(self.lese_func)
                geschlecht = res[0][0]
                for j in darsteller:
                    if j.strip() != "(Uninteressant)" and j.strip() != "Defekt" and i != j:
                        zu_lesen = "SELECT sex FROM pordb_darsteller WHERE darsteller = %s"
                        self.lese_func = DBLesen(self, zu_lesen, j)
                        res2 = DBLesen.get_data(self.lese_func)
                        geschlecht2 = res2[0][0]
                        if geschlecht != geschlecht2:
                            werte = []
                            werte.append(i)
                            werte.append(j)
                            werte.append(cd)
                            werte.append(bild)
                            zu_erfassen.append(["INSERT INTO pordb_partner VALUES (%s, %s, %s, %s)", werte])
                            zu_lesen = "SELECT darsteller FROM pordb_partner WHERE darsteller = %s AND partner = %s"
                            self.lese_func = DBLesen(self, zu_lesen, (i, j))
                            res3 = DBLesen.get_data(self.lese_func)
                            if not res3:
                                partner_zaehler += 1
                            
            if partner_zaehler > 0:
                werte = []
                werte.append(partner_zaehler)
                werte.append(i)
                zu_erfassen.append(["UPDATE pordb_darsteller SET partner = partner + %s WHERE darsteller = %s", werte])
                
        zu_lesen = "SELECT * FROM pordb_darsteller100"
        self.lese_func = DBLesen(self, zu_lesen)
        res1 = DBLesen.get_data(self.lese_func)
        anzahl_loeschen = len(res1) - 200
        if anzahl_loeschen > 0:
            res1.sort()
            for zaehler in range(anzahl_loeschen):
                werte = []
                werte.append(str(res1[zaehler][0]))
                zu_erfassen.append(["DELETE FROM pordb_darsteller100 WHERE nr = %s", werte])
        if not self.korrektur:
            werte = []
            werte.append(titel)
            werte.append(", ".join(darsteller))
            werte.append(cd)
            werte.append(original)
            zu_erfassen.append(["UPDATE pordb_vid_neu SET titel = %s, darsteller = %s, cd = %s, original = %s", werte])
        
        update_func = DBUpdate(self, zu_erfassen)
        DBUpdate.update_data(update_func)
        
        if self.original_weitere:
            zu_erfassen = []
            if self.korrektur:
                zu_lesen = "SELECT primkey FROM pordb_vid WHERE cd = %s AND bild = %s"
                self.lese_func = DBLesen(self, zu_lesen, (str(self.cd_alt), str(bild)))
                curr_key = DBLesen.get_data(self.lese_func)
                werte = []
                werte.append(str(curr_key[0][0]))
                zu_erfassen.append(["DELETE FROM pordb_original WHERE foreign_key_pordb_vid = %s", werte])
            else:
                zu_lesen = "SELECT primkey FROM pordb_vid WHERE cd = %s AND bild = %s"
                self.lese_func = DBLesen(self, zu_lesen, (str(cd), bild))
                curr_key = DBLesen.get_data(self.lese_func)
            for i in self.original_weitere:
                if i:
                    if type(i) == str:
                        werte = []
                        werte.append(i.title())
                        werte.append(str(curr_key[0][0]))
                        zu_erfassen.append(["INSERT INTO pordb_original (original, foreign_key_pordb_vid) VALUES (%s, %s)", werte])
                    else:
                        werte = []
                        werte.append(i.decode().title())
                        werte.append(str(curr_key[0][0]))
                        zu_erfassen.append(["INSERT INTO pordb_original (original, foreign_key_pordb_vid) VALUES (%s, %s)", werte])
                    
            update_func = DBUpdate(self, zu_erfassen)
            DBUpdate.update_data(update_func)
        
        self.close()
        QtGui.QDialog.accept(self)
Example #2
0
	def accept(self):
		fehler = 1
		actor_added = False
		actor_adding_asked = False
		while fehler:
			darsteller, fehler, fehler_index = self.darsteller_pruefen(unicode(self.lineEditNeuDarsteller.text()).title())
			if fehler:
				if fehler == 1:
					zu_lesen = "select darsteller from pordb_pseudo where pseudo = '" +darsteller[fehler_index].title().replace("'", "''").strip()  +"'"
					self.lese_func = DBLesen(self, zu_lesen)
					res = DBLesen.get_data(self.lese_func)
					if res:
						messageBox = QtGui.QMessageBox()
						messageBox.addButton(self.trUtf8("Yes"), QtGui.QMessageBox.AcceptRole)
						messageBox.addButton(self.trUtf8("No, correct entry"), QtGui.QMessageBox.RejectRole)
						messageBox.addButton(self.trUtf8("No, add new actor"), QtGui.QMessageBox.ActionRole)
						messageBox.setWindowTitle(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias."))
						messageBox.setIcon(QtGui.QMessageBox.Question)
						messageBox.setText(self.trUtf8("Do you want to take this actor instead?"))
						messageBox.setDetailedText(darsteller[fehler_index] +self.trUtf8(" does not exist") +self.trUtf8(", but I have found ") +res[0][0].strip() +self.trUtf8(" as alias. If you want to take this actor, click on yes, else change your entry or add a new actor to the database."))
						message = messageBox.exec_()
						if message == 0:
							darsteller_alt = unicode(self.lineEditNeuDarsteller.text()).title().strip()
							darsteller_neu = darsteller_alt.replace(darsteller[fehler_index].strip(), unicode(res[0][0]).strip())
							try:
								self.lineEditNeuDarsteller.setText(darsteller_neu)
							except:
								pass
							return
						elif message == 2:
							self.darsteller_addieren(darsteller, fehler_index)
							actor_added = True
				elif fehler == 2:
					message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("You have entered some actors twice, please correct"))
					return
				if actor_adding_asked:
					return
				if not actor_added:
					self.darsteller_addieren(darsteller, fehler_index)
					actor_adding_asked = True
		titel = self.lineEditNeuTitel.text()
		if darsteller:
			darsteller = self.darsteller_sortieren(darsteller)
		if self.checkBoxUninteressant.isChecked():
			darsteller.append("(Uninteressant)")
		try:
			cd = int(self.lineEditNeuCD.text())
		except:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("CD is not a number"))
			return
		bild = self.lineEditNeuBild.text()

		if not self.radioButtonVorhandenJa.isChecked() and not self.radioButtonVorhandenNein.isChecked():
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie is available"))
			return
		if self.radioButtonVorhandenJa.isChecked():
			vorhanden = "x"
		else:
			vorhanden = ""

		if not self.radioButtonGesehenNein.isChecked() and not self.radioButtonGesehenJa.isChecked():
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please mark whether movie has been watched"))
			return
		if self.radioButtonGesehenNein.isChecked():
			gesehen = " "
		else:
			gesehen = "x"
			
		try:
			original = unicode(self.lineEditNeuOriginal.text()).replace("'", "''").title()
		except:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error: original title has invalid characters"))
			return

		if len(original) > 256:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error, original title is longer than 256 characters."))
			return
		if not self.radioButtonCoverJa.isChecked() and not self.radioButtonCoverNein.isChecked():
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please check if image file is a cover"))
			return
		if self.radioButtonVorhandenJa.isChecked() and self.comboBoxDefinition.currentIndex() == 0 and not self.cover_austauschen:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Please select a resolution"))
			return
		if self.radioButtonVorhandenNein.isChecked() and self.comboBoxDefinition.currentIndex() <> 0:
			message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Video is not in stock: resolution is set to unknown"))
			self.comboBoxDefinition.setCurrentIndex(0)
		zu_erfassen = []
		if self.korrektur and not self.undo:
			darsteller_liste = self.darsteller.strip().split(", ")
			if not darsteller_liste[0]:
				darsteller_liste = []
			for i in darsteller_liste:
				zu_erfassen.append("UPDATE pordb_darsteller set anzahl = anzahl - 1 where darsteller = '" + i.replace("'", "''") + "'")
			if not self.radioButtonCoverJa.isChecked():
				bilddatei_alt = self.verzeichnis_thumbs +os.sep +"cd" +str(self.cd_alt) +os.sep +unicode(bild).rstrip()
				if str(cd) != self.cd_alt:
					bilddatei_neu = self.verzeichnis_thumbs +os.sep +"cd" +str(cd) +os.sep +unicode(bild).rstrip()
					os.renames(bilddatei_alt, bilddatei_neu)
				else:
					if self.bilddatei != bilddatei_alt:
						bilddatei = QtGui.QImage(self.bilddatei).scaled(size, QtCore.Qt.KeepAspectRatio)
						if bilddatei.save(bilddatei_alt):
							os.remove(self.bilddatei)
						else:
							message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
							return
			zu_erfassen.append("delete from pordb_partner where cd = " +str(cd) + " and bild = '" +bild.replace("'", "''") +"'")
			cs = ""
			zu_erfassen_zw = "UPDATE pordb_vid SET titel = '" +titel.replace("'", "''") +"', darsteller = '" +", ".join(darsteller).replace("'", "''") +"', cd = " +str(cd) +", bild = '" +bild +"', gesehen = '" +gesehen +"', original = '" +original 
			if self.spinBoxF.value() > 0:
				cs = str(self.spinBoxF.value())
				zu_erfassen_zw += "', csf = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csf = '" +"0"
			if self.spinBoxH.value() > 0:
				cs = str(self.spinBoxH.value())
				zu_erfassen_zw += "', csh = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csh = '" +"0"
			if self.spinBoxT.value() > 0:
				cs = str(self.spinBoxT.value())
				zu_erfassen_zw += "', cst = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', cst = '" +"0"
			if self.spinBoxC.value() > 0:
				cs = str(self.spinBoxC.value())
				zu_erfassen_zw += "', csc = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csc = '" +"0"
			if self.spinBoxX.value() > 0:
				cs = str(self.spinBoxX.value())
				zu_erfassen_zw += "', csx = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csx = '" +"0"
			if self.spinBoxO.value() > 0:
				cs = str(self.spinBoxO.value())
				zu_erfassen_zw += "', cso = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', cso = '" +"0"
			if self.spinBoxV.value() > 0:
				cs = str(self.spinBoxV.value())
				zu_erfassen_zw += "', csv = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csv = '" +"0"
			if self.spinBoxB.value() > 0:
				cs = str(self.spinBoxB.value())
				zu_erfassen_zw += "', csb = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csb = '" +"0"
			if self.spinBoxA.value() > 0:
				cs = str(self.spinBoxA.value())
				zu_erfassen_zw += "', csa = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', csa = '" +"0"
			if self.spinBoxS.value() > 0:
				cs = str(self.spinBoxS.value())
				zu_erfassen_zw += "', css = '" +cs 
				self.spinBoxK.setValue(0)
			else:
				zu_erfassen_zw += "', css = '" +"0"
			if self.spinBoxK.value() > 0:
				cs = str(self.spinBoxK.value())
				zu_erfassen_zw += "', csk = '" +cs 
			else:
				zu_erfassen_zw += "', csk = '" +"0"
			if self.comboBoxDefinition.currentIndex() == 0:
				zu_erfassen_zw += "', hd = null"
			elif self.comboBoxDefinition.currentIndex() == 1:
				zu_erfassen_zw += "', hd = '0'"
			elif self.comboBoxDefinition.currentIndex() == 2:
				zu_erfassen_zw += "', hd = '1'"
			elif self.comboBoxDefinition.currentIndex() == 3:
				zu_erfassen_zw += "', hd = '2'"
			elif self.comboBoxDefinition.currentIndex() == 4:
				zu_erfassen_zw += "', hd = '9'"
			zu_erfassen_zw +=", vorhanden = '" +vorhanden +"'" +" where cd = " +str(self.cd_alt) + " and bild = '" +bild +"'"
			if self.radioButtonCoverJa.isChecked() and self.cover_austauschen:
				if os.path.exists(self.verzeichnis_thumbs +os.sep +"cd" +str(self.cd_alt) +os.sep +bild.rstrip()):
					# Bild war Thumbnail im CD Verzeichnis -> dieses löschen und neues im Cover Verzeichnis anlegen
					os.remove(self.verzeichnis_thumbs +os.sep +"cd" +str(self.cd_alt) +os.sep +bild.rstrip())
					os.rename(self.bilddatei, self.verzeichnis_cover +os.sep +self.bild.strip())
				else:
					os.rename(self.bilddatei, self.verzeichnis_cover +os.sep +self.bild.strip())
		else:
			if self.radioButtonCoverJa.isChecked() and not original:
				message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("When adding a cover you must also enter a movie title"))
				return
			if self.undo:
				bilddatei = QtGui.QImage(self.verzeichnis_trash +os.sep +bild)
			else:
				if self.radioButtonCoverJa.isChecked():
					bilddatei = QtGui.QImage(self.verzeichnis +os.sep +bild)
				else:
					bilddatei = QtGui.QImage(self.verzeichnis +os.sep +bild).scaled(size, QtCore.Qt.KeepAspectRatio)
			if self.radioButtonCoverJa.isChecked():
				newfilename = unicode(self.verzeichnis_cover +os.sep +bild)
			else:
				newfilename = unicode(self.verzeichnis_thumbs +os.sep +"cd" +str(cd) +os.sep +bild)
			# hier klappt noch etwas nicht richtig mit den Partnern, wenn len>256
			if len(bild) > 256 or os.path.exists(newfilename):
				neue_bilddatei = BilddateiUmbenennen(newfilename)
				if neue_bilddatei.exec_():
					try:
						bild_alt = unicode(self.verzeichnis +os.sep +bild)
						bild_neu = unicode(self.verzeichnis +os.sep +neue_bilddatei.lineEditDateiname.text())
						os.rename(bild_alt, bild_neu)
						newfilename = os.path.dirname(newfilename) +os.sep +neue_bilddatei.lineEditDateiname.text()
						bild = neue_bilddatei.lineEditDateiname.text()
						titel = unicode(bild.split('.')[0])
					except:
						message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error on renaming image file"))
						return
				else:
					return
			else:
				if not os.path.exists(os.path.dirname(newfilename)):
					os.mkdir(os.path.dirname(newfilename))
			if bilddatei.save(newfilename):
				if not self.undo:
					os.remove(self.verzeichnis +os.sep +unicode(bild))
			else:
				message = QtGui.QMessageBox.critical(self, self.trUtf8("Error "), self.trUtf8("Error saving image file"))
				return
			cs = ""
			zu_erfassen_zw = unicode("INSERT into pordb_vid VALUES ('" +titel.replace("'", "''") +"', '" +", ".join(darsteller).replace("'", "''") +"', " +str(cd) +", '" +bild.replace("'", "''") +"', '" +gesehen +"', '" +original +"', ' " +"', '" +vorhanden +"', DEFAULT") 
			if self.spinBoxF.value() > 0:
				cs = str(self.spinBoxF.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxH.value() > 0:
				cs = str(self.spinBoxH.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxT.value() > 0:
				cs = str(self.spinBoxT.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxC.value() > 0:
				cs = str(self.spinBoxC.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxX.value() > 0:
				cs = str(self.spinBoxX.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxO.value() > 0:
				cs = str(self.spinBoxO.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxV.value() > 0:
				cs = str(self.spinBoxV.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxB.value() > 0:
				cs = str(self.spinBoxB.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxA.value() > 0:
				cs = str(self.spinBoxA.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxS.value() > 0:
				cs = str(self.spinBoxS.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
			if self.spinBoxK.value() > 0:
				cs = str(self.spinBoxK.value())
				zu_erfassen_zw += ", " +cs 
			else:
				zu_erfassen_zw += ", 0"
				
			if self.comboBoxDefinition.currentIndex() == 0:
				zu_erfassen_zw += ", null"
			elif self.comboBoxDefinition.currentIndex() == 1:
				zu_erfassen_zw += ", '0'"
			elif self.comboBoxDefinition.currentIndex() == 2:
				zu_erfassen_zw += ", '1'"
			elif self.comboBoxDefinition.currentIndex() == 3:
				zu_erfassen_zw += ", '2'"
			zu_erfassen_zw += ")"
			
		zu_erfassen.append(zu_erfassen_zw)
			
		for i in darsteller:
			if i.lstrip() == "" or i.lstrip() == "?":
				continue
			zu_erfassen.append("UPDATE pordb_darsteller set anzahl = anzahl + 1 where darsteller = '" + i.replace("'", "''") + "'")
			if i == "" or i == "?" or i == "(Uninteressant)" or i == "(Komplett)" or i == "(Schlechte Qualitaet)":
				continue
			zu_lesen = "SELECT * FROM pordb_darsteller100 where darsteller = '" + i.replace("'", "''") + "'"
			self.lese_func = DBLesen(self, zu_lesen)
			res1 = DBLesen.get_data(self.lese_func)
			if len(res1) != 0:
				zu_erfassen.append("delete from pordb_darsteller100 where nr = '" + str(res1[0][0]) +"'")
			zu_erfassen.append("INSERT into pordb_darsteller100 (darsteller) VALUES ('" +i.replace("'", "''") +"')")
			
			partner_zaehler = 0
			if i.strip() != "(Uninteressant)" and i.strip() != "Defekt":
				zu_lesen = "select sex from pordb_darsteller where darsteller = '" +i.replace("'", "''")  +"'"
				self.lese_func = DBLesen(self, zu_lesen)
				res = DBLesen.get_data(self.lese_func)
				geschlecht = res[0][0]
				for j in darsteller:
					if j.strip() != "(Uninteressant)" and j.strip() != "Defekt" and i != j:
						zu_lesen = "select sex from pordb_darsteller where darsteller = '" +j.replace("'", "''")  +"'"
						self.lese_func = DBLesen(self, zu_lesen)
						res2 = DBLesen.get_data(self.lese_func)
						geschlecht2 = res2[0][0]
						if geschlecht != geschlecht2:
							zu_erfassen.append("insert into pordb_partner values ('" +i.replace("'", "''") +"', '" +j.replace("'", "''") +"', " +str(cd) +", '" +unicode(bild) +"')")
							zu_lesen = "select darsteller from pordb_partner where darsteller = '" +i.replace("'", "''") +"' and partner = '" +j.replace("'", "''") +"'"
							self.lese_func = DBLesen(self, zu_lesen)
							res3 = DBLesen.get_data(self.lese_func)
							if not res3:
								partner_zaehler += 1
							
			if partner_zaehler > 0:
				zu_erfassen.append("UPDATE pordb_darsteller set partner = partner + " +str(partner_zaehler) +" where darsteller = '" + i.replace("'", "''") + "'")
				
		zu_lesen = "select * from pordb_darsteller100"
		self.lese_func = DBLesen(self, zu_lesen)
		res1 = DBLesen.get_data(self.lese_func)
		anzahl_loeschen = len(res1) - 200
		if anzahl_loeschen > 0:
			res1.sort()
			for zaehler in range(anzahl_loeschen):
				zu_erfassen.append("delete from pordb_darsteller100 where nr = '" + str(res1[zaehler][0]) +"'")
		if not self.korrektur and original:
			zu_erfassen.append("UPDATE pordb_vid_neu SET titel = '" +titel.replace("'", "''") +"', darsteller = '" +", ".join(darsteller).replace("'", "''") +"', cd = " +str(cd) +", original = '" +original +"'")
		
		update_func = DBUpdate(self, zu_erfassen)
		DBUpdate.update_data(update_func)
		
		if self.original_weitere:
			zu_erfassen = []
			if self.korrektur:
				zu_lesen = "select primkey from pordb_vid where cd = " +unicode(self.cd_alt) + " and bild = '" +unicode(bild) +"'"
				self.lese_func = DBLesen(self, zu_lesen)
				curr_key = DBLesen.get_data(self.lese_func)
				zu_erfassen.append("delete from pordb_original where foreign_key_pordb_vid = " +str(curr_key[0][0]))
			else:
				zu_lesen = "select primkey from pordb_vid where cd = " +str(cd) + " and bild = '" +bild +"'"
				self.lese_func = DBLesen(self, zu_lesen)
				curr_key = DBLesen.get_data(self.lese_func)
			for i in self.original_weitere:
				if i:
					zu_erfassen.append("insert into pordb_original (original, foreign_key_pordb_vid) values ('" +i.replace("'", "''").title() +"', " +str(curr_key[0][0]) +")")
					
			update_func = DBUpdate(self, zu_erfassen)
			DBUpdate.update_data(update_func)
		
		self.close()
		QtGui.QDialog.accept(self)