summaryrefslogtreecommitdiff
path: root/sc/inc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-05-19 23:42:05 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-05-21 13:25:19 -0400
commit1b243b14e9715b7b7da6359b5b752ee6d8278731 (patch)
treec6cf493fc59c6e3da70711405457459e758f0cb3 /sc/inc
parentdea4a3b9d7182700abeb4dc756a24a9e8dea8474 (diff)
cp#1000072: Load external documents when refreshing caches.
Rather than just clearing the existing caches and loading the external documents on demand as the formula cells gets re-calculated. This has two advantages: 1) when the loading itself fails, we can keep the existing cache rather than turning all affected cells to error cells, and 2) this prevents on-demand loading after the external linkes get refreshed, which can make scrolling very slow & painful. Change-Id: Ie8243f6f94c5e477964413ab83f6b4b746fe3220
Diffstat (limited to 'sc/inc')
-rw-r--r--sc/inc/externalrefmgr.hxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx
index 00b968d1ff23..1c7fcc1d4adf 100644
--- a/sc/inc/externalrefmgr.hxx
+++ b/sc/inc/externalrefmgr.hxx
@@ -599,7 +599,7 @@ public:
const OUString* getRealTableName(sal_uInt16 nFileId, const OUString& rTabName) const;
const OUString* getRealRangeName(sal_uInt16 nFileId, const OUString& rRangeName) const;
void clearCache(sal_uInt16 nFileId);
- void refreshNames(sal_uInt16 nFileId);
+ bool refreshSrcDocument(sal_uInt16 nFileId);
void breakLink(sal_uInt16 nFileId);
void switchSrcFile(sal_uInt16 nFileId, const OUString& rNewFile, const OUString& rNewFilter);
@@ -738,6 +738,11 @@ private:
ScDocument* getSrcDocument(sal_uInt16 nFileId);
SfxObjectShellRef loadSrcDocument(sal_uInt16 nFileId, OUString& rFilter);
+ /**
+ * Caller must ensure that the passed shell is not already stored.
+ */
+ ScDocument* cacheNewDocShell( sal_uInt16 nFileId, SrcShell& rSrcShell );
+
void maybeLinkExternalFile(sal_uInt16 nFileId);
/**