[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [calligra/calligra/2.9] krita/plugins/formats: Krita - Make some file formats return KisImportExport
From:       Boudewijn Rempt <boud () valdyas ! org>
Date:       2015-11-17 7:50:34
Message-ID: E1Zyb2A-0008Ij-Bl () scm ! kde ! org
[Download RAW message or body]

Git commit 3f5d1bbc69224d0b0ed84fd7c9d40d93d97795e4 by Boudewijn Rempt.
Committed on 17/11/2015 at 07:50.
Pushed by rempt into branch 'calligra/2.9'.

Krita - Make some file formats return KisImportExportFilter::UserCancelled when their \
options dialogs are cancelled

Summary:
The file formats affected by this patch are: r16 heightmap/r8 \
heightmap/JPEG-2000/JPEG/PNG/PPM/PGM/PBM

These formats return KisImportExportFilter::OK rather than \
KisImportExportFilter::UserCancelled when their import/export options dialog is \
cancelled.

This leads to buggy behaviour that can be reproduced using either set of the \
following steps: CASE 1
	* Create a new document and modify it
	* Close the document and opt to save it as one of the affected formats
	* Cancel when the export options appear
	* (The document closes without saving)
CASE 2
	* Open a heightmap
	* Cancel when the import options appear
	* (Krita crashes)

I've also modified kis_png_export.cc so that it sets up the Cancel/OK buttons \
explicitly instead of relying on getting them by default from KDialog.

Reviewers: #krita:_stable, rempt

Reviewed By: #krita:_stable, rempt

Subscribers: rempt

Differential Revision: https://phabricator.kde.org/D548

Patch by Nicholas LaPointe, thanks!

M  +1    -1    krita/plugins/formats/heightmap/kis_heightmap_export.cpp
M  +1    -1    krita/plugins/formats/heightmap/kis_heightmap_import.cpp
M  +1    -1    krita/plugins/formats/jp2/jp2_export.cc
M  +1    -1    krita/plugins/formats/jpeg/kis_jpeg_export.cc
M  +2    -1    krita/plugins/formats/png/kis_png_export.cc
M  +1    -1    krita/plugins/formats/ppm/kis_ppm_export.cpp

http://commits.kde.org/calligra/3f5d1bbc69224d0b0ed84fd7c9d40d93d97795e4

diff --git a/krita/plugins/formats/heightmap/kis_heightmap_export.cpp \
b/krita/plugins/formats/heightmap/kis_heightmap_export.cpp index 070191b..cf7ef42 \
                100644
--- a/krita/plugins/formats/heightmap/kis_heightmap_export.cpp
+++ b/krita/plugins/formats/heightmap/kis_heightmap_export.cpp
@@ -114,7 +114,7 @@ KisImportExportFilter::ConversionStatus \
KisHeightMapExport::convert(const QByteA  
     if (!m_chain->manager()->getBatchMode()) {
         if (kdb->exec() == QDialog::Rejected) {
-            return KisImportExportFilter::OK; // FIXME Cancel doesn't exist :(
+            return KisImportExportFilter::UserCancelled;
         }
     }
     else {
diff --git a/krita/plugins/formats/heightmap/kis_heightmap_import.cpp \
b/krita/plugins/formats/heightmap/kis_heightmap_import.cpp index ef38fd5..b10da9e \
                100644
--- a/krita/plugins/formats/heightmap/kis_heightmap_import.cpp
+++ b/krita/plugins/formats/heightmap/kis_heightmap_import.cpp
@@ -144,7 +144,7 @@ KisImportExportFilter::ConversionStatus \
KisHeightMapImport::convert(const QByteA  
     if (!m_chain->manager()->getBatchMode()) {
         if (kdb->exec() == QDialog::Rejected) {
-            return KisImportExportFilter::OK; // FIXME Cancel doesn't exist :(
+            return KisImportExportFilter::UserCancelled;
         }
     }
 
diff --git a/krita/plugins/formats/jp2/jp2_export.cc \
b/krita/plugins/formats/jp2/jp2_export.cc index 9c61bb0..40bb353 100644
--- a/krita/plugins/formats/jp2/jp2_export.cc
+++ b/krita/plugins/formats/jp2/jp2_export.cc
@@ -92,7 +92,7 @@ KisImportExportFilter::ConversionStatus jp2Export::convert(const \
QByteArray& fro  
     if (!m_chain->manager()->getBatchMode()) {
         if (kdb->exec() == QDialog::Rejected) {
-            return KisImportExportFilter::OK; // FIXME Cancel doesn't exist :(
+            return KisImportExportFilter::UserCancelled;
         }
     }
     else {
diff --git a/krita/plugins/formats/jpeg/kis_jpeg_export.cc \
b/krita/plugins/formats/jpeg/kis_jpeg_export.cc index 92f82d4..39e8875 100644
--- a/krita/plugins/formats/jpeg/kis_jpeg_export.cc
+++ b/krita/plugins/formats/jpeg/kis_jpeg_export.cc
@@ -130,7 +130,7 @@ KisImportExportFilter::ConversionStatus \
KisJPEGExport::convert(const QByteArray&  
     if (!m_chain->manager()->getBatchMode()) {
         if (kdb->exec() == QDialog::Rejected) {
-            return KisImportExportFilter::OK; // FIXME Cancel doesn't exist :(
+            return KisImportExportFilter::UserCancelled;
         }
     }
     else {
diff --git a/krita/plugins/formats/png/kis_png_export.cc \
b/krita/plugins/formats/png/kis_png_export.cc index f678ed0..08bc0aa 100644
--- a/krita/plugins/formats/png/kis_png_export.cc
+++ b/krita/plugins/formats/png/kis_png_export.cc
@@ -90,6 +90,7 @@ KisImportExportFilter::ConversionStatus KisPNGExport::convert(const \
QByteArray&  KDialog* kdb = new KDialog(0);
     kdb->setCaption(i18n("PNG Export Options"));
     kdb->setModal(false);
+    kdb->setButtons(KDialog::Ok | KDialog::Cancel);
 
     KisImageWSP image = input->image();
     qApp->processEvents(); // For vector layers to be updated
@@ -173,7 +174,7 @@ KisImportExportFilter::ConversionStatus \
KisPNGExport::convert(const QByteArray&  if (hasVisibleWidgets()) {
             if (!m_chain->manager()->getBatchMode()) {
                 if (kdb->exec() == QDialog::Rejected) {
-                    return KisImportExportFilter::OK; // FIXME Cancel doesn't exist \
:( +                    return KisImportExportFilter::UserCancelled;
                 }
             }
         }
diff --git a/krita/plugins/formats/ppm/kis_ppm_export.cpp \
b/krita/plugins/formats/ppm/kis_ppm_export.cpp index b5c223f..a57a102 100644
--- a/krita/plugins/formats/ppm/kis_ppm_export.cpp
+++ b/krita/plugins/formats/ppm/kis_ppm_export.cpp
@@ -172,7 +172,7 @@ KisImportExportFilter::ConversionStatus \
KisPPMExport::convert(const QByteArray&  
     if (!m_chain->manager()->getBatchMode()) {
         if (kdb->exec() == QDialog::Rejected) {
-            return KisImportExportFilter::OK; // FIXME Cancel doesn't exist :(
+            return KisImportExportFilter::UserCancelled;
         }
     }
     else {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic