summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/dbgui/foptmgr.cxx1
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx3
-rw-r--r--sc/source/ui/inc/pfiltdlg.hxx2
-rw-r--r--sc/source/ui/inc/uiitems.hxx1
-rw-r--r--sc/source/ui/inc/undodat.hxx1
-rw-r--r--sc/source/ui/undo/undobase.cxx1
-rw-r--r--sc/source/ui/unoobj/chart2uno.cxx31
-rw-r--r--sc/source/ui/view/gridwin4.cxx1
8 files changed, 28 insertions, 13 deletions
diff --git a/sc/source/ui/dbgui/foptmgr.cxx b/sc/source/ui/dbgui/foptmgr.cxx
index 603a9a3a5eea..007c24de3764 100644
--- a/sc/source/ui/dbgui/foptmgr.cxx
+++ b/sc/source/ui/dbgui/foptmgr.cxx
@@ -45,6 +45,7 @@
#include "dbcolect.hxx"
#include "viewdata.hxx"
#include "document.hxx"
+#include "queryparam.hxx"
#define _FOPTMGR_CXX
#include "foptmgr.hxx"
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 3d2251dde51f..e42368123a82 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -1061,8 +1061,11 @@ void ScExternalRefLink::DataChanged(const String& /*rMimeType*/, const Any& /*rV
else
{
// The source document has changed.
+ ScDocShell* pDocShell = ScDocShell::GetViewData()->GetDocShell();
+ ScDocShellModificator aMod(*pDocShell);
pMgr->switchSrcFile(mnFileId, aFile, aFilter);
maFilterName = aFilter;
+ aMod.SetDocumentModified();
}
}
diff --git a/sc/source/ui/inc/pfiltdlg.hxx b/sc/source/ui/inc/pfiltdlg.hxx
index 4009f06417dc..2896df74d818 100644
--- a/sc/source/ui/inc/pfiltdlg.hxx
+++ b/sc/source/ui/inc/pfiltdlg.hxx
@@ -53,8 +53,8 @@
#ifndef _COMBOBOX_HXX //autogen
#include <vcl/combobox.hxx>
#endif
-#include "global.hxx" // -> ScQueryParam
#include "address.hxx"
+#include "queryparam.hxx"
//------------------------------------------------------------------
diff --git a/sc/source/ui/inc/uiitems.hxx b/sc/source/ui/inc/uiitems.hxx
index bfa1603adb80..23e266bded17 100644
--- a/sc/source/ui/inc/uiitems.hxx
+++ b/sc/source/ui/inc/uiitems.hxx
@@ -34,6 +34,7 @@
#include "scdllapi.h"
#include "conditio.hxx"
#include "sortparam.hxx"
+#include "queryparam.hxx"
#include "paramisc.hxx"
#include <svl/poolitem.hxx>
diff --git a/sc/source/ui/inc/undodat.hxx b/sc/source/ui/inc/undodat.hxx
index 3e92fc5fd5fa..40d9073e2e0a 100644
--- a/sc/source/ui/inc/undodat.hxx
+++ b/sc/source/ui/inc/undodat.hxx
@@ -36,6 +36,7 @@
#include "rangelst.hxx" // ScRangeListRef
#include "markdata.hxx"
#include "sortparam.hxx"
+#include "queryparam.hxx"
#include "pivot.hxx"
class ScDocShell;
diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx
index 200db8673cd2..09e8f452c1c6 100644
--- a/sc/source/ui/undo/undobase.cxx
+++ b/sc/source/ui/undo/undobase.cxx
@@ -45,6 +45,7 @@
#include "undodraw.hxx"
#include "dbcolect.hxx"
#include "attrib.hxx"
+#include "queryparam.hxx"
#include "globstr.hrc"
// STATIC DATA -----------------------------------------------------------
diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx
index 07ed8709ab01..9febe948e79e 100644
--- a/sc/source/ui/unoobj/chart2uno.cxx
+++ b/sc/source/ui/unoobj/chart2uno.cxx
@@ -2935,6 +2935,9 @@ void ScChart2DataSequence::BuildDataCache()
::std::list<sal_Int32>::const_iterator itr = aHiddenValues.begin(), itrEnd = aHiddenValues.end();
for (;itr != itrEnd; ++itr, ++pArr)
*pArr = *itr;
+
+ // Clear the data series cache when the array is re-built.
+ m_aMixedDataCache.realloc(0);
}
void ScChart2DataSequence::RebuildDataCache()
@@ -3127,7 +3130,6 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
if ( m_bGotDataChangedHint && m_pDocument )
{
m_aDataArray.clear();
- m_aDataArray.clear();
lang::EventObject aEvent;
aEvent.Source.set((cppu::OWeakObject*)this);
@@ -3302,19 +3304,24 @@ uno::Sequence< uno::Any> SAL_CALL ScChart2DataSequence::getData()
throw uno::RuntimeException();
BuildDataCache();
- sal_Int32 nCount = m_aDataArray.size();
- uno::Sequence<uno::Any> aSeq(nCount);
- uno::Any* pArr = aSeq.getArray();
- ::std::list<Item>::const_iterator itr = m_aDataArray.begin(), itrEnd = m_aDataArray.end();
- for (; itr != itrEnd; ++itr, ++pArr)
+
+ if (!m_aMixedDataCache.getLength())
{
- if (itr->mbIsValue)
- *pArr <<= itr->mfValue;
- else
- *pArr <<= itr->maString;
- }
+ // Build a cache for the 1st time...
- return aSeq;
+ sal_Int32 nCount = m_aDataArray.size();
+ m_aMixedDataCache.realloc(nCount);
+ uno::Any* pArr = m_aMixedDataCache.getArray();
+ ::std::list<Item>::const_iterator itr = m_aDataArray.begin(), itrEnd = m_aDataArray.end();
+ for (; itr != itrEnd; ++itr, ++pArr)
+ {
+ if (itr->mbIsValue)
+ *pArr <<= itr->mfValue;
+ else
+ *pArr <<= itr->maString;
+ }
+ }
+ return m_aMixedDataCache;
}
// XNumericalDataSequence --------------------------------------------------
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 9648931fbc69..f3b8603e3b64 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -74,6 +74,7 @@
#include "inputopt.hxx"
#include "fillinfo.hxx"
#include "dpcontrol.hxx"
+#include "queryparam.hxx"
#include "sc.hrc"
#include <vcl/virdev.hxx>