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


Hi Adam,

On Mon, Jul 01, 2013 at 12:16:21PM +0300, Adam Fyne <adam.fyne@cloudon.com> wrote:
See my comments below in blue ...

Feel free to avoid coloring your comments, what counts is the leading ">
" added by mailers to the original mail, then clients can automatically
color it. :-)

1.       Shouldn't "CT_PTab" call "ptab" instead of "tab"?
That's right, except that writerfilter::ooxml::OOXMLFastContextHandler
has a tab() method, but no ptab() method, that will be one thing you
need to implement first.

Why would I implement a 'ptab' function?
From what you wrote below - it seems that I do not need to do any action
for 'ptab'.
So does your recommendation still stand that I need 'ptab'?
(you said that 'tab()' inserts a '\t' instead of the <tab> element).

If you want to design the document model (and UNO API, etc) of ptab as
an extension of tab, then it makes sense to implement the import filter
this way as well. Actually, if they are similar enough, then even using
the same method may be OK, what is the current situation.

2.       What is the meaning of the 'tag' attribute of the 'resource'
node?
As far as I know, the <action .. action="name"/> is always a method call.

The question was actually about the 'tag' element of a resource, not the
'action' element.

writerfilter/documentation/ooxml/model.xml suggests that it's just
documentation.

Once those two definitions match, you get new tokens in dmapper.
363dafefad14411a16f6ea9d2ee0d55b67bc9c8d is hopefully a good example.
(Though your case is easier, as you add a new token in an existing
namespace.)

What do you mean when you say that my case is easy because I add a new
token to an existing namespace?
what namespace would that be?
(I looked at the commit you mentioned and it doesn't make any sense to
me...)

In your case, w:ptab is in the existing
http://schemas.openxmlformats.org/wordprocessingml/2006/main (aka "w")
namespace.

So, should I handle 'ptab' in OOXMLFastContextHandler' or not?
Sounds like I shouldn't.

See above, it's all about how similar tab and ptab is. It's fine to not
handle it there, and deal with it as normal attributes in dmapper.

If not - should I remove the action from the xml node?

You said on IRC that you tried this, and got stuck, resulting in
https://www.libreoffice.org/bugzilla/show_bug.cgi?id=66458

I'll try to look into that and give you a minimal patch that gets the
tokenizer part done.

From what I saw - 'ptab' attributes *are* handled in the dmapper.
So the *current* way it works, where 'ptab' is both parsed in
'OOXMLFastContextHandler'
and it's attributes are parsed in the dmapper is very confusing.

Nah, the normal flow is that the XML parser feeds the tokenizer, which
feeds dmapper. Even if you go the attributes way, it'll go through some
OOXML*Handler class, which will generate the attribute tokens for you,
landing in dmapper. :-)

How is 'Page Break' stored in the core?

Sorry, page break was a bad example. I wanted to point out something
that has a special character, but actually page break is a paragraph
attribute, i.e. if you have a page break, the paragraph after the break
has a "page break before" property.

Is there some tutorial on how to add an entirely new object to the core?
(you told me once that adding a property to an existing core object is
relatively easy,
but adding a new object is a much more complex task).

If you mean adding a new class, which is derived from SfxPoolItem? I
haven't done that, either. ;-) I guess it's all about declaring and
implementing the class itself, finding the include where you can assign
an ID to it, and that's it.

What I referred to is adding a new SfxPoolItem to an existing
SfxItemSet, e.g. a1bef744a24b072adc22035b5b15b376961351d8. The relevant
part is the sw/source/core/bastyp/init.cxx, where the SfxItemSet gets
initialized.

You need this if you want to implement ptab as a new SfxPoolItem. You
don't need this, if you can just extend SvxTabStopItem to your needs.

Sure, so -- as usual, the first step would be to design how the document
model should store these paragraph tabs, then either do the UNO API or
some UI, so you can test it. Then you can continue with filters and
layout, etc.

You say "either do the UNO API or some UI".
What UI do you mean?

User interface, i.e. a dialog (or something similar) a user can click on
to create paragraph tabs.

How would one control the 'paragraph tabs' through the UI?

Either model it after the normal tab UI, or if in doubt, feel free to
ask on libreoffice-ux-advise@lists.freedesktop.org.

To sum up:

- I think this will be again a new feature, finishing your previous
  (character shading) feature would make more sense first.

- I would strongly recommend to consider basing your work on the
  existing SvxTabStopItem: if that's possible, it'll make your life much
  easier.

Miklos

Attachment: signature.asc
Description: Digital signature


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.