Hello,
I have a bug that's related to databases in Writer (menu->Edit->Exchange
Database and RES_HIDDENTXTFLD). The code that triggers it does a copy of the
document in order to do the necessary substitutions there (well, this all is
at least how I understand it) and during the copying it copies data
identifying the database used by the document. Sadly, that's at least two
pieces of information (data source and command, whatever exactly those two
are) and the code does the copying in "random" other, because it simply
copies a bunch of properties of the source document, and the resulting orders
happens to be the reverse of what it should be. The code that handles the
database requires the data source first and the command afterwards (which is
quite logical, as the latter presumably doesn't make sense without the sooner
first).
Technically, I get in SwXDocumentSettings::_setSingleValue() first a call
with HANDLE_CURRENT_DATABASE_DATA_SOURCE and then with
HANDLE_CURRENT_DATABASE_COMMAND. They both call first SwDoc::GetDBDesc(),
which first applies the command to some default data source and afterwards
sets the given data source without the right command afterwards. The reversed
ordering of the input data comes from some call far far in the past and I
have no idea if reusing old command does not cause a problem for other code
using this functionality.
It seems to be quite a common way for LO code to use this
let's-push-all-the-data-as-properties-one-by-one approach, so I wonder what
the common way of avoiding this problem is? Preferably something that's not
an ugly hack, excuse the naivety.
Thanks
--
Lubos Lunak
l.lunak@suse.cz
Context
- [Libreoffice] Handling ordering problem when properties are set one by one · Lubos Lunak
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.