Hi Luke,
Would be cool, would be a bit difficult to document it when I don't know
what it's supposed to be doing though. That isn't an excuse though, I
don't mind trying to work out a few of them.
Well, lets just think about writing a note for the next guy, if we find a
solution :)
pDocShell->GetEditEngine().QuickInsertText(formula, ESelection( 0, 0,
0xFFFF, 0xFFFF ));
pDocShell->GetEditEngine().QuickFormatDoc();
I don't know why it is called quick, perhaps because it doesn't update
the text in the window. I saw QuickFormat called after it sometimes,
which updates the text in the window.
ESelection is how it is in SmEditWindow::SelectAll(). Perhaps there is
something better to use than 0xFFFF (maybe EE_PARA_ALL is the right
one?).
I noticed that 0xFFFF is used in SelectAll... but searching for EE_PARA_ALL,
gives some results where it's used for creating selections, so that's
probably what it's a constant for...
Perhaps it's a little better, any thoughts?
I think we finally have a solution... I just tried it out, looks to me as if
it's working, without any nasty side effects...
I noticed that QuickInsertText and QuickFormatDoc was used in
some accessibility code, so it's probably okay to use them..
Unless, you've other ideas, I suggest don't you update your patch, then I'll
push it... And please update the todo-list, you've just fixed one of the
complicated issues... :)
--
Regards Jonas Finnemann Jensen.
On Tue, Feb 15, 2011 at 02:03, Luke Dixon <6b8b4567@gmail.com> wrote:
Hi Jonas,
On Mon, 2011-02-14 at 20:17 +0100, Jonas Finnemann Jensen wrote:
I think it ought to be that easy... More documentation would speedup
development and reduce bugs dramatically...
(Maybe we should write a few doxygen comments for EditEngine, if we
figure out how it works).
I noticed a few comments in ImpEditEngine that I found informative (with
the aid of google translate), which I think would be a lot better in
doxygen comments on the actual functions instead of buried in the
implementation ones (assuming I've guessed right that Imp means
implementation, which seems right to me by how that class is used).
Would be cool, would be a bit difficult to document it when I don't know
what it's supposed to be doing though. That isn't an excuse though, I
don't mind trying to work out a few of them.
I had a very bad solution that seemed to work but made the
unit tests
not work.
I replaced SetText with:
SmGetActiveView()->GetEditWindow()->SelectAll();
SmGetActiveView()->GetEditWindow()->InsertText(formula);
Why is this a bad solution ?
Any idea, why this doesn't work with the unit tests ?
It seems like it might be a fairly good solution... Unless undo/redo
manages selections too... So that this becomes two steps ?
I thought it was bad because I'm not sure what unintended consequences
calling SmEditWindow::SelectAll() would have. I might be worried for
nothing though.
It doesn't seem to make it 2 steps.
I don't know why it doesn't pass the tests, I didn't look (I would guess
something doesn't get initialized right or at all).
I've got this instead of the 2 SmGetActiveView... lines which seems to
work without breaking the tests:
pDocShell->GetEditEngine().QuickInsertText(formula, ESelection( 0,
0, 0xFFFF, 0xFFFF ));
pDocShell->GetEditEngine().QuickFormatDoc();
I don't know why it is called quick, perhaps because it doesn't update
the text in the window. I saw QuickFormat called after it sometimes,
which updates the text in the window.
ESelection is how it is in SmEditWindow::SelectAll(). Perhaps there is
something better to use than 0xFFFF (maybe EE_PARA_ALL is the right
one?).
Perhaps it's a little better, any thoughts?
Don't be, it also happens to me... That's why the visual formula
editor had bugs to begin with, and it's no unlikely that we'll find
more :)
Besides if we don't propose patches, or partially working fixes... and
discuss these we'll never get undo integration to work properly.
Thanks for the encouragement, it makes me feel a lot better about
this. :)
Regards,
Luke
Context
- [Libreoffice] [REVIEW] Re: SmNodeToTextVisitor Fixes (continued)
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.