Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Lionel Elie Mamane píše v Čt 16. 02. 2012 v 13:57 +0100:
Just reported and fixed fdo#46163. A list box is a control that is
supposed to match two sets of data:

 An entry in the "list content" property is matched to the
 corresponding entry in the "list entries" property (yeah, that's
 rather confusing naming...). The "list entries" entry is shown to the
 user, but the "list content" entry is stored in the database.

The bug: This matching works only if the column is of type
VARCHAR. Even "CHAR" does not work, and in particular integer types do
not work; integer types are a common case: store a reference number in
the database, but show the user a nice textual description.

To understand how stupid this sounds to the user, note that VARCHAR is
the type of variable-length strings and CHAR the type of fixed-length
strings, not "a single character" (unless the length is 1, obviously).

Sounds crazy :-)

Attached patch 0003-fdo-46163-convert-bound-values-to-bound-column-s-typ.patch
makes sure the values are converted to the right type before being
compared to the value in the database.

Looks sane => pushed
http://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-3-5&id=b5f33bb8fa14afa17c4694d587215cab4756aa1f

Attached patch
0001-ORowSetValue-setTypeKind-correctly-convert-to-C-LOB-.patch
avoids a crash under some conditions that can be triggered after
application of other patch: instead of assuming the ORowSetValue
already contains an Any, construct one if necessary. Note that the
other cases already do type conversion "nicely", e.g. string to int or
8-bit int to 32-bit int.

To be honest, I am not 100% sure that I understand everything. Anyway,
the patch does sensible things. I did not find any logical or technical
problem. It made my test document working better => I have pushed it to
the 3-5 branch:
http://cgit.freedesktop.org/libreoffice/core/commit/?h=libreoffice-3-5&id=b5f33bb8fa14afa17c4694d587215cab4756aa1f

BTW: I had troubles to create the test document. The description was not
clear. I expected that I will not see the values "One,Two,Three,Four" at
all. I saw them even without the patch. Though, with your patch, the
first entry was selected when opened in the non-design view. Also I was
able to go through the entries one by one via the "forward" and "back"
buttons. This does not work without the patch.

It might be better if you attach a simple test document instead of
describing complex steps how to create it.

Anyway, you do great work. Thanks for all your patches.

Best Regards,
Petr


Context


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.