image overwriter improved

This commit is contained in:
Syping 2018-07-21 18:33:08 +02:00
parent 414867f13e
commit 193bb60caa
12 changed files with 658 additions and 456 deletions

View file

@ -8,22 +8,12 @@ service:
matrix:
include:
- env:
- BUILD_SCRIPT=debian_docker.sh
- RELEASE_LABEL="Debian 32-Bit Package"
- DEBIAN_VERSION=stretch
- DOCKER_USER=i386
- APT_INSTALL=clang
- env:
- BUILD_SCRIPT=debian_docker.sh
- RELEASE_LABEL="Debian 64-Bit Package"
- DEBIAN_VERSION=stretch
- DOCKER_USER=amd64
- APT_INSTALL=clang
- env:
- BUILD_SCRIPT=windows_docker.sh
- QT_SELECT=qt5-i686-w64-mingw32
- RELEASE_LABEL="Windows 32-Bit Portable"
- env:
- BUILD_SCRIPT=windows_docker.sh
- QT_SELECT=qt5-x86_64-w64-mingw32

View file

@ -55,6 +55,7 @@ ImportDialog::ImportDialog(QString profileName, QWidget *parent) :
ui->cmdOK->setDefault(true);
ui->cmdOK->setFocus();
importAgreed = false;
settingsLocked = false;
watermarkAvatar = true;
watermarkPicture = false;
insideAvatarZone = false;
@ -262,16 +263,31 @@ void ImportDialog::cropPicture()
qreal screenRatio = AppEnv::screenRatio();
QDialog cropDialog(this);
#if QT_VERSION >= 0x050000
cropDialog.setObjectName(QStringLiteral("CropDialog"));
#else
cropDialog.setObjectName(QString::fromUtf8("CropDialog"));
#endif
cropDialog.setWindowTitle(tr("Crop Picture..."));
cropDialog.setWindowFlags(cropDialog.windowFlags()^Qt::WindowContextHelpButtonHint);
cropDialog.setModal(true);
QVBoxLayout cropLayout;
#if QT_VERSION >= 0x050000
cropLayout.setObjectName(QStringLiteral("CropLayout"));
#else
cropLayout.setObjectName(QString::fromUtf8("CropLayout"));
#endif
cropLayout.setContentsMargins(0, 0, 0, 0);
cropLayout.setSpacing(0);
cropDialog.setLayout(&cropLayout);
ImageCropper imageCropper(&cropDialog);
#if QT_VERSION >= 0x050000
imageCropper.setObjectName(QStringLiteral("ImageCropper"));
#else
imageCropper.setObjectName(QString::fromUtf8("ImageCropper"));
#endif
imageCropper.setBackgroundColor(Qt::black);
imageCropper.setCroppingRectBorderColor(QColor(255, 255, 255, 127));
imageCropper.setImage(QPixmap::fromImage(workImage, Qt::AutoColor));
@ -280,9 +296,19 @@ void ImportDialog::cropPicture()
cropLayout.addWidget(&imageCropper);
QHBoxLayout buttonLayout;
#if QT_VERSION >= 0x050000
cropLayout.setObjectName(QStringLiteral("ButtonLayout"));
#else
cropLayout.setObjectName(QString::fromUtf8("ButtonLayout"));
#endif
cropLayout.addLayout(&buttonLayout);
QPushButton cropButton(&cropDialog);
#if QT_VERSION >= 0x050000
cropButton.setObjectName(QStringLiteral("CropButton"));
#else
cropButton.setObjectName(QString::fromUtf8("CropButton"));
#endif
cropButton.setMinimumSize(0, 40 * screenRatio);
cropButton.setText(tr("&Crop"));
cropButton.setToolTip(tr("Crop Picture"));
@ -292,7 +318,7 @@ void ImportDialog::cropPicture()
cropDialog.show();
cropDialog.setFixedSize(cropDialog.sizeHint());
if (cropDialog.exec() == true)
if (cropDialog.exec() == QDialog::Accepted)
{
QImage *croppedImage = new QImage(imageCropper.cropImage().toImage());
setImage(croppedImage);
@ -413,6 +439,37 @@ void ImportDialog::setImage(QImage *image_)
delete image_;
}
processImage();
lockSettings(false);
}
void ImportDialog::lockSettings(bool lock)
{
ui->cbAvatar->setDisabled(lock);
ui->cbForceAvatarColour->setDisabled(lock);
ui->cbIgnore->setDisabled(lock);
ui->cbStretch->setDisabled(lock);
ui->cbWatermark->setDisabled(lock);
ui->cmdBackgroundChange->setDisabled(lock);
ui->cmdBackgroundWipe->setDisabled(lock);
ui->cmdColourChange->setDisabled(lock);
ui->labBackgroundImage->setDisabled(lock);
ui->labColour->setDisabled(lock);
ui->gbSettings->setDisabled(lock);
ui->gbBackground->setDisabled(lock);
ui->cmdOK->setDisabled(lock);
settingsLocked = lock;
}
void ImportDialog::enableOverwriteMode()
{
setWindowTitle(QApplication::translate("ImageEditorDialog", "Overwrite Image..."));
ui->cmdOK->setText(QApplication::translate("ImageEditorDialog", "&Overwrite"));
ui->cmdOK->setToolTip(QApplication::translate("ImageEditorDialog", "Apply changes"));
ui->cmdCancel->setText(QApplication::translate("ImageEditorDialog", "&Close"));
ui->cmdCancel->setToolTip(QApplication::translate("ImageEditorDialog", "Discard changes"));
ui->cmdCancel->setDefault(true);
ui->cmdCancel->setFocus();
lockSettings(true);
}
bool ImportDialog::isImportAgreed()
@ -420,6 +477,11 @@ bool ImportDialog::isImportAgreed()
return importAgreed;
}
bool ImportDialog::areSettingsLocked()
{
return settingsLocked;
}
QString ImportDialog::getImageTitle()
{
return imageTitle;

View file

@ -36,7 +36,10 @@ public:
QImage image();
QString getImageTitle();
void setImage(QImage *image);
void lockSettings(bool lock);
void enableOverwriteMode();
bool isImportAgreed();
bool areSettingsLocked();
private slots:
void processImage();
@ -69,6 +72,7 @@ private:
bool watermarkPicture;
bool watermarkAvatar;
bool watermarkBlock;
bool settingsLocked;
bool importAgreed;
int snapmaticResolutionLW;
int snapmaticResolutionLH;

View file

@ -27,6 +27,7 @@
#include "SnapmaticEditor.h"
#include "StandardPaths.h"
#include "PictureExport.h"
#include "ImportDialog.h"
#include "StringParser.h"
#include "GlobalString.h"
#include "UiModLabel.h"
@ -940,25 +941,49 @@ void PictureDialog::editSnapmaticProperties()
void PictureDialog::editSnapmaticImage()
{
SnapmaticPicture *picture = smpic;
ImageEditorDialog *imageEditor;
QImage *currentImage = new QImage(smpic->getImage());
ImportDialog *importDialog;
if (rqFullscreen && fullscreenWidget != nullptr)
{
imageEditor = new ImageEditorDialog(picture, profileName, fullscreenWidget);
importDialog = new ImportDialog(profileName, fullscreenWidget);
}
else
{
imageEditor = new ImageEditorDialog(picture, profileName, this);
importDialog = new ImportDialog(profileName, this);
}
imageEditor->setWindowIcon(windowIcon());
imageEditor->setModal(true);
#ifndef Q_OS_ANDROID
imageEditor->show();
#else
imageEditor->showMaximized();
#endif
imageEditor->exec();
delete imageEditor;
importDialog->setWindowIcon(windowIcon());
importDialog->setImage(currentImage);
importDialog->enableOverwriteMode();
importDialog->setModal(true);
importDialog->exec();
if (importDialog->isImportAgreed())
{
const QByteArray previousPicture = smpic->getPictureStream();
bool success = smpic->setImage(importDialog->image());
if (success)
{
QString currentFilePath = smpic->getPictureFilePath();
QString originalFilePath = smpic->getOriginalPictureFilePath();
QString backupFileName = originalFilePath % ".bak";
if (!QFile::exists(backupFileName))
{
QFile::copy(currentFilePath, backupFileName);
}
if (!smpic->exportPicture(currentFilePath))
{
smpic->setPictureStream(previousPicture);
QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of I/O Error"));
return;
}
smpic->emitCustomSignal("PictureUpdated");
}
else
{
QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of Image Error"));
return;
}
}
delete importDialog;
}
void PictureDialog::editSnapmaticRawJson()

View file

@ -27,6 +27,7 @@
#include "PictureDialog.h"
#include "PictureExport.h"
#include "StringParser.h"
#include "ImportDialog.h"
#include "AppEnv.h"
#include "config.h"
#include <QStringBuilder>
@ -320,11 +321,40 @@ void SnapmaticWidget::editSnapmaticRawJson()
void SnapmaticWidget::editSnapmaticImage()
{
ImageEditorDialog *imageEditor = new ImageEditorDialog(smpic, profileName, this);
imageEditor->setModal(true);
imageEditor->show();
imageEditor->exec();
delete imageEditor;
QImage *currentImage = new QImage(smpic->getImage());
ImportDialog *importDialog = new ImportDialog(profileName, this);
importDialog->setImage(currentImage);
importDialog->enableOverwriteMode();
importDialog->setModal(true);
importDialog->exec();
if (importDialog->isImportAgreed())
{
const QByteArray previousPicture = smpic->getPictureStream();
bool success = smpic->setImage(importDialog->image());
if (success)
{
QString currentFilePath = smpic->getPictureFilePath();
QString originalFilePath = smpic->getOriginalPictureFilePath();
QString backupFileName = originalFilePath % ".bak";
if (!QFile::exists(backupFileName))
{
QFile::copy(currentFilePath, backupFileName);
}
if (!smpic->exportPicture(currentFilePath))
{
smpic->setPictureStream(previousPicture);
QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of I/O Error"));
return;
}
smpic->emitCustomSignal("PictureUpdated");
}
else
{
QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of Image Error"));
return;
}
}
delete importDialog;
}
void SnapmaticWidget::openMapViewer()

View file

@ -167,6 +167,7 @@ Pictures and Savegames</source>
<name>ImageEditorDialog</name>
<message>
<location filename="../ImageEditorDialog.ui" line="14"/>
<location filename="../ImportDialog.cpp" line="465"/>
<source>Overwrite Image...</source>
<translation type="unfinished"></translation>
</message>
@ -182,37 +183,49 @@ Pictures and Savegames</source>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="82"/>
<location filename="../ImportDialog.cpp" line="467"/>
<source>Apply changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="85"/>
<location filename="../ImportDialog.cpp" line="466"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="92"/>
<location filename="../ImportDialog.cpp" line="469"/>
<source>Discard changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="95"/>
<location filename="../ImportDialog.cpp" line="468"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="193"/>
<location filename="../ImageEditorDialog.cpp" line="200"/>
<location filename="../PictureDialog.cpp" line="975"/>
<location filename="../PictureDialog.cpp" line="982"/>
<location filename="../SnapmaticWidget.cpp" line="346"/>
<location filename="../SnapmaticWidget.cpp" line="353"/>
<source>Snapmatic Image Editor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="193"/>
<location filename="../PictureDialog.cpp" line="975"/>
<location filename="../SnapmaticWidget.cpp" line="346"/>
<source>Patching of Snapmatic Image failed because of I/O Error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="200"/>
<location filename="../PictureDialog.cpp" line="982"/>
<location filename="../SnapmaticWidget.cpp" line="353"/>
<source>Patching of Snapmatic Image failed because of Image Error</source>
<translation type="unfinished"></translation>
</message>
@ -252,8 +265,8 @@ Pictures and Savegames</source>
</message>
<message>
<location filename="../ImportDialog.ui" line="150"/>
<location filename="../ImportDialog.cpp" line="85"/>
<location filename="../ImportDialog.cpp" line="491"/>
<location filename="../ImportDialog.cpp" line="86"/>
<location filename="../ImportDialog.cpp" line="553"/>
<source>Background Colour: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</source>
<translation type="unfinished"></translation>
</message>
@ -270,8 +283,8 @@ Pictures and Savegames</source>
</message>
<message>
<location filename="../ImportDialog.ui" line="203"/>
<location filename="../ImportDialog.cpp" line="86"/>
<location filename="../ImportDialog.cpp" line="571"/>
<location filename="../ImportDialog.cpp" line="87"/>
<location filename="../ImportDialog.cpp" line="633"/>
<source>Background Image:</source>
<translation type="unfinished"></translation>
</message>
@ -326,67 +339,67 @@ Pictures and Savegames</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="111"/>
<location filename="../ImportDialog.cpp" line="112"/>
<source>&amp;Import new Picture...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="112"/>
<location filename="../ImportDialog.cpp" line="113"/>
<source>&amp;Crop Picture...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="185"/>
<location filename="../ImportDialog.cpp" line="186"/>
<location filename="../ProfileInterface.cpp" line="668"/>
<source>Custom Avatar</source>
<comment>Custom Avatar Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="212"/>
<location filename="../ImportDialog.cpp" line="213"/>
<location filename="../ProfileInterface.cpp" line="687"/>
<source>Custom Picture</source>
<comment>Custom Picture Description in SC, don&apos;t use Special Character!</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="265"/>
<location filename="../ImportDialog.cpp" line="271"/>
<source>Crop Picture...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="287"/>
<location filename="../ImportDialog.cpp" line="313"/>
<source>&amp;Crop</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="288"/>
<location filename="../ImportDialog.cpp" line="314"/>
<source>Crop Picture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="438"/>
<location filename="../ImportDialog.cpp" line="500"/>
<source>Snapmatic Avatar Zone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="438"/>
<location filename="../ImportDialog.cpp" line="500"/>
<source>Are you sure to use a square image outside of the Avatar Zone?
When you want to use it as Avatar the image will be detached!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="487"/>
<location filename="../ImportDialog.cpp" line="549"/>
<source>Select Colour...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="556"/>
<location filename="../ImportDialog.cpp" line="618"/>
<source>Background Image: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="556"/>
<location filename="../ImportDialog.cpp" line="618"/>
<source>File</source>
<comment>Background Image: File</comment>
<translation type="unfinished"></translation>
@ -846,80 +859,80 @@ Y: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="152"/>
<location filename="../PictureDialog.cpp" line="153"/>
<location filename="../ProfileInterface.cpp" line="1434"/>
<source>Export as &amp;Picture...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="153"/>
<location filename="../PictureDialog.cpp" line="154"/>
<location filename="../ProfileInterface.cpp" line="1435"/>
<source>Export as &amp;Snapmatic...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="155"/>
<location filename="../PictureDialog.cpp" line="156"/>
<location filename="../ProfileInterface.cpp" line="1428"/>
<source>&amp;Edit Properties...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="156"/>
<location filename="../PictureDialog.cpp" line="157"/>
<location filename="../ProfileInterface.cpp" line="1429"/>
<source>&amp;Overwrite Image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="158"/>
<location filename="../PictureDialog.cpp" line="159"/>
<location filename="../ProfileInterface.cpp" line="1431"/>
<source>Open &amp;Map Viewer...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="160"/>
<location filename="../PictureDialog.cpp" line="161"/>
<location filename="../ProfileInterface.cpp" line="1432"/>
<source>Open &amp;JSON Editor...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="557"/>
<location filename="../PictureDialog.cpp" line="558"/>
<source>Key 1 - Avatar Preview Mode
Key 2 - Toggle Overlay
Arrow Keys - Navigate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="618"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="619"/>
<location filename="../PictureDialog.cpp" line="645"/>
<source>Snapmatic Picture Viewer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="618"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="619"/>
<location filename="../PictureDialog.cpp" line="645"/>
<source>Failed at %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="643"/>
<location filename="../PictureDialog.cpp" line="783"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="784"/>
<location filename="../SnapmaticEditor.cpp" line="240"/>
<source>No Players</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="643"/>
<location filename="../PictureDialog.cpp" line="763"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="764"/>
<source>No Crew</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="643"/>
<location filename="../PictureDialog.cpp" line="644"/>
<source>Unknown Location</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="729"/>
<location filename="../PictureDialog.cpp" line="730"/>
<source>Avatar Preview Mode
Press 1 for Default View</source>
<translation type="unfinished"></translation>
@ -1128,8 +1141,8 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="109"/>
<location filename="../ImportDialog.cpp" line="316"/>
<location filename="../ImportDialog.cpp" line="510"/>
<location filename="../ImportDialog.cpp" line="342"/>
<location filename="../ImportDialog.cpp" line="572"/>
<location filename="../ProfileInterface.cpp" line="482"/>
<location filename="../ProfileInterface.cpp" line="548"/>
<location filename="../ProfileInterface.cpp" line="857"/>
@ -1140,12 +1153,12 @@ Press 1 for Default View</source>
<location filename="../ImageEditorDialog.cpp" line="110"/>
<location filename="../ImageEditorDialog.cpp" line="141"/>
<location filename="../ImageEditorDialog.cpp" line="150"/>
<location filename="../ImportDialog.cpp" line="317"/>
<location filename="../ImportDialog.cpp" line="348"/>
<location filename="../ImportDialog.cpp" line="357"/>
<location filename="../ImportDialog.cpp" line="511"/>
<location filename="../ImportDialog.cpp" line="542"/>
<location filename="../ImportDialog.cpp" line="551"/>
<location filename="../ImportDialog.cpp" line="343"/>
<location filename="../ImportDialog.cpp" line="374"/>
<location filename="../ImportDialog.cpp" line="383"/>
<location filename="../ImportDialog.cpp" line="573"/>
<location filename="../ImportDialog.cpp" line="604"/>
<location filename="../ImportDialog.cpp" line="613"/>
<location filename="../ProfileInterface.cpp" line="483"/>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../ProfileInterface.cpp" line="582"/>
@ -1165,16 +1178,16 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="120"/>
<location filename="../ImportDialog.cpp" line="327"/>
<location filename="../ImportDialog.cpp" line="521"/>
<location filename="../ImportDialog.cpp" line="353"/>
<location filename="../ImportDialog.cpp" line="583"/>
<location filename="../ProfileInterface.cpp" line="502"/>
<source>All image files (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="121"/>
<location filename="../ImportDialog.cpp" line="328"/>
<location filename="../ImportDialog.cpp" line="522"/>
<location filename="../ImportDialog.cpp" line="354"/>
<location filename="../ImportDialog.cpp" line="584"/>
<location filename="../ProfileInterface.cpp" line="503"/>
<location filename="../UserInterface.cpp" line="463"/>
<source>All files (**)</source>
@ -1182,16 +1195,16 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="141"/>
<location filename="../ImportDialog.cpp" line="348"/>
<location filename="../ImportDialog.cpp" line="542"/>
<location filename="../ImportDialog.cpp" line="374"/>
<location filename="../ImportDialog.cpp" line="604"/>
<location filename="../ProfileInterface.cpp" line="725"/>
<source>Can&apos;t import %1 because file can&apos;t be open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="150"/>
<location filename="../ImportDialog.cpp" line="357"/>
<location filename="../ImportDialog.cpp" line="551"/>
<location filename="../ImportDialog.cpp" line="383"/>
<location filename="../ImportDialog.cpp" line="613"/>
<location filename="../ProfileInterface.cpp" line="735"/>
<source>Can&apos;t import %1 because file can&apos;t be parsed properly</source>
<translation type="unfinished"></translation>
@ -1701,9 +1714,9 @@ Press 1 for Default View</source>
<location filename="../JsonEditorDialog.cpp" line="175"/>
<location filename="../JsonEditorDialog.cpp" line="181"/>
<location filename="../JsonEditorDialog.cpp" line="193"/>
<location filename="../PictureDialog.cpp" line="906"/>
<location filename="../PictureDialog.cpp" line="907"/>
<location filename="../SnapmaticEditor.cpp" line="327"/>
<location filename="../SnapmaticWidget.cpp" line="357"/>
<location filename="../SnapmaticWidget.cpp" line="387"/>
<source>Snapmatic Properties</source>
<translation type="unfinished"></translation>
</message>
@ -1784,9 +1797,9 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../JsonEditorDialog.cpp" line="181"/>
<location filename="../PictureDialog.cpp" line="906"/>
<location filename="../PictureDialog.cpp" line="907"/>
<location filename="../SnapmaticEditor.cpp" line="327"/>
<location filename="../SnapmaticWidget.cpp" line="357"/>
<location filename="../SnapmaticWidget.cpp" line="387"/>
<source>Patching of Snapmatic Properties failed because of I/O Error</source>
<translation type="unfinished"></translation>
</message>
@ -1978,8 +1991,8 @@ Press 1 for Default View</source>
</message>
<message>
<location filename="../SnapmaticWidget.ui" line="152"/>
<location filename="../SnapmaticWidget.cpp" line="157"/>
<location filename="../SnapmaticWidget.cpp" line="166"/>
<location filename="../SnapmaticWidget.cpp" line="158"/>
<location filename="../SnapmaticWidget.cpp" line="167"/>
<source>Delete picture</source>
<translation type="unfinished"></translation>
</message>
@ -2039,22 +2052,22 @@ Press 1 for Default View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="157"/>
<location filename="../SnapmaticWidget.cpp" line="158"/>
<source>Are you sure to delete %1 from your Snapmatic pictures?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="166"/>
<location filename="../SnapmaticWidget.cpp" line="167"/>
<source>Failed at deleting %1 from your Snapmatic pictures</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="290"/>
<location filename="../SnapmaticWidget.cpp" line="291"/>
<source>Failed to hide %1 In-game from your Snapmatic pictures</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="298"/>
<location filename="../SnapmaticWidget.cpp" line="299"/>
<source>Failed to show %1 In-game from your Snapmatic pictures</source>
<translation type="unfinished"></translation>
</message>
@ -2255,14 +2268,14 @@ Press 1 for Default View</source>
<message>
<location filename="../ProfileInterface.cpp" line="1349"/>
<location filename="../ProfileInterface.cpp" line="1363"/>
<location filename="../SnapmaticWidget.cpp" line="298"/>
<location filename="../SnapmaticWidget.cpp" line="299"/>
<source>Show In-game</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1383"/>
<location filename="../ProfileInterface.cpp" line="1397"/>
<location filename="../SnapmaticWidget.cpp" line="290"/>
<location filename="../SnapmaticWidget.cpp" line="291"/>
<source>Hide In-game</source>
<translation type="unfinished"></translation>
</message>

View file

@ -178,11 +178,16 @@ Snapmatic Bilder und Spielständen</translation>
<message>
<location filename="../ImageEditorDialog.cpp" line="193"/>
<location filename="../ImageEditorDialog.cpp" line="200"/>
<location filename="../PictureDialog.cpp" line="975"/>
<location filename="../PictureDialog.cpp" line="982"/>
<location filename="../SnapmaticWidget.cpp" line="346"/>
<location filename="../SnapmaticWidget.cpp" line="353"/>
<source>Snapmatic Image Editor</source>
<translation>Snapmatic Bild Editor</translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="14"/>
<location filename="../ImportDialog.cpp" line="465"/>
<source>Overwrite Image...</source>
<translation>Bild überschreiben...</translation>
</message>
@ -198,31 +203,39 @@ Snapmatic Bilder und Spielständen</translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="82"/>
<location filename="../ImportDialog.cpp" line="467"/>
<source>Apply changes</source>
<translation>Änderungen übernehmen</translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="85"/>
<location filename="../ImportDialog.cpp" line="466"/>
<source>&amp;Overwrite</source>
<translation>&amp;Überschreiben</translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="92"/>
<location filename="../ImportDialog.cpp" line="469"/>
<source>Discard changes</source>
<translation>Änderungen verwerfen</translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="95"/>
<location filename="../ImportDialog.cpp" line="468"/>
<source>&amp;Close</source>
<translation>S&amp;chließen</translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="193"/>
<location filename="../PictureDialog.cpp" line="975"/>
<location filename="../SnapmaticWidget.cpp" line="346"/>
<source>Patching of Snapmatic Image failed because of I/O Error</source>
<translation>Patchen von Snapmatic Bild fehlgeschlagen wegen I/O Fehler</translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="200"/>
<location filename="../PictureDialog.cpp" line="982"/>
<location filename="../SnapmaticWidget.cpp" line="353"/>
<source>Patching of Snapmatic Image failed because of Image Error</source>
<translation>Patchen von Snapmatic Bild fehlgeschlagen wegen Bild Fehler</translation>
</message>
@ -262,8 +275,8 @@ Snapmatic Bilder und Spielständen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="150"/>
<location filename="../ImportDialog.cpp" line="85"/>
<location filename="../ImportDialog.cpp" line="491"/>
<location filename="../ImportDialog.cpp" line="86"/>
<location filename="../ImportDialog.cpp" line="553"/>
<source>Background Colour: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</source>
<translation>Hintergrundfarbe: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</translation>
</message>
@ -289,7 +302,7 @@ Snapmatic Bilder und Spielständen</translation>
<translation>Hintergrundbild entfernen</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="556"/>
<location filename="../ImportDialog.cpp" line="618"/>
<source>Background Image: %1</source>
<translation>Hintergrundbild: %1</translation>
</message>
@ -335,69 +348,69 @@ Snapmatic Bilder und Spielständen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="203"/>
<location filename="../ImportDialog.cpp" line="86"/>
<location filename="../ImportDialog.cpp" line="571"/>
<location filename="../ImportDialog.cpp" line="87"/>
<location filename="../ImportDialog.cpp" line="633"/>
<source>Background Image:</source>
<translation>Hintergrundbild:</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="111"/>
<location filename="../ImportDialog.cpp" line="112"/>
<source>&amp;Import new Picture...</source>
<translation>Neues Bild &amp;importieren...</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="112"/>
<location filename="../ImportDialog.cpp" line="113"/>
<source>&amp;Crop Picture...</source>
<translation>Bild zu&amp;schneiden...</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="185"/>
<location filename="../ImportDialog.cpp" line="186"/>
<location filename="../ProfileInterface.cpp" line="668"/>
<source>Custom Avatar</source>
<comment>Custom Avatar Description in SC, don&apos;t use Special Character!</comment>
<translation>Eigener Avatar</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="212"/>
<location filename="../ImportDialog.cpp" line="213"/>
<location filename="../ProfileInterface.cpp" line="687"/>
<source>Custom Picture</source>
<comment>Custom Picture Description in SC, don&apos;t use Special Character!</comment>
<translation>Eigenes Bild</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="265"/>
<location filename="../ImportDialog.cpp" line="271"/>
<source>Crop Picture...</source>
<translation>Bild zuschneiden...</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="287"/>
<location filename="../ImportDialog.cpp" line="313"/>
<source>&amp;Crop</source>
<translation>Zu&amp;schneiden</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="288"/>
<location filename="../ImportDialog.cpp" line="314"/>
<source>Crop Picture</source>
<translation>Bild zuschneiden</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="438"/>
<location filename="../ImportDialog.cpp" line="500"/>
<source>Are you sure to use a square image outside of the Avatar Zone?
When you want to use it as Avatar the image will be detached!</source>
<translation>Bist du sicher ein Quadrat Bild außerhalb der Avatar Zone zu verwenden?
Wenn du es als Avatar verwenden möchtest wird es abgetrennt!</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="438"/>
<location filename="../ImportDialog.cpp" line="500"/>
<source>Snapmatic Avatar Zone</source>
<translation>Snapmatic Avatar Zone</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="487"/>
<location filename="../ImportDialog.cpp" line="549"/>
<source>Select Colour...</source>
<translation>Farbe auswählen...</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="556"/>
<location filename="../ImportDialog.cpp" line="618"/>
<source>File</source>
<comment>Background Image: File</comment>
<translation>Datei</translation>
@ -867,37 +880,37 @@ Y: %2</translation>
<translation>Exportieren</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="152"/>
<location filename="../PictureDialog.cpp" line="153"/>
<location filename="../ProfileInterface.cpp" line="1434"/>
<source>Export as &amp;Picture...</source>
<translation>Als &amp;Bild exportieren...</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="153"/>
<location filename="../PictureDialog.cpp" line="154"/>
<location filename="../ProfileInterface.cpp" line="1435"/>
<source>Export as &amp;Snapmatic...</source>
<translation>Als &amp;Snapmatic exportieren...</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="155"/>
<location filename="../PictureDialog.cpp" line="156"/>
<location filename="../ProfileInterface.cpp" line="1428"/>
<source>&amp;Edit Properties...</source>
<translation>Eigenschaften bearb&amp;eiten...</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="156"/>
<location filename="../PictureDialog.cpp" line="157"/>
<location filename="../ProfileInterface.cpp" line="1429"/>
<source>&amp;Overwrite Image...</source>
<translation>Bild &amp;überschreiben...</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="158"/>
<location filename="../PictureDialog.cpp" line="159"/>
<location filename="../ProfileInterface.cpp" line="1431"/>
<source>Open &amp;Map Viewer...</source>
<translation>&amp;Kartenansicht öffnen...</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="557"/>
<location filename="../PictureDialog.cpp" line="558"/>
<source>Key 1 - Avatar Preview Mode
Key 2 - Toggle Overlay
Arrow Keys - Navigate</source>
@ -906,39 +919,39 @@ Taste 2 - Overlay umschalten
Pfeiltasten - Navigieren</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="618"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="619"/>
<location filename="../PictureDialog.cpp" line="645"/>
<source>Snapmatic Picture Viewer</source>
<translation>Snapmatic Bildansicht</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="618"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="619"/>
<location filename="../PictureDialog.cpp" line="645"/>
<source>Failed at %1</source>
<translation>Fehlgeschlagen beim %1</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="643"/>
<location filename="../PictureDialog.cpp" line="763"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="764"/>
<source>No Crew</source>
<translation>Keine Crew</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="643"/>
<location filename="../PictureDialog.cpp" line="783"/>
<location filename="../PictureDialog.cpp" line="644"/>
<location filename="../PictureDialog.cpp" line="784"/>
<location filename="../SnapmaticEditor.cpp" line="240"/>
<source>No Players</source>
<translation>Keine Spieler</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="729"/>
<location filename="../PictureDialog.cpp" line="730"/>
<source>Avatar Preview Mode
Press 1 for Default View</source>
<translation>Avatar Vorschaumodus
Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="643"/>
<location filename="../PictureDialog.cpp" line="644"/>
<source>Unknown Location</source>
<translation>Unbekannter Standort</translation>
</message>
@ -1040,7 +1053,7 @@ Drücke 1 für Standardmodus</translation>
<translation>Keine gültige Datei wurde ausgewählt</translation>
</message>
<message>
<location filename="../PictureDialog.cpp" line="160"/>
<location filename="../PictureDialog.cpp" line="161"/>
<location filename="../ProfileInterface.cpp" line="1432"/>
<source>Open &amp;JSON Editor...</source>
<translation>&amp;JSON Editor öffnen...</translation>
@ -1155,8 +1168,8 @@ Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="109"/>
<location filename="../ImportDialog.cpp" line="316"/>
<location filename="../ImportDialog.cpp" line="510"/>
<location filename="../ImportDialog.cpp" line="342"/>
<location filename="../ImportDialog.cpp" line="572"/>
<location filename="../ProfileInterface.cpp" line="482"/>
<location filename="../ProfileInterface.cpp" line="548"/>
<location filename="../ProfileInterface.cpp" line="857"/>
@ -1167,12 +1180,12 @@ Drücke 1 für Standardmodus</translation>
<location filename="../ImageEditorDialog.cpp" line="110"/>
<location filename="../ImageEditorDialog.cpp" line="141"/>
<location filename="../ImageEditorDialog.cpp" line="150"/>
<location filename="../ImportDialog.cpp" line="317"/>
<location filename="../ImportDialog.cpp" line="348"/>
<location filename="../ImportDialog.cpp" line="357"/>
<location filename="../ImportDialog.cpp" line="511"/>
<location filename="../ImportDialog.cpp" line="542"/>
<location filename="../ImportDialog.cpp" line="551"/>
<location filename="../ImportDialog.cpp" line="343"/>
<location filename="../ImportDialog.cpp" line="374"/>
<location filename="../ImportDialog.cpp" line="383"/>
<location filename="../ImportDialog.cpp" line="573"/>
<location filename="../ImportDialog.cpp" line="604"/>
<location filename="../ImportDialog.cpp" line="613"/>
<location filename="../ProfileInterface.cpp" line="483"/>
<location filename="../ProfileInterface.cpp" line="527"/>
<location filename="../ProfileInterface.cpp" line="582"/>
@ -1209,16 +1222,16 @@ Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="120"/>
<location filename="../ImportDialog.cpp" line="327"/>
<location filename="../ImportDialog.cpp" line="521"/>
<location filename="../ImportDialog.cpp" line="353"/>
<location filename="../ImportDialog.cpp" line="583"/>
<location filename="../ProfileInterface.cpp" line="502"/>
<source>All image files (%1)</source>
<translation>Alle Bilddateien (%1)</translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="121"/>
<location filename="../ImportDialog.cpp" line="328"/>
<location filename="../ImportDialog.cpp" line="522"/>
<location filename="../ImportDialog.cpp" line="354"/>
<location filename="../ImportDialog.cpp" line="584"/>
<location filename="../ProfileInterface.cpp" line="503"/>
<location filename="../UserInterface.cpp" line="463"/>
<source>All files (**)</source>
@ -1253,16 +1266,16 @@ Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="141"/>
<location filename="../ImportDialog.cpp" line="348"/>
<location filename="../ImportDialog.cpp" line="542"/>
<location filename="../ImportDialog.cpp" line="374"/>
<location filename="../ImportDialog.cpp" line="604"/>
<location filename="../ProfileInterface.cpp" line="725"/>
<source>Can&apos;t import %1 because file can&apos;t be open</source>
<translation>Kann %1 nicht importieren weil die Datei nicht geöffnet werden kann</translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="150"/>
<location filename="../ImportDialog.cpp" line="357"/>
<location filename="../ImportDialog.cpp" line="551"/>
<location filename="../ImportDialog.cpp" line="383"/>
<location filename="../ImportDialog.cpp" line="613"/>
<location filename="../ProfileInterface.cpp" line="735"/>
<source>Can&apos;t import %1 because file can&apos;t be parsed properly</source>
<translation>Kann %1 nicht importieren weil die Datei nicht richtig gelesen werden kann</translation>
@ -1726,9 +1739,9 @@ Drücke 1 für Standardmodus</translation>
<location filename="../JsonEditorDialog.cpp" line="175"/>
<location filename="../JsonEditorDialog.cpp" line="181"/>
<location filename="../JsonEditorDialog.cpp" line="193"/>
<location filename="../PictureDialog.cpp" line="906"/>
<location filename="../PictureDialog.cpp" line="907"/>
<location filename="../SnapmaticEditor.cpp" line="327"/>
<location filename="../SnapmaticWidget.cpp" line="357"/>
<location filename="../SnapmaticWidget.cpp" line="387"/>
<source>Snapmatic Properties</source>
<translation>Snapmatic Eigenschaften</translation>
</message>
@ -1867,9 +1880,9 @@ Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../JsonEditorDialog.cpp" line="181"/>
<location filename="../PictureDialog.cpp" line="906"/>
<location filename="../PictureDialog.cpp" line="907"/>
<location filename="../SnapmaticEditor.cpp" line="327"/>
<location filename="../SnapmaticWidget.cpp" line="357"/>
<location filename="../SnapmaticWidget.cpp" line="387"/>
<source>Patching of Snapmatic Properties failed because of I/O Error</source>
<translation>Patchen von Snapmatic Eigenschaften fehlgeschlagen wegen I/O Fehler</translation>
</message>
@ -1993,23 +2006,23 @@ Drücke 1 für Standardmodus</translation>
</message>
<message>
<location filename="../SnapmaticWidget.ui" line="152"/>
<location filename="../SnapmaticWidget.cpp" line="157"/>
<location filename="../SnapmaticWidget.cpp" line="166"/>
<location filename="../SnapmaticWidget.cpp" line="158"/>
<location filename="../SnapmaticWidget.cpp" line="167"/>
<source>Delete picture</source>
<translation>Bild löschen</translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="157"/>
<location filename="../SnapmaticWidget.cpp" line="158"/>
<source>Are you sure to delete %1 from your Snapmatic pictures?</source>
<translation>Bist du sicher %1 von deine Snapmatic Bilder zu löschen?</translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="290"/>
<location filename="../SnapmaticWidget.cpp" line="291"/>
<source>Failed to hide %1 In-game from your Snapmatic pictures</source>
<translation>Fehlgeschlagen beim Ausblenden von %1 im Spiel von deinen Snapmatic Bildern</translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="298"/>
<location filename="../SnapmaticWidget.cpp" line="299"/>
<source>Failed to show %1 In-game from your Snapmatic pictures</source>
<translation>Fehlgeschlagen beim Anzeigen von %1 im Spiel von deinen Snapmatic Bildern</translation>
</message>
@ -2079,7 +2092,7 @@ Drücke 1 für Standardmodus</translation>
<translation>Bild exportieren</translation>
</message>
<message>
<location filename="../SnapmaticWidget.cpp" line="166"/>
<location filename="../SnapmaticWidget.cpp" line="167"/>
<source>Failed at deleting %1 from your Snapmatic pictures</source>
<translation>Fehlgeschlagen beim Löschen von %1 von deinen Snapmatic Bildern</translation>
</message>
@ -2305,14 +2318,14 @@ Drücke 1 für Standardmodus</translation>
<message>
<location filename="../ProfileInterface.cpp" line="1349"/>
<location filename="../ProfileInterface.cpp" line="1363"/>
<location filename="../SnapmaticWidget.cpp" line="298"/>
<location filename="../SnapmaticWidget.cpp" line="299"/>
<source>Show In-game</source>
<translation>Im Spiel anzeigen</translation>
</message>
<message>
<location filename="../ProfileInterface.cpp" line="1383"/>
<location filename="../ProfileInterface.cpp" line="1397"/>
<location filename="../SnapmaticWidget.cpp" line="290"/>
<location filename="../SnapmaticWidget.cpp" line="291"/>
<source>Hide In-game</source>
<translation>Im Spiel ausblenden</translation>
</message>

View file

@ -168,11 +168,16 @@ Pictures and Savegames</source>
<message>
<location filename="../ImageEditorDialog.cpp" line="193"/>
<location filename="../ImageEditorDialog.cpp" line="200"/>
<location filename="../PictureDialog.cpp" line="975"/>
<location filename="../PictureDialog.cpp" line="982"/>
<location filename="../SnapmaticWidget.cpp" line="346"/>
<location filename="../SnapmaticWidget.cpp" line="353"/>
<source>Snapmatic Image Editor</source>
<translation></translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="14"/>
<location filename="../ImportDialog.cpp" line="465"/>
<source>Overwrite Image...</source>
<translation></translation>
</message>
@ -188,31 +193,39 @@ Pictures and Savegames</source>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="82"/>
<location filename="../ImportDialog.cpp" line="467"/>
<source>Apply changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="85"/>
<location filename="../ImportDialog.cpp" line="466"/>
<source>&amp;Overwrite</source>
<translation></translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="92"/>
<location filename="../ImportDialog.cpp" line="469"/>
<source>Discard changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImageEditorDialog.ui" line="95"/>
<location filename="../ImportDialog.cpp" line="468"/>
<source>&amp;Close</source>
<translation></translation>
</message>
<message>
<location filename="../ImageEditorDialog.cpp" line="193"/>
<location filename="../PictureDialog.cpp" line="975"/>
<location filename="../SnapmaticWidget.cpp" line="346"/>
<source>Patching of