summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-04-24 17:35:40 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-04-25 09:11:05 +0200
commitee242df844d1a2b85e0d7b86dbdb8bf3643fc74f (patch)
tree542d50009f23df47cb611fdf0ad5c0103a98ffde
parentf839984910f0fd4ef385552df3af5e09190e15b9 (diff)
msfilter::util: avoid code duplication by merging from sw and writerfilter
-rw-r--r--filter/Library_msfilter.mk1
-rw-r--r--filter/Package_inc.mk1
-rw-r--r--filter/inc/filter/msfilter/util.hxx46
-rw-r--r--filter/source/msfilter/util.cxx55
-rw-r--r--sw/source/filter/ww8/ww8par.cxx27
-rw-r--r--writerfilter/Library_rtftok.mk1
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx16
7 files changed, 108 insertions, 39 deletions
diff --git a/filter/Library_msfilter.mk b/filter/Library_msfilter.mk
index e2e5eb2485b3..979abd728cb2 100644
--- a/filter/Library_msfilter.mk
+++ b/filter/Library_msfilter.mk
@@ -71,6 +71,7 @@ $(eval $(call gb_Library_add_exception_objects,msfilter,\
filter/source/msfilter/services \
filter/source/msfilter/svdfppt \
filter/source/msfilter/svxmsbas2 \
+ filter/source/msfilter/util \
))
# vim: set noet sw=4 ts=4:
diff --git a/filter/Package_inc.mk b/filter/Package_inc.mk
index 27a6c4533257..2b113f18d38c 100644
--- a/filter/Package_inc.mk
+++ b/filter/Package_inc.mk
@@ -30,5 +30,6 @@ $(eval $(call gb_Package_add_file,filter_inc,inc/filter/msfilter/mstoolbar.hxx,f
$(eval $(call gb_Package_add_file,filter_inc,inc/filter/msfilter/msvbahelper.hxx,filter/msfilter/msvbahelper.hxx))
$(eval $(call gb_Package_add_file,filter_inc,inc/filter/msfilter/svdfppt.hxx,filter/msfilter/svdfppt.hxx))
$(eval $(call gb_Package_add_file,filter_inc,inc/filter/msfilter/svxmsbas.hxx,filter/msfilter/svxmsbas.hxx))
+$(eval $(call gb_Package_add_file,filter_inc,inc/filter/msfilter/util.hxx,filter/msfilter/util.hxx))
# vim: set noet sw=4 ts=4:
diff --git a/filter/inc/filter/msfilter/util.hxx b/filter/inc/filter/msfilter/util.hxx
new file mode 100644
index 000000000000..33a66585127c
--- /dev/null
+++ b/filter/inc/filter/msfilter/util.hxx
@@ -0,0 +1,46 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Initial Developer of the Original Code is
+ * Miklos Vajna <vmiklos@suse.cz> (SUSE, Inc.)
+ * Portions created by the Initial Developer are Copyright (C) 2012 the
+ * Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#ifndef INCLUDED_MSFILTER_UTIL_HXX
+#define INCLUDED_MSFILTER_UTIL_HXX
+
+#include <rtl/textenc.h>
+#include "filter/msfilter/msfilterdllapi.h"
+
+namespace msfilter {
+namespace util {
+
+/// Returns the default encoding, based on the application's locale.
+MSFILTER_DLLPUBLIC rtl_TextEncoding GetDefaultTextEncoding();
+
+}
+}
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/filter/source/msfilter/util.cxx b/filter/source/msfilter/util.cxx
new file mode 100644
index 000000000000..a5fb20933d1d
--- /dev/null
+++ b/filter/source/msfilter/util.cxx
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (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.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Initial Developer of the Original Code is
+ * Miklos Vajna <vmiklos@suse.cz> (SUSE, Inc.)
+ * Portions created by the Initial Developer are Copyright (C) 2012 the
+ * Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include <rtl/ustring.hxx>
+#include <vcl/svapp.hxx>
+#include <filter/msfilter/util.hxx>
+
+namespace msfilter {
+namespace util {
+
+rtl_TextEncoding GetDefaultTextEncoding()
+{
+ const rtl::OUString& rLanguage = Application::GetSettings().GetLocale().Language;
+
+ if (rLanguage == "cs" || rLanguage == "hu" || rLanguage == "pl")
+ return RTL_TEXTENCODING_MS_1250;
+ if (rLanguage == "ru" || rLanguage == "uk")
+ return RTL_TEXTENCODING_MS_1251;
+ if (rLanguage == "el")
+ return RTL_TEXTENCODING_MS_1253;
+ if (rLanguage == "tr")
+ return RTL_TEXTENCODING_MS_1254;
+ else
+ return RTL_TEXTENCODING_MS_1252;
+}
+
+}
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index d038f19f7e24..c4513f18b9dd 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -61,6 +61,7 @@
#include <editeng/charhiddenitem.hxx>
#include <editeng/fontitem.hxx>
#include <filter/msfilter/svxmsbas.hxx>
+#include <filter/msfilter/util.hxx>
#include <svx/unoapi.hxx>
#include <svx/svdoole2.hxx>
#include <filter/msfilter/msdffimp.hxx>
@@ -2375,31 +2376,7 @@ CharSet SwWW8ImplReader::GetCurrentCharSet()
correctly set in the character runs involved, so its hard to reproduce
documents that require this to be sure of the process involved.
*/
- const SvxLanguageItem *pLang =
- (const SvxLanguageItem*)GetFmtAttr(RES_CHRATR_LANGUAGE);
- if (pLang)
- {
- switch (pLang->GetLanguage())
- {
- case LANGUAGE_CZECH:
- case LANGUAGE_HUNGARIAN:
- case LANGUAGE_POLISH:
- eSrcCharSet = RTL_TEXTENCODING_MS_1250;
- break;
- case LANGUAGE_RUSSIAN:
- eSrcCharSet = RTL_TEXTENCODING_MS_1251;
- break;
- case LANGUAGE_GREEK:
- eSrcCharSet = RTL_TEXTENCODING_MS_1253;
- break;
- case LANGUAGE_TURKISH:
- eSrcCharSet = RTL_TEXTENCODING_MS_1254;
- break;
- default:
- eSrcCharSet = RTL_TEXTENCODING_MS_1252;
- break;
- }
- }
+ eSrcCharSet = msfilter::util::GetDefaultTextEncoding();
}
}
return eSrcCharSet;
diff --git a/writerfilter/Library_rtftok.mk b/writerfilter/Library_rtftok.mk
index 5521362eeca7..b7df627bdffe 100644
--- a/writerfilter/Library_rtftok.mk
+++ b/writerfilter/Library_rtftok.mk
@@ -49,6 +49,7 @@ $(eval $(call gb_Library_add_defs,rtftok,\
$(eval $(call gb_Library_use_libraries,rtftok,\
cppu \
cppuhelper \
+ msfilter \
oox \
sal \
svt \
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 50f84c41797c..6bcfdc7998b5 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -45,6 +45,7 @@
#include <vcl/graph.hxx>
#include <svtools/grfmgr.hxx>
#include <vcl/svapp.hxx>
+#include <filter/msfilter/util.hxx>
#include <doctok/sprmids.hxx> // NS_sprm namespace
#include <doctok/resourceids.hxx> // NS_rtf namespace
@@ -513,26 +514,13 @@ sal_uInt32 RTFDocumentImpl::getColorTable(sal_uInt32 nIndex)
return 0;
}
-rtl_TextEncoding lcl_getDefaultTextEncoding()
-{
-
- const OUString& rLanguage = Application::GetSettings().GetLocale().Language;
-
- if (rLanguage == "ru" || rLanguage == "uk")
- return RTL_TEXTENCODING_MS_1251;
- if (rLanguage == "tr")
- return RTL_TEXTENCODING_MS_1254;
- else
- return RTL_TEXTENCODING_MS_1252;
-}
-
rtl_TextEncoding RTFDocumentImpl::getEncoding(sal_uInt32 nFontIndex)
{
if (!m_pSuperstream)
{
if (nFontIndex < m_aFontEncodings.size())
return m_aFontEncodings[nFontIndex];
- return lcl_getDefaultTextEncoding();
+ return msfilter::util::GetDefaultTextEncoding();
}
else
return m_pSuperstream->getEncoding(nFontIndex);