add res cache, fix size bug, support 8K exports
This commit is contained in:
		
							parent
							
								
									0e6a6ae34a
								
							
						
					
					
						commit
						bb06af8a79
					
				
					 8 changed files with 46 additions and 54 deletions
				
			
		|  | @ -49,30 +49,24 @@ void ExportThread::run() | ||||||
|     // Quality Settings
 |     // Quality Settings
 | ||||||
|     settings.beginGroup("Pictures"); |     settings.beginGroup("Pictures"); | ||||||
|     int defaultQuality = 100; |     int defaultQuality = 100; | ||||||
|     QSize defExportSize = SnapmaticPicture::getSnapmaticResolution(); |  | ||||||
|     int customQuality = settings.value("CustomQuality", defaultQuality).toInt(); |     int customQuality = settings.value("CustomQuality", defaultQuality).toInt(); | ||||||
|     if (customQuality < 1 || customQuality > 100) |     if (customQuality < 1 || customQuality > 100) | ||||||
|     { |  | ||||||
|         customQuality = 100; |         customQuality = 100; | ||||||
|     } |  | ||||||
|     bool useCustomQuality = settings.value("CustomQualityEnabled", false).toBool(); |     bool useCustomQuality = settings.value("CustomQualityEnabled", false).toBool(); | ||||||
| 
 | 
 | ||||||
|     // Size Settings
 |     // Size Settings
 | ||||||
|  |     const QSize defExportSize = QSize(960, 536); | ||||||
|     QSize cusExportSize = settings.value("CustomSize", defExportSize).toSize(); |     QSize cusExportSize = settings.value("CustomSize", defExportSize).toSize(); | ||||||
|     if (cusExportSize.width() > 3840) |     if (cusExportSize.width() > 7680) { | ||||||
|     { |         cusExportSize.setWidth(7680); | ||||||
|         cusExportSize.setWidth(3840); |  | ||||||
|     } |     } | ||||||
|     else if (cusExportSize.height() > 2160) |     else if (cusExportSize.height() > 4320) { | ||||||
|     { |         cusExportSize.setHeight(4320); | ||||||
|         cusExportSize.setHeight(2160); |  | ||||||
|     } |     } | ||||||
|     if (cusExportSize.width() < 1) |     if (cusExportSize.width() < 1) { | ||||||
|     { |  | ||||||
|         cusExportSize.setWidth(1); |         cusExportSize.setWidth(1); | ||||||
|     } |     } | ||||||
|     else if (cusExportSize.height() < 1) |     else if (cusExportSize.height() < 1) { | ||||||
|     { |  | ||||||
|         cusExportSize.setHeight(1); |         cusExportSize.setHeight(1); | ||||||
|     } |     } | ||||||
|     QString sizeMode = settings.value("ExportSizeMode", "Default").toString(); |     QString sizeMode = settings.value("ExportSizeMode", "Default").toString(); | ||||||
|  |  | ||||||
|  | @ -84,8 +84,7 @@ ImportDialog::ImportDialog(QString profileName, QWidget *parent) : | ||||||
|     ui->cmdBackgroundWipe->setVisible(false); |     ui->cmdBackgroundWipe->setVisible(false); | ||||||
| 
 | 
 | ||||||
|     // Snapmatic Resolution
 |     // Snapmatic Resolution
 | ||||||
|     snapmaticResolution = SnapmaticPicture::getSnapmaticResolution(); |     ui->cbResolution->addItem("GTA V", QSize(960, 536)); | ||||||
|     ui->cbResolution->addItem("GTA V", snapmaticResolution); |  | ||||||
|     ui->cbResolution->addItem("FiveM", QSize(1920, 1072)); |     ui->cbResolution->addItem("FiveM", QSize(1920, 1072)); | ||||||
|     ui->cbResolution->addItem("1280x720", QSize(1280, 720)); |     ui->cbResolution->addItem("1280x720", QSize(1280, 720)); | ||||||
|     ui->cbResolution->addItem("1920x1080", QSize(1920, 1080)); |     ui->cbResolution->addItem("1920x1080", QSize(1920, 1080)); | ||||||
|  | @ -371,7 +370,7 @@ void ImportDialog::processSettings(QString settingsProfile, bool setDefault) | ||||||
|         ui->cbForceAvatarColour->setChecked(settings.value("ForceAvatarColour", false).toBool()); |         ui->cbForceAvatarColour->setChecked(settings.value("ForceAvatarColour", false).toBool()); | ||||||
|         ui->cbUnlimited->setChecked(settings.value("UnlimitedBuffer", false).toBool()); |         ui->cbUnlimited->setChecked(settings.value("UnlimitedBuffer", false).toBool()); | ||||||
|         ui->cbImportAsIs->setChecked(settings.value("ImportAsIs", false).toBool()); |         ui->cbImportAsIs->setChecked(settings.value("ImportAsIs", false).toBool()); | ||||||
|         const QVariant data = settings.value("Resolution", SnapmaticPicture::getSnapmaticResolution()); |         const QVariant data = settings.value("Resolution", QSize(960, 536)); | ||||||
| #if QT_VERSION >= 0x060000 | #if QT_VERSION >= 0x060000 | ||||||
|         if (data.typeId() == QMetaType::QSize) |         if (data.typeId() == QMetaType::QSize) | ||||||
| #else | #else | ||||||
|  | @ -431,7 +430,7 @@ void ImportDialog::saveSettings(QString settingsProfile) | ||||||
|         settings.setValue("Resolution", data); |         settings.setValue("Resolution", data); | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
|         settings.setValue("Resolution", SnapmaticPicture::getSnapmaticResolution()); |         settings.setValue("Resolution", QSize(960, 536)); | ||||||
|     } |     } | ||||||
|     settings.setValue("UnlimitedBuffer", ui->cbUnlimited->isChecked()); |     settings.setValue("UnlimitedBuffer", ui->cbUnlimited->isChecked()); | ||||||
|     settings.setValue("ImportAsIs", ui->cbImportAsIs->isChecked()); |     settings.setValue("ImportAsIs", ui->cbImportAsIs->isChecked()); | ||||||
|  | @ -945,7 +944,7 @@ void ImportDialog::on_cbResolution_currentIndexChanged(int index) | ||||||
| #endif | #endif | ||||||
|     { |     { | ||||||
|         const QSize dataSize = data.toSize(); |         const QSize dataSize = data.toSize(); | ||||||
|         if (dataSize == SnapmaticPicture::getSnapmaticResolution()) { |         if (dataSize == QSize(960, 536)) { | ||||||
|             ui->cbAvatar->setEnabled(true); |             ui->cbAvatar->setEnabled(true); | ||||||
|             snapmaticResolution = dataSize; |             snapmaticResolution = dataSize; | ||||||
|             reworkImage(); |             reworkImage(); | ||||||
|  |  | ||||||
|  | @ -69,7 +69,7 @@ OptionsDialog::OptionsDialog(ProfileDatabase *profileDB, QWidget *parent) : | ||||||
|     int desktopSizeWidth = qRound((double)desktopResolution.width() * screenRatioPR); |     int desktopSizeWidth = qRound((double)desktopResolution.width() * screenRatioPR); | ||||||
|     int desktopSizeHeight = qRound((double)desktopResolution.height() * screenRatioPR); |     int desktopSizeHeight = qRound((double)desktopResolution.height() * screenRatioPR); | ||||||
|     aspectRatio = Qt::KeepAspectRatio; |     aspectRatio = Qt::KeepAspectRatio; | ||||||
|     defExportSize = SnapmaticPicture::getSnapmaticResolution(); |     defExportSize = QSize(960, 536); | ||||||
|     cusExportSize = defExportSize; |     cusExportSize = defExportSize; | ||||||
|     defaultQuality = 100; |     defaultQuality = 100; | ||||||
|     customQuality = 100; |     customQuality = 100; | ||||||
|  | @ -519,19 +519,18 @@ void OptionsDialog::setupPictureSettings() | ||||||
| 
 | 
 | ||||||
|     // Quality Settings
 |     // Quality Settings
 | ||||||
|     customQuality = settings->value("CustomQuality", defaultQuality).toInt(); |     customQuality = settings->value("CustomQuality", defaultQuality).toInt(); | ||||||
|     if (customQuality < 1 || customQuality > 100) { |     if (customQuality < 1 || customQuality > 100) | ||||||
|         customQuality = 100; |         customQuality = 100; | ||||||
|     } |  | ||||||
|     ui->hsPicQuality->setValue(customQuality); |     ui->hsPicQuality->setValue(customQuality); | ||||||
|     ui->cbPicCustomQuality->setChecked(settings->value("CustomQualityEnabled", false).toBool()); |     ui->cbPicCustomQuality->setChecked(settings->value("CustomQualityEnabled", false).toBool()); | ||||||
| 
 | 
 | ||||||
|     // Size Settings
 |     // Size Settings
 | ||||||
|     cusExportSize = settings->value("CustomSize", defExportSize).toSize(); |     cusExportSize = settings->value("CustomSize", defExportSize).toSize(); | ||||||
|     if (cusExportSize.width() > 3840) { |     if (cusExportSize.width() > 7680) { | ||||||
|         cusExportSize.setWidth(3840); |         cusExportSize.setWidth(7680); | ||||||
|     } |     } | ||||||
|     else if (cusExportSize.height() > 2160) { |     else if (cusExportSize.height() > 4320) { | ||||||
|         cusExportSize.setHeight(2160); |         cusExportSize.setHeight(4320); | ||||||
|     } |     } | ||||||
|     if (cusExportSize.width() < 1) { |     if (cusExportSize.width() < 1) { | ||||||
|         cusExportSize.setWidth(1); |         cusExportSize.setWidth(1); | ||||||
|  | @ -539,7 +538,9 @@ void OptionsDialog::setupPictureSettings() | ||||||
|     else if (cusExportSize.height() < 1) { |     else if (cusExportSize.height() < 1) { | ||||||
|         cusExportSize.setHeight(1); |         cusExportSize.setHeight(1); | ||||||
|     } |     } | ||||||
|  |     ui->sbPicExportWidth->setMaximum(7680); | ||||||
|     ui->sbPicExportWidth->setValue(cusExportSize.width()); |     ui->sbPicExportWidth->setValue(cusExportSize.width()); | ||||||
|  |     ui->sbPicExportHeight->setMaximum(4320); | ||||||
|     ui->sbPicExportHeight->setValue(cusExportSize.height()); |     ui->sbPicExportHeight->setValue(cusExportSize.height()); | ||||||
| 
 | 
 | ||||||
|     QString sizeMode = settings->value("ExportSizeMode", "Default").toString(); |     QString sizeMode = settings->value("ExportSizeMode", "Default").toString(); | ||||||
|  |  | ||||||
|  | @ -141,8 +141,8 @@ void PictureDialog::setupPictureDialog() | ||||||
|     smpic = nullptr; |     smpic = nullptr; | ||||||
|     crewStr = ""; |     crewStr = ""; | ||||||
| 
 | 
 | ||||||
|     // Get Snapmatic Resolution
 |     // Set default Snapmatic resolution (960x536)
 | ||||||
|     const QSize snapmaticResolution = SnapmaticPicture::getSnapmaticResolution(); |     const QSize snapmaticResolution = QSize(960, 536); | ||||||
| 
 | 
 | ||||||
|     // Avatar area
 |     // Avatar area
 | ||||||
|     qreal screenRatio = AppEnv::screenRatio(); |     qreal screenRatio = AppEnv::screenRatio(); | ||||||
|  | @ -232,7 +232,7 @@ void PictureDialog::addPreviousNextButtons() | ||||||
| 
 | 
 | ||||||
| void PictureDialog::adaptDialogSize() | void PictureDialog::adaptDialogSize() | ||||||
| { | { | ||||||
|     int newDialogHeight = (SnapmaticPicture::getSnapmaticResolution().height() * AppEnv::screenRatio()) + ui->jsonFrame->heightForWidth(width()); |     int newDialogHeight = (960 * AppEnv::screenRatio()) + ui->jsonFrame->heightForWidth(width()); | ||||||
|     if (naviEnabled) |     if (naviEnabled) | ||||||
|         newDialogHeight = newDialogHeight + layout()->menuBar()->height(); |         newDialogHeight = newDialogHeight + layout()->menuBar()->height(); | ||||||
|     const QSize windowSize(width(), newDialogHeight); |     const QSize windowSize(width(), newDialogHeight); | ||||||
|  | @ -533,7 +533,7 @@ void PictureDialog::renderPicture() | ||||||
| { | { | ||||||
|     const qreal screenRatio = AppEnv::screenRatio(); |     const qreal screenRatio = AppEnv::screenRatio(); | ||||||
|     const qreal screenRatioPR = AppEnv::screenRatioPR(); |     const qreal screenRatioPR = AppEnv::screenRatioPR(); | ||||||
|     const QSize snapmaticResolution(SnapmaticPicture::getSnapmaticResolution()); |     const QSize snapmaticResolution = QSize(960, 536); | ||||||
|     const QSize renderResolution(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR); |     const QSize renderResolution(snapmaticResolution.width() * screenRatio * screenRatioPR, snapmaticResolution.height() * screenRatio * screenRatioPR); | ||||||
|     QPixmap shownImagePixmap(renderResolution); |     QPixmap shownImagePixmap(renderResolution); | ||||||
|     shownImagePixmap.fill(Qt::black); |     shownImagePixmap.fill(Qt::black); | ||||||
|  | @ -783,6 +783,7 @@ void PictureDialog::editSnapmaticImage() | ||||||
|     importDialog->setModal(true); |     importDialog->setModal(true); | ||||||
|     importDialog->exec(); |     importDialog->exec(); | ||||||
|     if (importDialog->isImportAgreed()) { |     if (importDialog->isImportAgreed()) { | ||||||
|  |         const QSize previousSize = smpic->getPictureResolution(); | ||||||
|         const QByteArray previousPicture = smpic->getPictureStream(); |         const QByteArray previousPicture = smpic->getPictureStream(); | ||||||
|         bool success = smpic->setImage(importDialog->image(), importDialog->isUnlimitedBuffer()); |         bool success = smpic->setImage(importDialog->image(), importDialog->isUnlimitedBuffer()); | ||||||
|         if (success) { |         if (success) { | ||||||
|  | @ -793,8 +794,7 @@ void PictureDialog::editSnapmaticImage() | ||||||
|                 QFile::copy(currentFilePath, backupFileName); |                 QFile::copy(currentFilePath, backupFileName); | ||||||
|             } |             } | ||||||
|             if (!smpic->exportPicture(currentFilePath)) { |             if (!smpic->exportPicture(currentFilePath)) { | ||||||
|                 // TODO: Find a way to cache the image width and height
 |                 smpic->setPictureStream(previousPicture, previousSize.width(), previousSize.height()); | ||||||
|                 smpic->setPictureStream(previousPicture, 0, 0); |  | ||||||
|                 QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of I/O Error")); |                 QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of I/O Error")); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -50,20 +50,19 @@ void PictureExport::exportAsPicture(QWidget *parent, SnapmaticPicture *picture) | ||||||
|     // Quality Settings
 |     // Quality Settings
 | ||||||
|     settings.beginGroup("Pictures"); |     settings.beginGroup("Pictures"); | ||||||
|     int defaultQuality = 100; |     int defaultQuality = 100; | ||||||
|     QSize defExportSize = SnapmaticPicture::getSnapmaticResolution(); |  | ||||||
|     int customQuality = settings.value("CustomQuality", defaultQuality).toInt(); |     int customQuality = settings.value("CustomQuality", defaultQuality).toInt(); | ||||||
|     if (customQuality < 1 || customQuality > 100) { |     if (customQuality < 1 || customQuality > 100) | ||||||
|         customQuality = 100; |         customQuality = 100; | ||||||
|     } |  | ||||||
|     bool useCustomQuality = settings.value("CustomQualityEnabled", false).toBool(); |     bool useCustomQuality = settings.value("CustomQualityEnabled", false).toBool(); | ||||||
| 
 | 
 | ||||||
|     // Size Settings
 |     // Size Settings
 | ||||||
|  |     const QSize defExportSize = QSize(960, 536); | ||||||
|     QSize cusExportSize = settings.value("CustomSize", defExportSize).toSize(); |     QSize cusExportSize = settings.value("CustomSize", defExportSize).toSize(); | ||||||
|     if (cusExportSize.width() > 3840) { |     if (cusExportSize.width() > 7680) { | ||||||
|         cusExportSize.setWidth(3840); |         cusExportSize.setWidth(7680); | ||||||
|     } |     } | ||||||
|     else if (cusExportSize.height() > 2160) { |     else if (cusExportSize.height() > 4320) { | ||||||
|         cusExportSize.setHeight(2160); |         cusExportSize.setHeight(4320); | ||||||
|     } |     } | ||||||
|     if (cusExportSize.width() < 1) { |     if (cusExportSize.width() < 1) { | ||||||
|         cusExportSize.setWidth(1); |         cusExportSize.setWidth(1); | ||||||
|  |  | ||||||
|  | @ -36,11 +36,6 @@ | ||||||
| #endif | #endif | ||||||
| #include <QSaveFile> | #include <QSaveFile> | ||||||
| 
 | 
 | ||||||
| // IMAGES VALUES
 |  | ||||||
| #define snapmaticResolutionW 960 |  | ||||||
| #define snapmaticResolutionH 536 |  | ||||||
| #define snapmaticResolution QSize(snapmaticResolutionW, snapmaticResolutionH) |  | ||||||
| 
 |  | ||||||
| // GTA5VIEW RELATED INTERNAL FUNCTIONS
 | // GTA5VIEW RELATED INTERNAL FUNCTIONS
 | ||||||
| inline quint32 gta5view_charToUInt32LE(char *x) | inline quint32 gta5view_charToUInt32LE(char *x) | ||||||
| { | { | ||||||
|  | @ -601,11 +596,14 @@ bool SnapmaticPicture::readingPicture(bool cacheEnabled_) | ||||||
|     if (!ok) |     if (!ok) | ||||||
|         return false; |         return false; | ||||||
| 
 | 
 | ||||||
|     if (cacheEnabled) |     if (cacheEnabled) { | ||||||
|         picOk = cachePicture.loadFromData(QByteArray::fromRawData(p_ragePhoto.jpegData(), p_ragePhoto.jpegSize()), "JPEG"); |         picOk = cachePicture.loadFromData(QByteArray::fromRawData(p_ragePhoto.jpegData(), p_ragePhoto.jpegSize()), "JPEG"); | ||||||
|  |         picRes = cachePicture.size(); | ||||||
|  |     } | ||||||
|     else { |     else { | ||||||
|         QImage tempPicture; |         QImage tempPicture; | ||||||
|         picOk = tempPicture.loadFromData(QByteArray::fromRawData(p_ragePhoto.jpegData(), p_ragePhoto.jpegSize()), "JPEG"); |         picOk = tempPicture.loadFromData(QByteArray::fromRawData(p_ragePhoto.jpegData(), p_ragePhoto.jpegSize()), "JPEG"); | ||||||
|  |         picRes = tempPicture.size(); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     parseJsonContent(); // JSON parsing is own function
 |     parseJsonContent(); // JSON parsing is own function
 | ||||||
|  | @ -712,13 +710,17 @@ bool SnapmaticPicture::setPictureStream(const QByteArray &streamArray, int width | ||||||
|         } |         } | ||||||
|         else if (gta5view_isRDR2Format(photoFormat)) { |         else if (gta5view_isRDR2Format(photoFormat)) { | ||||||
|             snapmaticJson.jsonObject["sign"] = p_ragePhoto.jpegSign(RagePhoto::PhotoFormat::RDR2); |             snapmaticJson.jsonObject["sign"] = p_ragePhoto.jpegSign(RagePhoto::PhotoFormat::RDR2); | ||||||
|             snapmaticJson.jsonObject["size"] = jpegPicStreamLength; |             snapmaticJson.jsonObject["size"] = streamArray.size(); | ||||||
|             snapmaticJson.jsonObject["width"] = width; |             snapmaticJson.jsonObject["width"] = width; | ||||||
|             snapmaticJson.jsonObject["height"] = height; |             snapmaticJson.jsonObject["height"] = height; | ||||||
|             const std::string json = SnapmaticJson::serialize(snapmaticJson.jsonObject); |             const std::string json = SnapmaticJson::serialize(snapmaticJson.jsonObject); | ||||||
|             p_ragePhoto.setJson(json.c_str()); |             p_ragePhoto.setJson(json.c_str()); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         // Update resolution
 | ||||||
|  |         picRes = QSize(width, height); | ||||||
|  | 
 | ||||||
|  |         // Update cache
 | ||||||
|         if (cacheEnabled) { |         if (cacheEnabled) { | ||||||
|             QImage replacedPicture; |             QImage replacedPicture; | ||||||
|             replacedPicture.loadFromData(streamArray); |             replacedPicture.loadFromData(streamArray); | ||||||
|  | @ -1216,11 +1218,9 @@ bool SnapmaticPicture::setPictureVisible() | ||||||
|     return true; |     return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // PREDEFINED PROPERTIES
 | const QSize SnapmaticPicture::getPictureResolution() | ||||||
| 
 |  | ||||||
| QSize SnapmaticPicture::getSnapmaticResolution() |  | ||||||
| { | { | ||||||
|     return snapmaticResolution; |     return picRes; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // SNAPMATIC FORMAT
 | // SNAPMATIC FORMAT
 | ||||||
|  |  | ||||||
|  | @ -80,6 +80,7 @@ public: | ||||||
|     void clearCache(); |     void clearCache(); | ||||||
|     const QImage getImage(); |     const QImage getImage(); | ||||||
|     const QByteArray getPictureStream(); |     const QByteArray getPictureStream(); | ||||||
|  |     const QSize getPictureResolution(); | ||||||
|     const QString getLastStep(bool readable = true); |     const QString getLastStep(bool readable = true); | ||||||
|     const QString getPictureStr(); |     const QString getPictureStr(); | ||||||
|     const QString getPictureTitl(); |     const QString getPictureTitl(); | ||||||
|  | @ -134,9 +135,6 @@ public: | ||||||
|     inline bool setHidden() { return setPictureHidden(); } |     inline bool setHidden() { return setPictureHidden(); } | ||||||
|     inline bool setVisible() { return setPictureVisible(); } |     inline bool setVisible() { return setPictureVisible(); } | ||||||
| 
 | 
 | ||||||
|     // PREDEFINED PROPERTIES
 |  | ||||||
|     static QSize getSnapmaticResolution(); |  | ||||||
| 
 |  | ||||||
|     // SNAPMATIC FORMAT
 |     // SNAPMATIC FORMAT
 | ||||||
|     SnapmaticFormat getSnapmaticFormat(); |     SnapmaticFormat getSnapmaticFormat(); | ||||||
|     void setSnapmaticFormat(SnapmaticFormat format); |     void setSnapmaticFormat(SnapmaticFormat format); | ||||||
|  | @ -161,6 +159,7 @@ private: | ||||||
|     QString pictureStr; |     QString pictureStr; | ||||||
|     QString lastStep; |     QString lastStep; | ||||||
|     QString sortStr; |     QString sortStr; | ||||||
|  |     QSize picRes; | ||||||
|     bool picOk; |     bool picOk; | ||||||
|     bool cacheEnabled; |     bool cacheEnabled; | ||||||
|     bool isFormatSwitch; |     bool isFormatSwitch; | ||||||
|  |  | ||||||
|  | @ -356,6 +356,7 @@ void SnapmaticWidget::editSnapmaticImage() | ||||||
|     importDialog->setModal(true); |     importDialog->setModal(true); | ||||||
|     importDialog->exec(); |     importDialog->exec(); | ||||||
|     if (importDialog->isImportAgreed()) { |     if (importDialog->isImportAgreed()) { | ||||||
|  |         const QSize previousSize = smpic->getPictureResolution(); | ||||||
|         const QByteArray previousPicture = smpic->getPictureStream(); |         const QByteArray previousPicture = smpic->getPictureStream(); | ||||||
|         bool success = smpic->setImage(importDialog->image(), importDialog->isUnlimitedBuffer()); |         bool success = smpic->setImage(importDialog->image(), importDialog->isUnlimitedBuffer()); | ||||||
|         if (success) { |         if (success) { | ||||||
|  | @ -366,8 +367,7 @@ void SnapmaticWidget::editSnapmaticImage() | ||||||
|                 QFile::copy(currentFilePath, backupFileName); |                 QFile::copy(currentFilePath, backupFileName); | ||||||
|             } |             } | ||||||
|             if (!smpic->exportPicture(currentFilePath)) { |             if (!smpic->exportPicture(currentFilePath)) { | ||||||
|                 // TODO: Find a way to cache the image width and height
 |                 smpic->setPictureStream(previousPicture, previousSize.width(), previousSize.height()); | ||||||
|                 smpic->setPictureStream(previousPicture, 0, 0); |  | ||||||
|                 QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of I/O Error")); |                 QMessageBox::warning(this, QApplication::translate("ImageEditorDialog", "Snapmatic Image Editor"), QApplication::translate("ImageEditorDialog", "Patching of Snapmatic Image failed because of I/O Error")); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue