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

List:       kde-commits
Subject:    koffice/krita/ui
From:       Cyrille Berger <cyb () lepi ! org>
Date:       2007-07-31 22:38:07
Message-ID: 1185921487.920255.14250.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 694858 by berger:

fix saving png file to a file


 M  +23 -22    kis_png_converter.cpp  


--- trunk/koffice/krita/ui/kis_png_converter.cpp #694857:694858
@@ -188,10 +188,10 @@
 
 KisImageBuilder_Result KisPNGConverter::buildImage(QIODevice* iod)
 {
-    kDebug(41008) <<"Start decoding PNG File";
+    kDebug(41008) << "Start decoding PNG File" << endl;
     if(not iod->open(QIODevice::ReadOnly))
     {
-        kDebug(41008) <<"Failed to open PNG File";
+        kDebug(41008) << "Failed to open PNG File" << endl;
         return (KisImageBuilder_RESULT_FAILURE);
     }
 
@@ -283,24 +283,24 @@
             profile = new KoIccColorProfile(profile_rawdata);
             Q_CHECK_PTR(profile);
             if (profile) {
-//                 kDebug(41008) <<"profile name:" << \
profile->productName() <<" profile description:" << \
profile->productDescription() <<" information sur le produit:" << \
profile->productInfo(); +//                 kDebug(41008) << "profile name: \
" << profile->productName() << " profile description: " << \
profile->productDescription() << " information sur le produit: " << \
profile->productInfo() << endl;  if(!profile->isSuitableForOutput())
                 {
-                    kDebug(41008) <<"the profile is not suitable for \
output and therefore cannot be used in krita, we need to convert the image \
to a standard profile"; // TODO: in ko2 popup a selection menu to inform \
the user +                    kDebug(41008) << "the profile is not suitable \
for output and therefore cannot be used in krita, we need to convert the \
image to a standard profile" << endl; // TODO: in ko2 popup a selection \
menu to inform the user  }
             }
         } else {
-            kDebug(41008) <<"Profile isn't ICC, skiped.";
+            kDebug(41008) << "Profile isn't ICC, skiped." << endl;
         }
     } else {
-        kDebug(41008) <<"no embedded profile, will use the default \
profile"; +        kDebug(41008) << "no embedded profile, will use the \
default profile" << endl;  }
 
     // Retrieve a pointer to the colorspace
     KoColorSpace* cs;
     if (profile && profile->isSuitableForOutput())
     {
-        kDebug(41008) <<"image has embedded profile:" << profile -> name() \
<<""; +        kDebug(41008) << "image has embedded profile: " << profile \
                -> name() << "\n";
         cs = KoColorSpaceRegistry::instance()->colorSpace(csName, \
profile);  }
     else
@@ -330,10 +330,10 @@
     if(m_doc)
     {
         KoDocumentInfo * info = m_doc->documentInfo();
-        kDebug(41008) <<"There are" << num_comments <<" comments in the \
text"; +        kDebug(41008) << "There are " << num_comments << " comments \
in the text" << endl;  for(int i = 0; i < num_comments; i++)
         {
-            kDebug(41008) <<"key is" << text_ptr[i].key <<" containing" << \
text_ptr[i].text; +            kDebug(41008) << "key is " << \
text_ptr[i].key << " containing " << text_ptr[i].text << endl;  \
if(QString::compare(text_ptr[i].key, "title") == 0)  {
                     info->setAboutInfo("title", text_ptr[i].text);
@@ -358,7 +358,7 @@
     {
         // new png_byte[] may raise such an exception if the image
         // is invalid / to large.
-        kDebug(41008) <<"bad alloc:" << e.what();
+        kDebug(41008) << "bad alloc: " << e.what() << endl;
         // Free only the already allocated png_byte instances.
         png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
         return (KisImageBuilder_RESULT_FAILURE);
@@ -494,7 +494,7 @@
 
 KisImageBuilder_Result KisPNGConverter::buildImage(const KUrl& uri)
 {
-    kDebug(41008) << QFile::encodeName(uri.path()) <<"" << uri.path() <<"" \
<< uri; +    kDebug(41008) << QFile::encodeName(uri.path()) << " " << \
uri.path() << " " << uri << endl;  if (uri.isEmpty())
         return KisImageBuilder_RESULT_NO_URI;
 
@@ -511,7 +511,7 @@
         uriTF.setPath( tmpFile );
 
         // open the file
-        kDebug(41008) << QFile::encodeName(uriTF.path()) <<"" << \
uriTF.path() <<"" << uriTF; +        kDebug(41008) << \
QFile::encodeName(uriTF.path()) << " " << uriTF.path() << " " << uriTF << \
endl;  QFile *fp = new QFile(QFile::encodeName(uriTF.path()) );
         if (fp->exists())
         {
@@ -535,15 +535,17 @@
 
 KisImageBuilder_Result KisPNGConverter::buildFile(const KUrl& uri, \
KisImageSP img, KisPaintDeviceSP device, vKisAnnotationSP_it \
annotationsStart, vKisAnnotationSP_it annotationsEnd, int compression, bool \
interlace, bool alpha)  {
-    kDebug(41008) <<"Start writing PNG File";
+    kDebug(41008) << "Start writing PNG File " << uri << endl;
     if (uri.isEmpty())
         return KisImageBuilder_RESULT_NO_URI;
 
     if (!uri.isLocalFile())
         return KisImageBuilder_RESULT_NOT_LOCAL;
     // Open a QIODevice for writting
-    QFile *fp = new QFile(QFile::encodeName(uri.path()) );
-    return buildFile(fp, img, device, annotationsStart, annotationsEnd, \
compression, interlace, alpha); +    QFile *fp = new QFile( \
QFile::encodeName(uri.path()) ); +    KisImageBuilder_Result result = \
buildFile(fp, img, device, annotationsStart, annotationsEnd, compression, \
interlace, alpha); +    delete fp;
+    return result;
 // TODO: if failure do            KIO::del(uri); // async
 
 }
@@ -552,7 +554,7 @@
 {
     if(not iodevice->open(QIODevice::WriteOnly))
     {
-        kDebug(41008) <<"Failed to open PNG File for writting";
+        kDebug(41008) << "Failed to open PNG File for writting" << endl;
         return (KisImageBuilder_RESULT_FAILURE);
     }
 
@@ -651,7 +653,7 @@
         }
         if(!toomuchcolor)
         {
-            kDebug(41008) <<"Found a palette of" << num_palette <<" \
colors"; +            kDebug(41008) << "Found a palette of " << num_palette \
<< " colors" << endl;  color_type = PNG_COLOR_TYPE_PALETTE;
             if( num_palette <= 2)
             {
@@ -689,16 +691,16 @@
     vKisAnnotationSP_it it = annotationsStart;
     while(it != annotationsEnd) {
         if (!(*it) || (*it) -> type() == QString()) {
-            kDebug(41008) <<"Warning: empty annotation";
+            kDebug(41008) << "Warning: empty annotation" << endl;
             ++it;
             continue;
         }
 
-        kDebug(41008) <<"Trying to store annotation of type" << (*it) -> \
type() <<" of size" << (*it) -> annotation() . size(); +        \
kDebug(41008) << "Trying to store annotation of type " << (*it) -> type() \
<< " of size " << (*it) -> annotation() . size() << endl;  
         if ((*it) -> type().startsWith("krita_attribute:")) { // Attribute
             // FIXME: it should be possible to save krita_attributes in \
                the "CHUNKs"
-            kDebug(41008) <<"can't save this annotation :" << (*it) -> \
type(); +            kDebug(41008) << "can't save this annotation : " << \
(*it) -> type() << endl;  } else { // Profile
             char* name = new char[(*it)->type().length()+1];
             strcpy(name, (*it)->type().toAscii());
@@ -749,7 +751,6 @@
 
     // Fill the data structure
     png_byte** row_pointers= new png_byte*[height];
-
     for (int y = 0; y < height; y++) {
         KisHLineConstIterator it = device->createHLineConstIterator(0, y, \
width);  row_pointers[y] = new png_byte[width*device->pixelSize()];
@@ -844,7 +845,7 @@
     {
         delete [] palette;
     }
-
+    iodevice->close();
     return KisImageBuilder_RESULT_OK;
 }
 


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

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