Kaydet (Commit) aef1e2dd authored tarafından Bjoern Michaelsen's avatar Bjoern Michaelsen

move SwXStyle entirely into compilation unit

Change-Id: Icfcb4320aef9ebe2c5fcc84106de005934d51a3f
üst c2b488e5
This diff is collapsed.
......@@ -20,6 +20,7 @@
#define INCLUDED_SW_SOURCE_CORE_INC_UNOEVENT_HXX
#include <svtools/unoevent.hxx>
#include <unostyle.hxx>
#include <svl/macitem.hxx>
class SvxMacroItem;
......@@ -82,10 +83,10 @@ class SwFrameStyleEventDescriptor : public SvEventDescriptor
{
OUString sSwFrameStyleEventDescriptor;
SwXFrameStyle& rStyle;
sw::ICoreFrameStyle& m_rStyle;
public:
SwFrameStyleEventDescriptor( SwXFrameStyle& rStyleRef );
SwFrameStyleEventDescriptor( sw::ICoreFrameStyle& rStyle );
virtual ~SwFrameStyleEventDescriptor();
......
......@@ -211,11 +211,11 @@ OUString SwFrameEventDescriptor::getImplementationName()
}
SwFrameStyleEventDescriptor::SwFrameStyleEventDescriptor(
SwXFrameStyle& rStyleRef ) :
SvEventDescriptor((document::XEventsSupplier&)rStyleRef,
sw::ICoreFrameStyle& rStyle ) :
SvEventDescriptor(rStyle.GetEventsSupplier(),
aFrameStyleEvents),
sSwFrameStyleEventDescriptor("SwFrameStyleEventDescriptor"),
rStyle(rStyleRef)
m_rStyle(rStyle)
{
}
......@@ -225,43 +225,15 @@ SwFrameStyleEventDescriptor::~SwFrameStyleEventDescriptor()
void SwFrameStyleEventDescriptor::setMacroItem(const SvxMacroItem& rItem)
{
// As I was told, for some entirely unobvious reason getting an
// item from a style has to look as follows:
SfxStyleSheetBasePool* pBasePool = rStyle.GetBasePool();
if (pBasePool)
{
SfxStyleSheetBase* pBase = pBasePool->Find(rStyle.GetStyleName());
if (pBase)
{
rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase) ) );
SfxItemSet& rStyleSet = xStyle->GetItemSet();
SfxItemSet aSet(*rStyleSet.GetPool(), RES_FRMMACRO, RES_FRMMACRO);
aSet.Put(rItem);
xStyle->SetItemSet(aSet);
}
}
m_rStyle.SetItem(RES_FRMMACRO, rItem);
}
static const SvxMacroItem aEmptyMacroItem(RES_FRMMACRO);
const SvxMacroItem& SwFrameStyleEventDescriptor::getMacroItem()
{
// As I was told, for some entirely unobvious reason getting an
// item from a style has to look as follows:
SfxStyleSheetBasePool* pBasePool = rStyle.GetBasePool();
if (pBasePool)
{
SfxStyleSheetBase* pBase = pBasePool->Find(rStyle.GetStyleName());
if (pBase)
{
rtl::Reference< SwDocStyleSheet > xStyle( new SwDocStyleSheet( *static_cast<SwDocStyleSheet*>(pBase)) );
return static_cast<const SvxMacroItem&>(xStyle->GetItemSet().Get(RES_FRMMACRO));
}
else
return aEmptyMacroItem;
}
else
return aEmptyMacroItem;
const SfxPoolItem* pItem(m_rStyle.GetItem(RES_FRMMACRO));
return pItem ? static_cast<const SvxMacroItem&>(*pItem) : aEmptyMacroItem;
}
OUString SwFrameStyleEventDescriptor::getImplementationName()
......
......@@ -362,31 +362,23 @@ SvXMLImportContext *SwXMLTextStyleContext_Impl::CreateChildContext(
void SwXMLTextStyleContext_Impl::Finish( bool bOverwrite )
{
XMLTextStyleContext::Finish( bOverwrite );
if( !pConditions || XML_STYLE_FAMILY_TEXT_PARAGRAPH != GetFamily() )
if(!pConditions || XML_STYLE_FAMILY_TEXT_PARAGRAPH != GetFamily())
return;
uno::Reference < style::XStyle > xStyle = GetStyle();
if( !xStyle.is() )
uno::Reference<style::XStyle> xStyle = GetStyle();
if(!xStyle.is())
return;
const SwXStyle* pStyle = nullptr;
uno::Reference<lang::XUnoTunnel> xStyleTunnel( xStyle, uno::UNO_QUERY);
if( xStyleTunnel.is() )
{
pStyle = reinterpret_cast< SwXStyle * >(
sal::static_int_cast< sal_IntPtr >( xStyleTunnel->getSomething( SwXStyle::getUnoTunnelId() )));
}
if( !pStyle )
uno::Reference<lang::XUnoTunnel> xStyleTunnel(xStyle, uno::UNO_QUERY);
if(!xStyleTunnel.is())
return;
const SwDoc *pDoc = pStyle->GetDoc();
SwTextFormatColl *pColl = pDoc->FindTextFormatCollByName( pStyle->GetStyleName() );
sw::ICoreParagraphStyle* pCoreParagraphStyle(reinterpret_cast<sw::ICoreParagraphStyle*>(
xStyleTunnel->getSomething(sw::ICoreParagraphStyle::getUnoTunnelId())));
if(!pCoreParagraphStyle)
return;
SwTextFormatColl* pColl = const_cast<SwTextFormatColl*>(pCoreParagraphStyle->GetFormatColl());
OSL_ENSURE( pColl, "Text collection not found" );
if( !pColl || RES_CONDTXTFMTCOLL != pColl->Which() )
return;
SwDoc *pDoc = SwImport::GetDocFromXMLImport(GetImport());
const size_t nCount = pConditions->size();
OUString sName;
for( size_t i = 0; i < nCount; i++ )
......
......@@ -83,88 +83,84 @@ void SwXMLTextParagraphExport::exportStyleContent(
const Reference< XStyle > & rStyle )
{
const SwXStyle* pStyle = nullptr;
Reference<XUnoTunnel> xStyleTunnel( rStyle, UNO_QUERY);
if( xStyleTunnel.is() )
{
pStyle = reinterpret_cast< SwXStyle * >(
sal::static_int_cast< sal_IntPtr >( xStyleTunnel->getSomething( SwXStyle::getUnoTunnelId() )));
}
if( pStyle && SFX_STYLE_FAMILY_PARA == pStyle->GetFamily() )
Reference<XUnoTunnel> xStyleTunnel(rStyle, UNO_QUERY);
Reference<lang::XServiceInfo> xServiceInfo(rStyle, UNO_QUERY);
if(!xStyleTunnel.is() || !xServiceInfo.is() || !xServiceInfo->supportsService("com.sun.star.style.ParagraphStyle"))
return;
sw::ICoreParagraphStyle* pCoreParagraphStyle(reinterpret_cast<sw::ICoreParagraphStyle*>(
xStyleTunnel->getSomething(sw::ICoreParagraphStyle::getUnoTunnelId())));
if(!pCoreParagraphStyle)
return;
const SwTextFormatColl* pColl(pCoreParagraphStyle->GetFormatColl());
OSL_ENSURE( pColl, "There is the text collection?" );
if( pColl && RES_CONDTXTFMTCOLL == pColl->Which() )
{
const SwDoc *pDoc = pStyle->GetDoc();
const SwTextFormatColl *pColl =
pDoc->FindTextFormatCollByName( pStyle->GetStyleName() );
OSL_ENSURE( pColl, "There is the text collection?" );
if( pColl && RES_CONDTXTFMTCOLL == pColl->Which() )
const SwFormatCollConditions& rConditions =
static_cast<const SwConditionTextFormatColl *>(pColl)->GetCondColls();
for( size_t i=0; i < rConditions.size(); ++i )
{
const SwFormatCollConditions& rConditions =
static_cast<const SwConditionTextFormatColl *>(pColl)->GetCondColls();
for( size_t i=0; i < rConditions.size(); ++i )
{
const SwCollCondition& rCond = *rConditions[i];
const SwCollCondition& rCond = *rConditions[i];
enum XMLTokenEnum eFunc = XML_TOKEN_INVALID;
OUString sVal;
switch( rCond.GetCondition() )
enum XMLTokenEnum eFunc = XML_TOKEN_INVALID;
OUString sVal;
switch( rCond.GetCondition() )
{
case PARA_IN_LIST:
eFunc = XML_LIST_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_OUTLINE:
eFunc = XML_OUTLINE_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_FRAME:
eFunc = XML_TEXT_BOX;
break;
case PARA_IN_TABLEHEAD:
eFunc = XML_TABLE_HEADER;
break;
case PARA_IN_TABLEBODY:
eFunc = XML_TABLE;
break;
case PARA_IN_SECTION:
eFunc = XML_SECTION;
break;
case PARA_IN_FOOTENOTE:
eFunc = XML_FOOTNOTE;
break;
case PARA_IN_FOOTER:
eFunc = XML_FOOTER;
break;
case PARA_IN_HEADER:
eFunc = XML_HEADER;
break;
case PARA_IN_ENDNOTE:
eFunc = XML_ENDNOTE;
break;
}
OSL_ENSURE( eFunc != XML_TOKEN_INVALID,
"SwXMLExport::ExportFormat: unknown condition" );
if( eFunc != XML_TOKEN_INVALID )
{
OUString sCond = GetXMLToken(eFunc) + "()";
if( !sVal.isEmpty() )
{
case PARA_IN_LIST:
eFunc = XML_LIST_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_OUTLINE:
eFunc = XML_OUTLINE_LEVEL;
sVal = OUString::number(rCond.GetSubCondition()+1);
break;
case PARA_IN_FRAME:
eFunc = XML_TEXT_BOX;
break;
case PARA_IN_TABLEHEAD:
eFunc = XML_TABLE_HEADER;
break;
case PARA_IN_TABLEBODY:
eFunc = XML_TABLE;
break;
case PARA_IN_SECTION:
eFunc = XML_SECTION;
break;
case PARA_IN_FOOTENOTE:
eFunc = XML_FOOTNOTE;
break;
case PARA_IN_FOOTER:
eFunc = XML_FOOTER;
break;
case PARA_IN_HEADER:
eFunc = XML_HEADER;
break;
case PARA_IN_ENDNOTE:
eFunc = XML_ENDNOTE;
break;
sCond += "=" + sVal;
}
OSL_ENSURE( eFunc != XML_TOKEN_INVALID,
"SwXMLExport::ExportFormat: unknown condition" );
if( eFunc != XML_TOKEN_INVALID )
{
OUString sCond = GetXMLToken(eFunc) + "()";
if( !sVal.isEmpty() )
{
sCond += "=" + sVal;
}
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_CONDITION, sCond );
OUString aString;
SwStyleNameMapper::FillProgName(
rCond.GetTextFormatColl()->GetName(),
aString,
nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL,
true);
aString = GetExport().EncodeStyleName( aString );
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_APPLY_STYLE_NAME, aString );
SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
XML_MAP, true, true );
}
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_CONDITION, sCond );
OUString aString;
SwStyleNameMapper::FillProgName(
rCond.GetTextFormatColl()->GetName(),
aString,
nsSwGetPoolIdFromName::GET_POOLID_TXTCOLL,
true);
aString = GetExport().EncodeStyleName( aString );
GetExport().AddAttribute( XML_NAMESPACE_STYLE,
XML_APPLY_STYLE_NAME, aString );
SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
XML_MAP, true, true );
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment