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


Hi Michael,
thank you for your answer. But i didn't mean the right click 'update index / table'.

i try to explain again :-) Sorry for english.

document A has 2 inserted Sections,  Section1 and Section2.

Section1 is from document B and Section2 is from document C.

I change the contents in Section1 in Document B  or/and
Section2 in document C. (Sections contains text, images or table, with styles ... )

Now when i open the document A after changes, i get the popup window with
the Message :

"This document contains one or more links to external data.
Would you like to change the document, and update all links
to get the most recent data?"

This is the update what i mean.

I just want to implement this update behavior with some java code.
Maybe it is possible to do it by hand with ODFToolkit but i don't know what
i consider for this update / merge.

I thought that i find in this list any information from any developer,
because they know how this behavior implemented in the core code.

Maybe it can be helpfull to see how this action in core code implemented
and where?

I'll try the other mailing-lists. :-)

Regards
Toygun


On 03/05/2012 11:08 AM, Michael Meeks wrote:
Hi Toygun,

On Mon, 2012-03-05 at 08:46 +0100, Toygun wrote:
I have a odt document where I inserted 2 sections from other documents.
Changing these sections requires an update in the enclosing document
when using Libre Office or OpenOffice (popup is asking me).
        OK; if you mean the right click 'update index / table' then I would
grep for the UI string in the code, eg.

        git grep -i8 'pdate Index/Table'

        find the id:

        git grep -8  FN_UPDATE_CUR_TOX

        find what method is being called to do the update, presumably this
code:

         case FN_UPDATE_CUR_TOX:
         {
             const SwTOXBase* pBase = pWrtShell->GetCurTOX();
             if(pBase)
             {
                 pWrtShell->StartAction();
                 if(TOX_INDEX == pBase->GetType())
                     pWrtShell->ApplyAutoMark();
                 pWrtShell->UpdateTableOf( *pBase );
                 pWrtShell->EndAction();
             }
         }

        Then grep for this UpdateTableOf method, to see if there is some UNO
implementation that goes near there. From a quick grep, it looks like:

void SAL_CALL SwXDocumentIndex::update() throw (uno::RuntimeException)
{
     SolarMutexGuard aGuard;

     SwSectionFmt *const pFmt = m_pImpl->GetSectionFmt();
     SwTOXBaseSection *const pTOXBase = (pFmt) ?
         static_cast<SwTOXBaseSection*>(pFmt->GetSection()) : 0;
     if(!pTOXBase)
     {
         throw uno::RuntimeException();
     }
     pTOXBase->Update();
     // page numbers
     pTOXBase->UpdatePageNum();
}

        Might be what you want. 

        Then again, your question was rather vague as to what you wanted to
update - sections ? and really this list is for hacking on the core
libreoffice code, not for questions around scripting it :-)

        HTH,

                Michael.



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.