r23397 - gnucash/trunk/src - Bug 336843: Attach images/files/urls to transactions.

John Ralls jralls at ceridwen.fremont.ca.us
Sun Nov 17 11:13:21 EST 2013

On Nov 17, 2013, at 7:53 AM, Geert Janssens <janssens-geert at telenet.be> wrote:

> On Saturday 16 November 2013 13:53:50 Patrick wrote:
>> Geert,
>> Can you try adding:
>> #include <basetsd.h> up in the W32 includes?
>> diff --git a/src/gnome-utils/gnc-gnome-utils.c
>> b/src/gnome-utils/gnc-gnome-utils index a9ccb79..bec5a04 100644
>> --- a/src/gnome-utils/gnc-gnome-utils.c
>> +++ b/src/gnome-utils/gnc-gnome-utils.c
>> @@ -51,6 +51,7 @@
>> #include "gnc-session.h"
>> #include "qofbookslots.h"
>> #ifdef G_OS_WIN32
>> +#include <basetsd.h>
>> #    include "gnc-help-utils.h"
>> #endif
>> I had wondered if I'd messed the W32 code up. I don't have VC++, so I
>> couldn't test compile and debug.
>> Sorry!
>> Patrick
> Hi Patrick,
> Don't worry. You don't have to test your changes on all platforms. That's why we are a 
> community. (It's nice if you *can* of course, to help lighten the burden for the others).
> I only really looked at your code just now.
> In this case, there's no need to handle file loading differently on each platform. The function 
> gtk_show_uri should work on each platform we support (with caveats - more on that later).
> So for now I have removed all but the last implementation.
> Caveat: you have chosen to allow the user to link to non-local files (using 
> gtk_file_chooser_set_local_only). And you save a full uri. This doesn't work by default on 
> Windows, because the URI is improperly parsed. For example:
> file:///c:/somefile.pdf
> gtk_show_uri will first strip the file:// protocol. What is left (/c:/somefile.pdf) still contains a :/. 
> gtk_show_uri erroneously thinks this is still a protocol specifier and bails out.
> Since I want to get the 2.5.8 release out of the door as soon as possible, I'm thinking of leaving 
> it like that for now and deal with the issue in a couple of days.
> The improper parsing may be because GnuCash doesn't ship gio-gvfs on Windows, which is 
> needed to parse uris. We will have to see if this can be added in the Windows build and if it 
> does fix the problem.
> As a workaround, I am now amending your changes in gnc-split-reg.c to use local-only 
> filenames on Windows.
> The test is building now (usually takes the better part of an hour).


When I tested it on a Mac, gtk_show_uri failed because it depends on gvfs which isn't at present a GC dependency, so please at least put back the Mac bit -- which I'd already fixed so that it works.

If you can get it to build and work on Win32 without resorting to Win32 calls, great, but let's not add any new Gnome dependencies.

John Ralls

More information about the gnucash-devel mailing list