r21517 - gnucash/trunk/src/libqof/qof - Add is_readonly
christian at cstimming.de
Sat Nov 5 04:31:36 EDT 2011
Am Freitag, 4. November 2011 schrieb John Ralls:
> > Trac: http://svn.gnucash.org/trac/changeset/21517
> > Modified:
> > gnucash/trunk/src/libqof/qof/qofsession-p.h
> > gnucash/trunk/src/libqof/qof/qofsession.c
> > gnucash/trunk/src/libqof/qof/qofsession.h
> > Log:
> > Add is_readonly attribute to QofSession class.
> Why do we need this? QofBook already has a read-only attribute which
> prevents even editing instances, so there shouldn't ever be anything to
> save in a read-only session.
I've seen the read-only attribute in QofBook. However, it is not sufficient.
My goal is to implement a "read-only" operation mode of gnucash, so that our
infamous "The database is locked" dialog offers the choice "Open read-only"
(instead of or additionally to "Open anyway").
For this, the read-only attribute needs to be stored in the same place as the
database URL. That one is stored in QofSession, so the fact it's a read-only
URL needs to be stored in QofSession, too.
Also, the fact that it's read-only needs to be stored already during
qof_session_begin(), but at that time, no QofBook exists so far. The
QofBook(s) won't be created before qof_session_load, but at that point the
read-only attribute needs already be decided upon. So that's another reason
for this addition.
In my planned feature, if the QofSession is read-only == TRUE, all of the
QofBook(s) inside that session will also have read-only == TRUE.
> If there are leaks in QofBook's read-only
> block, fix that. It's not a good plan to let the user do a bunch of edits
> and then say "Oops, this session is read only, so you can't save your
Both are needed, and both will have the same value - for this use case. There
might be other use cases where the QofSession is read-write but (one of) its
QofBook(s) is not.
More information about the gnucash-devel