Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-15 Thread Michael Schwendt
On Thu, 14 Apr 2011 23:32:16 +0200, VN wrote:

> The current algorithm for grouping is in filedata.c
> 
> - function file_data_set_path() decides, which part of the path is the 
> basename and which is the extension (but I think that some other parts of 
> code 
> expects strrchr(), this should be checked)
> - function file_data_check_sidecars() groups the files and decides which is 
> the main file and which are sidecars
> - function filelist_read_real reads a directory and groups the files (through 
> file_data_new_local() and file_data_check_sidecars())
> - there is another code path for individually opened files (from commandline, 
> drag&drop, etc.) - file_data_check_sidecars() calls 
> check_case_insensitive_ext(). This code path is a problem for longer 
> extensions and should be probably rewritten to use readdir too.
> 
> 
> Ideas for improvements or rewrite of the algorithm are welcome.

Anything that will resolve the remaining issues with file grouping would
be great.

check_case_insensitive_ext() causes breakage anyway:
http://sourceforge.net/tracker/?func=detail&aid=3201373&group_id=222125&atid=1054682

And the hard to reproduce
http://sourceforge.net/tracker/?func=detail&aid=3115437&group_id=222125&atid=1054680
[ filedata.c:693:file_data_unref_debug: assertion failed: (fd->magick == 
0x12345678) ]
is likely related to file grouping, too, as a recent bug reporter has mentioned
using JPG+CR2 files. I probably will read through more of the code, such as
view_file_list.c and vflist_setup_iter_recursive() where it crashes upon
refreshing the file list tree view, but proof-reading activity like that
isn't easy (especially not if the crash may only be a side-effect of something
having gone wrong elsewhere).

I'd favour a single readdir for getting the current list of files, and then
do only in-memory processing of that list with whatever techniques may be
helpful to find file groups (e.g. basename dictionary).

--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-14 Thread Vladimir Nadvornik
Hi all,

Dne čtvrtek 14 Duben 2011 20:04:23 Omari Stephens napsal(a):
> On 04/14/2011 05:39 PM, Colin Clark wrote:
> > On 13/04/11 22:01, Colin Clark wrote:
> >> On 10/04/11 17:51, stair wrote:
> >>> I have recently starting using darktable for my raw processing and have
> >>> come across a problem with the way geeqie groups darktable's xmp files,
> >>> or rather doesn't, the files are not grouped
> >>> 
> >>> when darktable creates it's sidecar files they are given the raw file
> >>> full name including extension, in my case image.CR2, and adds the .xmp
> >>> extension, so the sidecar is image.CR2.xmp.

This is not correct, according to xmp specification. I guess that other 
software will have problems with it too.

> >>> 
> >>> The only way I can get grouping to work is to change the sidecar file
> >>> name to eliminate the .CR2 bit but this is not a solution since it
> >>> breaks the connection in darktable.  Trying various things in the
> >>> sidecar extensions list does not help
> >>> 
> >>> I don't think I am missing something here, if so a pointer would be
> >>> appreciated.  If not then it would be very good if this could be fixed
> >> 
> >> Hi
> >> 
> >> I find that if I append ".CR2.xmp" to the sidecars extension list
> >> (edit/preferences/preferences/files), then using right click on an image
> >> set Disable File Grouping followed by Enable File Grouping -
> >> 
> >> the .CR2.xmp files are then shown as grouped with the image.
> >> 
> >> But this is not working correctly as the grouping is lost on re-start
> >> and the file extensions of the sidecar files get corrupted when doing a
> >> copy or move.
> >> 
> >> So there is clearly a bug in this part of the code, but if this is
> >> corrected it may be that you will get the functionality you are looking
> >> for.
> >> 
> >> Colin Clark
> > 
> > Try changing line 761 of ui_fileops.c from
> > 
> > return strrchr(path, '.');
> > 
> > to
> > 
> > return strchr(path, '.');
> > 
> > 
> > I have no idea if that's a real solution to the problem - I'll have to
> > leave that decision to someone who knows how Geeqie works.
> > 
> > 
> > Colin Clark
> 
> I'm pretty sure that's not actually correct; it'll fail on any file that
> contains a period in the middle of the name. 


Dot in extensions is currently not supported and I don't think that the fix is 
trivial.



> The Correct (though
> probably a lot more computationally involved) solution is to consider a
> file as having some sequence of zero or more extensions, starting at the
> right edge of the filename.  If you recognize the rightmost N portions
> of that sequence, then you can identify the filetype.
> 
> In practice, you can find the last segment (with strrchr), and if that's
> ".xmp" or something, do it again and see if the next segment looks like
> a recognizable file extension (".CR2" or somesuch).  It seems reasonable
> to only support two levels.

How should the grouping work for files with two extensions then?

> 
> --xsdg
> 

The current algorithm for grouping is in filedata.c

- function file_data_set_path() decides, which part of the path is the 
basename and which is the extension (but I think that some other parts of code 
expects strrchr(), this should be checked)
- function file_data_check_sidecars() groups the files and decides which is 
the main file and which are sidecars
- function filelist_read_real reads a directory and groups the files (through 
file_data_new_local() and file_data_check_sidecars())
- there is another code path for individually opened files (from commandline, 
drag&drop, etc.) - file_data_check_sidecars() calls 
check_case_insensitive_ext(). This code path is a problem for longer 
extensions and should be probably rewritten to use readdir too.


Ideas for improvements or rewrite of the algorithm are welcome.

Vladimir



--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-14 Thread Omari Stephens
On 04/14/2011 05:39 PM, Colin Clark wrote:
> On 13/04/11 22:01, Colin Clark wrote:
>> On 10/04/11 17:51, stair wrote:
>>> I have recently starting using darktable for my raw processing and have
>>> come across a problem with the way geeqie groups darktable's xmp files, or
>>> rather doesn't, the files are not grouped
>>>
>>> when darktable creates it's sidecar files they are given the raw file full
>>> name including extension, in my case image.CR2, and adds the .xmp
>>> extension, so the sidecar is image.CR2.xmp.
>>>
>>> The only way I can get grouping to work is to change the sidecar file name
>>> to eliminate the .CR2 bit but this is not a solution since it breaks the
>>> connection in darktable.  Trying various things in the sidecar extensions
>>> list does not help
>>>
>>> I don't think I am missing something here, if so a pointer would be
>>> appreciated.  If not then it would be very good if this could be fixed
 >>
>> Hi
>>
>> I find that if I append ".CR2.xmp" to the sidecars extension list
>> (edit/preferences/preferences/files), then using right click on an image
>> set Disable File Grouping followed by Enable File Grouping -
>>
>> the .CR2.xmp files are then shown as grouped with the image.
>>
>> But this is not working correctly as the grouping is lost on re-start
>> and the file extensions of the sidecar files get corrupted when doing a
>> copy or move.
>>
>> So there is clearly a bug in this part of the code, but if this is
>> corrected it may be that you will get the functionality you are looking for.
>>
>> Colin Clark
>>
> Try changing line 761 of ui_fileops.c from
>
> return strrchr(path, '.');
>
> to
>
> return strchr(path, '.');
>
>
> I have no idea if that's a real solution to the problem - I'll have to
> leave that decision to someone who knows how Geeqie works.
>
>
> Colin Clark

I'm pretty sure that's not actually correct; it'll fail on any file that 
contains a period in the middle of the name.  The Correct (though 
probably a lot more computationally involved) solution is to consider a 
file as having some sequence of zero or more extensions, starting at the 
right edge of the filename.  If you recognize the rightmost N portions 
of that sequence, then you can identify the filetype.

In practice, you can find the last segment (with strrchr), and if that's 
".xmp" or something, do it again and see if the next segment looks like 
a recognizable file extension (".CR2" or somesuch).  It seems reasonable 
to only support two levels.

--xsdg

--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-14 Thread Colin Clark
On 13/04/11 22:01, Colin Clark wrote:
> On 10/04/11 17:51, stair wrote:
>> I have recently starting using darktable for my raw processing and have
>> come across a problem with the way geeqie groups darktable's xmp files, or
>> rather doesn't, the files are not grouped
>>
>> when darktable creates it's sidecar files they are given the raw file full
>> name including extension, in my case image.CR2, and adds the .xmp
>> extension, so the sidecar is image.CR2.xmp.
>>
>> The only way I can get grouping to work is to change the sidecar file name
>> to eliminate the .CR2 bit but this is not a solution since it breaks the
>> connection in darktable.  Trying various things in the sidecar extensions
>> list does not help
>>
>> I don't think I am missing something here, if so a pointer would be
>> appreciated.  If not then it would be very good if this could be fixed
>>
>> Thanks
>>
>> Stair
>>
>>
>>
>> --
>> Xperia(TM) PLAY
>> It's a major breakthrough. An authentic gaming
>> smartphone on the nation's most reliable network.
>> And it wants your games.
>> http://p.sf.net/sfu/verizon-sfdev
>> ___
>> Geeqie-devel mailing list
>> Geeqie-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geeqie-devel
>>
> Hi
>
> I find that if I append ".CR2.xmp" to the sidecars extension list
> (edit/preferences/preferences/files), then using right click on an image
> set Disable File Grouping followed by Enable File Grouping -
>
> the .CR2.xmp files are then shown as grouped with the image.
>
> But this is not working correctly as the grouping is lost on re-start
> and the file extensions of the sidecar files get corrupted when doing a
> copy or move.
>
> So there is clearly a bug in this part of the code, but if this is
> corrected it may be that you will get the functionality you are looking for.
>
> Colin Clark
>
Try changing line 761 of ui_fileops.c from

return strrchr(path, '.');

to

return strchr(path, '.');


I have no idea if that's a real solution to the problem - I'll have to 
leave that decision to someone who knows how Geeqie works.


Colin Clark



--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-13 Thread Colin Clark
On 10/04/11 17:51, stair wrote:
> I have recently starting using darktable for my raw processing and have
> come across a problem with the way geeqie groups darktable's xmp files, or
> rather doesn't, the files are not grouped
>
> when darktable creates it's sidecar files they are given the raw file full
> name including extension, in my case image.CR2, and adds the .xmp
> extension, so the sidecar is image.CR2.xmp.
>
> The only way I can get grouping to work is to change the sidecar file name
> to eliminate the .CR2 bit but this is not a solution since it breaks the
> connection in darktable.  Trying various things in the sidecar extensions
> list does not help
>
> I don't think I am missing something here, if so a pointer would be
> appreciated.  If not then it would be very good if this could be fixed
>
> Thanks
>
> Stair
>
>
>
> --
> Xperia(TM) PLAY
> It's a major breakthrough. An authentic gaming
> smartphone on the nation's most reliable network.
> And it wants your games.
> http://p.sf.net/sfu/verizon-sfdev
> ___
> Geeqie-devel mailing list
> Geeqie-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geeqie-devel
>
Hi

I find that if I append ".CR2.xmp" to the sidecars extension list 
(edit/preferences/preferences/files), then using right click on an image 
set Disable File Grouping followed by Enable File Grouping -

the .CR2.xmp files are then shown as grouped with the image.

But this is not working correctly as the grouping is lost on re-start 
and the file extensions of the sidecar files get corrupted when doing a 
copy or move.

So there is clearly a bug in this part of the code, but if this is 
corrected it may be that you will get the functionality you are looking for.

Colin Clark



--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-13 Thread Zeus V Panchenko
stair (stair_h...@yahoo.co.uk) [11.04.13 21:18] wrote:
> I know that a number of contributors to the darktable forums use geeqie so 
> I will ask how they deal with this issue.  Your idea of scripting 
> certainly sounds good and a script to handle this would be appreciated.
> 

i use exclusively dt to process RAW files and geeqie to manage them,
but the issue is important for me too

if it'd be possible to say geeqie somehow what and how to group, it
would be great

> I am sure that you are aware that darktable is becoming an immensely 
> powerful raw processor and it would be great if geeqie could play well 
> with it in the way it does with ufraw

+1

-- 
Zeus V. Panchenko
IT Dpt., IBS ltdGMT+2 (EET)

--
Benefiting from Server Virtualization: Beyond Initial Workload 
Consolidation -- Increasing the use of server virtualization is a top
priority.Virtualization can reduce costs, simplify management, and improve 
application availability and disaster protection. Learn more about boosting 
the value of server virtualization. http://p.sf.net/sfu/vmware-sfdev2dev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-13 Thread stair
On Sun, 10 Apr 2011 18:35:39 +0100, Klaus Ethgen wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA512
> 
> Hi,
> 
> Am So den 10. Apr 2011 um 17:51 schrieb stair:
>> when darktable creates it's sidecar files they are given the raw file
>> full name including extension, in my case image.CR2, and adds the .xmp
>> extension, so the sidecar is image.CR2.xmp.
> 
> I do not see how Geeqie can handle that. In fact that sounds a bit
> broken for me just adding one more file ending. The problem is that
> Geeqie use the (in my mind) clean way, exchanging the ending with the
> other. That is the way many applications do the stuff. Even if you want
> to try it is somewhat impossible to fit with ever way, applications do.
> 
> But there might be a solution. Recently I start implementing scripting
> capability. For the moment I just did a hook into the on screen display
> but it would be easy to hook it in other parts of geeqie. I think that
> this could be a way, giving the user a way to code his own interjection,
> to solve such problems.
> 
> Regards
>Klaus
> - --
> Klaus Ethgenhttp://www.ethgen.ch/ pub 
> 2048R/D1A4EDE5 2000-02-26 Klaus Ethgen
>  Fingerprint: D7 67 71 C4
> 99 A6 D4 FE  EA 40 30 57 3C 88 26 2B -BEGIN PGP SIGNATURE-
> Version: GnuPG v1.4.11 (GNU/Linux)
> 
> iQEVAwUBTaHqa5+OKpjRpO3lAQqXcAgAqMMya49vV+/GKMhxRb2WyqPPrG9xaBsx
> PKkgtFakEh9h9pLxhL4Hp4nSamQpdYJ8G9yHxwlvn5Y/WQI4hq022nk5UQKfnlJP
> 6z8gU1+54L0lL0fbpk9g+5zFtso6nTQFMEOsPRnTttwejDZSkYqmmfN8JCRHBBgq
> emPHfZnjFVVmzE5foSSTbCqmxQhfUlck26ILcXjlvQYBn1TL7QTlY8SsWIEBFzz2
> jHHgWXe7TjYIasLb5/aZTt6pn/pDajpxsmRG9QtnGWp7NR0QX89Qj8Eg1DEzY7gt
> PHPLJIQdJ0pPf69rge3JvaIAsGEVNjKE+G/E3RLWd/kE/bnhBGfC0g== =xTPq
> -END PGP SIGNATURE-
> 
> 
--
> Xperia(TM) PLAY
> It's a major breakthrough. An authentic gaming smartphone on the
> nation's most reliable network. And it wants your games.
> http://p.sf.net/sfu/verizon-sfdev

Thanks for the reply.

I know that a number of contributors to the darktable forums use geeqie so 
I will ask how they deal with this issue.  Your idea of scripting 
certainly sounds good and a script to handle this would be appreciated.

I am sure that you are aware that darktable is becoming an immensely 
powerful raw processor and it would be great if geeqie could play well 
with it in the way it does with ufraw



--
Forrester Wave Report - Recovery time is now measured in hours and minutes
not days. Key insights are discussed in the 2010 Forrester Wave Report as
part of an in-depth evaluation of disaster recovery service providers.
Forrester found the best-in-class provider in terms of services and vision.
Read this report now!  http://p.sf.net/sfu/ibm-webcastpromo
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


Re: [Geeqie-devel] grouping with darktable xmp files

2011-04-10 Thread Klaus Ethgen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Hi,

Am So den 10. Apr 2011 um 17:51 schrieb stair:
> when darktable creates it's sidecar files they are given the raw file full 
> name including extension, in my case image.CR2, and adds the .xmp 
> extension, so the sidecar is image.CR2.xmp.

I do not see how Geeqie can handle that. In fact that sounds a bit
broken for me just adding one more file ending. The problem is that
Geeqie use the (in my mind) clean way, exchanging the ending with the
other. That is the way many applications do the stuff. Even if you want
to try it is somewhat impossible to fit with ever way, applications do.

But there might be a solution. Recently I start implementing scripting
capability. For the moment I just did a hook into the on screen display
but it would be easy to hook it in other parts of geeqie. I think that
this could be a way, giving the user a way to code his own interjection,
to solve such problems.

Regards
   Klaus
- -- 
Klaus Ethgenhttp://www.ethgen.ch/
pub  2048R/D1A4EDE5 2000-02-26 Klaus Ethgen 
Fingerprint: D7 67 71 C4 99 A6 D4 FE  EA 40 30 57 3C 88 26 2B
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)

iQEVAwUBTaHqa5+OKpjRpO3lAQqXcAgAqMMya49vV+/GKMhxRb2WyqPPrG9xaBsx
PKkgtFakEh9h9pLxhL4Hp4nSamQpdYJ8G9yHxwlvn5Y/WQI4hq022nk5UQKfnlJP
6z8gU1+54L0lL0fbpk9g+5zFtso6nTQFMEOsPRnTttwejDZSkYqmmfN8JCRHBBgq
emPHfZnjFVVmzE5foSSTbCqmxQhfUlck26ILcXjlvQYBn1TL7QTlY8SsWIEBFzz2
jHHgWXe7TjYIasLb5/aZTt6pn/pDajpxsmRG9QtnGWp7NR0QX89Qj8Eg1DEzY7gt
PHPLJIQdJ0pPf69rge3JvaIAsGEVNjKE+G/E3RLWd/kE/bnhBGfC0g==
=xTPq
-END PGP SIGNATURE-

--
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel


[Geeqie-devel] grouping with darktable xmp files

2011-04-10 Thread stair
I have recently starting using darktable for my raw processing and have 
come across a problem with the way geeqie groups darktable's xmp files, or 
rather doesn't, the files are not grouped

when darktable creates it's sidecar files they are given the raw file full 
name including extension, in my case image.CR2, and adds the .xmp 
extension, so the sidecar is image.CR2.xmp.

The only way I can get grouping to work is to change the sidecar file name 
to eliminate the .CR2 bit but this is not a solution since it breaks the 
connection in darktable.  Trying various things in the sidecar extensions 
list does not help

I don't think I am missing something here, if so a pointer would be 
appreciated.  If not then it would be very good if this could be fixed

Thanks

Stair



--
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
___
Geeqie-devel mailing list
Geeqie-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geeqie-devel