Kaydet (Commit) bcfd4b0d authored tarafından Caolán McNamara's avatar Caolán McNamara

drop uncallable Sc10Import

Change-Id: Ie5c400ff87b529f7b3d529e14ec0befe0a3bd2e7
Reviewed-on: https://gerrit.libreoffice.org/44456Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 0ba318b8
...@@ -152,9 +152,6 @@ $(eval $(call gb_Library_add_exception_objects,scfilt,\ ...@@ -152,9 +152,6 @@ $(eval $(call gb_Library_add_exception_objects,scfilt,\
sc/source/filter/rtf/rtfexp \ sc/source/filter/rtf/rtfexp \
sc/source/filter/rtf/rtfimp \ sc/source/filter/rtf/rtfimp \
sc/source/filter/rtf/rtfparse \ sc/source/filter/rtf/rtfparse \
sc/source/filter/starcalc/collect \
sc/source/filter/starcalc/scflt \
sc/source/filter/starcalc/scfobj \
sc/source/filter/xcl97/XclExpChangeTrack \ sc/source/filter/xcl97/XclExpChangeTrack \
sc/source/filter/xcl97/XclImpChangeTrack \ sc/source/filter/xcl97/XclImpChangeTrack \
sc/source/filter/xcl97/xcl97esc \ sc/source/filter/xcl97/xcl97esc \
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include "collect.hxx"
#include <string.h>
#define MAXCOLLECTIONSIZE 16384
#define MAXDELTA 1024
ScDataObject::~ScDataObject()
{
}
// Collection
static void lcl_DeleteScDataObjects( ScDataObject** p, sal_uInt16 nCount )
{
if ( p )
{
for (sal_uInt16 i = 0; i < nCount; i++) delete p[i];
delete[] p;
}
}
ScCollection::ScCollection(sal_uInt16 nLim, sal_uInt16 nDel) :
nCount ( 0 ),
nLimit ( nLim ),
nDelta ( nDel ),
pItems ( nullptr )
{
if (nDelta > MAXDELTA)
nDelta = MAXDELTA;
else if (nDelta == 0)
nDelta = 1;
if (nLimit > MAXCOLLECTIONSIZE)
nLimit = MAXCOLLECTIONSIZE;
else if (nLimit < nDelta)
nLimit = nDelta;
pItems = new ScDataObject*[nLimit];
}
ScCollection::ScCollection(const ScCollection& rCollection)
: ScDataObject(),
nCount ( 0 ),
nLimit ( 0 ),
nDelta ( 0 ),
pItems ( nullptr )
{
*this = rCollection;
}
ScCollection::~ScCollection()
{
lcl_DeleteScDataObjects( pItems, nCount );
}
bool ScCollection::AtInsert(sal_uInt16 nIndex, ScDataObject* pScDataObject)
{
if ((nCount < MAXCOLLECTIONSIZE) && (nIndex <= nCount) && pItems)
{
if (nCount == nLimit)
{
ScDataObject** pNewItems = new ScDataObject*[nLimit + nDelta];
nLimit = sal::static_int_cast<sal_uInt16>( nLimit + nDelta );
memcpy(pNewItems, pItems, nCount * sizeof(ScDataObject*));
delete[] pItems;
pItems = pNewItems;
}
if (nCount > nIndex)
memmove(&pItems[nIndex + 1], &pItems[nIndex], (nCount - nIndex) * sizeof(ScDataObject*));
pItems[nIndex] = pScDataObject;
nCount++;
return true;
}
return false;
}
bool ScCollection::Insert(ScDataObject* pScDataObject)
{
return AtInsert(nCount, pScDataObject);
}
ScDataObject* ScCollection::At(sal_uInt16 nIndex) const
{
if (nIndex < nCount)
return pItems[nIndex];
else
return nullptr;
}
ScCollection& ScCollection::operator=( const ScCollection& r )
{
// Check for self-assignment
if (this == &r)
return *this;
lcl_DeleteScDataObjects( pItems, nCount );
nCount = r.nCount;
nLimit = r.nLimit;
nDelta = r.nDelta;
pItems = new ScDataObject*[nLimit];
for ( sal_uInt16 i=0; i<nCount; i++ )
pItems[i] = r.pItems[i]->Clone();
return *this;
}
ScDataObject* ScCollection::Clone() const
{
return new ScCollection(*this);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_SC_SOURCE_FILTER_STARCALC_COLLECT_HXX
#define INCLUDED_SC_SOURCE_FILTER_STARCALC_COLLECT_HXX
#include <sal/types.h>
class ScDataObject
{
public:
ScDataObject() {}
virtual ~ScDataObject();
virtual ScDataObject* Clone() const = 0;
};
class ScCollection : public ScDataObject
{
protected:
sal_uInt16 nCount;
sal_uInt16 nLimit;
sal_uInt16 nDelta;
ScDataObject** pItems;
public:
ScCollection(sal_uInt16 nLim, sal_uInt16 nDel);
ScCollection(const ScCollection& rCollection);
virtual ~ScCollection() override;
virtual ScDataObject* Clone() const override;
bool AtInsert(sal_uInt16 nIndex, ScDataObject* pScDataObject);
bool Insert(ScDataObject* pScDataObject);
ScDataObject* At(sal_uInt16 nIndex) const;
sal_uInt16 GetCount() const { return nCount; }
ScCollection& operator= ( const ScCollection& rCol );
};
#endif
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This diff is collapsed.
This diff is collapsed.
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <com/sun/star/embed/XEmbeddedObject.hpp>
#include <com/sun/star/embed/XVisualObject.hpp>
#include <com/sun/star/embed/Aspects.hpp>
using namespace com::sun::star;
#include <unotools/moduleoptions.hxx>
#include <svx/charthelper.hxx>
#include <svx/svdoole2.hxx>
#include <svx/svdpage.hxx>
#include <svtools/embedhlp.hxx>
#include <sfx2/objsh.hxx>
#include <sot/storage.hxx>
#include <sfx2/app.hxx>
#include <comphelper/classids.hxx>
#include <address.hxx>
#include <scfobj.hxx>
#include <document.hxx>
#include <drwlayer.hxx>
#include <chartarr.hxx>
void Sc10InsertObject::InsertChart( ScDocument* pDoc, SCTAB nDestTab, const tools::Rectangle& rRect,
SCTAB nSrcTab, sal_uInt16 nX1, sal_uInt16 nY1, sal_uInt16 nX2, sal_uInt16 nY2 )
{
// if Chart is not installed, SCH_MOD cannot be used!
if ( !SvtModuleOptions().IsChart() )
return;
OUString aName;
uno::Reference < embed::XEmbeddedObject > xObj = pDoc->GetDocumentShell()->
GetEmbeddedObjectContainer().CreateEmbeddedObject( SvGlobalName( SO3_SCH_CLASSID ).GetByteSequence(), aName );
if ( xObj.is() )
{
SdrOle2Obj* pSdrOle2Obj = new SdrOle2Obj( ::svt::EmbeddedObjectRef( xObj, embed::Aspects::MSOLE_CONTENT ), aName, rRect );
ScDrawLayer* pModel = pDoc->GetDrawLayer();
if (!pModel)
{
pDoc->InitDrawLayer();
pModel = pDoc->GetDrawLayer();
OSL_ENSURE(pModel,"Draw Layer ?");
}
SdrPage* pPage = pModel->GetPage(static_cast<sal_uInt16>(nDestTab));
OSL_ENSURE(pPage,"Page ?");
pPage->InsertObject(pSdrOle2Obj);
pSdrOle2Obj->SetLogicRect(rRect); // only after InsertObject !!!
awt::Size aSz;
aSz.Width = rRect.GetSize().Width();
aSz.Height = rRect.GetSize().Height();
xObj->setVisualAreaSize( embed::Aspects::MSOLE_CONTENT, aSz );
// #i121334# This call will change the chart's default background fill from white to transparent.
// Add here again if this is wanted (see task description for details)
// ChartHelper::AdaptDefaultsForChart( xObj );
// Cannot set source of chart here yet as formulas are not calculated yet.
// Thus push into ChartCollection; the data is set in Sc10Import dtor.
ScChartCollection* pColl = pDoc->GetChartCollection();
pColl->push_back( new ScChartArray( pDoc, nSrcTab, static_cast<SCCOL>(nX1), static_cast<SCROW>(nY1), static_cast<SCCOL>(nX2), static_cast<SCROW>(nY2), aName ) );
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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