Esempio n. 1
0
    def exportCharacter(self):
        """
		Diese Funktion druckt den Charakter in ein PDF-Dokument.
		"""

        appPath = PathTools.program_path()

        # Pfad zum Speicherverzeichnis
        savePath = "{}/{}".format(appPath, Config.SAVE_DIR)

        # Wenn Unterverzeichnis nicht existiert, erstelle es
        if not os.path.exists(savePath):
            os.makedirs(savePath)

        if GlobalState.is_develop:
            filePath = "{}/untitled.pdf".format(savePath)
        else:
            fileData = QFileDialog.getSaveFileName(
                self, self.tr("Export Character"),
                "{}/untitled.pdf".format(savePath),
                self.tr("Portable Document Format (*.pdf)"))

            # Sollte PySide verwendet werden!
            #filePath = fileData[0]
            # Sollte PyQt4 verwendet werden!
            filePath = fileData

        # Ohne diese Abfrage, würde der Druckauftrag auch bei einem angeblichen Abbrechen an den Drucker geschickt, aber wegen der Einstellungen als pdf etc. kommt ein seltsamer Ausdruck heraus. War zumindest zu C++-Zeiten so.
        if (filePath):
            self.__createPdf(filePath)
Esempio n. 2
0
	def exportCharacter(self):
		"""
		Diese Funktion druckt den Charakter in ein PDF-Dokument.
		"""

		appPath = PathTools.program_path()

		# Pfad zum Speicherverzeichnis
		savePath = "{}/{}".format(appPath, Config.SAVE_DIR)

		# Wenn Unterverzeichnis nicht existiert, erstelle es
		if not os.path.exists(savePath):
			os.makedirs(savePath)

		if GlobalState.is_develop:
			filePath = "{}/untitled.pdf".format(savePath)
		else:
			fileData = QFileDialog.getSaveFileName( self, self.tr( "Export Character" ), "{}/untitled.pdf".format(savePath), self.tr( "Portable Document Format (*.pdf)" ) )

			# Sollte PySide verwendet werden!
			#filePath = fileData[0]
			# Sollte PyQt4 verwendet werden!
			filePath = fileData

		# Ohne diese Abfrage, würde der Druckauftrag auch bei einem angeblichen Abbrechen an den Drucker geschickt, aber wegen der Einstellungen als pdf etc. kommt ein seltsamer Ausdruck heraus. War zumindest zu C++-Zeiten so.
		if ( filePath ):
			self.__createPdf(filePath)
Esempio n. 3
0
	def saveCharacter(self):
		"""
		Über diese Funktion wird erst der Dialog aufgerufen zum Aussuchen des Speicherortes und danach dann das Schreiben des Charakters in eine XML-Datei eingeletiet.
		"""

		appPath = PathTools.program_path()

		# Pfad zum Speicherverzeichnis
		savePath = "{}/{}".format(appPath, Config.SAVE_DIR)

		# Wenn Unterverzeichnis nicht existiert, erstelle es
		if not os.path.exists(savePath):
			os.makedirs(savePath)

		fileData = QFileDialog.getSaveFileName( self, self.tr( "Save Character" ), "{}/untitled.{}".format(savePath, Config.FILE_SUFFIX_SAVE), self.tr( "WoD Characters (*.{})".format(Config.FILE_SUFFIX_SAVE) ) )

		# Sollte PySide verwendet werden!
		#filePath = fileData[0]
		# Sollte PyQt4 verwendet werden!
		filePath = fileData

		# Nur Speichern, wenn ein Name eingegeben wurde.
		if filePath:
			try:
				self.__writeCharacter.write( filePath )
			except ErrXmlVersion as e:
				MessageBox.exception( self, e.message(), e.description() )
			except ErrXmlParsing as e:
				MessageBox.exception( self, e.message(), e.description() )
			except ErrFileNotOpened as e:
				MessageBox.exception( self, e.message(), e.description() )

			# Unmittelbar nach dem Speichern ist der Charkter natürlich nicht mehr 'geändert'.
			self.__character.setModified( False )
Esempio n. 4
0
def templates_include():
	"""
	Erstellt eine Liste aller zu kopierender template-Dateien.
	"""

	result = []

	for item in os.listdir( os.path.join( PathTools.program_path(), Config.PATH_RESOURCE, Config.RESOURCE_DIR_TEMPLATES ) ):
		result.append( os.path.join( Config.PATH_RESOURCE, Config.RESOURCE_DIR_TEMPLATES, item ) )

	return result
Esempio n. 5
0
	def openCharacter(self, fileName=None):
		"""
		Über diese Funktion wird der Dialog aufgerufen, um einen gespeicherten Charakter in das Programm laden zu können.
		"""

		# Warnen, wenn der vorherige Charakter noch nicht gespeichert wurde!
		if ( self.maybeSave() ):
			#Debug.debug("Open")

			filePath = ""
			if fileName:
				filePath = fileName
			else:
				appPath = PathTools.program_path()

				# Pfad zum Speicherverzeichnis
				savePath = "{}/{}".format(appPath, Config.SAVE_DIR)

				# Wenn Unterverzeichnis nicht existiert, suche im Programmverzeichnis.
				if ( not os.path.exists( savePath ) ):
					savePath = appPath

				fileData = QFileDialog.getOpenFileName(
					self,
					self.tr( "Select Character File" ),
					savePath,
					self.tr( "WoD Characters (*.{})".format(Config.FILE_SUFFIX_SAVE) )
				)

				# Sollte PySide verwendet werden!
				#filePath = fileData[0]
				# Sollte PyQt4 verwendet werden!
				filePath = fileData

			if ( filePath ):
				# Charakter wird erst gelöscht, wenn auch wirklich ein neuer Charkater geladen werden soll.
				self.__character.resetCharacter()

				## Verhindern, daß unnötig Warnungen auftauchen, wenn man einen Charakter lädt.
				self.__character.isLoading = True
				try:
					self.__readCharacter.read(filePath)
				except ErrXmlVersion as e:
					MessageBox.error( self, e )
				except ErrXmlParsing as e:
					MessageBox.error( self, e )
				except ErrFileNotOpened as e:
					MessageBox.error( self, e )

				# Unmittelbar nach dem Laden ist der Charkter natürlich nicht mehr 'geändert'.
				self.__character.setModified( False )
				self.__character.isLoading = False
Esempio n. 6
0
    def openCharacter(self, fileName=None):
        """
		Über diese Funktion wird der Dialog aufgerufen, um einen gespeicherten Charakter in das Programm laden zu können.
		"""

        # Warnen, wenn der vorherige Charakter noch nicht gespeichert wurde!
        if (self.maybeSave()):
            #Debug.debug("Open")

            filePath = ""
            if fileName:
                filePath = fileName
            else:
                appPath = PathTools.program_path()

                # Pfad zum Speicherverzeichnis
                savePath = "{}/{}".format(appPath, Config.SAVE_DIR)

                # Wenn Unterverzeichnis nicht existiert, suche im Programmverzeichnis.
                if (not os.path.exists(savePath)):
                    savePath = appPath

                fileData = QFileDialog.getOpenFileName(
                    self, self.tr("Select Character File"), savePath,
                    self.tr("WoD Characters (*.{})".format(
                        Config.FILE_SUFFIX_SAVE)))

                # Sollte PySide verwendet werden!
                #filePath = fileData[0]
                # Sollte PyQt4 verwendet werden!
                filePath = fileData

            if (filePath):
                # Charakter wird erst gelöscht, wenn auch wirklich ein neuer Charkater geladen werden soll.
                self.__character.resetCharacter()

                ## Verhindern, daß unnötig Warnungen auftauchen, wenn man einen Charakter lädt.
                self.__character.isLoading = True
                try:
                    self.__readCharacter.read(filePath)
                except ErrXmlVersion as e:
                    MessageBox.error(self, e)
                except ErrXmlParsing as e:
                    MessageBox.error(self, e)
                except ErrFileNotOpened as e:
                    MessageBox.error(self, e)

                # Unmittelbar nach dem Laden ist der Charkter natürlich nicht mehr 'geändert'.
                self.__character.setModified(False)
                self.__character.isLoading = False
Esempio n. 7
0
def templates_include():
    """
	Erstellt eine Liste aller zu kopierender template-Dateien.
	"""

    result = []

    for item in os.listdir(
            os.path.join(PathTools.program_path(), Config.PATH_RESOURCE,
                         Config.RESOURCE_DIR_TEMPLATES)):
        result.append(
            os.path.join(Config.PATH_RESOURCE, Config.RESOURCE_DIR_TEMPLATES,
                         item))

    return result
	def __init__(self, template, parent=None):
		"""
		\warning Aufgrund der multiplen Vererbung wird nicht die super()-Methode beim Aufruf der __init__()-Methoden der Elternkalssen verwendet.
		"""

		QObject.__init__(self, parent)
		ReadXml.__init__(self)

		self.__storage = template

		## Die Template-Dateien alle für das Laden vorbereiten.
		self.__templateFiles = []
		path_to_templates = os.path.join( PathTools.program_path(), Config.PATH_RESOURCE, Config.RESOURCE_DIR_TEMPLATES )
		for template_file in os.listdir(path_to_templates):
			if template_file.endswith(".{}".format(Config.FILE_SUFFIX_COMPRESSED)):
				self.__templateFiles.append( os.path.join( path_to_templates, template_file ) )
Esempio n. 9
0
	def writeSettings(self):
		"""
		Speichert die Konfiguration dieses Programms für den nächsten Aufruf.
		"""

		settings = Settings( "{}/{}".format(PathTools.program_path(), Config.CONFIG_FILE ))

		settings.beginGroup( "MainWindow" )
		settings.setValue( "size", self.size() )
		settings.setValue( "pos", self.pos() )
		settings.setValue( "state", self.saveState() )
		settings.endGroup()

		settings.beginGroup( "Config" )
		settings.setValue( "autoSelectEra", Config.era_auto_select )
		settings.setValue( "compressSaves", Config.compress_saves )
		settings.endGroup()
Esempio n. 10
0
    def writeSettings(self):
        """
		Speichert die Konfiguration dieses Programms für den nächsten Aufruf.
		"""

        settings = Settings("{}/{}".format(PathTools.program_path(),
                                           Config.CONFIG_FILE))

        settings.beginGroup("MainWindow")
        settings.setValue("size", self.size())
        settings.setValue("pos", self.pos())
        settings.setValue("state", self.saveState())
        settings.endGroup()

        settings.beginGroup("Config")
        settings.setValue("autoSelectEra", Config.era_auto_select)
        settings.setValue("compressSaves", Config.compress_saves)
        settings.endGroup()
Esempio n. 11
0
	def readSettings(self):
		"""
		Liest die Einstellungen für das Programm aus der Konfigurationsdatei.
		"""

		appPath = PathTools.program_path()
		settings = Settings( "{}/{}".format(appPath, Config.CONFIG_FILE))

		settings.beginGroup( "MainWindow" )
		self.resize( settings.value( "size", QSize( 900, 600 ) ) )
		self.move( settings.value( "pos", QPoint( 200, 200 ) ) )
		self.restoreState( QByteArray( settings.value( "state", "0" ) ) )
		settings.endGroup()

		settings.beginGroup( "Config" )
		Config.era_auto_select = str(settings.value( "autoSelectEra" )).lower() != "false"
		Config.compress_saves = str(settings.value( "compressSaves" )).lower() != "false"
		settings.endGroup()
    def __init__(self, template, parent=None):
        """
		\warning Aufgrund der multiplen Vererbung wird nicht die super()-Methode beim Aufruf der __init__()-Methoden der Elternkalssen verwendet.
		"""

        QObject.__init__(self, parent)
        ReadXml.__init__(self)

        self.__storage = template

        ## Die Template-Dateien alle für das Laden vorbereiten.
        self.__templateFiles = []
        path_to_templates = os.path.join(PathTools.program_path(),
                                         Config.PATH_RESOURCE,
                                         Config.RESOURCE_DIR_TEMPLATES)
        for template_file in os.listdir(path_to_templates):
            if template_file.endswith(".{}".format(
                    Config.FILE_SUFFIX_COMPRESSED)):
                self.__templateFiles.append(
                    os.path.join(path_to_templates, template_file))
Esempio n. 13
0
    def readSettings(self):
        """
		Liest die Einstellungen für das Programm aus der Konfigurationsdatei.
		"""

        appPath = PathTools.program_path()
        settings = Settings("{}/{}".format(appPath, Config.CONFIG_FILE))

        settings.beginGroup("MainWindow")
        self.resize(settings.value("size", QSize(900, 600)))
        self.move(settings.value("pos", QPoint(200, 200)))
        self.restoreState(QByteArray(settings.value("state", "0")))
        settings.endGroup()

        settings.beginGroup("Config")
        Config.era_auto_select = str(
            settings.value("autoSelectEra")).lower() != "false"
        Config.compress_saves = str(
            settings.value("compressSaves")).lower() != "false"
        settings.endGroup()
Esempio n. 14
0
    def openImage(self):
        """
		Öffnet einen Dialog zum Laden eines Charakterbildes und speichert selbiges im Charakter-Speicher.

		\note Das Bild wird auf eine in der Configurationsdatei festgelegte Maximalgröße skaliert, um die Größe überschaubar zu halten.
		"""

        appPath = PathTools.program_path()

        # Pfad zum Speicherverzeichnis
        savePath = ""
        if os.name == "nt":
            savePath = os.environ['HOMEPATH']
        else:
            savePath = os.environ['HOME']

        # Wenn Unterverzeichnis nicht existiert, suche im Programmverzeichnis.
        if (not os.path.exists(savePath)):
            savePath = appPath

        fileData = QFileDialog.getOpenFileName(
            self, self.tr("Select Image File"), savePath,
            self.
            tr("Images (*.jpg *.jpeg *.png *.bmp *.gif *.pgm *.pbm *.ppm *.svg )"
               ))

        # Sollte PySide verwendet werden!
        #filePath = fileData[0]
        # Sollte PyQt4 verwendet werden!
        filePath = fileData

        if (filePath):
            image = QPixmap(filePath)
            if image.width() > Config.CHARACTER_PIC_WIDTH_MAX or image.height(
            ) > Config.CHARACTER_PIC_HEIGHT_MAX:
                image = image.scaled(800, 800, Qt.KeepAspectRatio)

            self.updatePicture(image)

            self.__character.picture = image
Esempio n. 15
0
	def openImage(self ):
		"""
		Öffnet einen Dialog zum Laden eines Charakterbildes und speichert selbiges im Charakter-Speicher.

		\note Das Bild wird auf eine in der Configurationsdatei festgelegte Maximalgröße skaliert, um die Größe überschaubar zu halten.
		"""

		appPath = PathTools.program_path()

		# Pfad zum Speicherverzeichnis
		savePath = ""
		if os.name == "nt":
			savePath = os.environ['HOMEPATH']
		else:
			savePath = os.environ['HOME']

		# Wenn Unterverzeichnis nicht existiert, suche im Programmverzeichnis.
		if ( not os.path.exists( savePath ) ):
			savePath = appPath

		fileData = QFileDialog.getOpenFileName(
			self,
			self.tr( "Select Image File" ),
			savePath,
			self.tr( "Images (*.jpg *.jpeg *.png *.bmp *.gif *.pgm *.pbm *.ppm *.svg )" )
		)

		# Sollte PySide verwendet werden!
		#filePath = fileData[0]
		# Sollte PyQt4 verwendet werden!
		filePath = fileData

		if ( filePath ):
			image = QPixmap(filePath)
			if image.width() > Config.CHARACTER_PIC_WIDTH_MAX or image.height() > Config.CHARACTER_PIC_HEIGHT_MAX:
				image = image.scaled(800, 800, Qt.KeepAspectRatio)

			self.updatePicture(image)

			self.__character.picture = image
Esempio n. 16
0
    def saveCharacter(self):
        """
		Über diese Funktion wird erst der Dialog aufgerufen zum Aussuchen des Speicherortes und danach dann das Schreiben des Charakters in eine XML-Datei eingeletiet.
		"""

        appPath = PathTools.program_path()

        # Pfad zum Speicherverzeichnis
        savePath = "{}/{}".format(appPath, Config.SAVE_DIR)

        # Wenn Unterverzeichnis nicht existiert, erstelle es
        if not os.path.exists(savePath):
            os.makedirs(savePath)

        fileData = QFileDialog.getSaveFileName(
            self, self.tr("Save Character"),
            "{}/untitled.{}".format(savePath, Config.FILE_SUFFIX_SAVE),
            self.tr("WoD Characters (*.{})".format(Config.FILE_SUFFIX_SAVE)))

        # Sollte PySide verwendet werden!
        #filePath = fileData[0]
        # Sollte PyQt4 verwendet werden!
        filePath = fileData

        # Nur Speichern, wenn ein Name eingegeben wurde.
        if filePath:
            try:
                self.__writeCharacter.write(filePath)
            except ErrXmlVersion as e:
                MessageBox.exception(self, e.message(), e.description())
            except ErrXmlParsing as e:
                MessageBox.exception(self, e.message(), e.description())
            except ErrFileNotOpened as e:
                MessageBox.exception(self, e.message(), e.description())

            # Unmittelbar nach dem Speichern ist der Charkter natürlich nicht mehr 'geändert'.
            self.__character.setModified(False)