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


Here a copy of the mail I send to Cedric Bosdonnat… forgot to add the
list as "Cc:".

Hello

Thanks you for asking me…

When you select a cell in Writer the selection type is a mix of
nsSelectionType::SEL_TBL_CELLS, nsSelectionType::SEL_TBL and
nsSelectionType::SEL_TXT.
So when the lcl_CreateEmptyItemSet function is called directly with the
nSelectionType (from rWrtShell.GetSelectionType()) the if statement
"nSelectionType == nsSelectionType::SEL_TBL" is false.

So in the SwFormatClipboard::Copy function there is another statement : 



________________________________________________________________________


        if( nSelectionType & nsSelectionType::SEL_TBL_CELLS )//only copy table attributes if really 
cells are selected (not only text in tables)
        {
                m_pTableItemSet = lcl_CreateEmptyItemSet( nsSelectionType::SEL_TBL, rPool );
                lcl_getTableAttributes( *m_pTableItemSet, rWrtShell );
        }


________________________________________________________________________



That call lcl_CreateEmptyItemSet with just nsSelectionType::SEL_TBL if
the real selection type contain nsSelectionType::SEL_TBL_CELLS.

I found this way of doing a bit confusing and as tables parameters are
handle separately in the whole format paintbrush code I thought that
replacing : 



________________________________________________________________________


        m_pTableItemSet = lcl_CreateEmptyItemSet( nsSelectionType::SEL_TBL, rPool );


________________________________________________________________________



by : 



________________________________________________________________________


        m_pTableItemSet = new SfxItemSet(rPool,
                SID_ATTR_BORDER_INNER,  SID_ATTR_BORDER_SHADOW, //SID_ATTR_BORDER_OUTER is inbetween
                RES_BACKGROUND,         RES_SHADOW, //RES_BOX is inbetween
                SID_ATTR_BRUSH_ROW,     SID_ATTR_BRUSH_TABLE,
                RES_BREAK,              RES_BREAK,
                RES_PAGEDESC,           RES_PAGEDESC,
                RES_LAYOUT_SPLIT,       RES_LAYOUT_SPLIT,
                RES_ROW_SPLIT,          RES_ROW_SPLIT,
                RES_KEEP,               RES_KEEP,
                RES_FRAMEDIR,           RES_FRAMEDIR,
                FN_PARAM_TABLE_HEADLINE, FN_PARAM_TABLE_HEADLINE,
                FN_TABLE_BOX_TEXTORIENTATION, FN_TABLE_BOX_TEXTORIENTATION,
                FN_TABLE_SET_VERT_ALIGN, FN_TABLE_SET_VERT_ALIGN,
                0);


________________________________________________________________________



was not irrelevant.

After this replacement was made there where no reasons keeping the
"nSelectionType == nsSelectionType::SEL_TBL" block in the
lcl_CreateEmptyItemSet function.

I hope I answered your question.

BEWARE : this patch need the first patch
0001-add-GetCurParAttr-and-GetPaMParAttr-in-SwEditShell from my preview
mail
http://lists.freedesktop.org/archives/libreoffice/2012-March/028157.html

Regards

Maxime de Roucy

-- 
Maxime de Roucy
Groupe LINAGORA - OSSA
80 rue Roque de Fillol
92800 PUTEAUX
Tel. : 0 810 251 251




Le jeudi 15 mars 2012 à 17:06 +0100, Cedric Bosdonnat a écrit : 

Hi Maxime,

On Wed, 2012-03-14 at 16:50 +0100, Maxime de Roucy wrote:
Here is some new patchs on the format clipboard. The first just add some
comment in the formatclipboard.hxx file. The second one depend on
modifications I made in the previous patch
0001-add-GetCurParAttr-and-GetPaMParAttr-in-SwEditShell.patch which is
itself dependant of the patch
0004-SwEditShell-use-of-the-STL-swap-function.patch which is waiting for
moderator approval to be published in the mailing list.

I pushed the first patch to the master branch... but there is something
weird in the second patch. Why did you remove the case where
nSelectionType is a table selection?

I'll push the second patch once that question is clarified.

--
Cedric



Attachment: signature.asc
Description: This is a digitally signed message part


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.