summaryrefslogtreecommitdiff
path: root/sw/source/ui/utlui/initui.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/utlui/initui.cxx')
-rw-r--r--sw/source/ui/utlui/initui.cxx101
1 files changed, 79 insertions, 22 deletions
diff --git a/sw/source/ui/utlui/initui.cxx b/sw/source/ui/utlui/initui.cxx
index 043b650eed63..52fef745d172 100644
--- a/sw/source/ui/utlui/initui.cxx
+++ b/sw/source/ui/utlui/initui.cxx
@@ -42,35 +42,96 @@ SwGlossaries* pGlossaries = 0;
// Provides all needed paths. Is initialized by UI.
SwGlossaryList* pGlossaryList = 0;
-String* pOldGrfCat = 0;
-String* pOldTabCat = 0;
-String* pOldFrmCat = 0;
-String* pOldDrwCat = 0;
-String* pCurrGlosGroup = 0;
+namespace
+{
+
+enum CachedStringID
+{
+ OldGrfCat,
+ OldTabCat,
+ OldFrmCat,
+ OldDrwCat,
+ CurrGlosGroup,
+ CachedStrings
+};
+
+OUString *StringCache[CachedStrings] = {0};
+
+inline OUString GetCachedString(CachedStringID id)
+{
+ return StringCache[id] ? *StringCache[id] : OUString();
+}
+
+inline void SetCachedString(CachedStringID id, OUString sStr)
+{
+ if (StringCache[id])
+ {
+ *StringCache[id] = sStr;
+ }
+ else
+ {
+ StringCache[id] = new OUString(sStr);
+ }
+}
+
+void ClearStringCache()
+{
+ for (int i=0; i<CachedStrings; ++i)
+ {
+ delete StringCache[i];
+ }
+}
+
+}
+
+OUString GetOldGrfCat()
+{
+ return GetCachedString(OldGrfCat);
+}
+
+void SetOldGrfCat(OUString sStr)
+{
+ SetCachedString(OldGrfCat, sStr);
+}
+
+OUString GetOldTabCat()
+{
+ return GetCachedString(OldTabCat);
+}
+
+void SetOldTabCat(OUString sStr)
+{
+ SetCachedString(OldTabCat, sStr);
+}
-String* GetOldGrfCat()
+OUString GetOldFrmCat()
{
- return pOldGrfCat;
+ return GetCachedString(OldFrmCat);
}
-String* GetOldTabCat()
+
+void SetOldFrmCat(OUString sStr)
{
- return pOldTabCat;
+ SetCachedString(OldFrmCat, sStr);
}
-String* GetOldFrmCat()
+
+OUString GetOldDrwCat()
{
- return pOldFrmCat;
+ return GetCachedString(OldDrwCat);
}
-String* GetOldDrwCat()
+
+void SetOldDrwCat(OUString sStr)
{
- return pOldDrwCat;
+ SetCachedString(OldDrwCat, sStr);
}
-String* GetCurrGlosGroup()
+
+OUString GetCurrGlosGroup()
{
- return pCurrGlosGroup;
+ return GetCachedString(CurrGlosGroup);
}
-void SetCurrGlosGroup(String* pStr)
+
+void SetCurrGlosGroup(OUString sStr)
{
- pCurrGlosGroup = pStr;
+ SetCachedString(CurrGlosGroup, sStr);
}
std::vector<String>* pDBNameList = 0;
@@ -97,11 +158,7 @@ void _FinitUI()
delete SwFieldType::pFldNames;
- delete pOldGrfCat;
- delete pOldTabCat;
- delete pOldFrmCat;
- delete pOldDrwCat;
- delete pCurrGlosGroup;
+ ClearStringCache();
delete pDBNameList;
delete pGlossaryList;
delete pAuthFieldNameList;