[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