Force Borderless mode added
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Syping 2021-02-03 20:22:00 +01:00
parent 5fd4b48538
commit c1b0053ac8
13 changed files with 946 additions and 878 deletions

View file

@ -67,9 +67,14 @@ QString GlobalString::getLanguageFile()
{
QString language = getLanguage();
QString languageFile = ":/global/global." % language % ".ini";
if (!QFileInfo::exists(languageFile)) {
#if QT_VERSION >= 0x050200
if (!QFileInfo::exists(languageFile))
languageFile = ":/global/global.en.ini";
}
#else
if (!QFileInfo(languageFile).exists())
languageFile = ":/global/global.en.ini";
#endif
return languageFile;
}

View file

@ -1,6 +1,6 @@
/*****************************************************************************
* gta5view Grand Theft Auto V Profile Viewer
* Copyright (C) 2017-2020 Syping
* Copyright (C) 2017-2021 Syping
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -63,22 +63,18 @@ ImportDialog::ImportDialog(QString profileName, QWidget *parent) :
selectedColour = QColor::fromRgb(0, 0, 0, 255);
// Set Icon for OK Button
if (QIcon::hasThemeIcon("dialog-ok"))
{
if (QIcon::hasThemeIcon("dialog-ok")) {
ui->cmdOK->setIcon(QIcon::fromTheme("dialog-ok"));
}
else if (QIcon::hasThemeIcon("gtk-ok"))
{
else if (QIcon::hasThemeIcon("gtk-ok")) {
ui->cmdOK->setIcon(QIcon::fromTheme("gtk-ok"));
}
// Set Icon for Cancel Button
if (QIcon::hasThemeIcon("dialog-cancel"))
{
if (QIcon::hasThemeIcon("dialog-cancel")) {
ui->cmdCancel->setIcon(QIcon::fromTheme("dialog-cancel"));
}
else if (QIcon::hasThemeIcon("gtk-cancel"))
{
else if (QIcon::hasThemeIcon("gtk-cancel")) {
ui->cmdCancel->setIcon(QIcon::fromTheme("gtk-cancel"));
}
@ -112,12 +108,10 @@ ImportDialog::ImportDialog(QString profileName, QWidget *parent) :
#ifndef Q_OS_MAC
ui->vlButtom->setContentsMargins(9 * screenRatio, 6 * screenRatio, 9 * screenRatio, 9 * screenRatio);
#else
if (QApplication::style()->objectName() == "macintosh")
{
if (QApplication::style()->objectName() == "macintosh") {
ui->vlButtom->setContentsMargins(9 * screenRatio, 9 * screenRatio, 9 * screenRatio, 9 * screenRatio);
}
else
{
else {
ui->vlButtom->setContentsMargins(9 * screenRatio, 6 * screenRatio, 9 * screenRatio, 9 * screenRatio);
}
#endif
@ -130,9 +124,9 @@ ImportDialog::ImportDialog(QString profileName, QWidget *parent) :
optionsMenu.addAction(tr("&Save Settings..."), this, SLOT(saveImportSettings()));
ui->cmdOptions->setMenu(&optionsMenu);
setMaximumSize(sizeHint());
setMinimumSize(sizeHint());
setFixedSize(sizeHint());
const QSize windowSize = sizeHint();
setMinimumSize(windowSize);
setMaximumSize(windowSize);
}
ImportDialog::~ImportDialog()
@ -175,7 +169,33 @@ void ImportDialog::processImage()
// Avatar mode
int diffWidth = 0;
int diffHeight = 0;
if (!ui->cbIgnore->isChecked()) {
if (ui->cbIgnore->isChecked()) {
snapmaticImage = snapmaticImage.scaled(snapmaticAvatarResolution, snapmaticAvatarResolution, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
else if (ui->cbBorderless->isChecked()) {
snapmaticImage = snapmaticImage.scaled(snapmaticAvatarResolution, snapmaticAvatarResolution, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
if (snapmaticImage.width() > snapmaticAvatarResolution) {
int diffWidth = snapmaticImage.width() - snapmaticAvatarResolution;
diffWidth = diffWidth / 2;
QImage croppedImage(snapmaticAvatarResolution, snapmaticAvatarResolution, QImage::Format_ARGB32);
croppedImage.fill(Qt::transparent);
QPainter croppedPainter(&croppedImage);
croppedPainter.drawImage(0 - diffWidth, 0, snapmaticImage);
croppedPainter.end();
snapmaticImage = croppedImage;
}
else if (snapmaticImage.height() > snapmaticAvatarResolution) {
int diffHeight = snapmaticImage.height() - snapmaticAvatarResolution;
diffHeight = diffHeight / 2;
QImage croppedImage(snapmaticAvatarResolution, snapmaticAvatarResolution, QImage::Format_ARGB32);
croppedImage.fill(Qt::transparent);
QPainter croppedPainter(&croppedImage);
croppedPainter.drawImage(0, 0 - diffHeight, snapmaticImage);
croppedPainter.end();
snapmaticImage = croppedImage;
}
}
else {
snapmaticImage = snapmaticImage.scaled(snapmaticAvatarResolution, snapmaticAvatarResolution, Qt::KeepAspectRatio, Qt::SmoothTransformation);
if (snapmaticImage.width() > snapmaticImage.height()) {
diffHeight = snapmaticAvatarResolution - snapmaticImage.height();
@ -186,9 +206,6 @@ void ImportDialog::processImage()
diffWidth = diffWidth / 2;
}
}
else {
snapmaticImage = snapmaticImage.scaled(snapmaticAvatarResolution, snapmaticAvatarResolution, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
snapmaticPainter.drawImage(snapmaticAvatarPlacementW + diffWidth, snapmaticAvatarPlacementH + diffHeight, snapmaticImage);
if (ui->cbWatermark->isChecked())
processWatermark(&snapmaticPainter);
@ -198,7 +215,33 @@ void ImportDialog::processImage()
// Picture mode
int diffWidth = 0;
int diffHeight = 0;
if (!ui->cbIgnore->isChecked()) {
if (ui->cbIgnore->isChecked()) {
snapmaticImage = snapmaticImage.scaled(snapmaticResolution, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
else if (ui->cbBorderless->isChecked()) {
snapmaticImage = snapmaticImage.scaled(snapmaticResolution, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation);
if (snapmaticImage.width() > snapmaticResolution.width()) {
int diffWidth = snapmaticImage.width() - snapmaticResolution.width();
diffWidth = diffWidth / 2;
QImage croppedImage(snapmaticResolution, QImage::Format_ARGB32);
croppedImage.fill(Qt::transparent);
QPainter croppedPainter(&croppedImage);
croppedPainter.drawImage(0 - diffWidth, 0, snapmaticImage);
croppedPainter.end();
snapmaticImage = croppedImage;
}
else if (snapmaticImage.height() > snapmaticResolution.height()) {
int diffHeight = snapmaticImage.height() - snapmaticResolution.height();
diffHeight = diffHeight / 2;
QImage croppedImage(snapmaticResolution, QImage::Format_ARGB32);
croppedImage.fill(Qt::transparent);
QPainter croppedPainter(&croppedImage);
croppedPainter.drawImage(0, 0 - diffHeight, snapmaticImage);
croppedPainter.end();
snapmaticImage = croppedImage;
}
}
else {
snapmaticImage = snapmaticImage.scaled(snapmaticResolution, Qt::KeepAspectRatio, Qt::SmoothTransformation);
if (snapmaticImage.width() != snapmaticResolution.width()) {
diffWidth = snapmaticResolution.width() - snapmaticImage.width();
@ -209,9 +252,6 @@ void ImportDialog::processImage()
diffHeight = diffHeight / 2;
}
}
else {
snapmaticImage = snapmaticImage.scaled(snapmaticResolution, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
}
snapmaticPainter.drawImage(0 + diffWidth, 0 + diffHeight, snapmaticImage);
if (ui->cbWatermark->isChecked())
processWatermark(&snapmaticPainter);
@ -309,6 +349,7 @@ void ImportDialog::processSettings(QString settingsProfile, bool setDefault)
watermarkPicture = false;
selectedColour = QColor::fromRgb(0, 0, 0, 255);
backImage = QImage();
ui->cbBorderless->setChecked(false);
ui->cbStretch->setChecked(false);
ui->cbForceAvatarColour->setChecked(false);
ui->cbUnlimited->setChecked(false);
@ -321,6 +362,7 @@ void ImportDialog::processSettings(QString settingsProfile, bool setDefault)
watermarkPicture = settings.value("WatermarkPicture", false).toBool();
backImage = qvariant_cast<QImage>(settings.value("BackgroundImage", QImage()));
selectedColour = qvariant_cast<QColor>(settings.value("SelectedColour", QColor::fromRgb(0, 0, 0, 255)));
ui->cbBorderless->setChecked(settings.value("BorderlessImage", false).toBool());
ui->cbStretch->setChecked(settings.value("BackgroundStretch", false).toBool());
ui->cbForceAvatarColour->setChecked(settings.value("ForceAvatarColour", false).toBool());
ui->cbUnlimited->setChecked(settings.value("UnlimitedBuffer", false).toBool());
@ -368,6 +410,7 @@ void ImportDialog::saveSettings(QString settingsProfile)
settings.setValue("WatermarkPicture", watermarkPicture);
settings.setValue("BackgroundImage", backImage);
settings.setValue("SelectedColour", selectedColour);
settings.setValue("BorderlessImage", ui->cbBorderless->isChecked());
settings.setValue("BackgroundStretch", ui->cbStretch->isChecked());
settings.setValue("ForceAvatarColour", ui->cbForceAvatarColour->isChecked());
#if QT_VERSION >= 0x050000
@ -453,8 +496,7 @@ void ImportDialog::cropPicture()
cropDialog.show();
cropDialog.setFixedSize(cropDialog.sizeHint());
if (cropDialog.exec() == QDialog::Accepted)
{
if (cropDialog.exec() == QDialog::Accepted) {
QImage *croppedImage = new QImage(imageCropper.cropImage().toImage());
setImage(croppedImage);
}
@ -479,8 +521,7 @@ fileDialogPreOpen: //Work?
// Getting readable Image formats
QString imageFormatsStr = " ";
for (QByteArray imageFormat : QImageReader::supportedImageFormats())
{
for (const QByteArray &imageFormat : QImageReader::supportedImageFormats()) {
imageFormatsStr += QString("*.") % QString::fromUtf8(imageFormat).toLower() % " ";
}
@ -495,17 +536,14 @@ fileDialogPreOpen: //Work?
fileDialog.setDirectory(settings.value(profileName % "+Directory", StandardPaths::documentsLocation()).toString());
fileDialog.restoreGeometry(settings.value(profileName % "+Geometry", "").toByteArray());
if (fileDialog.exec())
{
if (fileDialog.exec()) {
QStringList selectedFiles = fileDialog.selectedFiles();
if (selectedFiles.length() == 1)
{
if (selectedFiles.length() == 1) {
QString selectedFile = selectedFiles.at(0);
QString selectedFileName = QFileInfo(selectedFile).fileName();
QFile snapmaticFile(selectedFile);
if (!snapmaticFile.open(QFile::ReadOnly))
{
if (!snapmaticFile.open(QFile::ReadOnly)) {
QMessageBox::warning(this, QApplication::translate("ProfileInterface", "Import"), QApplication::translate("ProfileInterface", "Can't import %1 because file can't be open").arg("\""+selectedFileName+"\""));
goto fileDialogPreOpen;
}
@ -513,8 +551,7 @@ fileDialogPreOpen: //Work?
QImageReader snapmaticImageReader;
snapmaticImageReader.setDecideFormatFromContent(true);
snapmaticImageReader.setDevice(&snapmaticFile);
if (!snapmaticImageReader.read(importImage))
{
if (!snapmaticImageReader.read(importImage)) {
QMessageBox::warning(this, QApplication::translate("ProfileInterface", "Import"), QApplication::translate("ProfileInterface", "Can't import %1 because file can't be parsed properly").arg("\""+selectedFileName+"\""));
delete importImage;
goto fileDialogPreOpen;
@ -531,8 +568,7 @@ fileDialogPreOpen: //Work?
void ImportDialog::loadImportSettings()
{
if (settingsLocked)
{
if (settingsLocked) {
QMessageBox::information(this, tr("Load Settings..."), tr("Please import a new picture first"));
return;
}
@ -545,31 +581,25 @@ void ImportDialog::loadImportSettings()
<< tr("Profile %1", "Profile %1 as Profile 1").arg("4")
<< tr("Profile %1", "Profile %1 as Profile 1").arg("5");
QString sProfile = QInputDialog::getItem(this, tr("Load Settings..."), tr("Please select your settings profile"), profileList, 0, false, &ok, windowFlags());
if (ok)
{
if (ok) {
QString pProfile;
if (sProfile == tr("Default", "Default as Default Profile"))
{
if (sProfile == tr("Default", "Default as Default Profile")) {
pProfile = "Default";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("1"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("1")) {
pProfile = "Profile 1";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("2"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("2")) {
pProfile = "Profile 2";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("3"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("3")) {
pProfile = "Profile 3";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("4"))
{
pProfile = "Profile 4";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("5"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("5")) {
pProfile = "Profile 5";
}
processSettings(pProfile, true);
@ -579,8 +609,7 @@ void ImportDialog::loadImportSettings()
void ImportDialog::saveImportSettings()
{
if (settingsLocked)
{
if (settingsLocked) {
QMessageBox::information(this, tr("Save Settings..."), tr("Please import a new picture first"));
return;
}
@ -592,27 +621,21 @@ void ImportDialog::saveImportSettings()
<< tr("Profile %1", "Profile %1 as Profile 1").arg("4")
<< tr("Profile %1", "Profile %1 as Profile 1").arg("5");
QString sProfile = QInputDialog::getItem(this, tr("Save Settings..."), tr("Please select your settings profile"), profileList, 0, false, &ok, windowFlags());
if (ok)
{
if (ok) {
QString pProfile;
if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("1"))
{
if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("1")) {
pProfile = "Profile 1";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("2"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("2")) {
pProfile = "Profile 2";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("3"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("3")) {
pProfile = "Profile 3";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("4"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("4")) {
pProfile = "Profile 4";
}
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("5"))
{
else if (sProfile == tr("Profile %1", "Profile %1 as Profile 1").arg("5")) {
pProfile = "Profile 5";
}
saveSettings(pProfile);
@ -717,12 +740,17 @@ bool ImportDialog::areSettingsLocked()
QString ImportDialog::getImageTitle()
{
return imageTitle;
if (ui->cbImportAsIs->isChecked()) {
return tr("Custom Picture", "Custom Picture Description in SC, don't use Special Character!");
}
else {
return imageTitle;
}
}
void ImportDialog::on_cbIgnore_toggled(bool checked)
{
Q_UNUSED(checked)
ui->cbBorderless->setDisabled(checked);
processImage();
}
@ -763,11 +791,9 @@ void ImportDialog::on_cmdOK_clicked()
void ImportDialog::on_labPicture_labelPainted()
{
if (insideAvatarZone)
{
if (insideAvatarZone) {
QImage avatarAreaFinalImage(avatarAreaImage);
if (selectedColour.lightness() > 127)
{
if (selectedColour.lightness() > 127) {
avatarAreaFinalImage.setColor(1, qRgb(0, 0, 0));
}
QPainter labelPainter(ui->labPicture);
@ -779,8 +805,7 @@ void ImportDialog::on_labPicture_labelPainted()
void ImportDialog::on_cmdColourChange_clicked()
{
QColor newSelectedColour = QColorDialog::getColor(selectedColour, this, tr("Select Colour..."));
if (newSelectedColour.isValid())
{
if (newSelectedColour.isValid()) {
selectedColour = newSelectedColour;
ui->labColour->setText(tr("Background Colour: <span style=\"color: %1\">%1</span>").arg(selectedColour.name()));
processImage();
@ -806,8 +831,7 @@ fileDialogPreOpen:
// Getting readable Image formats
QString imageFormatsStr = " ";
for (QByteArray imageFormat : QImageReader::supportedImageFormats())
{
for (const QByteArray &imageFormat : QImageReader::supportedImageFormats()) {
imageFormatsStr += QString("*.") % QString::fromUtf8(imageFormat).toLower() % " ";
}
@ -822,17 +846,14 @@ fileDialogPreOpen:
fileDialog.setDirectory(settings.value("Directory", StandardPaths::documentsLocation()).toString());
fileDialog.restoreGeometry(settings.value("Geometry", "").toByteArray());
if (fileDialog.exec())
{
if (fileDialog.exec()) {
QStringList selectedFiles = fileDialog.selectedFiles();
if (selectedFiles.length() == 1)
{
if (selectedFiles.length() == 1) {
QString selectedFile = selectedFiles.at(0);
QString selectedFileName = QFileInfo(selectedFile).fileName();
QFile snapmaticFile(selectedFile);
if (!snapmaticFile.open(QFile::ReadOnly))
{
if (!snapmaticFile.open(QFile::ReadOnly)) {
QMessageBox::warning(this, QApplication::translate("ProfileInterface", "Import"), QApplication::translate("ProfileInterface", "Can't import %1 because file can't be open").arg("\""+selectedFileName+"\""));
goto fileDialogPreOpen;
}
@ -840,8 +861,7 @@ fileDialogPreOpen:
QImageReader snapmaticImageReader;
snapmaticImageReader.setDecideFormatFromContent(true);
snapmaticImageReader.setDevice(&snapmaticFile);
if (!snapmaticImageReader.read(&importImage))
{
if (!snapmaticImageReader.read(&importImage)) {
QMessageBox::warning(this, QApplication::translate("ProfileInterface", "Import"), QApplication::translate("ProfileInterface", "Can't import %1 because file can't be parsed properly").arg("\""+selectedFileName+"\""));
goto fileDialogPreOpen;
}
@ -881,8 +901,7 @@ void ImportDialog::on_cbForceAvatarColour_toggled(bool checked)
void ImportDialog::on_cbWatermark_toggled(bool checked)
{
if (!watermarkBlock)
{
if (!watermarkBlock) {
if (insideAvatarZone) {
watermarkAvatar = checked;
}
@ -893,6 +912,12 @@ void ImportDialog::on_cbWatermark_toggled(bool checked)
}
}
void ImportDialog::on_cbBorderless_toggled(bool checked)
{
ui->cbIgnore->setDisabled(checked);
processImage();
}
void ImportDialog::on_cbImportAsIs_toggled(bool checked)
{
ui->cbResolution->setDisabled(checked);

View file

@ -1,6 +1,6 @@
/*****************************************************************************
* gta5view Grand Theft Auto V Profile Viewer
* Copyright (C) 2017-2020 Syping
* Copyright (C) 2017-2021 Syping
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -60,6 +60,7 @@ private slots:
void on_cbStretch_toggled(bool checked);
void on_cbForceAvatarColour_toggled(bool checked);
void on_cbWatermark_toggled(bool checked);
void on_cbBorderless_toggled(bool checked);
void on_cbImportAsIs_toggled(bool checked);
void on_cbResolution_currentIndexChanged(int index);

View file

@ -88,12 +88,6 @@
<layout class="QHBoxLayout" name="hlCheckboxesTop">
<item>
<widget class="QCheckBox" name="cbAvatar">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Avatar</string>
</property>
@ -101,12 +95,6 @@
</item>
<item>
<widget class="QCheckBox" name="cbIgnore">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Ignore Aspect Ratio</string>
</property>
@ -118,17 +106,18 @@
<layout class="QHBoxLayout" name="hlCheckboxesButtom">
<item>
<widget class="QCheckBox" name="cbWatermark">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Watermark</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cbBorderless">
<property name="text">
<string>Force Borderless</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
<TS version="2.0">
<context>
<name>AboutDialog</name>
<message>
@ -167,27 +167,27 @@ Pictures and Savegames</source>
<context>
<name>ImageEditorDialog</name>
<message>
<location filename="../ImportDialog.cpp" line="693"/>
<location filename="../ImportDialog.cpp" line="716"/>
<source>Overwrite Image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="695"/>
<location filename="../ImportDialog.cpp" line="718"/>
<source>Apply changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="694"/>
<location filename="../ImportDialog.cpp" line="717"/>
<source>&amp;Overwrite</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="697"/>
<location filename="../ImportDialog.cpp" line="720"/>
<source>Discard changes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="696"/>
<location filename="../ImportDialog.cpp" line="719"/>
<source>&amp;Close</source>
<translation type="unfinished"></translation>
</message>
@ -225,264 +225,270 @@ Pictures and Savegames</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="98"/>
<location filename="../ImportDialog.ui" line="92"/>
<source>Avatar</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="111"/>
<location filename="../ImportDialog.ui" line="278"/>
<location filename="../ImportDialog.ui" line="99"/>
<location filename="../ImportDialog.ui" line="267"/>
<source>Ignore Aspect Ratio</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="128"/>
<location filename="../ImportDialog.ui" line="110"/>
<source>Watermark</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="140"/>
<location filename="../ImportDialog.ui" line="117"/>
<source>Force Borderless</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="129"/>
<source>Background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="150"/>
<location filename="../ImportDialog.cpp" line="86"/>
<location filename="../ImportDialog.cpp" line="350"/>
<location filename="../ImportDialog.cpp" line="785"/>
<location filename="../ImportDialog.ui" line="139"/>
<location filename="../ImportDialog.cpp" line="82"/>
<location filename="../ImportDialog.cpp" line="392"/>
<location filename="../ImportDialog.cpp" line="810"/>
<source>Background Colour: &lt;span style=&quot;color: %1&quot;&gt;%1&lt;/span&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="174"/>
<location filename="../ImportDialog.ui" line="163"/>
<source>Select background colour</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="203"/>
<location filename="../ImportDialog.cpp" line="87"/>
<location filename="../ImportDialog.cpp" line="356"/>
<location filename="../ImportDialog.cpp" line="865"/>
<location filename="../ImportDialog.ui" line="192"/>
<location filename="../ImportDialog.cpp" line="83"/>
<location filename="../ImportDialog.cpp" line="398"/>
<location filename="../ImportDialog.cpp" line="885"/>
<source>Background Image:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="227"/>
<location filename="../ImportDialog.ui" line="216"/>
<source>Select background image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="237"/>
<location filename="../ImportDialog.ui" line="226"/>
<source>Remove background image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="268"/>
<location filename="../ImportDialog.ui" line="257"/>
<source>Force Colour in Avatar Zone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="303"/>
<location filename="../ImportDialog.ui" line="292"/>
<source>Advanced</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="311"/>
<location filename="../ImportDialog.ui" line="300"/>
<source>Resolution:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="324"/>
<location filename="../ImportDialog.ui" line="313"/>
<source>Snapmatic resolution</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="335"/>
<location filename="../ImportDialog.ui" line="324"/>
<source>Avoid compression and expand buffer instead, improves picture quality, but may break Snapmatic</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="338"/>
<location filename="../ImportDialog.ui" line="327"/>
<source>Unlimited Buffer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="345"/>
<location filename="../ImportDialog.ui" line="334"/>
<source>Import as-is, don&apos;t change the picture at all, guaranteed to break Snapmatic unless you know what you doing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="348"/>
<location filename="../ImportDialog.ui" line="337"/>
<source>Import as-is</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="362"/>
<location filename="../ImportDialog.ui" line="351"/>
<source>Import options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="365"/>
<location filename="../ImportDialog.ui" line="354"/>
<source>&amp;Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="394"/>
<location filename="../ImportDialog.ui" line="383"/>
<source>Import picture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="397"/>
<location filename="../ImportDialog.ui" line="386"/>
<source>&amp;OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="410"/>
<location filename="../ImportDialog.ui" line="399"/>
<source>Discard picture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="413"/>
<location filename="../ImportDialog.ui" line="402"/>
<source>&amp;Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="126"/>
<location filename="../ImportDialog.cpp" line="120"/>
<source>&amp;Import new Picture...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="127"/>
<location filename="../ImportDialog.cpp" line="121"/>
<source>&amp;Crop Picture...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="129"/>
<location filename="../ImportDialog.cpp" line="123"/>
<source>&amp;Load Settings...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="130"/>
<location filename="../ImportDialog.cpp" line="124"/>
<source>&amp;Save Settings...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="195"/>
<location filename="../ImportDialog.cpp" line="212"/>
<location filename="../ProfileInterface.cpp" line="730"/>
<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="218"/>
<location filename="../ImportDialog.cpp" line="258"/>
<location filename="../ImportDialog.cpp" line="744"/>
<location filename="../ProfileInterface.cpp" line="749"/>
<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="352"/>
<location filename="../ImportDialog.cpp" line="394"/>
<source>Storage</source>
<comment>Background Image: Storage</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="406"/>
<location filename="../ImportDialog.cpp" line="449"/>
<source>Crop Picture...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="448"/>
<location filename="../ImportDialog.cpp" line="491"/>
<source>&amp;Crop</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="449"/>
<location filename="../ImportDialog.cpp" line="492"/>
<source>Crop Picture</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="536"/>
<location filename="../ImportDialog.cpp" line="584"/>
<location filename="../ImportDialog.cpp" line="572"/>
<location filename="../ImportDialog.cpp" line="613"/>
<source>Please import a new picture first</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="541"/>
<location filename="../ImportDialog.cpp" line="551"/>
<location filename="../ImportDialog.cpp" line="577"/>
<location filename="../ImportDialog.cpp" line="586"/>
<source>Default</source>
<comment>Default as Default Profile</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="542"/>
<location filename="../ImportDialog.cpp" line="543"/>
<location filename="../ImportDialog.cpp" line="544"/>
<location filename="../ImportDialog.cpp" line="545"/>
<location filename="../ImportDialog.cpp" line="546"/>
<location filename="../ImportDialog.cpp" line="555"/>
<location filename="../ImportDialog.cpp" line="559"/>
<location filename="../ImportDialog.cpp" line="563"/>
<location filename="../ImportDialog.cpp" line="567"/>
<location filename="../ImportDialog.cpp" line="571"/>
<location filename="../ImportDialog.cpp" line="578"/>
<location filename="../ImportDialog.cpp" line="579"/>
<location filename="../ImportDialog.cpp" line="580"/>
<location filename="../ImportDialog.cpp" line="581"/>
<location filename="../ImportDialog.cpp" line="582"/>
<location filename="../ImportDialog.cpp" line="589"/>
<location filename="../ImportDialog.cpp" line="590"/>
<location filename="../ImportDialog.cpp" line="591"/>
<location filename="../ImportDialog.cpp" line="592"/>
<location filename="../ImportDialog.cpp" line="593"/>
<location filename="../ImportDialog.cpp" line="595"/>
<location filename="../ImportDialog.cpp" line="598"/>
<location filename="../ImportDialog.cpp" line="602"/>
<location filename="../ImportDialog.cpp" line="606"/>
<location filename="../ImportDialog.cpp" line="610"/>
<location filename="../ImportDialog.cpp" line="614"/>
<location filename="../ImportDialog.cpp" line="618"/>
<location filename="../ImportDialog.cpp" line="619"/>
<location filename="../ImportDialog.cpp" line="620"/>
<location filename="../ImportDialog.cpp" line="621"/>
<location filename="../ImportDialog.cpp" line="622"/>
<location filename="../ImportDialog.cpp" line="626"/>
<location filename="../ImportDialog.cpp" line="629"/>
<location filename="../ImportDialog.cpp" line="632"/>
<location filename="../ImportDialog.cpp" line="635"/>
<location filename="../ImportDialog.cpp" line="638"/>
<source>Profile %1</source>
<comment>Profile %1 as Profile 1</comment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="536"/>
<location filename="../ImportDialog.cpp" line="547"/>
<location filename="../ImportDialog.cpp" line="572"/>
<location filename="../ImportDialog.cpp" line="583"/>
<source>Load Settings...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="584"/>
<location filename="../ImportDialog.cpp" line="594"/>
<location filename="../ImportDialog.cpp" line="613"/>
<location filename="../ImportDialog.cpp" line="623"/>
<source>Save Settings...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="735"/>
<location filename="../ImportDialog.cpp" line="926"/>
<location filename="../ImportDialog.cpp" line="763"/>
<location filename="../ImportDialog.cpp" line="951"/>
<source>Snapmatic Avatar Zone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="735"/>
<location filename="../ImportDialog.cpp" line="926"/>
<location filename="../ImportDialog.cpp" line="763"/>
<location filename="../ImportDialog.cpp" line="951"/>
<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="781"/>
<location filename="../ImportDialog.cpp" line="807"/>
<source>Select Colour...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="352"/>
<location filename="../ImportDialog.cpp" line="850"/>
<location filename="../ImportDialog.cpp" line="394"/>
<location filename="../ImportDialog.cpp" line="870"/>
<source>Background Image: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="547"/>
<location filename="../ImportDialog.cpp" line="594"/>
<location filename="../ImportDialog.cpp" line="583"/>
<location filename="../ImportDialog.cpp" line="623"/>
<source>Please select your settings profile</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="850"/>
<location filename="../ImportDialog.cpp" line="870"/>
<source>File</source>
<comment>Background Image: File</comment>
<translation type="unfinished"></translation>
@ -1292,8 +1298,8 @@ Press 1 for Default View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="477"/>
<location filename="../ImportDialog.cpp" line="804"/>
<location filename="../ImportDialog.cpp" line="519"/>
<location filename="../ImportDialog.cpp" line="829"/>
<location filename="../ProfileInterface.cpp" line="497"/>
<location filename="../ProfileInterface.cpp" line="498"/>
<location filename="../ProfileInterface.cpp" line="542"/>
@ -1315,40 +1321,40 @@ Press 1 for Default View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="478"/>
<location filename="../ImportDialog.cpp" line="509"/>
<location filename="../ImportDialog.cpp" line="518"/>
<location filename="../ImportDialog.cpp" line="805"/>
<location filename="../ImportDialog.cpp" line="836"/>
<location filename="../ImportDialog.cpp" line="845"/>
<location filename="../ImportDialog.cpp" line="520"/>
<location filename="../ImportDialog.cpp" line="547"/>
<location filename="../ImportDialog.cpp" line="555"/>
<location filename="../ImportDialog.cpp" line="830"/>
<location filename="../ImportDialog.cpp" line="857"/>
<location filename="../ImportDialog.cpp" line="865"/>
<source>Import</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="488"/>
<location filename="../ImportDialog.cpp" line="815"/>
<location filename="../ImportDialog.cpp" line="529"/>
<location filename="../ImportDialog.cpp" line="839"/>
<location filename="../ProfileInterface.cpp" line="517"/>
<source>All image files (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="489"/>
<location filename="../ImportDialog.cpp" line="816"/>
<location filename="../ImportDialog.cpp" line="530"/>
<location filename="../ImportDialog.cpp" line="840"/>
<location filename="../ProfileInterface.cpp" line="518"/>
<location filename="../UserInterface.cpp" line="470"/>
<source>All files (**)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="509"/>
<location filename="../ImportDialog.cpp" line="836"/>
<location filename="../ImportDialog.cpp" line="547"/>
<location filename="../ImportDialog.cpp" line="857"/>
<location filename="../ProfileInterface.cpp" line="795"/>
<source>Can&apos;t import %1 because file can&apos;t be open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="518"/>
<location filename="../ImportDialog.cpp" line="845"/>
<location filename="../ImportDialog.cpp" line="555"/>
<location filename="../ImportDialog.cpp" line="865"/>
<location filename="../ProfileInterface.cpp" line="805"/>
<source>Can&apos;t import %1 because file can&apos;t be parsed properly</source>
<translation type="unfinished"></translation>

Binary file not shown.

View file

@ -185,27 +185,27 @@ Snapmatic Bilder und Spielständen</translation>
<translation>Snapmatic Bild Editor</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="693"/>
<location filename="../ImportDialog.cpp" line="716"/>
<source>Overwrite Image...</source>
<translation>Bild überschreiben...</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="695"/>
<location filename="../ImportDialog.cpp" line="718"/>
<source>Apply changes</source>
<translation>Änderungen übernehmen</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="694"/>
<location filename="../ImportDialog.cpp" line="717"/>
<source>&amp;Overwrite</source>
<translation>&amp;Überschreiben</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="697"/>
<location filename="../ImportDialog.cpp" line="720"/>
<source>Discard changes</source>
<translation>Änderungen verwerfen</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="696"/>
<location filename="../ImportDialog.cpp" line="719"/>
<source>&amp;Close</source>
<translation>S&amp;chließen</translation>
</message>
@ -230,13 +230,13 @@ Snapmatic Bilder und Spielständen</translation>
<translation>Importieren...</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="111"/>
<location filename="../ImportDialog.ui" line="278"/>
<location filename="../ImportDialog.ui" line="99"/>
<location filename="../ImportDialog.ui" line="267"/>
<source>Ignore Aspect Ratio</source>
<translation>Seitenverhältnis ignorieren</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="98"/>
<location filename="../ImportDialog.ui" line="92"/>
<source>Avatar</source>
<translation>Avatar</translation>
</message>
@ -246,25 +246,30 @@ Snapmatic Bilder und Spielständen</translation>
<translation>Bild</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="128"/>
<location filename="../ImportDialog.ui" line="110"/>
<source>Watermark</source>
<translation>Wasserzeichen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="140"/>
<location filename="../ImportDialog.ui" line="117"/>
<source>Force Borderless</source>
<translation>Erzwinge keine Ränder</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="129"/>
<source>Background</source>
<translation>Hintergrund</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="150"/>
<location filename="../ImportDialog.cpp" line="86"/>
<location filename="../ImportDialog.cpp" line="350"/>
<location filename="../ImportDialog.cpp" line="785"/>
<location filename="../ImportDialog.ui" line="139"/>
<location filename="../ImportDialog.cpp" line="82"/>
<location filename="../ImportDialog.cpp" line="392"/>
<location filename="../ImportDialog.cpp" line="810"/>
<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>
<message>
<location filename="../ImportDialog.ui" line="174"/>
<location filename="../ImportDialog.ui" line="163"/>
<source>Select background colour</source>
<translation>Hintergrundfarbe auswählen</translation>
</message>
@ -273,23 +278,23 @@ Snapmatic Bilder und Spielständen</translation>
<translation type="obsolete">...</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="227"/>
<location filename="../ImportDialog.ui" line="216"/>
<source>Select background image</source>
<translation>Hintergrundbild auswählen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="237"/>
<location filename="../ImportDialog.ui" line="226"/>
<source>Remove background image</source>
<translation>Hintergrundbild entfernen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="345"/>
<location filename="../ImportDialog.ui" line="334"/>
<source>Import as-is, don&apos;t change the picture at all, guaranteed to break Snapmatic unless you know what you doing</source>
<translation>Importiere das Bild ohne Veränderungen, Snapmatic wird garantiert beschädigt wenn du nicht weißt was du tust</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="352"/>
<location filename="../ImportDialog.cpp" line="850"/>
<location filename="../ImportDialog.cpp" line="394"/>
<location filename="../ImportDialog.cpp" line="870"/>
<source>Background Image: %1</source>
<translation>Hintergrundbild: %1</translation>
</message>
@ -298,210 +303,211 @@ Snapmatic Bilder und Spielständen</translation>
<translation type="obsolete">X</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="268"/>
<location filename="../ImportDialog.ui" line="257"/>
<source>Force Colour in Avatar Zone</source>
<translation>Erzwinge Farbe in Avatar Zone</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="303"/>
<location filename="../ImportDialog.ui" line="292"/>
<source>Advanced</source>
<translation>Erweitert</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="311"/>
<location filename="../ImportDialog.ui" line="300"/>
<source>Resolution:</source>
<translation>Auflösung:</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="324"/>
<location filename="../ImportDialog.ui" line="313"/>
<source>Snapmatic resolution</source>
<translation>Snapmatic Auflösung</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="335"/>
<location filename="../ImportDialog.ui" line="324"/>
<source>Avoid compression and expand buffer instead, improves picture quality, but may break Snapmatic</source>
<translation>Vermeide Kom­pri­mie­rung und vergrößere Buffer stattdessen, verbessert Bild Qualität, aber könnte Snapmatic beschädigen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="338"/>
<location filename="../ImportDialog.ui" line="327"/>
<source>Unlimited Buffer</source>
<translation>Un­li­mi­tierter Buffer</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="348"/>
<location filename="../ImportDialog.ui" line="337"/>
<source>Import as-is</source>
<translation>Importiere unverändert</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="362"/>
<location filename="../ImportDialog.ui" line="351"/>
<source>Import options</source>
<translation>Import Optionen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="365"/>
<location filename="../ImportDialog.ui" line="354"/>
<source>&amp;Options</source>
<translation>&amp;Optionen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="394"/>
<location filename="../ImportDialog.ui" line="383"/>
<source>Import picture</source>
<translation>Bild importieren</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="397"/>
<location filename="../ImportDialog.ui" line="386"/>
<source>&amp;OK</source>
<translation>&amp;OK</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="410"/>
<location filename="../ImportDialog.ui" line="399"/>
<source>Discard picture</source>
<translation>Bild verwerfen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="413"/>
<location filename="../ImportDialog.ui" line="402"/>
<source>&amp;Cancel</source>
<translation>Abbre&amp;chen</translation>
</message>
<message>
<location filename="../ImportDialog.ui" line="203"/>
<location filename="../ImportDialog.cpp" line="87"/>
<location filename="../ImportDialog.cpp" line="356"/>
<location filename="../ImportDialog.cpp" line="865"/>
<location filename="../ImportDialog.ui" line="192"/>
<location filename="../ImportDialog.cpp" line="83"/>
<location filename="../ImportDialog.cpp" line="398"/>
<location filename="../ImportDialog.cpp" line="885"/>
<source>Background Image:</source>
<translation>Hintergrundbild:</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="126"/>
<location filename="../ImportDialog.cpp" line="120"/>
<source>&amp;Import new Picture...</source>
<translation>Neues Bild &amp;importieren...</translation>
</message>
<message>
<location filename="../ImportDialog.cpp" line="127"/>
<location filename="../ImportDialog.cpp" line="121"/>
<source>&amp;Crop Picture...</source>
<translation>Bild zu&amp;schneiden...</translation>
</message>
<message>