Re: Creating a new image loader

Ruben Lopez <r.lopez-u/[email protected]>
Newsgroups gmane.comp.kde.gwenview
Message-ID <[email protected]>
Hello Aurélien,

Could you test the last code with gwenview? Any hint on what else to 
change in the plugin to help it work?

Thanks!

Ruben Lopez wrote:
> Hello Aurélien,
>
>
> I have rewritten the code from the gimp-pic plugin, using QIODevices. 
> You will find it attached. It still doesn't work with gwenview, but 
> now it should be easy for you to find out why.
>
> Thanks!
>
> Ruben Lopez wrote:
>> Hello Aurélien,
>>
>> Thanks for your response, it was very revealing.
>> I have already found #1. It is not a big problem for us, because we 
>> don't use the .pic hdr format. We simply removed .pic from the hdr 
>> format. But I may ask KDE team to be able to release this plugin to 
>> the community.
>> I will be fixing #3 and tell you when it is done.
>>
>> Thanks again for your help.
>>
>> Rubén
>>
>> Aurélien Gâteau wrote:
>>  
>>> On Friday 22 June 2007 18:13:42 Ruben Lopez wrote:
>>>      
>>>> Aurélien Gâteau wrote:
>>>>          
>>>>> On Friday 15 June 2007 15:27:38 Ruben Lopez wrote:
>>>>>              
>>>>>> Sure,
>>>>>>
>>>>>> They are small enough to post it here in the list.
>>>>>>
>>>>>> test.pic is B&W, test2.pic is RGB
>>>>>>                   
>>>>> I am going to have a look at it, stay tuned.
>>>>>               
>>>> Thanks!
>>>>           
>>> I found three problems as to why it doesn't work.
>>>
>>> 1. There seems to be some conflict between your x-pic.desktop and 
>>> the x-hdr.desktop file installed on my machine (both claim they can 
>>> represent *.pic files). To work around this one, I renamed the 
>>> images to "*.ppic"
>>>
>>> 2. For some unknown reason, KMimeType::findByContent() returns 
>>> "application/octet-stream" for your images :-/, which Gwenview does 
>>> not recognize as a raster image format. In this case it switches to 
>>> trying to display it with a KPart, but it can't find one, as can be 
>>> seen in the console output:
>>>
>>> gwenview: WARNING: Couldn't find a KPart for image/x-pic
>>>
>>> To work around this one, I applied the ugly attached patch.
>>>
>>> 3. Now Gwenview tries to use your decoder, but it fails because your 
>>> decoder needs the IODevice of QImageIO to be a QFile, but Gwenview 
>>> uses a QBuffer, so the dynamic cast in picloader.cpp, 
>>> kimgio_pic_read() fails.
>>>
>>> I believe #3 can be fixed by modifying the decoder to not use 
>>> QIODevice API instead of C file descriptors. Once it's done, we can 
>>> try to fix #2. I don't know the correct way to fix #1, but you might 
>>> be able to get some answer from other KDE devs.
>>>
>>> Hope this helps
>>>
>>> Aurélien
>>>   
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> Index: imageloader.cpp
>>> ===================================================================
>>> --- imageloader.cpp    (révision 671034)
>>> +++ imageloader.cpp    (copie de travail)
>>> @@ -447,6 +447,7 @@
>>>      memcpy(d->mRawData.data()+oldSize, chunk.data(), chunk.size() );
>>>  
>>>      if (oldSize==0) {
>>> +        #if 0
>>>          // Try to determine the data type
>>>          KMimeType::Ptr ptr = KMimeType::findByContent(d->mRawData);
>>>          d->mMimeType = ptr->name();
>>> @@ -458,6 +459,9 @@
>>>              emit urlKindDetermined();
>>>              return;
>>>          }
>>> +        #endif
>>> +        d->mMimeType = "image/x-pic";
>>> +        d->mURLKind = MimeTypeUtils::KIND_RASTER_IMAGE;
>>>          LOG("emit urlKindDetermined(raster)");
>>>          emit urlKindDetermined();
>>>      }
>>>   
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> ------------------------------------------------------------------------- 
>>>
>>> This SF.net email is sponsored by DB2 Express
>>> Download DB2 Express C - the FREE version of DB2 express and take
>>> control of your XML. No limits. Just data. Click to get it now.
>>> http://sourceforge.net/powerbar/db2/
>>> ------------------------------------------------------------------------ 
>>>
>>>
>>> _______________________________________________
>>> Gwenview-general mailing list
>>> Gwenview-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>>> https://lists.sourceforge.net/lists/listinfo/gwenview-general
>>>       
>>
>> ------------------------------------------------------------------------- 
>>
>> This SF.net email is sponsored by DB2 Express
>> Download DB2 Express C - the FREE version of DB2 express and take
>> control of your XML. No limits. Just data. Click to get it now.
>> http://sourceforge.net/powerbar/db2/
>> _______________________________________________
>> Gwenview-general mailing list
>> Gwenview-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
>> https://lists.sourceforge.net/lists/listinfo/gwenview-general
>>
>>   
>
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> ------------------------------------------------------------------------
>
> _______________________________________________
> Gwenview-general mailing list
> Gwenview-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
> https://lists.sourceforge.net/lists/listinfo/gwenview-general
>   

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.