diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-02-23 16:15:18 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-03-01 07:28:03 +0000 |
commit | 4c09fc48e9fa9114f32f2973090cbe75177cdd37 (patch) | |
tree | 09d4ee3c2d75d038f45ba13a086a344d35aeadb6 | |
parent | d97380c66904328e9d706a0b03a6800dc048aa7d (diff) |
typesafe wrappers for css::i18nutil::TransliterationModules
and related css::util::SearchOptions2
The TransliterationModules enum has it's constants spread over multiple
UNO enum/constant-collections - TransliterationModules and
TransliterationModulesExtra, which means that most code simply uses
sal_Int32.
Wrap them up into a better bundle so that only the lowest layer needs to
deal directly with the UNO constants.
Change-Id: I1edeab79fcc7817a4a97c933ef84ab7015bb849b
Reviewed-on: https://gerrit.libreoffice.org/34582
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
107 files changed, 911 insertions, 644 deletions
diff --git a/basic/source/classes/global.cxx b/basic/source/classes/global.cxx index 0c45b282f094..8f5472daae66 100644 --- a/basic/source/classes/global.cxx +++ b/basic/source/classes/global.cxx @@ -9,6 +9,7 @@ #include <comphelper/processfactory.hxx> #include <i18nlangtag/lang.h> +#include <i18nutil/transliteration.hxx> #include <rtl/instance.hxx> #include <unotools/transliterationwrapper.hxx> #include <vcl/svapp.hxx> @@ -26,7 +27,7 @@ namespace lclTransliterationWrapper() : m_aTransliteration( comphelper::getProcessComponentContext(), - css::i18n::TransliterationModules_IGNORE_CASE ) + TransliterationFlags::IGNORE_CASE ) { const LanguageType eOfficeLanguage = Application::GetSettings().GetLanguageTag().getLanguageType(); m_aTransliteration.loadModuleIfNeeded( eOfficeLanguage ); diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx index 3447bff32949..33e4f3640a40 100644 --- a/basic/source/runtime/methods.cxx +++ b/basic/source/runtime/methods.cxx @@ -1667,9 +1667,9 @@ RTLFUNC(StrComp) uno::Reference< uno::XComponentContext > xContext = getProcessComponentContext(); pTransliterationWrapper = GetSbData()->pTransliterationWrapper = new ::utl::TransliterationWrapper( xContext, - i18n::TransliterationModules_IGNORE_CASE | - i18n::TransliterationModules_IGNORE_KANA | - i18n::TransliterationModules_IGNORE_WIDTH ); + TransliterationFlags::IGNORE_CASE | + TransliterationFlags::IGNORE_KANA | + TransliterationFlags::IGNORE_WIDTH ); } LanguageType eLangType = Application::GetSettings().GetLanguageTag().getLanguageType(); @@ -4266,7 +4266,7 @@ RTLFUNC(StrConv) return; } - sal_Int32 nType = 0; + TransliterationFlags nType = TransliterationFlags::NONE; if ( (nConversion & 0x03) == 3 ) // vbProperCase { const CharClass& rCharClass = GetCharClass(); @@ -4274,30 +4274,30 @@ RTLFUNC(StrConv) } else if ( (nConversion & 0x01) == 1 ) // vbUpperCase { - nType |= i18n::TransliterationModules_LOWERCASE_UPPERCASE; + nType |= TransliterationFlags::LOWERCASE_UPPERCASE; } else if ( (nConversion & 0x02) == 2 ) // vbLowerCase { - nType |= i18n::TransliterationModules_UPPERCASE_LOWERCASE; + nType |= TransliterationFlags::UPPERCASE_LOWERCASE; } if ( (nConversion & 0x04) == 4 ) // vbWide { - nType |= i18n::TransliterationModules_HALFWIDTH_FULLWIDTH; + nType |= TransliterationFlags::HALFWIDTH_FULLWIDTH; } else if ( (nConversion & 0x08) == 8 ) // vbNarrow { - nType |= i18n::TransliterationModules_FULLWIDTH_HALFWIDTH; + nType |= TransliterationFlags::FULLWIDTH_HALFWIDTH; } if ( (nConversion & 0x10) == 16) // vbKatakana { - nType |= i18n::TransliterationModules_HIRAGANA_KATAKANA; + nType |= TransliterationFlags::HIRAGANA_KATAKANA; } else if ( (nConversion & 0x20) == 32 ) // vbHiragana { - nType |= i18n::TransliterationModules_KATAKANA_HIRAGANA; + nType |= TransliterationFlags::KATAKANA_HIRAGANA; } OUString aNewStr( aOldStr ); - if( nType != 0 ) + if( nType != TransliterationFlags::NONE ) { uno::Reference< uno::XComponentContext > xContext = getProcessComponentContext(); ::utl::TransliterationWrapper aTransliterationWrapper( xContext, nType ); diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx index 2f9284ef8254..e3615b13fc12 100644 --- a/basic/source/runtime/runtime.cxx +++ b/basic/source/runtime/runtime.cxx @@ -28,7 +28,6 @@ #include <com/sun/star/container/XIndexAccess.hpp> #include <com/sun/star/script/XDefaultMethod.hpp> #include <com/sun/star/uno/Any.hxx> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <comphelper/processfactory.hxx> @@ -48,6 +47,7 @@ #include <svl/zforlist.hxx> +#include <i18nutil/searchopt.hxx> #include <unotools/syslocale.hxx> #include <unotools/textsearch.hxx> @@ -1503,7 +1503,7 @@ void SbiRuntime::StepLIKE() OUString pattern = VBALikeToRegexp(refVar1->GetOUString()); OUString value = refVar2->GetOUString(); - css::util::SearchOptions2 aSearchOpt; + i18nutil::SearchOptions2 aSearchOpt; aSearchOpt.AlgorithmType2 = css::util::SearchAlgorithms2::REGEXP; @@ -1518,7 +1518,7 @@ void SbiRuntime::StepLIKE() } if( bTextMode ) { - aSearchOpt.transliterateFlags |= css::i18n::TransliterationModules_IGNORE_CASE; + aSearchOpt.transliterateFlags |= TransliterationFlags::IGNORE_CASE; } SbxVariable* pRes = new SbxVariable; utl::TextSearch aSearch( aSearchOpt); diff --git a/cui/source/dialogs/cuifmsearch.cxx b/cui/source/dialogs/cuifmsearch.cxx index 8d404c4cfee2..81d008dd60f0 100644 --- a/cui/source/dialogs/cuifmsearch.cxx +++ b/cui/source/dialogs/cuifmsearch.cxx @@ -31,7 +31,6 @@ #include "cuifmsearch.hxx" #include <svx/srchdlg.hxx> #include <svl/cjkoptions.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <comphelper/processfactory.hxx> #include <comphelper/string.hxx> #include <svx/svxdlg.hxx> @@ -382,7 +381,7 @@ IMPL_LINK(FmSearchDialog, OnClickedSpecialSettings, Button*, pButton, void ) aDlg->Execute(); - sal_Int32 nFlags = aDlg->GetTransliterationFlags(); + TransliterationFlags nFlags = aDlg->GetTransliterationFlags(); m_pSearchEngine->SetTransliterationFlags(nFlags); m_pcbCase->Check(m_pSearchEngine->GetCaseSensitive()); diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index 354554dcc0dc..6b9640122360 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -551,7 +551,7 @@ void AbstractSvxCaptionDialog_Impl::SetValidateFramePosLink( const Link<SvxSwFra pDlg->SetValidateFramePosLink( rLink ); } -sal_Int32 AbstractSvxJSearchOptionsDialog_Impl::GetTransliterationFlags() const +TransliterationFlags AbstractSvxJSearchOptionsDialog_Impl::GetTransliterationFlags() const { return pDlg->GetTransliterationFlags(); } @@ -1089,7 +1089,7 @@ VclPtr<SfxAbstractTabDialog> AbstractDialogFactory_Impl::CreateSchTransformTabDi VclPtr<AbstractSvxJSearchOptionsDialog> AbstractDialogFactory_Impl::CreateSvxJSearchOptionsDialog( vcl::Window* pParent, const SfxItemSet& rOptionsSet, - sal_Int32 nInitialFlags) + TransliterationFlags nInitialFlags) { VclPtrInstance<SvxJSearchOptionsDialog> pDlg( pParent, rOptionsSet, nInitialFlags ); return VclPtr<AbstractSvxJSearchOptionsDialog_Impl>::Create( pDlg ); diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index 2160c8a0c81c..2cf6761d6dc1 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -254,7 +254,7 @@ class SvxJSearchOptionsDialog; class AbstractSvxJSearchOptionsDialog_Impl :public AbstractSvxJSearchOptionsDialog { DECL_ABSTDLG_BASE(AbstractSvxJSearchOptionsDialog_Impl,SvxJSearchOptionsDialog) - virtual sal_Int32 GetTransliterationFlags() const override; + virtual TransliterationFlags GetTransliterationFlags() const override; }; class AbstractSvxTransformTabDialog_Impl : public AbstractSvxTransformTabDialog @@ -549,7 +549,7 @@ public: sal_uInt16 nLonger) override; virtual VclPtr<AbstractSvxJSearchOptionsDialog> CreateSvxJSearchOptionsDialog( vcl::Window* pParent, const SfxItemSet& rOptionsSet, - sal_Int32 nInitialFlags) override; + TransliterationFlags nInitialFlags) override; virtual VclPtr<AbstractFmInputRecordNoDialog> CreateFmInputRecordNoDialog() override; virtual VclPtr<AbstractSvxNewDictionaryDialog> CreateSvxNewDictionaryDialog( vcl::Window* pParent ) override; virtual VclPtr<VclAbstractDialog> CreateSvxEditDictionaryDialog( vcl::Window* pParent, diff --git a/cui/source/inc/cuisrchdlg.hxx b/cui/source/inc/cuisrchdlg.hxx index c3d664946c17..8edf7623fa0e 100644 --- a/cui/source/inc/cuisrchdlg.hxx +++ b/cui/source/inc/cuisrchdlg.hxx @@ -35,7 +35,7 @@ class SvxJSearchOptionsPage; class SvxJSearchOptionsDialog : public SfxSingleTabDialog { - sal_Int32 nInitialTlFlags; + TransliterationFlags nInitialTlFlags; VclPtr<SvxJSearchOptionsPage> pPage; SvxJSearchOptionsDialog( const SvxJSearchOptionsDialog & ) = delete; @@ -43,14 +43,14 @@ class SvxJSearchOptionsDialog : public SfxSingleTabDialog public: SvxJSearchOptionsDialog(vcl::Window *pParent, - const SfxItemSet& rOptionsSet, sal_Int32 nInitialFlags); + const SfxItemSet& rOptionsSet, TransliterationFlags nInitialFlags); virtual ~SvxJSearchOptionsDialog() override; virtual void dispose() override; // Window virtual void Activate() override; - sal_Int32 GetTransliterationFlags() const; + TransliterationFlags GetTransliterationFlags() const; }; #endif diff --git a/cui/source/options/cuisrchdlg.cxx b/cui/source/options/cuisrchdlg.cxx index bff4d1a74c8e..0b3bf50120df 100644 --- a/cui/source/options/cuisrchdlg.cxx +++ b/cui/source/options/cuisrchdlg.cxx @@ -30,7 +30,6 @@ #include <sfx2/viewsh.hxx> #include <sfx2/basedlgs.hxx> #include <svl/cjkoptions.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include "cuisrchdlg.hxx" @@ -48,7 +47,7 @@ // class SvxJSearchOptionsDialog ----------------------------------------- SvxJSearchOptionsDialog::SvxJSearchOptionsDialog(vcl::Window *pParent, - const SfxItemSet& rOptionsSet, sal_Int32 nInitialFlags) + const SfxItemSet& rOptionsSet, TransliterationFlags nInitialFlags) : SfxSingleTabDialog(pParent, rOptionsSet) , nInitialTlFlags( nInitialFlags ) { @@ -77,7 +76,7 @@ void SvxJSearchOptionsDialog::Activate() pPage->SetTransliterationFlags( nInitialTlFlags ); } -sal_Int32 SvxJSearchOptionsDialog::GetTransliterationFlags() const +TransliterationFlags SvxJSearchOptionsDialog::GetTransliterationFlags() const { return pPage->GetTransliterationFlags(); } diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx index 99fcc3fd9393..38c30f1bf820 100644 --- a/cui/source/options/optaboutconfig.cxx +++ b/cui/source/options/optaboutconfig.cxx @@ -25,7 +25,6 @@ #include <com/sun/star/container/XHierarchicalName.hpp> #include <com/sun/star/container/XHierarchicalNameAccess.hpp> #include <com/sun/star/util/XChangesBatch.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <com/sun/star/util/SearchFlags.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <unotools/textsearch.hxx> @@ -175,7 +174,7 @@ CuiAboutConfigTabPage::CuiAboutConfigTabPage( vcl::Window* pParent/*, const SfxI aTabs[4] = aTabs[3] + fWidth * 8; m_options.AlgorithmType2 = util::SearchAlgorithms2::ABSOLUTE; - m_options.transliterateFlags |= i18n::TransliterationModules_IGNORE_CASE; + m_options.transliterateFlags |= TransliterationFlags::IGNORE_CASE; m_options.searchFlag |= (util::SearchFlags::REG_NOT_BEGINOFLINE | util::SearchFlags::REG_NOT_ENDOFLINE); diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx index 91641d1616b7..b33be6505207 100644 --- a/cui/source/options/optaboutconfig.hxx +++ b/cui/source/options/optaboutconfig.hxx @@ -12,8 +12,8 @@ #include <com/sun/star/container/XNameAccess.hpp> #include <com/sun/star/beans/NamedValue.hpp> -#include <com/sun/star/util/SearchOptions2.hpp> +#include <i18nutil/searchopt.hxx> #include <sfx2/tabdlg.hxx> #include <svtools/simptabl.hxx> #include <vcl/edit.hxx> @@ -52,7 +52,7 @@ private: VclPtr< SvSimpleTable > m_pPrefBox; //for search - css::util::SearchOptions2 m_options; + i18nutil::SearchOptions2 m_options; SvTreeListEntries m_prefBoxEntries; void AddToModifiedVector( const std::shared_ptr< Prop_Impl >& rProp ); diff --git a/cui/source/options/optjsearch.cxx b/cui/source/options/optjsearch.cxx index ce5f61aecd2a..bbe587a61a67 100644 --- a/cui/source/options/optjsearch.cxx +++ b/cui/source/options/optjsearch.cxx @@ -18,7 +18,7 @@ */ #include <unotools/searchopt.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> +#include <i18nutil/transliteration.hxx> #include <cuires.hrc> #include <dialmgr.hxx> #include <optjsearch.hxx> @@ -51,7 +51,7 @@ SvxJSearchOptionsPage::SvxJSearchOptionsPage( vcl::Window* pParent, const SfxIte get( m_pIgnoreMiddleDot, "ignoremiddledot"); bSaveOptions = true; - nTransliterationFlags = 0x00000000; + nTransliterationFlags = TransliterationFlags::NONE; } SvxJSearchOptionsPage::~SvxJSearchOptionsPage() @@ -89,92 +89,92 @@ VclPtr<SfxTabPage> SvxJSearchOptionsPage::Create( vcl::Window* pParent, const Sf } -void SvxJSearchOptionsPage::SetTransliterationFlags( sal_Int32 nSettings ) +void SvxJSearchOptionsPage::SetTransliterationFlags( TransliterationFlags nSettings ) { - bool bVal = 0 != (nSettings & TransliterationModules_IGNORE_CASE); + bool bVal(nSettings & TransliterationFlags::IGNORE_CASE); m_pMatchCase ->Check( bVal ); //! treat as equal uppercase/lowercase - bVal = 0 != (nSettings & TransliterationModules_IGNORE_WIDTH); + bVal = bool(nSettings & TransliterationFlags::IGNORE_WIDTH); m_pMatchFullHalfWidth ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_IGNORE_KANA); + bVal = bool(nSettings & TransliterationFlags::IGNORE_KANA); m_pMatchHiraganaKatakana ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreSize_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreSize_ja_JP); m_pMatchContractions ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreMinusSign_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreMinusSign_ja_JP); m_pMatchMinusDashChoon ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreIterationMark_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreIterationMark_ja_JP); m_pMatchRepeatCharMarks ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreTraditionalKanji_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreTraditionalKanji_ja_JP); m_pMatchVariantFormKanji ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreTraditionalKana_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreTraditionalKana_ja_JP); m_pMatchOldKanaForms ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreZiZu_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreZiZu_ja_JP); m_pMatchDiziDuzu ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreBaFa_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreBaFa_ja_JP); m_pMatchBavaHafa ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreTiJi_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreTiJi_ja_JP); m_pMatchTsithichiDhizi ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreHyuByu_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreHyuByu_ja_JP); m_pMatchHyuiyuByuvyu ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreSeZe_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreSeZe_ja_JP); m_pMatchSesheZeje ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreIandEfollowedByYa_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreIandEfollowedByYa_ja_JP); m_pMatchIaiya ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreKiKuFollowedBySa_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP); m_pMatchKiku ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreSeparator_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreSeparator_ja_JP); m_pIgnorePunctuation ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreSpace_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreSpace_ja_JP); m_pIgnoreWhitespace ->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreProlongedSoundMark_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreProlongedSoundMark_ja_JP); m_pMatchProlongedSoundMark->Check( bVal ); - bVal = 0 != (nSettings & TransliterationModules_ignoreMiddleDot_ja_JP); + bVal = bool(nSettings & TransliterationFlags::ignoreMiddleDot_ja_JP); m_pIgnoreMiddleDot ->Check( bVal ); nTransliterationFlags = nSettings; } -sal_Int32 SvxJSearchOptionsPage::GetTransliterationFlags_Impl() +TransliterationFlags SvxJSearchOptionsPage::GetTransliterationFlags_Impl() { - sal_Int32 nTmp = 0; + TransliterationFlags nTmp = TransliterationFlags::NONE; if (m_pMatchCase->IsChecked()) //! treat as equal uppercase/lowercase - nTmp |= TransliterationModules_IGNORE_CASE; + nTmp |= TransliterationFlags::IGNORE_CASE; if (m_pMatchFullHalfWidth->IsChecked()) - nTmp |= TransliterationModules_IGNORE_WIDTH; + nTmp |= TransliterationFlags::IGNORE_WIDTH; if (m_pMatchHiraganaKatakana->IsChecked()) - nTmp |= TransliterationModules_IGNORE_KANA; + nTmp |= TransliterationFlags::IGNORE_KANA; if (m_pMatchContractions->IsChecked()) - nTmp |= TransliterationModules_ignoreSize_ja_JP; + nTmp |= TransliterationFlags::ignoreSize_ja_JP; if (m_pMatchMinusDashChoon->IsChecked()) - nTmp |= TransliterationModules_ignoreMinusSign_ja_JP; + nTmp |= TransliterationFlags::ignoreMinusSign_ja_JP; if (m_pMatchRepeatCharMarks->IsChecked()) - nTmp |= TransliterationModules_ignoreIterationMark_ja_JP; + nTmp |= TransliterationFlags::ignoreIterationMark_ja_JP; if (m_pMatchVariantFormKanji->IsChecked()) - nTmp |= TransliterationModules_ignoreTraditionalKanji_ja_JP; + nTmp |= TransliterationFlags::ignoreTraditionalKanji_ja_JP; if (m_pMatchOldKanaForms->IsChecked()) - nTmp |= TransliterationModules_ignoreTraditionalKana_ja_JP; + nTmp |= TransliterationFlags::ignoreTraditionalKana_ja_JP; if (m_pMatchDiziDuzu->IsChecked()) - nTmp |= TransliterationModules_ignoreZiZu_ja_JP; + nTmp |= TransliterationFlags::ignoreZiZu_ja_JP; if (m_pMatchBavaHafa->IsChecked()) - nTmp |= TransliterationModules_ignoreBaFa_ja_JP; + nTmp |= TransliterationFlags::ignoreBaFa_ja_JP; if (m_pMatchTsithichiDhizi->IsChecked()) - nTmp |= TransliterationModules_ignoreTiJi_ja_JP; + nTmp |= TransliterationFlags::ignoreTiJi_ja_JP; if (m_pMatchHyuiyuByuvyu->IsChecked()) - nTmp |= TransliterationModules_ignoreHyuByu_ja_JP; + nTmp |= TransliterationFlags::ignoreHyuByu_ja_JP; if (m_pMatchSesheZeje->IsChecked()) - nTmp |= TransliterationModules_ignoreSeZe_ja_JP; + nTmp |= TransliterationFlags::ignoreSeZe_ja_JP; if (m_pMatchIaiya->IsChecked()) - nTmp |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP; + nTmp |= TransliterationFlags::ignoreIandEfollowedByYa_ja_JP; if (m_pMatchKiku->IsChecked()) - nTmp |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP; + nTmp |= TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP; if (m_pIgnorePunctuation->IsChecked()) - nTmp |= TransliterationModules_ignoreSeparator_ja_JP; + nTmp |= TransliterationFlags::ignoreSeparator_ja_JP; if (m_pIgnoreWhitespace->IsChecked()) - nTmp |= TransliterationModules_ignoreSpace_ja_JP; + nTmp |= TransliterationFlags::ignoreSpace_ja_JP; if (m_pMatchProlongedSoundMark->IsChecked()) - nTmp |= TransliterationModules_ignoreProlongedSoundMark_ja_JP; + nTmp |= TransliterationFlags::ignoreProlongedSoundMark_ja_JP; if (m_pIgnoreMiddleDot->IsChecked()) - nTmp |= TransliterationModules_ignoreMiddleDot_ja_JP; + nTmp |= TransliterationFlags::ignoreMiddleDot_ja_JP; nTransliterationFlags = nTmp; return nTransliterationFlags; @@ -234,7 +234,7 @@ void SvxJSearchOptionsPage::Reset( const SfxItemSet* ) bool SvxJSearchOptionsPage::FillItemSet( SfxItemSet* ) { - sal_Int32 nOldVal = nTransliterationFlags; + TransliterationFlags nOldVal = nTransliterationFlags; nTransliterationFlags = GetTransliterationFlags_Impl(); bool bModified = nOldVal != nTransliterationFlags; diff --git a/cui/source/options/optjsearch.hxx b/cui/source/options/optjsearch.hxx index 542e1c1a9b9f..b6d768044da7 100644 --- a/cui/source/options/optjsearch.hxx +++ b/cui/source/options/optjsearch.hxx @@ -52,10 +52,12 @@ private: VclPtr<CheckBox> m_pIgnoreWhitespace; VclPtr<CheckBox> m_pIgnoreMiddleDot; - sal_Int32 nTransliterationFlags; - bool bSaveOptions; + TransliterationFlags + nTransliterationFlags; + bool bSaveOptions; - sal_Int32 GetTransliterationFlags_Impl(); + TransliterationFlags + GetTransliterationFlags_Impl(); public: SvxJSearchOptionsPage( vcl::Window* pParent, const SfxItemSet& rSet ); @@ -68,8 +70,9 @@ public: void EnableSaveOptions( bool bVal ) { bSaveOptions = bVal; } - sal_Int32 GetTransliterationFlags() const { return nTransliterationFlags; } - void SetTransliterationFlags( sal_Int32 nSettings ); + TransliterationFlags + GetTransliterationFlags() const { return nTransliterationFlags; } + void SetTransliterationFlags( TransliterationFlags nSettings ); }; diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx index dccbed4dbe64..d8a1341f3aa6 100644 --- a/editeng/source/editeng/editeng.cxx +++ b/editeng/source/editeng/editeng.cxx @@ -472,12 +472,12 @@ LanguageType EditEngine::GetLanguage( sal_Int32 nPara, sal_Int32 nPos ) const } -void EditEngine::TransliterateText( const ESelection& rSelection, sal_Int32 nTransliterationMode ) +void EditEngine::TransliterateText( const ESelection& rSelection, TransliterationFlags nTransliterationMode ) { pImpEditEngine->TransliterateText( pImpEditEngine->CreateSel( rSelection ), nTransliterationMode ); } -EditSelection EditEngine::TransliterateText(const EditSelection& rSelection, sal_Int32 nTransliterationMode) +EditSelection EditEngine::TransliterateText(const EditSelection& rSelection, TransliterationFlags nTransliterationMode) { return pImpEditEngine->TransliterateText(rSelection, nTransliterationMode); } diff --git a/editeng/source/editeng/editundo.cxx b/editeng/source/editeng/editundo.cxx index 925cf1f03752..30650d129d70 100644 --- a/editeng/source/editeng/editundo.cxx +++ b/editeng/source/editeng/editundo.cxx @@ -586,7 +586,7 @@ void EditUndoSetAttribs::ImpSetSelection( EditView* /*pView*/ ) pEE->GetActiveView()->GetImpEditView()->SetEditSelection(aSel); } -EditUndoTransliteration::EditUndoTransliteration(EditEngine* pEE, const ESelection& rESel, sal_Int32 nM) : +EditUndoTransliteration::EditUndoTransliteration(EditEngine* pEE, const ESelection& rESel, TransliterationFlags nM) : EditUndo(EDITUNDO_TRANSLITERATE, pEE), aOldESel(rESel), nMode(nM), pTxtObj(nullptr) {} diff --git a/editeng/source/editeng/editundo.hxx b/editeng/source/editeng/editundo.hxx index 9e798a7dd2b4..a21d609e70c5 100644 --- a/editeng/source/editeng/editundo.hxx +++ b/editeng/source/editeng/editundo.hxx @@ -29,6 +29,7 @@ class EditEngine; class EditView; enum class SetAttribsMode; +enum class TransliterationFlags; // EditUndoDelContent @@ -250,13 +251,14 @@ private: ESelection aOldESel; ESelection aNewESel; - sal_Int32 nMode; + TransliterationFlags + nMode; std::unique_ptr<EditTextObject> pTxtObj; OUString aText; public: - EditUndoTransliteration(EditEngine* pEE, const ESelection& rESel, sal_Int32 nMode); + EditUndoTransliteration(EditEngine* pEE, const ESelection& rESel, TransliterationFlags nMode); virtual ~EditUndoTransliteration() override; void SetText( const OUString& rText ) { aText = rText; } diff --git a/editeng/source/editeng/editview.cxx b/editeng/source/editeng/editview.cxx index 553fe192cec8..e328805895ff 100644 --- a/editeng/source/editeng/editview.cxx +++ b/editeng/source/editeng/editview.cxx @@ -734,7 +734,7 @@ EVAnchorMode EditView::GetAnchorMode() const return pImpEditView->GetAnchorMode(); } -void EditView::TransliterateText( sal_Int32 nTransliterationMode ) +void EditView::TransliterateText( TransliterationFlags nTransliterationMode ) { EditSelection aOldSel( pImpEditView->GetEditSelection() ); EditSelection aNewSel = pImpEditView->pEditEngine->TransliterateText( pImpEditView->GetEditSelection(), nTransliterationMode ); diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx index 51452ad7ed27..c047f51c1dcf 100644 --- a/editeng/source/editeng/impedit.hxx +++ b/editeng/source/editeng/impedit.hxx @@ -995,7 +995,7 @@ public: const OUString& GetAutoCompleteText() const { return aAutoCompleteText; } void SetAutoCompleteText(const OUString& rStr, bool bUpdateTipWindow); - EditSelection TransliterateText( const EditSelection& rSelection, sal_Int32 nTransliterationMode ); + EditSelection TransliterateText( const EditSelection& rSelection, TransliterationFlags nTransliterationMode ); short ReplaceTextOnly( ContentNode* pNode, sal_Int32 nCurrentStart, sal_Int32 nLen, const OUString& rText, const css::uno::Sequence< sal_Int32 >& rOffsets ); void SetAsianCompressionMode( CharCompressType n ); diff --git a/editeng/source/editeng/impedit4.cxx b/editeng/source/editeng/impedit4.cxx index 7d5227845100..80cfabf8e2d7 100644 --- a/editeng/source/editeng/impedit4.cxx +++ b/editeng/source/editeng/impedit4.cxx @@ -67,8 +67,6 @@ #include <com/sun/star/linguistic2/XMeaning.hpp> #include <com/sun/star/i18n/ScriptType.hpp> #include <com/sun/star/i18n/WordType.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <unotools/transliterationwrapper.hxx> #include <unotools/textsearch.hxx> #include <comphelper/processfactory.hxx> @@ -2603,7 +2601,7 @@ bool ImpEditEngine::Search( const SvxSearchItem& rSearchItem, EditView* pEditVie bool ImpEditEngine::ImpSearch( const SvxSearchItem& rSearchItem, const EditSelection& rSearchSelection, const EditPaM& rStartPos, EditSelection& rFoundSel ) { - util::SearchOptions2 aSearchOptions( rSearchItem.GetSearchOptions() ); + i18nutil::SearchOptions2 aSearchOptions( rSearchItem.GetSearchOptions() ); aSearchOptions.Locale = GetLocale( rStartPos ); bool bBack = rSearchItem.GetBackward(); @@ -2710,7 +2708,7 @@ namespace }; } -EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection, sal_Int32 nTransliterationMode ) +EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection, TransliterationFlags nTransliterationMode ) { uno::Reference < i18n::XBreakIterator > _xBI( ImplGetBreakIterator() ); if (!_xBI.is()) @@ -2761,7 +2759,7 @@ EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection, std::vector< eeTransliterationChgData > aChanges; eeTransliterationChgData aChgData; - if (nTransliterationMode == i18n::TransliterationModulesExtra::TITLE_CASE) + if (nTransliterationMode == TransliterationFlags::TITLE_CASE) { // for 'capitalize every word' we need to iterate over each word @@ -2826,7 +2824,7 @@ EditSelection ImpEditEngine::TransliterateText( const EditSelection& rSelection, } DBG_ASSERT( nCurrentEnd >= aEndBndry.endPos, "failed to reach end of transliteration" ); } - else if (nTransliterationMode == i18n::TransliterationModulesExtra::SENTENCE_CASE) + else if (nTransliterationMode == TransliterationFlags::SENTENCE_CASE) { // for 'sentence case' we need to iterate sentence by sentence diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index fdd66c356ad8..dbf222d004a3 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -24,6 +24,7 @@ #include <com/sun/star/lang/Locale.hpp> #include <tools/urlobj.hxx> #include <i18nlangtag/mslangid.hxx> +#include <i18nutil/transliteration.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> #include <sot/storinfo.hxx> @@ -214,8 +215,8 @@ static TransliterationWrapper& GetIgnoreTranslWrapper() { static int bIsInit = 0; static TransliterationWrapper aWrp( ::comphelper::getProcessComponentContext(), - css::i18n::TransliterationModules_IGNORE_KANA | - css::i18n::TransliterationModules_IGNORE_WIDTH ); + TransliterationFlags::IGNORE_KANA | + TransliterationFlags::IGNORE_WIDTH ); if( !bIsInit ) { aWrp.loadModuleIfNeeded( GetAppLang().getLanguageType() ); diff --git a/editeng/source/outliner/outlvw.cxx b/editeng/source/outliner/outlvw.cxx index bf061d340fff..a08eb17d641b 100644 --- a/editeng/source/outliner/outlvw.cxx +++ b/editeng/source/outliner/outlvw.cxx @@ -1293,7 +1293,7 @@ sal_Int32 OutlinerView::StartSearchAndReplace( const SvxSearchItem& rSearchItem return pEditView->StartSearchAndReplace( rSearchItem ); } -void OutlinerView::TransliterateText( sal_Int32 nTransliterationMode ) +void OutlinerView::TransliterateText( TransliterationFlags nTransliterationMode ) { pEditView->TransliterateText( nTransliterationMode ); } diff --git a/forms/source/xforms/computedexpression.cxx b/forms/source/xforms/computedexpression.cxx index 68975c26e028..96d981224c09 100644 --- a/forms/source/xforms/computedexpression.cxx +++ b/forms/source/xforms/computedexpression.cxx @@ -31,6 +31,7 @@ #include <osl/diagnose.h> +#include <i18nutil/searchopt.hxx> #include <unotools/textsearch.hxx> #include <comphelper/processfactory.hxx> @@ -40,7 +41,6 @@ using com::sun::star::xml::xpath::XXPathAPI; using com::sun::star::xml::xpath::XPathExtension; using com::sun::star::xml::xpath::XXPathExtension; using com::sun::star::xml::xpath::XPathObjectType_XPATH_UNDEFINED; -using com::sun::star::util::SearchOptions2; namespace xforms @@ -74,7 +74,7 @@ bool ComputedExpression::_checkExpression( const sal_Char* pExpression ) const assert(pExpression && "no expression?"); // call RegExp engine - SearchOptions2 aSearchOptions; + i18nutil::SearchOptions2 aSearchOptions; aSearchOptions.AlgorithmType2 = css::util::SearchAlgorithms2::REGEXP; aSearchOptions.searchString = OUString( pExpression, strlen(pExpression), RTL_TEXTENCODING_ASCII_US ); utl::TextSearch aTextSearch( aSearchOptions ); diff --git a/i18npool/inc/transliteration_caseignore.hxx b/i18npool/inc/transliteration_caseignore.hxx index 93c91ea05703..dff9a94b7f63 100644 --- a/i18npool/inc/transliteration_caseignore.hxx +++ b/i18npool/inc/transliteration_caseignore.hxx @@ -49,7 +49,7 @@ public: const OUString& s2) override; protected: - TransliterationModules moduleLoaded; + TransliterationFlags moduleLoaded; private: /// @throws css::uno::RuntimeException sal_Int32 SAL_CALL compare( diff --git a/i18npool/qa/cppunit/test_textsearch.cxx b/i18npool/qa/cppunit/test_textsearch.cxx index a5a62436535d..1118b5a427e5 100644 --- a/i18npool/qa/cppunit/test_textsearch.cxx +++ b/i18npool/qa/cppunit/test_textsearch.cxx @@ -25,6 +25,7 @@ #include <com/sun/star/util/XTextSearch2.hpp> #include <com/sun/star/i18n/Transliteration.hpp> #include <unotest/bootstrapfixturebase.hxx> +#include <i18nutil/transliteration.hxx> #include <unicode/regex.h> @@ -127,8 +128,8 @@ void TestTextSearch::testSearches() CPPUNIT_ASSERT_EQUAL( bStartRes, aRes.startOffset[0] ); CPPUNIT_ASSERT_EQUAL( bEndRes, aRes.endOffset[0] ); - aOptions.transliterateFlags = ::css::i18n::TransliterationModules::TransliterationModules_IGNORE_CASE - | ::css::i18n::TransliterationModules::TransliterationModules_IGNORE_WIDTH; + aOptions.transliterateFlags = (sal_Int32) (TransliterationFlags::IGNORE_CASE + | TransliterationFlags::IGNORE_WIDTH); aOptions.searchString = "([^ ]*)[ ]*([^ ]*)"; m_xSearch->setOptions(aOptions); aRes = m_xSearch->searchForward("11 22 33", 2, 7); diff --git a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx index 847434dc594d..e9a3e299bccc 100644 --- a/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx +++ b/i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx @@ -56,7 +56,6 @@ #include <rtl/ustrbuf.hxx> #include <com/sun/star/i18n/XTransliteration.hpp> #include <com/sun/star/i18n/TransliterationType.hpp> -#include <com/sun/star/i18n/TransliterationModulesNew.hpp> #include <com/sun/star/i18n/XLocaleData.hpp> #include <bullet.h> diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx index f1e09da1d075..6eef20d8aafb 100644 --- a/i18npool/source/search/textsearch.cxx +++ b/i18npool/source/search/textsearch.cxx @@ -36,6 +36,7 @@ #include <cppuhelper/factory.hxx> #include <cppuhelper/supportsservice.hxx> #include <cppuhelper/weak.hxx> +#include <i18nutil/transliteration.hxx> #include <rtl/ustrbuf.hxx> #include <sal/log.hxx> @@ -54,56 +55,56 @@ using namespace ::com::sun::star::lang; using namespace ::com::sun::star::i18n; using namespace ::com::sun::star; -const sal_Int32 COMPLEX_TRANS_MASK = - TransliterationModules_ignoreBaFa_ja_JP | - TransliterationModules_ignoreIterationMark_ja_JP | - TransliterationModules_ignoreTiJi_ja_JP | - TransliterationModules_ignoreHyuByu_ja_JP | - TransliterationModules_ignoreSeZe_ja_JP | - TransliterationModules_ignoreIandEfollowedByYa_ja_JP | - TransliterationModules_ignoreKiKuFollowedBySa_ja_JP | - TransliterationModules_ignoreProlongedSoundMark_ja_JP; +const TransliterationFlags COMPLEX_TRANS_MASK = + TransliterationFlags::ignoreBaFa_ja_JP | + TransliterationFlags::ignoreIterationMark_ja_JP | + TransliterationFlags::ignoreTiJi_ja_JP | + TransliterationFlags::ignoreHyuByu_ja_JP | + TransliterationFlags::ignoreSeZe_ja_JP | + TransliterationFlags::ignoreIandEfollowedByYa_ja_JP | + TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP | + TransliterationFlags::ignoreProlongedSoundMark_ja_JP; namespace { -sal_Int32 maskComplexTrans( sal_Int32 n ) +TransliterationFlags maskComplexTrans( TransliterationFlags n ) { // IGNORE_KANA and FULLWIDTH_HALFWIDTH are simple but need to take effect // in complex transliteration. return n & (COMPLEX_TRANS_MASK | // all set ignore bits - TransliterationModules_IGNORE_KANA | // plus IGNORE_KANA bit - TransliterationModules_FULLWIDTH_HALFWIDTH); // and the FULLWIDTH_HALFWIDTH value + TransliterationFlags::IGNORE_KANA | // plus IGNORE_KANA bit + TransliterationFlags::FULLWIDTH_HALFWIDTH); // and the FULLWIDTH_HALFWIDTH value } -bool isComplexTrans( sal_Int32 n ) +bool isComplexTrans( TransliterationFlags n ) { - return n & COMPLEX_TRANS_MASK; + return bool(n & COMPLEX_TRANS_MASK); } -sal_Int32 maskSimpleTrans( sal_Int32 n ) +TransliterationFlags maskSimpleTrans( TransliterationFlags n ) { return n & ~COMPLEX_TRANS_MASK; } -bool isSimpleTrans( sal_Int32 n ) +bool isSimpleTrans( TransliterationFlags n ) { - return maskSimpleTrans(n) != 0; + return bool(maskSimpleTrans(n)); } // Regex patterns are case sensitive. -sal_Int32 maskSimpleRegexTrans( sal_Int32 n ) +TransliterationFlags maskSimpleRegexTrans( TransliterationFlags n ) { - sal_Int32 m = (n & TransliterationModules_IGNORE_MASK) & ~TransliterationModules_IGNORE_CASE; - sal_Int32 v = n & TransliterationModules_NON_IGNORE_MASK; - if (v == TransliterationModules_UPPERCASE_LOWERCASE || v == TransliterationModules_LOWERCASE_UPPERCASE) - v = 0; + TransliterationFlags m = (n & TransliterationFlags::IGNORE_MASK) & ~TransliterationFlags::IGNORE_CASE; + TransliterationFlags v = n & TransliterationFlags::NON_IGNORE_MASK; + if (v == TransliterationFlags::UPPERCASE_LOWERCASE || v == TransliterationFlags::LOWERCASE_UPPERCASE) + v = TransliterationFlags::NONE; return (m | v) & ~COMPLEX_TRANS_MASK; } -bool isSimpleRegexTrans( sal_Int32 n ) +bool isSimpleRegexTrans( TransliterationFlags n ) { - return maskSimpleRegexTrans(n) != 0; + return bool(maskSimpleRegexTrans(n)); } }; @@ -144,27 +145,28 @@ void TextSearch::setOptions2( const SearchOptions2& rOptions ) pJumpTable2 = nullptr; maWildcardReversePattern.clear(); maWildcardReversePattern2.clear(); + TransliterationFlags transliterateFlags = (TransliterationFlags) aSrchPara.transliterateFlags; // Create Transliteration class - if( isSimpleTrans( aSrchPara.transliterateFlags) ) + if( isSimpleTrans( transliterateFlags) ) { if( !xTranslit.is() ) xTranslit.set( Transliteration::create( m_xContext ) ); xTranslit->loadModule( - (TransliterationModules) maskSimpleTrans( aSrchPara.transliterateFlags), + (TransliterationModules)maskSimpleTrans(transliterateFlags), aSrchPara.Locale); } else if( xTranslit.is() ) xTranslit = nullptr; // Create Transliteration for 2<->1, 2<->2 transliteration - if ( isComplexTrans( aSrchPara.transliterateFlags) ) + if ( isComplexTrans( transliterateFlags) ) { if( !xTranslit2.is() ) xTranslit2.set( Transliteration::create( m_xContext ) ); // Load transliteration module xTranslit2->loadModule( - (TransliterationModules) maskComplexTrans( aSrchPara.transliterateFlags), + (TransliterationModules) maskComplexTrans(transliterateFlags), aSrchPara.Locale); } @@ -176,17 +178,17 @@ void TextSearch::setOptions2( const SearchOptions2& rOptions ) // Transliterate search string. if (aSrchPara.AlgorithmType2 == SearchAlgorithms2::REGEXP) { - if (isSimpleRegexTrans( aSrchPara.transliterateFlags)) + if (isSimpleRegexTrans(transliterateFlags)) { - if (maskSimpleRegexTrans( aSrchPara.transliterateFlags) != - maskSimpleTrans( aSrchPara.transliterateFlags)) + if (maskSimpleRegexTrans(transliterateFlags) != + maskSimpleTrans(transliterateFlags)) { css::uno::Reference< XExtendedTransliteration > xTranslitPattern( Transliteration::create( m_xContext )); if (xTranslitPattern.is()) { xTranslitPattern->loadModule( - (TransliterationModules) maskSimpleRegexTrans( aSrchPara.transliterateFlags), + (TransliterationModules) maskSimpleRegexTrans(transliterateFlags), aSrchPara.Locale); sSrchStr = xTranslitPattern->transliterateString2String( aSrchPara.searchString, 0, aSrchPara.searchString.getLength()); @@ -205,11 +207,11 @@ void TextSearch::setOptions2( const SearchOptions2& rOptions ) } else { - if ( xTranslit.is() && isSimpleTrans( aSrchPara.transliterateFlags) ) + if ( xTranslit.is() && isSimpleTrans(transliterateFlags) ) sSrchStr = xTranslit->transliterateString2String( aSrchPara.searchString, 0, aSrchPara.searchString.getLength()); - if ( xTranslit2.is() && isComplexTrans( aSrchPara.transliterateFlags) ) + if ( xTranslit2.is() && isComplexTrans(transliterateFlags) ) sSrchStr2 = xTranslit2->transliterateString2String( aSrchPara.searchString, 0, aSrchPara.searchString.getLength()); } @@ -827,10 +829,11 @@ SearchResult TextSearch::NSrchBkwrd( const OUString& searchStr, sal_Int32 startP void TextSearch::RESrchPrepare( const css::util::SearchOptions2& rOptions) { + TransliterationFlags transliterateFlags = (TransliterationFlags)rOptions.transliterateFlags; // select the transliterated pattern string const OUString& rPatternStr = - (isSimpleTrans( rOptions.transliterateFlags) ? sSrchStr - : (isComplexTrans( rOptions.transliterateFlags) ? sSrchStr2 : rOptions.searchString)); + (isSimpleTrans(transliterateFlags) ? sSrchStr + : (isComplexTrans(transliterateFlags) ? sSrchStr2 : rOptions.searchString)); sal_uInt32 nIcuSearchFlags = UREGEX_UWORD; // request UAX#29 unicode capability // map css::util::SearchFlags to ICU uregex.h flags @@ -842,7 +845,7 @@ void TextSearch::RESrchPrepare( const css::util::SearchOptions2& rOptions) // Note that the search flag ALL_IGNORE_CASE is deprecated in UNO // probably because the transliteration flag IGNORE_CASE handles it as well. if( (rOptions.searchFlag & css::util::SearchFlags::ALL_IGNORE_CASE) != 0 - || (rOptions.transliterateFlags & TransliterationModules_IGNORE_CASE) != 0) + || (transliterateFlags & TransliterationFlags::IGNORE_CASE)) nIcuSearchFlags |= UREGEX_CASE_INSENSITIVE; UErrorCode nIcuErr = U_ZERO_ERROR; // assumption: transliteration didn't mangle regexp control chars diff --git a/i18npool/source/transliteration/transliteration_caseignore.cxx b/i18npool/source/transliteration/transliteration_caseignore.cxx index e6f0061efc8a..9ac4712ba233 100644 --- a/i18npool/source/transliteration/transliteration_caseignore.cxx +++ b/i18npool/source/transliteration/transliteration_caseignore.cxx @@ -22,6 +22,7 @@ #include <i18nutil/oneToOneMapping.hxx> #include <i18nutil/casefolding.hxx> +#include <i18nutil/transliteration.hxx> #include "transliteration_caseignore.hxx" @@ -33,7 +34,7 @@ namespace com { namespace sun { namespace star { namespace i18n { Transliteration_caseignore::Transliteration_caseignore() { nMappingType = MappingType::FullFolding; - moduleLoaded = (TransliterationModules)0; + moduleLoaded = TransliterationFlags::NONE; transliterationName = "case ignore (generic)"; implementationName = "com.sun.star.i18n.Transliteration.Transliteration_caseignore"; } @@ -41,7 +42,7 @@ Transliteration_caseignore::Transliteration_caseignore() void SAL_CALL Transliteration_caseignore::loadModule( TransliterationModules modName, const Locale& rLocale ) { - moduleLoaded = (TransliterationModules) (moduleLoaded|modName); + moduleLoaded |= (TransliterationFlags)modName; aLocale = rLocale; } diff --git a/i18nutil/source/utility/casefolding.cxx b/i18nutil/source/utility/casefolding.cxx index 22bce0925594..1f6c0608471a 100644 --- a/i18nutil/source/utility/casefolding.cxx +++ b/i18nutil/source/utility/casefolding.cxx @@ -20,6 +20,7 @@ #include "i18nutil/casefolding.hxx" #include "casefolding_data.h" #include "i18nutil/widthfolding.hxx" +#include "i18nutil/transliteration.hxx" using namespace com::sun::star::lang; using namespace com::sun::star::uno; @@ -129,7 +130,7 @@ is_ja_voice_sound_mark(sal_Unicode& current, sal_Unicode next) return c != 0; } -sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal_Int32 len, MappingElement& e, Locale& aLocale, MappingType nMappingType, TransliterationModules moduleLoaded) +sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal_Int32 len, MappingElement& e, Locale& aLocale, MappingType nMappingType, TransliterationFlags moduleLoaded) { if( idx >= len ) { @@ -139,7 +140,7 @@ sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal sal_Unicode c; - if (moduleLoaded & TransliterationModules_IGNORE_CASE) { + if (moduleLoaded & TransliterationFlags::IGNORE_CASE) { if( e.current >= e.element.nmap ) { e.element = getValue(str, idx++, len, aLocale, nMappingType); e.current = 0; @@ -149,13 +150,13 @@ sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal c = *(str + idx++); } - if (moduleLoaded & TransliterationModules_IGNORE_KANA) { + if (moduleLoaded & TransliterationFlags::IGNORE_KANA) { if ((0x3040 <= c && c <= 0x3094) || (0x309d <= c && c <= 0x309f)) c += 0x60; } // composition: KA + voice-mark --> GA. see halfwidthToFullwidth.cxx for detail - if (moduleLoaded & TransliterationModules_IGNORE_WIDTH) { + if (moduleLoaded & TransliterationFlags::IGNORE_WIDTH) { static oneToOneMapping& half2fullTable = widthfolding::gethalf2fullTable(); c = half2fullTable[c]; if (0x3040 <= c && c <= 0x30ff && idx < len && diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx index 921b60f2c954..b9ce5226543b 100644 --- a/include/editeng/editeng.hxx +++ b/include/editeng/editeng.hxx @@ -110,7 +110,7 @@ struct EPaM; class DeletedNodeInfo; class ParaPortionList; enum class CharCompressType; - +enum class TransliterationFlags; /** values for: SfxItemSet GetAttribs( const ESelection& rSel, EditEngineAttribs nOnlyHardAttrib = EditEngineAttribs::All ); @@ -253,8 +253,8 @@ public: LanguageType GetLanguage(const EditPaM& rPaM) const; LanguageType GetLanguage( sal_Int32 nPara, sal_Int32 nPos ) const; - void TransliterateText( const ESelection& rSelection, sal_Int32 nTransliterationMode ); - EditSelection TransliterateText( const EditSelection& rSelection, sal_Int32 nTransliterationMode ); + void TransliterateText( const ESelection& rSelection, TransliterationFlags nTransliterationMode ); + EditSelection TransliterateText( const EditSelection& rSelection, TransliterationFlags nTransliterationMode ); void SetAsianCompressionMode( CharCompressType nCompression ); diff --git a/include/editeng/editview.hxx b/include/editeng/editview.hxx index adabc65dbf1b..15e53a141eb6 100644 --- a/include/editeng/editview.hxx +++ b/include/editeng/editview.hxx @@ -58,6 +58,7 @@ class SfxStyleSheet; namespace vcl { class Font; } class FontList; class OutputDevice; +enum class TransliterationFlags; namespace com { namespace sun { @@ -224,7 +225,7 @@ public: // for text conversion void StartTextConversion( LanguageType nSrcLang, LanguageType nDestLang, const vcl::Font *pDestFont, sal_Int32 nOptions, bool bIsInteractive, bool bMultipleDoc ); - void TransliterateText( sal_Int32 nTransliterationMode ); + void TransliterateText( TransliterationFlags nTransliterationMode ); bool IsCursorAtWrongSpelledWord(); bool IsWrongSpelledWordAtPos( const Point& rPosPixel, bool bMarkIfWrong = false ); diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx index 2c1f7810e85e..034de4776bfc 100644 --- a/include/editeng/outliner.hxx +++ b/include/editeng/outliner.hxx @@ -47,7 +47,6 @@ #include <editeng/paragraphdata.hxx> #include <o3tl/typed_flags_set.hxx> - #include <functional> #include <vector> @@ -84,26 +83,25 @@ class OverflowingText; class NonOverflowingText; class OutlinerViewShell; enum class CharCompressType; +enum class TransliterationFlags; +class SvxFieldData; namespace svl { class IUndoManager; } - -class SvxFieldData; - - namespace com { namespace sun { namespace star { namespace linguistic2 { class XSpellChecker1; class XHyphenator; }}}} namespace svx{ -struct SpellPortion; -typedef std::vector<SpellPortion> SpellPortions; + struct SpellPortion; + typedef std::vector<SpellPortion> SpellPortions; } - namespace basegfx { class B2DPolyPolygon; } + + // internal use only! enum class ParaFlag { @@ -300,7 +298,7 @@ public: // for text conversion void StartTextConversion( LanguageType nSrcLang, LanguageType nDestLang, const vcl::Font *pDestFont, sal_Int32 nOptions, bool bIsInteractive, bool bMultipleDoc ); - void TransliterateText( sal_Int32 nTransliterationMode ); + void TransliterateText( TransliterationFlags nTransliterationMode ); ESelection GetSelection(); diff --git a/include/i18nutil/casefolding.hxx b/include/i18nutil/casefolding.hxx index 31a6d4ffe586..493875a340a4 100644 --- a/include/i18nutil/casefolding.hxx +++ b/include/i18nutil/casefolding.hxx @@ -20,12 +20,13 @@ #define INCLUDED_I18NUTIL_CASEFOLDING_HXX #include <sal/types.h> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <com/sun/star/lang/Locale.hpp> #include <com/sun/star/uno/RuntimeException.hpp> #include <i18nutil/i18nutildllapi.h> #include <o3tl/typed_flags_set.hxx> +enum class TransliterationFlags; + enum class MappingType { NONE = 0x00, LowerToUpper = 0x01, // Upper to Lower mapping @@ -77,7 +78,7 @@ public: /// @throws css::uno::RuntimeException static Mapping& getConditionalValue(const sal_Unicode* str, sal_Int32 pos, sal_Int32 len, css::lang::Locale& aLocale, MappingType nMappingType); /// @throws css::uno::RuntimeException - static sal_Unicode getNextChar(const sal_Unicode *str, sal_Int32& idx, sal_Int32 len, MappingElement& e, css::lang::Locale& aLocale, MappingType nMappingtype, TransliterationModules moduleLoaded); + static sal_Unicode getNextChar(const sal_Unicode *str, sal_Int32& idx, sal_Int32 len, MappingElement& e, css::lang::Locale& aLocale, MappingType nMappingtype, TransliterationFlags moduleLoaded); }; diff --git a/include/i18nutil/searchopt.hxx b/include/i18nutil/searchopt.hxx new file mode 100644 index 000000000000..5fc8b1a9afdf --- /dev/null +++ b/include/i18nutil/searchopt.hxx @@ -0,0 +1,142 @@ +/* -*- 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_I18NUTIL_SEARCHOPT_HXX +#define INCLUDED_I18NUTIL_SEARCHOPT_HXX + +#include <sal/types.h> +#include "com/sun/star/lang/Locale.hpp" +#include "com/sun/star/util/SearchAlgorithms.hpp" +#include "com/sun/star/util/SearchOptions2.hpp" +#include <i18nutil/i18nutildllapi.h> +#include <i18nutil/transliteration.hxx> + +namespace i18nutil +{ + +/** + * This is a wrapper around com::sun::star::util::SearchOptions + * but using the more type-safe TransliterationFlags enum. + */ +struct I18NUTIL_DLLPUBLIC SAL_WARN_UNUSED SearchOptions { + css::util::SearchAlgorithms algorithmType; + sal_Int32 searchFlag; + OUString searchString; + OUString replaceString; + css::lang::Locale Locale; + sal_Int32 changedChars; + sal_Int32 deletedChars; + sal_Int32 insertedChars; + TransliterationFlags transliterateFlags; + + SearchOptions& operator=(css::util::SearchOptions const & other) + { + algorithmType = other.algorithmType; + searchFlag = other.searchFlag; + searchString = other.searchString; + replaceString = other.replaceString; + Locale = other.Locale; + changedChars = other.changedChars; + deletedChars = other.deletedChars; + insertedChars = other.insertedChars; + transliterateFlags = (TransliterationFlags)other.transliterateFlags; + return *this; + } + + SearchOptions() + : algorithmType(::css::util::SearchAlgorithms_ABSOLUTE) + , searchFlag(0) + , searchString() + , replaceString() + , Locale() + , changedChars(0) + , deletedChars(0) + , insertedChars(0) + , transliterateFlags(TransliterationFlags::NONE) + { + } + + SearchOptions(const css::util::SearchAlgorithms& algorithmType_, const sal_Int32 searchFlag_, + const OUString& searchString_, const OUString& replaceString_, + const css::lang::Locale& Locale_, + const sal_Int32 changedChars_, const sal_Int32 deletedChars_, const sal_Int32 insertedChars_, + const TransliterationFlags& transliterateFlags_) + : algorithmType(algorithmType_) + , searchFlag(searchFlag_) + , searchString(searchString_) + , replaceString(replaceString_) + , Locale(Locale_) + , changedChars(changedChars_) + , deletedChars(deletedChars_) + , insertedChars(insertedChars_) + , transliterateFlags(transliterateFlags_) + { + } +}; + +/** + * This is a wrapper around com::sun::star::util::SearchOptions and SearchOptions2, + * but using the more type-safe TransliterationFlags enum. + */ +struct I18NUTIL_DLLPUBLIC SAL_WARN_UNUSED SearchOptions2 : public SearchOptions { + + sal_Int16 AlgorithmType2; + sal_Int32 WildcardEscapeCharacter; + + SearchOptions2& operator=(css::util::SearchOptions2 const & other) + { + SearchOptions::operator=(other); + AlgorithmType2 = other.AlgorithmType2; + WildcardEscapeCharacter = other.WildcardEscapeCharacter; + return *this; + } + + + css::util::SearchOptions2 toUnoSearchOptions2() const + { + return css::util::SearchOptions2(algorithmType, searchFlag, + searchString, replaceString, + Locale, + changedChars, deletedChars, insertedChars, + (sal_Int32)transliterateFlags, + AlgorithmType2, WildcardEscapeCharacter); + } + + SearchOptions2() + : SearchOptions() + , AlgorithmType2(0) + , WildcardEscapeCharacter(0) + {} + + SearchOptions2(const css::util::SearchAlgorithms& algorithmType_, const sal_Int32 searchFlag_, + const OUString& searchString_, const OUString& replaceString_, + const css::lang::Locale& Locale_, + const sal_Int32 changedChars_, const sal_Int32 deletedChars_, const sal_Int32 insertedChars_, + const TransliterationFlags& transliterateFlags_, + const sal_Int16 AlgorithmType2_, const sal_Int32 WildcardEscapeCharacter_) + : SearchOptions(algorithmType_, searchFlag_, searchString_, replaceString_, Locale_, changedChars_, deletedChars_, insertedChars_, transliterateFlags_) + , AlgorithmType2(AlgorithmType2_) + , WildcardEscapeCharacter(WildcardEscapeCharacter_) + {} +}; + +}; // namespace + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/i18nutil/transliteration.hxx b/include/i18nutil/transliteration.hxx new file mode 100644 index 000000000000..b8cafa68f14f --- /dev/null +++ b/include/i18nutil/transliteration.hxx @@ -0,0 +1,132 @@ +/* -*- 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_I18NUTIL_TRANSLITERATION_HXX +#define INCLUDED_I18NUTIL_TRANSLITERATION_HXX + +#include <sal/types.h> +#include <com/sun/star/i18n/TransliterationModules.hpp> +#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> +#include <o3tl/typed_flags_set.hxx> + +/** + * This is a superset type of the com::sun::star::i18n::TransliterationModules and TransliterationModulesExtra, + * with some extra type checking + */ +enum class TransliterationFlags { + NONE = 0, + /// Transliterate a string from upper case to lower case + UPPERCASE_LOWERCASE = css::i18n::TransliterationModules_UPPERCASE_LOWERCASE, + /// Transliterate a string from lower case to upper case + LOWERCASE_UPPERCASE = css::i18n::TransliterationModules_LOWERCASE_UPPERCASE, + /// Transliterate a string from half width character to full width character + HALFWIDTH_FULLWIDTH = css::i18n::TransliterationModules_HALFWIDTH_FULLWIDTH, + /// Transliterate a string from full width character to half width character + FULLWIDTH_HALFWIDTH = css::i18n::TransliterationModules_FULLWIDTH_HALFWIDTH, + /// Transliterate a Japanese string from Katakana to Hiragana + KATAKANA_HIRAGANA = css::i18n::TransliterationModules_KATAKANA_HIRAGANA, + /// Transliterate a Japanese string from Hiragana to Katakana + HIRAGANA_KATAKANA = css::i18n::TransliterationModules_HIRAGANA_KATAKANA, + /// Transliterate an ASCII number string to Simplified Chinese lower case number string in spellout format + NumToTextLower_zh_CN = css::i18n::TransliterationModules_NumToTextLower_zh_CN, + /// Transliterate an ASCII number string to Simplified Chinese upper case number string in spellout format + NumToTextUpper_zh_CN = css::i18n::TransliterationModules_NumToTextUpper_zh_CN, + /// Transliterate an ASCII number string to Traditional Chinese lower case number string in spellout format + NumToTextLower_zh_TW = css::i18n::TransliterationModules_NumToTextLower_zh_TW, + /// Transliterate an ASCII number string to Traditional Chinese upper case number string in spellout format + NumToTextUpper_zh_TW = css::i18n::TransliterationModules_NumToTextUpper_zh_TW, + /// Transliterate an ASCII number string to formal Korean Hangul number string in spellout format + NumToTextFormalHangul_ko = css::i18n::TransliterationModules_NumToTextFormalHangul_ko, + /// Transliterate an ASCII number string to formal Korean Hanja lower case number string in spellout format + NumToTextFormalLower_ko = css::i18n::TransliterationModules_NumToTextFormalLower_ko, + /// Transliterate an ASCII number string to formal Korean Hanja upper case number string in spellout format + NumToTextFormalUpper_ko = css::i18n::TransliterationModules_NumToTextFormalUpper_ko, + + /** The first character of the sentence is put in upper case + */ + SENTENCE_CASE = css::i18n::TransliterationModulesExtra::SENTENCE_CASE, + + + /** The first character of the word is put in upper case. + * This one is part + */ + TITLE_CASE = css::i18n::TransliterationModulesExtra::TITLE_CASE, + + + /** All characters of the word are to change their case from small letters + * to capital letters and vice versa. + */ + TOGGLE_CASE = css::i18n::TransliterationModulesExtra::TOGGLE_CASE, + + NON_IGNORE_MASK = css::i18n::TransliterationModules_NON_IGNORE_MASK, + IGNORE_MASK = 0x7fffff00, + + /// Ignore case when comparing strings by transliteration service + IGNORE_CASE = css::i18n::TransliterationModules_IGNORE_CASE, + /// Ignore Hiragana and Katakana when comparing strings by transliteration service + IGNORE_KANA = css::i18n::TransliterationModules_IGNORE_KANA, // ja_JP + /// Ignore full width and half width character when comparing strings by transliteration service + IGNORE_WIDTH = css::i18n::TransliterationModules_IGNORE_WIDTH, // ja_JP + /// Ignore Japanese traditional Kanji character in Japanese fuzzy search + ignoreTraditionalKanji_ja_JP = css::i18n::TransliterationModules_ignoreTraditionalKanji_ja_JP, + /// Ignore Japanese traditional Katakana and Hiragana character in Japanese fuzzy search + ignoreTraditionalKana_ja_JP = css::i18n::TransliterationModules_ignoreTraditionalKana_ja_JP, + /// Ignore dash or minus sign in Japanese fuzzy search + ignoreMinusSign_ja_JP = css::i18n::TransliterationModules_ignoreMinusSign_ja_JP, + /// Ignore Hiragana and Katakana iteration mark in Japanese fuzzy search + ignoreIterationMark_ja_JP = css::i18n::TransliterationModules_ignoreIterationMark_ja_JP, + /// Ignore separator punctuations in Japanese fuzzy search + ignoreSeparator_ja_JP = css::i18n::TransliterationModules_ignoreSeparator_ja_JP, + /// Ignore Katakana and Hiragana Zi/Zi and Zu/Zu in Japanese fuzzy search + ignoreZiZu_ja_JP = css::i18n::TransliterationModules_ignoreZiZu_ja_JP, + /// Ignore Katakana and Hiragana Ba/Gua and Ha/Fa in Japanese fuzzy search + ignoreBaFa_ja_JP = css::i18n::TransliterationModules_ignoreBaFa_ja_JP, + /// Ignore Katakana and Hiragana Tsui/Tea/Ti and Dyi/Ji in Japanese fuzzy search + ignoreTiJi_ja_JP = css::i18n::TransliterationModules_ignoreTiJi_ja_JP, + /// Ignore Katakana and Hiragana Hyu/Fyu and Byu/Gyu in Japanese fuzzy search + ignoreHyuByu_ja_JP = css::i18n::TransliterationModules_ignoreHyuByu_ja_JP, + /// Ignore Katakana and Hiragana Se/Sye and Ze/Je in Japanese fuzzy search + ignoreSeZe_ja_JP = css::i18n::TransliterationModules_ignoreSeZe_ja_JP, + /// Ignore Katakana YA/A which follows the character in either I or E row in Japanese fuzzy search + ignoreIandEfollowedByYa_ja_JP = css::i18n::TransliterationModules_ignoreIandEfollowedByYa_ja_JP, + /// Ignore Katakana KI/KU which follows the character in SA column in Japanese fuzzy search + ignoreKiKuFollowedBySa_ja_JP = css::i18n::TransliterationModules_ignoreKiKuFollowedBySa_ja_JP, + /// Ignore Japanese normal and small sized character in Japanese fuzzy search + ignoreSize_ja_JP = css::i18n::TransliterationModules_ignoreSize_ja_JP, + /// Ignore Japanese prolonged sound mark in Japanese fuzzy search + ignoreProlongedSoundMark_ja_JP = css::i18n::TransliterationModules_ignoreProlongedSoundMark_ja_JP, + /// Ignore middle dot in Japanese fuzzy search + ignoreMiddleDot_ja_JP = css::i18n::TransliterationModules_ignoreMiddleDot_ja_JP, + /// Ignore white space characters, include space, TAB, return, etc. in Japanese fuzzy search + ignoreSpace_ja_JP = css::i18n::TransliterationModules_ignoreSpace_ja_JP, + /// transliterate Japanese small sized character to normal sized character + smallToLarge_ja_JP = css::i18n::TransliterationModules_smallToLarge_ja_JP, + /// transliterate Japanese normal sized character to small sized character + largeToSmall_ja_JP = css::i18n::TransliterationModules_largeToSmall_ja_JP, + + IGNORE_DIACRITICS_CTL = css::i18n::TransliterationModulesExtra::IGNORE_DIACRITICS_CTL, + IGNORE_KASHIDA_CTL = css::i18n::TransliterationModulesExtra::IGNORE_KASHIDA_CTL +}; +namespace o3tl { + template<> struct typed_flags<TransliterationFlags> : is_typed_flags<TransliterationFlags, 0x7fffffff> {}; +} + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svl/ondemand.hxx b/include/svl/ondemand.hxx index 69139b9cb119..2eeebdad2137 100644 --- a/include/svl/ondemand.hxx +++ b/include/svl/ondemand.hxx @@ -27,11 +27,11 @@ #include <unotools/collatorwrapper.hxx> #include <com/sun/star/i18n/CollatorOptions.hpp> #include <unotools/transliterationwrapper.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <unotools/nativenumberwrapper.hxx> #include <com/sun/star/uno/Reference.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <comphelper/processfactory.hxx> +#include <i18nutil/transliteration.hxx> /* On demand instantiation and initialization of several i18n wrappers, @@ -190,7 +190,7 @@ class OnDemandTransliterationWrapper { css::uno::Reference< css::uno::XComponentContext > m_xContext; LanguageType eLanguage; - css::i18n::TransliterationModules nType; + TransliterationFlags nType; mutable std::unique_ptr<::utl::TransliterationWrapper> pPtr; mutable bool bValid; @@ -199,7 +199,7 @@ class OnDemandTransliterationWrapper public: OnDemandTransliterationWrapper() : eLanguage( LANGUAGE_SYSTEM ) - , nType(css::i18n::TransliterationModules_END_OF_MODULE) + , nType(TransliterationFlags::NONE) , pPtr(nullptr) , bValid(false) , bInitialized(false) @@ -213,7 +213,7 @@ public: ) { m_xContext = rxContext; - nType = css::i18n::TransliterationModules_IGNORE_CASE; + nType = TransliterationFlags::IGNORE_CASE; changeLocale( eLang ); pPtr.reset(); bInitialized = true; diff --git a/include/svl/srchitem.hxx b/include/svl/srchitem.hxx index 2be6271dc8a2..1f6d5553d336 100644 --- a/include/svl/srchitem.hxx +++ b/include/svl/srchitem.hxx @@ -22,10 +22,10 @@ #include <sal/config.h> #include <svl/svldllapi.h> #include <com/sun/star/util/XSearchDescriptor.hpp> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchFlags.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> +#include <i18nutil/transliteration.hxx> +#include <i18nutil/searchopt.hxx> #include <unotools/configitem.hxx> #include <rsc/rscsfx.hxx> #include <svl/poolitem.hxx> @@ -63,7 +63,7 @@ class SVL_DLLPUBLIC SvxSearchItem : public SfxPoolItem, public utl::ConfigItem { - css::util::SearchOptions2 m_aSearchOpt; + i18nutil::SearchOptions2 m_aSearchOpt; SfxStyleFamily m_eFamily; // style family @@ -180,12 +180,13 @@ public: inline sal_uInt16 GetLEVLonger() const; inline void SetLEVLonger(sal_uInt16 nSet); - inline const css::util::SearchOptions2 & + inline const i18nutil::SearchOptions2 & GetSearchOptions() const; - inline void SetSearchOptions( const css::util::SearchOptions2 &rOpt ); + inline void SetSearchOptions( const i18nutil::SearchOptions2 &rOpt ); - inline sal_Int32 GetTransliterationFlags() const; - void SetTransliterationFlags( sal_Int32 nFlags ); + inline TransliterationFlags + GetTransliterationFlags() const; + void SetTransliterationFlags( TransliterationFlags nFlags ); inline bool IsMatchFullHalfWidthForms() const; void SetMatchFullHalfWidthForms( bool bVal ); @@ -227,7 +228,7 @@ bool SvxSearchItem::GetWordOnly() const bool SvxSearchItem::GetExact() const { - return 0 == (m_aSearchOpt.transliterateFlags & css::i18n::TransliterationModules_IGNORE_CASE); + return !(m_aSearchOpt.transliterateFlags & TransliterationFlags::IGNORE_CASE); } bool SvxSearchItem::GetSelection() const @@ -298,24 +299,24 @@ bool SvxSearchItem::IsLevenshtein() const return m_aSearchOpt.AlgorithmType2 == css::util::SearchAlgorithms2::APPROXIMATE; } -const css::util::SearchOptions2 & SvxSearchItem::GetSearchOptions() const +const i18nutil::SearchOptions2 & SvxSearchItem::GetSearchOptions() const { return m_aSearchOpt; } -void SvxSearchItem::SetSearchOptions( const css::util::SearchOptions2 &rOpt ) +void SvxSearchItem::SetSearchOptions( const i18nutil::SearchOptions2 &rOpt ) { m_aSearchOpt = rOpt; } -sal_Int32 SvxSearchItem::GetTransliterationFlags() const +TransliterationFlags SvxSearchItem::GetTransliterationFlags() const { return m_aSearchOpt.transliterateFlags; } bool SvxSearchItem::IsMatchFullHalfWidthForms() const { - return 0 != (m_aSearchOpt.transliterateFlags & css::i18n::TransliterationModules_IGNORE_WIDTH); + return bool(m_aSearchOpt.transliterateFlags & TransliterationFlags::IGNORE_WIDTH); } #endif diff --git a/include/svx/fmsrccfg.hxx b/include/svx/fmsrccfg.hxx index 55dbdf9f7b6e..2366d5b34ca2 100644 --- a/include/svx/fmsrccfg.hxx +++ b/include/svx/fmsrccfg.hxx @@ -24,6 +24,7 @@ #include <com/sun/star/uno/Sequence.hxx> #include <svx/svxdllapi.h> +enum class TransliterationFlags; #define MATCHING_ANYWHERE 0 #define MATCHING_BEGINNING 1 @@ -46,7 +47,8 @@ namespace svxform struct SVX_DLLPUBLIC FmSearchParams { protected: - sal_Int32 nTransliterationFlags; + TransliterationFlags + nTransliterationFlags; // they're way too sensitive for direct access .... public: @@ -77,8 +79,9 @@ namespace svxform bool isIgnoreWidthCJK( ) const; - sal_Int32 getTransliterationFlags( ) const { return nTransliterationFlags; } - void setTransliterationFlags( sal_Int32 _nFlags ) { nTransliterationFlags = _nFlags; } + TransliterationFlags + getTransliterationFlags( ) const { return nTransliterationFlags; } + void setTransliterationFlags( TransliterationFlags _nFlags ) { nTransliterationFlags = _nFlags; } bool isCaseSensitive( ) const; void setCaseSensitive( bool _bCase ); diff --git a/include/svx/fmsrcimp.hxx b/include/svx/fmsrcimp.hxx index 5eaaf4eff01d..a56933533b63 100644 --- a/include/svx/fmsrcimp.hxx +++ b/include/svx/fmsrcimp.hxx @@ -38,6 +38,8 @@ #include <deque> #include <vector> +enum class TransliterationFlags; + /** * struct FmSearchProgress - the owner of SearchEngine receives this structure for status updates * (at the end of the search) @@ -211,7 +213,7 @@ class SAL_WARN_UNUSED SVX_DLLPUBLIC FmSearchEngine final sal_uInt16 m_nPosition; // if not regular or levenshtein, then one of the MATCHING_... values - sal_Int32 m_nTransliterationFlags; + TransliterationFlags m_nTransliterationFlags; // member access @@ -253,8 +255,9 @@ public: sal_uInt16 GetLevLonger() const { return m_nLevLonger; } // all Lev. values will only be considered in case of m_bLevenshtein==sal_True - void SetTransliterationFlags(sal_Int32 _nFlags) { m_nTransliterationFlags = _nFlags; } - sal_Int32 GetTransliterationFlags() const { return m_nTransliterationFlags; } + void SetTransliterationFlags(TransliterationFlags _nFlags) { m_nTransliterationFlags = _nFlags; } + TransliterationFlags + GetTransliterationFlags() const { return m_nTransliterationFlags; } void SetPosition(sal_uInt16 nValue) { m_nPosition = nValue; } sal_uInt16 GetPosition() const { return m_nPosition; } diff --git a/include/svx/srchdlg.hxx b/include/svx/srchdlg.hxx index 25798fd0837c..3a0b1f953e2c 100644 --- a/include/svx/srchdlg.hxx +++ b/include/svx/srchdlg.hxx @@ -40,6 +40,8 @@ class SvxJSearchOptionsPage; class SvxSearchController; struct SearchDlg_Impl; enum class ModifyFlags; +enum class TransliterationFlags; + struct SearchAttrItem { @@ -133,7 +135,7 @@ public: const SearchAttrItemList* GetReplaceItemList() const { return pReplaceList; } - sal_Int32 GetTransliterationFlags() const; + TransliterationFlags GetTransliterationFlags() const; void SetDocWin( vcl::Window* pDocWin ) { mpDocWin = pDocWin; } vcl::Window* GetDocWin() { return mpDocWin; } @@ -231,7 +233,8 @@ private: SvxSearchController* pSearchSetController; SvxSearchController* pReplaceSetController; - mutable sal_Int32 nTransliterationFlags; + mutable TransliterationFlags + nTransliterationFlags; DECL_LINK( ModifyHdl_Impl, Edit&, void ); DECL_LINK( FlagHdl_Impl, Button*, void ); @@ -264,7 +267,7 @@ private: void SetModifyFlag_Impl( const Control* pCtrl ); void SaveToModule_Impl(); - void ApplyTransliterationFlags_Impl( sal_Int32 nSettings ); + void ApplyTransliterationFlags_Impl( TransliterationFlags nSettings ); }; #endif diff --git a/include/svx/svxdlg.hxx b/include/svx/svxdlg.hxx index b9e6eb4257f6..a88bed567381 100644 --- a/include/svx/svxdlg.hxx +++ b/include/svx/svxdlg.hxx @@ -24,9 +24,6 @@ #include <svx/zoom_def.hxx> #include <editeng/edtdlg.hxx> -class SdrModel; -class SdrView; - #include <svx/dstribut_enum.hxx> #include <svx/rectenum.hxx> #include <com/sun/star/container/XIndexContainer.hpp> @@ -42,11 +39,10 @@ namespace linguistic2{ class XThesaurus; class XHyphenator; }}}} - +class SdrModel; +class SdrView; class SvxSpellWrapper; -typedef VclPtr<SfxTabPage> (*CreateSvxDistributePage)(vcl::Window *pParent, const SfxItemSet &rAttrSet, SvxDistributeHorizontal eHor, SvxDistributeVertical eVer); -typedef const sal_uInt16* (*DialogGetRanges)(); - +enum class TransliterationFlags; struct ExchangeData; class INetURLObject; class GalleryTheme; @@ -58,6 +54,9 @@ class SdrObject; class SvxSpellWrapper; struct FmSearchContext; +typedef VclPtr<SfxTabPage> (*CreateSvxDistributePage)(vcl::Window *pParent, const SfxItemSet &rAttrSet, SvxDistributeHorizontal eHor, SvxDistributeVertical eVer); +typedef const sal_uInt16* (*DialogGetRanges)(); + typedef ::std::vector< OUString > TargetList; namespace svx{ class SpellDialogChildWindow;} @@ -163,7 +162,7 @@ class AbstractSvxJSearchOptionsDialog :public VclAbstractDialog protected: virtual ~AbstractSvxJSearchOptionsDialog() override = default; public: - virtual sal_Int32 GetTransliterationFlags() const = 0; + virtual TransliterationFlags GetTransliterationFlags() const = 0; }; class AbstractFmInputRecordNoDialog :public VclAbstractDialog @@ -396,7 +395,7 @@ public: )=0; virtual VclPtr<AbstractSvxJSearchOptionsDialog> CreateSvxJSearchOptionsDialog( vcl::Window* pParent, const SfxItemSet& rOptionsSet, - sal_Int32 nInitialFlags )=0; + TransliterationFlags nInitialFlags )=0; virtual VclPtr<AbstractFmInputRecordNoDialog> CreateFmInputRecordNoDialog() = 0; virtual VclPtr<AbstractSvxNewDictionaryDialog> CreateSvxNewDictionaryDialog( vcl::Window* pParent ) = 0; virtual VclPtr<VclAbstractDialog> CreateSvxEditDictionaryDialog( vcl::Window* pParent, diff --git a/include/unotools/caserotate.hxx b/include/unotools/caserotate.hxx index 36a93b1ee0d2..adc26a6eec8a 100644 --- a/include/unotools/caserotate.hxx +++ b/include/unotools/caserotate.hxx @@ -10,9 +10,10 @@ #define INCLUDED_UNOTOOLS_CASEROTATE_HXX #include <sal/config.h> - #include <unotools/unotoolsdllapi.h> +enum class TransliterationFlags; + //TODO Use XCharacterClassification::getStringType to determine the current //(possibly mixed) case type and rotate to the next one @@ -24,7 +25,7 @@ public: RotateTransliteration() : nF3ShiftCounter(0) { } - sal_uInt32 getNextMode(); + TransliterationFlags getNextMode(); }; #endif diff --git a/include/unotools/searchopt.hxx b/include/unotools/searchopt.hxx index fe8509b0cb42..6b43219094ac 100644 --- a/include/unotools/searchopt.hxx +++ b/include/unotools/searchopt.hxx @@ -24,6 +24,7 @@ #include <memory> class SvtSearchOptions_Impl; +enum class TransliterationFlags; class UNOTOOLS_DLLPUBLIC SvtSearchOptions { @@ -38,7 +39,7 @@ public: void Commit(); - sal_Int32 GetTransliterationFlags() const; + TransliterationFlags GetTransliterationFlags() const; // General Options diff --git a/include/unotools/textsearch.hxx b/include/unotools/textsearch.hxx index 145e6607d49c..71048c226f0d 100644 --- a/include/unotools/textsearch.hxx +++ b/include/unotools/textsearch.hxx @@ -26,7 +26,6 @@ #include <com/sun/star/uno/Reference.h> #include <com/sun/star/lang/Locale.hpp> #include <com/sun/star/util/XTextSearch2.hpp> -#include <com/sun/star/util/SearchOptions2.hpp> class CharClass; @@ -39,6 +38,11 @@ namespace com { } } } +namespace i18nutil { + struct SearchOptions; + struct SearchOptions2; +} +enum class TransliterationFlags; namespace utl { @@ -107,7 +111,7 @@ private: int nLEV_LongerZ; // asian flags - used for the transliteration - long nTransliterationFlags; + TransliterationFlags nTransliterationFlags; public: SearchParam( const OUString &rText, @@ -132,7 +136,7 @@ public: // signed return for API use sal_Int32 GetWildEscChar() const { return static_cast<sal_Int32>(m_cWildEscChar); } - long GetTransliterationFlags() const { return nTransliterationFlags; } + TransliterationFlags GetTransliterationFlags() const { return nTransliterationFlags; } }; // Utility class for searching a substring in a string. @@ -147,7 +151,7 @@ public: class UNOTOOLS_DLLPUBLIC TextSearch { static css::uno::Reference< css::util::XTextSearch2 > - getXTextSearch( const css::util::SearchOptions2& rPara ); + getXTextSearch( const i18nutil::SearchOptions2& rPara ); css::uno::Reference < css::util::XTextSearch2 > xTextSearch; @@ -161,7 +165,7 @@ public: TextSearch( const SearchParam & rPara, LanguageType nLanguage ); TextSearch( const SearchParam & rPara, const CharClass& rCClass ); - TextSearch( const css::util::SearchOptions2& rPara ); + TextSearch( const i18nutil::SearchOptions2& rPara ); ~TextSearch(); /* search in the (selected) text the search string: @@ -190,7 +194,7 @@ public: sal_Int32* pStart, sal_Int32* pEnd, css::util::SearchResult* pRes = nullptr ); - void SetLocale( const css::util::SearchOptions2& rOpt, + void SetLocale( const i18nutil::SearchOptions2& rOpt, const css::lang::Locale& rLocale ); /* replace back references in the replace string by the sub expressions from the search result */ @@ -200,7 +204,7 @@ public: SearchOptions2 yet. Better fix your module if you want to support wildcard search. */ - static css::util::SearchOptions2 UpgradeToSearchOptions2( const css::util::SearchOptions& rOptions ); + static i18nutil::SearchOptions2 UpgradeToSearchOptions2( const i18nutil::SearchOptions& rOptions ); }; diff --git a/include/unotools/transliterationwrapper.hxx b/include/unotools/transliterationwrapper.hxx index 2c2caa785dba..7508386bf3b7 100644 --- a/include/unotools/transliterationwrapper.hxx +++ b/include/unotools/transliterationwrapper.hxx @@ -30,6 +30,7 @@ namespace com { namespace sun { namespace star { class XComponentContext; } }}} +enum class TransliterationFlags; namespace utl { @@ -38,7 +39,7 @@ class UNOTOOLS_DLLPUBLIC TransliterationWrapper { css::uno::Reference< css::i18n::XExtendedTransliteration > xTrans; LanguageTag aLanguageTag; - sal_uInt32 nType; + TransliterationFlags nType; mutable bool bFirstCall; TransliterationWrapper( const TransliterationWrapper& ) = delete; @@ -49,11 +50,11 @@ class UNOTOOLS_DLLPUBLIC TransliterationWrapper public: TransliterationWrapper( const css::uno::Reference< css::uno::XComponentContext > & rxContext, - sal_uInt32 nType ); + TransliterationFlags nType ); ~TransliterationWrapper(); - sal_uInt32 getType() const { return nType; } + TransliterationFlags getType() const { return nType; } bool needLanguageForTheMode() const; diff --git a/include/vcl/textview.hxx b/include/vcl/textview.hxx index 5937e9066f44..435295d177fe 100644 --- a/include/vcl/textview.hxx +++ b/include/vcl/textview.hxx @@ -47,6 +47,9 @@ namespace com { namespace sun { namespace star { struct SearchOptions; } }}} +namespace i18nutil { + struct SearchOptions; +} struct ImpTextView; @@ -204,8 +207,8 @@ public: bool MatchGroup(); - bool Search( const css::util::SearchOptions& rSearchOptions, bool bForward ); - sal_uInt16 Replace( const css::util::SearchOptions& rSearchOptions, bool bAll, bool bForward ); + bool Search( const i18nutil::SearchOptions& rSearchOptions, bool bForward ); + sal_uInt16 Replace( const i18nutil::SearchOptions& rSearchOptions, bool bAll, bool bForward ); bool IndentBlock(); bool UnindentBlock(); diff --git a/include/vcl/xtextedt.hxx b/include/vcl/xtextedt.hxx index 3db5f6c7e313..23b0d05bf336 100644 --- a/include/vcl/xtextedt.hxx +++ b/include/vcl/xtextedt.hxx @@ -40,7 +40,7 @@ public: virtual ~ExtTextEngine() override; TextSelection MatchGroup( const TextPaM& rCursor ) const; - bool Search( TextSelection& rSel, const css::util::SearchOptions& rSearchOptions, bool bForward = true ); + bool Search( TextSelection& rSel, const i18nutil::SearchOptions& rSearchOptions, bool bForward = true ); }; #endif // INCLUDED_VCL_XTEXTEDT_HXX diff --git a/reportdesign/source/ui/inspection/GeometryHandler.cxx b/reportdesign/source/ui/inspection/GeometryHandler.cxx index bb111ce12f8f..32c4801bc250 100644 --- a/reportdesign/source/ui/inspection/GeometryHandler.cxx +++ b/reportdesign/source/ui/inspection/GeometryHandler.cxx @@ -32,6 +32,7 @@ #include "uistrings.hrc" #include "reportformula.hxx" +#include <i18nutil/searchopt.hxx> #include <unotools/textsearch.hxx> #include <unotools/configmgr.hxx> @@ -58,7 +59,6 @@ #include <com/sun/star/sdb/FilterDialog.hpp> #include <com/sun/star/sdb/SQLContext.hpp> #include <com/sun/star/sdbc/XConnection.hpp> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/MeasureUnit.hpp> #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> @@ -1889,7 +1889,7 @@ bool GeometryHandler::impl_isDefaultFunction_nothrow( const uno::Reference< repo try { const OUString sFormula( _xFunction->getFormula() ); - util::SearchOptions2 aSearchOptions; + i18nutil::SearchOptions2 aSearchOptions; aSearchOptions.AlgorithmType2 = util::SearchAlgorithms2::REGEXP; aSearchOptions.searchFlag = 0x00000100; ::std::vector< DefaultFunction >::const_iterator aIter = m_aDefaultFunctions.begin(); @@ -2108,7 +2108,7 @@ bool GeometryHandler::impl_isCounterFunction_throw(const OUString& _sQuotedFunct if ( aInitalFormula.IsPresent ) { const OUString sFormula( aFind.first->second.first->getFormula() ); - util::SearchOptions2 aSearchOptions; + i18nutil::SearchOptions2 aSearchOptions; aSearchOptions.AlgorithmType2 = util::SearchAlgorithms2::REGEXP; aSearchOptions.searchFlag = 0x00000100; aSearchOptions.searchString = m_aCounterFunction.m_sSearchString; diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx index a18b2eac1314..4b05b6ada4ca 100644 --- a/sc/inc/document.hxx +++ b/sc/inc/document.hxx @@ -1496,7 +1496,7 @@ public: InsertDeleteFlags nFlags, ScPasteFunc nFunction, bool bSkipEmpty, bool bAsLink ); - void TransliterateText( const ScMarkData& rMultiMark, sal_Int32 nType ); + void TransliterateText( const ScMarkData& rMultiMark, TransliterationFlags nType ); SC_DLLPUBLIC void InitUndo( ScDocument* pSrcDoc, SCTAB nTab1, SCTAB nTab2, bool bColInfo = false, bool bRowInfo = false ); diff --git a/sc/inc/global.hxx b/sc/inc/global.hxx index 77f929f0b1da..dd3fadf06bbf 100644 --- a/sc/inc/global.hxx +++ b/sc/inc/global.hxx @@ -37,12 +37,10 @@ struct ScCalcConfig; enum class SvtScriptType; enum class FormulaError : sal_uInt16; -#define SC_COLLATOR_IGNORES ( \ - css::i18n::CollatorOptions::CollatorOptions_IGNORE_CASE ) +#define SC_COLLATOR_IGNORES css::i18n::CollatorOptions::CollatorOptions_IGNORE_CASE -#define SC_TRANSLITERATION_IGNORECASE ( \ - css::i18n::TransliterationModules_IGNORE_CASE ) -#define SC_TRANSLITERATION_CASESENSE 0 +#define SC_TRANSLITERATION_IGNORECASE TransliterationFlags::IGNORE_CASE +#define SC_TRANSLITERATION_CASESENSE TransliterationFlags::NONE // Calc has lots of names... // Clipboard names are in so3/soapp.hxx now diff --git a/sc/inc/viewutil.hxx b/sc/inc/viewutil.hxx index 2819ace34952..af37b9620edb 100644 --- a/sc/inc/viewutil.hxx +++ b/sc/inc/viewutil.hxx @@ -27,7 +27,6 @@ class SfxBindings; class SvxFontItem; class SfxViewShell; class SfxViewFrame; - class ScChangeAction; class ScChangeViewSettings; class ScDocument; @@ -35,6 +34,9 @@ class ScAddress; class ScRange; class ScMarkData; enum class SvtScriptType; +enum class TransliterationFlags; + + enum class ScUpdateMode { All, Marks }; class SC_DLLPUBLIC ScViewUtil @@ -54,7 +56,7 @@ public: static sal_uInt16 GetEffLanguage( ScDocument* pDoc, const ScAddress& rPos ); - static sal_Int32 GetTransliterationType( sal_uInt16 nSlotID ); + static TransliterationFlags GetTransliterationType( sal_uInt16 nSlotID ); static bool HasFiltered( const ScRange& rRange, ScDocument* pDoc ); /** Fit a range to cover nRows number of unfiltered rows. diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index c715c5e76675..cf0e984ed83d 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -94,8 +94,6 @@ #include <utility> #include <vector> -#include <com/sun/star/i18n/TransliterationModules.hpp> - struct TestImpl { ScDocShellRef m_xDocShell; @@ -5912,7 +5910,7 @@ void Test::testTransliterateText() aMark.SetMarkArea(ScRange(0,0,0,0,2,0)); ScDocFunc& rFunc = getDocShell().GetDocFunc(); rFunc.TransliterateText( - aMark, i18n::TransliterationModules_LOWERCASE_UPPERCASE, true); + aMark, TransliterationFlags::LOWERCASE_UPPERCASE, true); CPPUNIT_ASSERT_EQUAL(OUString("MIKE"), m_pDoc->GetString(ScAddress(0,0,0))); CPPUNIT_ASSERT_EQUAL(OUString("NOAH"), m_pDoc->GetString(ScAddress(0,1,0))); diff --git a/sc/source/core/data/documen8.cxx b/sc/source/core/data/documen8.cxx index 30bcf9833114..59c611e62b5c 100644 --- a/sc/source/core/data/documen8.cxx +++ b/sc/source/core/data/documen8.cxx @@ -45,8 +45,6 @@ #include <vcl/virdev.hxx> #include <vcl/msgbox.hxx> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> - #include "inputopt.hxx" #include "global.hxx" #include "table.hxx" @@ -1184,7 +1182,7 @@ SfxBindings* ScDocument::GetViewBindings() return nullptr; } -void ScDocument::TransliterateText( const ScMarkData& rMultiMark, sal_Int32 nType ) +void ScDocument::TransliterateText( const ScMarkData& rMultiMark, TransliterationFlags nType ) { OSL_ENSURE( rMultiMark.IsMultiMarked(), "TransliterateText: no selection" ); @@ -1216,7 +1214,7 @@ void ScDocument::TransliterateText( const ScMarkData& rMultiMark, sal_Int32 nTyp // for performance reasons. if (aCell.meType == CELLTYPE_EDIT || (aCell.meType == CELLTYPE_STRING && - ( nType == i18n::TransliterationModulesExtra::SENTENCE_CASE || nType == i18n::TransliterationModulesExtra::TITLE_CASE))) + ( nType == TransliterationFlags::SENTENCE_CASE || nType == TransliterationFlags::TITLE_CASE))) { if (!pEngine) pEngine.reset(new ScFieldEditEngine(this, GetEnginePool(), GetEditPool())); diff --git a/sc/source/core/data/table6.cxx b/sc/source/core/data/table6.cxx index 7cf155714c8f..2d38b7b3b606 100644 --- a/sc/source/core/data/table6.cxx +++ b/sc/source/core/data/table6.cxx @@ -17,8 +17,6 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <com/sun/star/i18n/TransliterationModules.hpp> - #include <unotools/textsearch.hxx> #include <svl/srchitem.hxx> #include <editeng/editobj.hxx> @@ -800,7 +798,7 @@ bool ScTable::SearchAndReplace( else { // SearchParam no longer needed - SearchOptions contains all settings - css::util::SearchOptions2 aSearchOptions = rSearchItem.GetSearchOptions(); + i18nutil::SearchOptions2 aSearchOptions = rSearchItem.GetSearchOptions(); aSearchOptions.Locale = *ScGlobal::GetLocale(); if (aSearchOptions.searchString.isEmpty() || ( rSearchItem.GetRegExp() && aSearchOptions.searchString == "^$" ) ) @@ -814,8 +812,8 @@ bool ScTable::SearchAndReplace( // This is also done in SvxSearchDialog CommandHdl, but not in API object. if ( !rSearchItem.IsUseAsianOptions() ) aSearchOptions.transliterateFlags &= - ( css::i18n::TransliterationModules_IGNORE_CASE | - css::i18n::TransliterationModules_IGNORE_WIDTH ); + ( TransliterationFlags::IGNORE_CASE | + TransliterationFlags::IGNORE_WIDTH ); pSearchText = new utl::TextSearch( aSearchOptions ); diff --git a/sc/source/core/tool/cellkeytranslator.cxx b/sc/source/core/tool/cellkeytranslator.cxx index 013e640c6f86..8ccae176afd1 100644 --- a/sc/source/core/tool/cellkeytranslator.cxx +++ b/sc/source/core/tool/cellkeytranslator.cxx @@ -21,11 +21,10 @@ #include <comphelper/processfactory.hxx> #include <i18nlangtag/mslangid.hxx> #include <i18nlangtag/lang.h> +#include <i18nutil/transliteration.hxx> #include <rtl/ustring.hxx> #include <unotools/syslocale.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> - using ::com::sun::star::uno::Sequence; using ::std::list; @@ -171,7 +170,7 @@ void ScCellKeywordTranslator::transKeyword(OUString& rName, const lang::Locale* ScCellKeywordTranslator::ScCellKeywordTranslator() : maTransWrapper( ::comphelper::getProcessComponentContext(), - i18n::TransliterationModules_LOWERCASE_UPPERCASE ) + TransliterationFlags::LOWERCASE_UPPERCASE ) { init(); } diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index 626c9b34a955..57c15865716c 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -3338,7 +3338,7 @@ void ScInterpreter::ScChar() static OUString lcl_convertIntoHalfWidth( const OUString & rStr ) { static bool bFirstASCCall = true; - static utl::TransliterationWrapper aTrans( ::comphelper::getProcessComponentContext(), 0 ); + static utl::TransliterationWrapper aTrans( ::comphelper::getProcessComponentContext(), TransliterationFlags::NONE ); if( bFirstASCCall ) { @@ -3352,7 +3352,7 @@ static OUString lcl_convertIntoHalfWidth( const OUString & rStr ) static OUString lcl_convertIntoFullWidth( const OUString & rStr ) { static bool bFirstJISCall = true; - static utl::TransliterationWrapper aTrans( ::comphelper::getProcessComponentContext(), 0 ); + static utl::TransliterationWrapper aTrans( ::comphelper::getProcessComponentContext(), TransliterationFlags::NONE ); if( bFirstJISCall ) { diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index 5273985bd960..f2d85bcfaa5b 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -714,7 +714,7 @@ bool ScDocFunc::DeleteCell( return true; } -bool ScDocFunc::TransliterateText( const ScMarkData& rMark, sal_Int32 nType, +bool ScDocFunc::TransliterateText( const ScMarkData& rMark, TransliterationFlags nType, bool bApi ) { ScDocShellModificator aModificator( rDocShell ); diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx index 34e2f3b81637..7d35de73891d 100644 --- a/sc/source/ui/drawfunc/drtxtob.cxx +++ b/sc/source/ui/drawfunc/drtxtob.cxx @@ -1188,8 +1188,8 @@ void ScDrawTextObjectBar::GetAttrState( SfxItemSet& rDestSet ) void ScDrawTextObjectBar::ExecuteTrans( SfxRequest& rReq ) { - sal_Int32 nType = ScViewUtil::GetTransliterationType( rReq.GetSlot() ); - if ( nType ) + TransliterationFlags nType = ScViewUtil::GetTransliterationType( rReq.GetSlot() ); + if ( nType != TransliterationFlags::NONE ) { ScDrawView* pView = pViewData->GetScDrawView(); OutlinerView* pOutView = pView->GetTextEditOutlinerView(); diff --git a/sc/source/ui/inc/docfunc.hxx b/sc/source/ui/inc/docfunc.hxx index 0c5f19899d84..d3ec7e935ef1 100644 --- a/sc/source/ui/inc/docfunc.hxx +++ b/sc/source/ui/inc/docfunc.hxx @@ -46,11 +46,10 @@ struct ScCellMergeOption; class ScConditionalFormat; class ScConditionalFormatList; class ScUndoRemoveMerge; +enum class TransliterationFlags; namespace sc { - -struct ColRowSpan; - + struct ColRowSpan; } class ScDocFunc @@ -92,7 +91,7 @@ public: bool DeleteCell( const ScAddress& rPos, const ScMarkData& rMark, InsertDeleteFlags nFlags, bool bRecord ); - bool TransliterateText( const ScMarkData& rMark, sal_Int32 nType, + bool TransliterateText( const ScMarkData& rMark, TransliterationFlags nType, bool bApi ); bool SetNormalString( bool& o_rbNumFmtSet, const ScAddress& rPos, const OUString& rText, bool bApi ); diff --git a/sc/source/ui/inc/undoblk.hxx b/sc/source/ui/inc/undoblk.hxx index 4be768e47de1..76e4433d7e80 100644 --- a/sc/source/ui/inc/undoblk.hxx +++ b/sc/source/ui/inc/undoblk.hxx @@ -846,7 +846,7 @@ class ScUndoTransliterate: public ScBlockUndo { public: ScUndoTransliterate( ScDocShell* pNewDocShell, const ScMarkData& rMark, - ScDocument* pNewUndoDoc, sal_Int32 nType ); + ScDocument* pNewUndoDoc, TransliterationFlags nType ); virtual ~ScUndoTransliterate() override; virtual void Undo() override; @@ -860,7 +860,8 @@ private: ScMarkData aMarkData; std::unique_ptr<ScDocument> pUndoDoc; - sal_Int32 nTransliterationType; + TransliterationFlags + nTransliterationType; }; class ScUndoClearItems: public ScBlockUndo diff --git a/sc/source/ui/inc/viewfunc.hxx b/sc/source/ui/inc/viewfunc.hxx index 59f7af27de2c..57f9a277d369 100644 --- a/sc/source/ui/inc/viewfunc.hxx +++ b/sc/source/ui/inc/viewfunc.hxx @@ -231,7 +231,7 @@ public: void FillCrossDblClick(); void ConvertFormulaToValue(); - void TransliterateText( sal_Int32 nType ); + void TransliterateText( TransliterationFlags nType ); ScAutoFormatData* CreateAutoFormatData(); void AutoFormat( sal_uInt16 nFormatNo ); diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx index 46b5d47fa3ee..8ab8095a52da 100644 --- a/sc/source/ui/undo/undoblk.cxx +++ b/sc/source/ui/undo/undoblk.cxx @@ -1913,7 +1913,7 @@ bool ScUndoIndent::CanRepeat(SfxRepeatTarget& rTarget) const } ScUndoTransliterate::ScUndoTransliterate( ScDocShell* pNewDocShell, const ScMarkData& rMark, - ScDocument* pNewUndoDoc, sal_Int32 nType ) : + ScDocument* pNewUndoDoc, TransliterationFlags nType ) : ScBlockUndo( pNewDocShell, lcl_GetMultiMarkRange(rMark), SC_UNDO_AUTOHEIGHT ), aMarkData( rMark ), pUndoDoc( pNewUndoDoc ), diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index 88c6fbc49db9..a6810dbd125d 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -98,8 +98,6 @@ #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <cppuhelper/bootstrap.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <memory> @@ -2593,8 +2591,8 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) void ScCellShell::ExecuteTrans( SfxRequest& rReq ) { - sal_Int32 nType = ScViewUtil::GetTransliterationType( rReq.GetSlot() ); - if ( nType ) + TransliterationFlags nType = ScViewUtil::GetTransliterationType( rReq.GetSlot() ); + if ( nType != TransliterationFlags::NONE ) { GetViewData()->GetView()->TransliterateText( nType ); rReq.Done(); diff --git a/sc/source/ui/view/editsh.cxx b/sc/source/ui/view/editsh.cxx index 49d20e7ab526..03a0c6d15b9c 100644 --- a/sc/source/ui/view/editsh.cxx +++ b/sc/source/ui/view/editsh.cxx @@ -1287,8 +1287,8 @@ void ScEditShell::GetUndoState(SfxItemSet &rSet) void ScEditShell::ExecuteTrans( SfxRequest& rReq ) { - sal_Int32 nType = ScViewUtil::GetTransliterationType( rReq.GetSlot() ); - if ( nType ) + TransliterationFlags nType = ScViewUtil::GetTransliterationType( rReq.GetSlot() ); + if ( nType != TransliterationFlags::NONE ) { ScInputHandler* pHdl = GetMyInputHdl(); assert(pHdl && "no ScInputHandler"); diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx index 0965e89b8b2b..e0d381df6419 100644 --- a/sc/source/ui/view/viewfun2.cxx +++ b/sc/source/ui/view/viewfun2.cxx @@ -1608,7 +1608,7 @@ void ScViewFunc::ConvertFormulaToValue() pDocSh->PostPaint(aRange, PaintPartFlags::Grid); } -void ScViewFunc::TransliterateText( sal_Int32 nType ) +void ScViewFunc::TransliterateText( TransliterationFlags nType ) { ScMarkData aFuncMark = GetViewData().GetMarkData(); if ( !aFuncMark.IsMarked() && !aFuncMark.IsMultiMarked() ) diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx index fcd0e5c621a3..bd4afc6e47e3 100644 --- a/sc/source/ui/view/viewutil.cxx +++ b/sc/source/ui/view/viewutil.cxx @@ -37,9 +37,6 @@ #include <svl/stritem.hxx> #include <svl/eitem.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> - #include "viewutil.hxx" #include "global.hxx" #include "chgtrack.hxx" @@ -101,37 +98,37 @@ sal_uInt16 ScViewUtil::GetEffLanguage( ScDocument* pDoc, const ScAddress& rPos ) return eLnge; } -sal_Int32 ScViewUtil::GetTransliterationType( sal_uInt16 nSlotID ) +TransliterationFlags ScViewUtil::GetTransliterationType( sal_uInt16 nSlotID ) { - sal_Int32 nType = 0; + TransliterationFlags nType = TransliterationFlags::NONE; switch ( nSlotID ) { case SID_TRANSLITERATE_SENTENCE_CASE: - nType = css::i18n::TransliterationModulesExtra::SENTENCE_CASE; + nType = TransliterationFlags::SENTENCE_CASE; break; case SID_TRANSLITERATE_TITLE_CASE: - nType = css::i18n::TransliterationModulesExtra::TITLE_CASE; + nType = TransliterationFlags::TITLE_CASE; break; case SID_TRANSLITERATE_TOGGLE_CASE: - nType = css::i18n::TransliterationModulesExtra::TOGGLE_CASE; + nType = TransliterationFlags::TOGGLE_CASE; break; case SID_TRANSLITERATE_UPPER: - nType = css::i18n::TransliterationModules_LOWERCASE_UPPERCASE; + nType = TransliterationFlags::LOWERCASE_UPPERCASE; break; case SID_TRANSLITERATE_LOWER: - nType = css::i18n::TransliterationModules_UPPERCASE_LOWERCASE; + nType = TransliterationFlags::UPPERCASE_LOWERCASE; break; case SID_TRANSLITERATE_HALFWIDTH: - nType = css::i18n::TransliterationModules_FULLWIDTH_HALFWIDTH; + nType = TransliterationFlags::FULLWIDTH_HALFWIDTH; break; case SID_TRANSLITERATE_FULLWIDTH: - nType = css::i18n::TransliterationModules_HALFWIDTH_FULLWIDTH; + nType = TransliterationFlags::HALFWIDTH_FULLWIDTH; break; case SID_TRANSLITERATE_HIRAGANA: - nType = css::i18n::TransliterationModules_KATAKANA_HIRAGANA; + nType = TransliterationFlags::KATAKANA_HIRAGANA; break; case SID_TRANSLITERATE_KATAGANA: - nType = css::i18n::TransliterationModules_HIRAGANA_KATAKANA; + nType = TransliterationFlags::HIRAGANA_KATAKANA; break; } return nType; diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx index 59795acc7ed2..fd9c2b9089fd 100644 --- a/sd/source/ui/view/drviewse.cxx +++ b/sd/source/ui/view/drviewse.cxx @@ -20,9 +20,8 @@ #include <com/sun/star/presentation/XPresentation2.hpp> #include <com/sun/star/form/FormButtonType.hpp> #include <com/sun/star/beans/XPropertySet.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <i18nutil/unicode.hxx> +#include <i18nutil/transliteration.hxx> #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/uno/Any.hxx> @@ -1344,37 +1343,36 @@ void DrawViewShell::FuSupport(SfxRequest& rReq) OutlinerView* pOLV = GetView()->GetTextEditOutlinerView(); if( pOLV ) { - using namespace ::com::sun::star::i18n; - sal_Int32 nType = 0; + TransliterationFlags nType = TransliterationFlags::NONE; switch( nSId ) { case SID_TRANSLITERATE_SENTENCE_CASE: - nType = TransliterationModulesExtra::SENTENCE_CASE; + nType = TransliterationFlags::SENTENCE_CASE; break; case SID_TRANSLITERATE_TITLE_CASE: - nType = TransliterationModulesExtra::TITLE_CASE; + nType = TransliterationFlags::TITLE_CASE; break; case SID_TRANSLITERATE_TOGGLE_CASE: - nType = TransliterationModulesExtra::TOGGLE_CASE; + nType = TransliterationFlags::TOGGLE_CASE; break; case SID_TRANSLITERATE_UPPER: - nType = TransliterationModules_LOWERCASE_UPPERCASE; + nType = TransliterationFlags::LOWERCASE_UPPERCASE; break; case SID_TRANSLITERATE_LOWER: - nType = TransliterationModules_UPPERCASE_LOWERCASE; + nType = TransliterationFlags::UPPERCASE_LOWERCASE; break; case SID_TRANSLITERATE_HALFWIDTH: - nType = TransliterationModules_FULLWIDTH_HALFWIDTH; + nType = TransliterationFlags::FULLWIDTH_HALFWIDTH; break; case SID_TRANSLITERATE_FULLWIDTH: - nType = TransliterationModules_HALFWIDTH_FULLWIDTH; + nType = TransliterationFlags::HALFWIDTH_FULLWIDTH; break; case SID_TRANSLITERATE_HIRAGANA: - nType = TransliterationModules_KATAKANA_HIRAGANA; + nType = TransliterationFlags::KATAKANA_HIRAGANA; break; case SID_TRANSLITERATE_KATAGANA: - nType = TransliterationModules_HIRAGANA_KATAKANA; + nType = TransliterationFlags::HIRAGANA_KATAKANA; break; } diff --git a/sd/source/ui/view/outlnvsh.cxx b/sd/source/ui/view/outlnvsh.cxx index 3c1903637ca8..b499eb02a334 100644 --- a/sd/source/ui/view/outlnvsh.cxx +++ b/sd/source/ui/view/outlnvsh.cxx @@ -51,8 +51,6 @@ #include <svx/svdorect.hxx> #include <sot/formats.hxx> #include <com/sun/star/linguistic2/XThesaurus.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <editeng/unolingu.hxx> #include <comphelper/processfactory.hxx> #include <editeng/outlobj.hxx> @@ -593,37 +591,36 @@ void OutlineViewShell::FuSupport(SfxRequest &rReq) OutlinerView* pOLV = pOlView ? pOlView->GetViewByWindow( GetActiveWindow() ) : nullptr; if( pOLV ) { - using namespace ::com::sun::star::i18n; - sal_Int32 nType = 0; + TransliterationFlags nType = TransliterationFlags::NONE; switch( nSlot ) { case SID_TRANSLITERATE_SENTENCE_CASE: - nType = TransliterationModulesExtra::SENTENCE_CASE; + nType = TransliterationFlags::SENTENCE_CASE; break; case SID_TRANSLITERATE_TITLE_CASE: - nType = TransliterationModulesExtra::TITLE_CASE; + nType = TransliterationFlags::TITLE_CASE; break; case SID_TRANSLITERATE_TOGGLE_CASE: - nType = TransliterationModulesExtra::TOGGLE_CASE; + nType = TransliterationFlags::TOGGLE_CASE; break; case SID_TRANSLITERATE_UPPER: - nType = TransliterationModules_LOWERCASE_UPPERCASE; + nType = TransliterationFlags::LOWERCASE_UPPERCASE; break; case SID_TRANSLITERATE_LOWER: - nType = TransliterationModules_UPPERCASE_LOWERCASE; + nType = TransliterationFlags::UPPERCASE_LOWERCASE; break; case SID_TRANSLITERATE_HALFWIDTH: - nType = TransliterationModules_FULLWIDTH_HALFWIDTH; + nType = TransliterationFlags::FULLWIDTH_HALFWIDTH; break; case SID_TRANSLITERATE_FULLWIDTH: - nType = TransliterationModules_HALFWIDTH_FULLWIDTH; + nType = TransliterationFlags::HALFWIDTH_FULLWIDTH; break; case SID_TRANSLITERATE_HIRAGANA: - nType = TransliterationModules_KATAKANA_HIRAGANA; + nType = TransliterationFlags::KATAKANA_HIRAGANA; break; case SID_TRANSLITERATE_KATAGANA: - nType = TransliterationModules_HIRAGANA_KATAKANA; + nType = TransliterationFlags::HIRAGANA_KATAKANA; break; } diff --git a/svl/source/items/srchitem.cxx b/svl/source/items/srchitem.cxx index d60f07b6645b..32806948fc29 100644 --- a/svl/source/items/srchitem.cxx +++ b/svl/source/items/srchitem.cxx @@ -33,12 +33,10 @@ #include <com/sun/star/lang/Locale.hpp> #include <svl/memberid.hrc> #include <i18nlangtag/languagetag.hxx> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> using namespace utl; using namespace com::sun::star; using namespace com::sun::star::beans; -using namespace com::sun::star::i18n; using namespace com::sun::star::uno; using namespace com::sun::star::util; @@ -105,14 +103,14 @@ SvxSearchItem::SvxSearchItem( const sal_uInt16 nId ) : SfxPoolItem( nId ), ConfigItem( CFG_ROOT_NODE ), - m_aSearchOpt ( SearchAlgorithms_ABSOLUTE, + m_aSearchOpt ( SearchAlgorithms_ABSOLUTE, SearchFlags::LEV_RELAXED, OUString(), OUString(), lang::Locale(), - 2, 2, 2, - TransliterationModules_IGNORE_CASE, - SearchAlgorithms2::ABSOLUTE, '\\' ), + 2, 2, 2, + TransliterationFlags::IGNORE_CASE, + SearchAlgorithms2::ABSOLUTE, '\\' ), m_eFamily ( SfxStyleFamily::Para ), m_nCommand ( SvxSearchCmd::FIND ), m_nCellType ( SvxSearchCellType::FORMULA ), @@ -155,54 +153,53 @@ SvxSearchItem::SvxSearchItem( const sal_uInt16 nId ) : if (aOpt.IsWholeWordsOnly()) m_aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY; - sal_Int32 &rFlags = m_aSearchOpt.transliterateFlags; + TransliterationFlags& rFlags = m_aSearchOpt.transliterateFlags; if (!aOpt.IsMatchCase()) - rFlags |= TransliterationModules_IGNORE_CASE; + rFlags |= TransliterationFlags::IGNORE_CASE; if ( aOpt.IsMatchFullHalfWidthForms()) - rFlags |= TransliterationModules_IGNORE_WIDTH; + rFlags |= TransliterationFlags::IGNORE_WIDTH; if ( aOpt.IsIgnoreDiacritics_CTL()) - rFlags |= TransliterationModulesExtra::IGNORE_DIACRITICS_CTL ; + rFlags |= TransliterationFlags::IGNORE_DIACRITICS_CTL ; if ( aOpt.IsIgnoreKashida_CTL()) - rFlags |= TransliterationModulesExtra::IGNORE_KASHIDA_CTL ; + rFlags |= TransliterationFlags::IGNORE_KASHIDA_CTL ; if ( m_bAsianOptions ) { if ( aOpt.IsMatchHiraganaKatakana()) - rFlags |= TransliterationModules_IGNORE_KANA; + rFlags |= TransliterationFlags::IGNORE_KANA; if ( aOpt.IsMatchContractions()) - rFlags |= TransliterationModules_ignoreSize_ja_JP; + rFlags |= TransliterationFlags::ignoreSize_ja_JP; if ( aOpt.IsMatchMinusDashChoon()) - rFlags |= TransliterationModules_ignoreMinusSign_ja_JP; + rFlags |= TransliterationFlags::ignoreMinusSign_ja_JP; if ( aOpt.IsMatchRepeatCharMarks()) - rFlags |= TransliterationModules_ignoreIterationMark_ja_JP; + rFlags |= TransliterationFlags::ignoreIterationMark_ja_JP; if ( aOpt.IsMatchVariantFormKanji()) - rFlags |= TransliterationModules_ignoreTraditionalKanji_ja_JP; + rFlags |= TransliterationFlags::ignoreTraditionalKanji_ja_JP; if ( aOpt.IsMatchOldKanaForms()) - rFlags |= TransliterationModules_ignoreTraditionalKana_ja_JP; + rFlags |= TransliterationFlags::ignoreTraditionalKana_ja_JP; if ( aOpt.IsMatchDiziDuzu()) - rFlags |= TransliterationModules_ignoreZiZu_ja_JP; + rFlags |= TransliterationFlags::ignoreZiZu_ja_JP; if ( aOpt.IsMatchBavaHafa()) - rFlags |= TransliterationModules_ignoreBaFa_ja_JP; + rFlags |= TransliterationFlags::ignoreBaFa_ja_JP; if ( aOpt.IsMatchTsithichiDhizi()) - rFlags |= TransliterationModules_ignoreTiJi_ja_JP; + rFlags |= TransliterationFlags::ignoreTiJi_ja_JP; if ( aOpt.IsMatchHyuiyuByuvyu()) - rFlags |= TransliterationModules_ignoreHyuByu_ja_JP; + rFlags |= TransliterationFlags::ignoreHyuByu_ja_JP; if ( aOpt.IsMatchSesheZeje()) - rFlags |= TransliterationModules_ignoreSeZe_ja_JP; + rFlags |= TransliterationFlags::ignoreSeZe_ja_JP; if ( aOpt.IsMatchIaiya()) - rFlags |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP; + rFlags |= TransliterationFlags::ignoreIandEfollowedByYa_ja_JP; if ( aOpt.IsMatchKiku()) - rFlags |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP; + rFlags |= TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP; if ( aOpt.IsIgnorePunctuation()) - rFlags |= TransliterationModules_ignoreSeparator_ja_JP; + rFlags |= TransliterationFlags::ignoreSeparator_ja_JP; if ( aOpt.IsIgnoreWhitespace()) - rFlags |= TransliterationModules_ignoreSpace_ja_JP; + rFlags |= TransliterationFlags::ignoreSpace_ja_JP; if ( aOpt.IsIgnoreProlongedSoundMark()) - rFlags |= TransliterationModules_ignoreProlongedSoundMark_ja_JP; + rFlags |= TransliterationFlags::ignoreProlongedSoundMark_ja_JP; if ( aOpt.IsIgnoreMiddleDot()) - rFlags |= TransliterationModules_ignoreMiddleDot_ja_JP; + rFlags |= TransliterationFlags::ignoreMiddleDot_ja_JP; } - } @@ -244,7 +241,7 @@ SfxPoolItem* SvxSearchItem::Clone( SfxItemPool *) const //! used below -static bool equalsWithoutLocale( const SearchOptions2& rItem1, const SearchOptions2& rItem2 ) +static bool equalsWithoutLocale( const i18nutil::SearchOptions2& rItem1, const i18nutil::SearchOptions2& rItem2 ) { return rItem1.algorithmType == rItem2.algorithmType && rItem1.searchFlag == rItem2.searchFlag && @@ -307,9 +304,9 @@ void SvxSearchItem::ImplCommit() void SvxSearchItem::SetMatchFullHalfWidthForms( bool bVal ) { if (bVal) - m_aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_WIDTH; + m_aSearchOpt.transliterateFlags |= TransliterationFlags::IGNORE_WIDTH; else - m_aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_WIDTH; + m_aSearchOpt.transliterateFlags &= ~TransliterationFlags::IGNORE_WIDTH; } @@ -325,9 +322,9 @@ void SvxSearchItem::SetWordOnly( bool bVal ) void SvxSearchItem::SetExact( bool bVal ) { if (!bVal) - m_aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_CASE; + m_aSearchOpt.transliterateFlags |= TransliterationFlags::IGNORE_CASE; else - m_aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_CASE; + m_aSearchOpt.transliterateFlags &= ~TransliterationFlags::IGNORE_CASE; } @@ -400,7 +397,7 @@ void SvxSearchItem::SetLevenshtein( bool bVal ) } -void SvxSearchItem::SetTransliterationFlags( sal_Int32 nFlags ) +void SvxSearchItem::SetTransliterationFlags( TransliterationFlags nFlags ) { m_aSearchOpt.transliterateFlags = nFlags; } @@ -414,7 +411,7 @@ bool SvxSearchItem::QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId ) const { Sequence< PropertyValue > aSeq( SRCH_PARAMS ); aSeq[0].Name = SRCH_PARA_OPTIONS; - aSeq[0].Value <<= m_aSearchOpt; + aSeq[0].Value <<= m_aSearchOpt.toUnoSearchOptions2(); aSeq[1].Name = SRCH_PARA_FAMILY; aSeq[1].Value <<= sal_Int16( m_eFamily ); aSeq[2].Name = SRCH_PARA_COMMAND; @@ -481,7 +478,7 @@ bool SvxSearchItem::QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId ) const case MID_SEARCH_INSERTEDCHARS: rVal <<= m_aSearchOpt.insertedChars; break; case MID_SEARCH_TRANSLITERATEFLAGS: - rVal <<= m_aSearchOpt.transliterateFlags; break; + rVal <<= (sal_Int32)m_aSearchOpt.transliterateFlags; break; case MID_SEARCH_LOCALE: { sal_Int16 nLocale; @@ -519,8 +516,12 @@ bool SvxSearchItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) { if ( aSeq[i].Name == SRCH_PARA_OPTIONS ) { - if ( aSeq[i].Value >>= m_aSearchOpt ) + css::util::SearchOptions2 nTmpSearchOpt2; + if ( aSeq[i].Value >>= nTmpSearchOpt2 ) + { + m_aSearchOpt = nTmpSearchOpt2; ++nConvertedCount; + } } else if ( aSeq[i].Name == SRCH_PARA_FAMILY ) { @@ -643,7 +644,12 @@ bool SvxSearchItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId ) case MID_SEARCH_INSERTEDCHARS: bRet = (rVal >>= m_aSearchOpt.insertedChars); break; case MID_SEARCH_TRANSLITERATEFLAGS: - bRet = (rVal >>= m_aSearchOpt.transliterateFlags); break; + { + bRet = (rVal >>= nInt); + if (bRet) + m_aSearchOpt.transliterateFlags = (TransliterationFlags)nInt; + break; + } case MID_SEARCH_LOCALE: { bRet = (rVal >>= nInt); diff --git a/svx/source/dialog/srchdlg.cxx b/svx/source/dialog/srchdlg.cxx index 2b9f124a1810..35903aaf4b5f 100644 --- a/svx/source/dialog/srchdlg.cxx +++ b/svx/source/dialog/srchdlg.cxx @@ -37,8 +37,6 @@ #include <svl/ctloptions.hxx> #include <com/sun/star/awt/XWindow.hpp> #include <com/sun/star/container/XNameAccess.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <com/sun/star/frame/XDispatch.hpp> #include <com/sun/star/frame/XDispatchProvider.hpp> #include <com/sun/star/frame/XLayoutManager.hpp> @@ -270,7 +268,7 @@ SvxSearchDialog::SvxSearchDialog( vcl::Window* pParent, SfxChildWindow* pChildWi , pFamilyController(nullptr) , pSearchSetController(nullptr) , pReplaceSetController(nullptr) - , nTransliterationFlags(0x00000000) + , nTransliterationFlags(TransliterationFlags::NONE) { get(m_pSearchFrame, "searchframe"); get(m_pSearchLB, "searchterm"); @@ -581,16 +579,16 @@ bool SvxSearchDialog::Close() } -sal_Int32 SvxSearchDialog::GetTransliterationFlags() const +TransliterationFlags SvxSearchDialog::GetTransliterationFlags() const { if (!m_pMatchCaseCB->IsChecked()) - nTransliterationFlags |= TransliterationModules_IGNORE_CASE; + nTransliterationFlags |= TransliterationFlags::IGNORE_CASE; else - nTransliterationFlags &= ~TransliterationModules_IGNORE_CASE; + nTransliterationFlags &= ~TransliterationFlags::IGNORE_CASE; if ( !m_pJapMatchFullHalfWidthCB->IsChecked()) - nTransliterationFlags |= TransliterationModules_IGNORE_WIDTH; + nTransliterationFlags |= TransliterationFlags::IGNORE_WIDTH; else - nTransliterationFlags &= ~TransliterationModules_IGNORE_WIDTH; + nTransliterationFlags &= ~TransliterationFlags::IGNORE_WIDTH; return nTransliterationFlags; } @@ -600,12 +598,12 @@ void SvxSearchDialog::SetSaveToModule(bool b) } -void SvxSearchDialog::ApplyTransliterationFlags_Impl( sal_Int32 nSettings ) +void SvxSearchDialog::ApplyTransliterationFlags_Impl( TransliterationFlags nSettings ) { nTransliterationFlags = nSettings; - bool bVal = 0 != (nSettings & TransliterationModules_IGNORE_CASE); - m_pMatchCaseCB->Check(!bVal ); - bVal = 0 != (nSettings & TransliterationModules_IGNORE_WIDTH); + bool bVal(nSettings & TransliterationFlags::IGNORE_CASE); + m_pMatchCaseCB->Check( !bVal ); + bVal = bool(nSettings & TransliterationFlags::IGNORE_WIDTH); m_pJapMatchFullHalfWidthCB->Check( !bVal ); } @@ -1332,14 +1330,14 @@ IMPL_LINK( SvxSearchDialog, CommandHdl_Impl, Button *, pBtn, void ) pSearchItem->SetPattern(GetCheckBoxValue(m_pLayoutBtn)); pSearchItem->SetSelection(GetCheckBoxValue(m_pSelectionBtn)); pSearchItem->SetUseAsianOptions(GetCheckBoxValue(m_pJapOptionsCB)); - sal_Int32 nFlags = GetTransliterationFlags(); + TransliterationFlags nFlags = GetTransliterationFlags(); if( !pSearchItem->IsUseAsianOptions()) - nFlags &= (TransliterationModules_IGNORE_CASE | - TransliterationModules_IGNORE_WIDTH ); + nFlags &= (TransliterationFlags::IGNORE_CASE | + TransliterationFlags::IGNORE_WIDTH ); if (GetCheckBoxValue(m_pIgnoreDiacritics)) - nFlags |= TransliterationModulesExtra::IGNORE_DIACRITICS_CTL; + nFlags |= TransliterationFlags::IGNORE_DIACRITICS_CTL; if (GetCheckBoxValue(m_pIgnoreKashida)) - nFlags |= TransliterationModulesExtra::IGNORE_KASHIDA_CTL; + nFlags |= TransliterationFlags::IGNORE_KASHIDA_CTL; pSearchItem->SetTransliterationFlags( nFlags ); if ( !bWriter ) @@ -1424,7 +1422,7 @@ IMPL_LINK( SvxSearchDialog, CommandHdl_Impl, Button *, pBtn, void ) int nRet = aDlg->Execute(); if (RET_OK == nRet) //! true only if FillItemSet of SvxJSearchOptionsPage returns true { - sal_Int32 nFlags = aDlg->GetTransliterationFlags(); + TransliterationFlags nFlags = aDlg->GetTransliterationFlags(); pSearchItem->SetTransliterationFlags( nFlags ); ApplyTransliterationFlags_Impl( nFlags ); } @@ -2308,14 +2306,14 @@ void SvxSearchDialog::SaveToModule_Impl() aOpt.SetIgnoreKashida_CTL(GetCheckBoxValue(m_pIgnoreKashida)); aOpt.Commit(); - sal_Int32 nFlags = GetTransliterationFlags(); + TransliterationFlags nFlags = GetTransliterationFlags(); if( !pSearchItem->IsUseAsianOptions()) - nFlags &= (TransliterationModules_IGNORE_CASE | - TransliterationModules_IGNORE_WIDTH ); + nFlags &= (TransliterationFlags::IGNORE_CASE | + TransliterationFlags::IGNORE_WIDTH ); if (GetCheckBoxValue(m_pIgnoreDiacritics)) - nFlags |= TransliterationModulesExtra::IGNORE_DIACRITICS_CTL; + nFlags |= TransliterationFlags::IGNORE_DIACRITICS_CTL; if (GetCheckBoxValue(m_pIgnoreKashida)) - nFlags |= TransliterationModulesExtra::IGNORE_KASHIDA_CTL; + nFlags |= TransliterationFlags::IGNORE_KASHIDA_CTL; pSearchItem->SetTransliterationFlags( nFlags ); if ( !bWriter ) diff --git a/svx/source/form/fmsrccfg.cxx b/svx/source/form/fmsrccfg.cxx index ee71be3a63de..6181fc2c3cc6 100644 --- a/svx/source/form/fmsrccfg.cxx +++ b/svx/source/form/fmsrccfg.cxx @@ -20,18 +20,17 @@ #include "svx/fmsrccfg.hxx" #include <osl/diagnose.h> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <comphelper/processfactory.hxx> +#include <i18nutil/transliteration.hxx> using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::i18n; namespace svxform { // search parameters FmSearchParams::FmSearchParams() - :nTransliterationFlags( 0 ) + :nTransliterationFlags( TransliterationFlags::NONE ) ,nSearchForType ( 0 ) ,nPosition ( MATCHING_ANYWHERE ) ,nLevOther ( 2 ) @@ -47,29 +46,29 @@ namespace svxform ,bSoundsLikeCJK ( false ) { nTransliterationFlags = - TransliterationModules_ignoreSpace_ja_JP - | TransliterationModules_ignoreMiddleDot_ja_JP - | TransliterationModules_ignoreProlongedSoundMark_ja_JP - | TransliterationModules_ignoreSeparator_ja_JP - | TransliterationModules_IGNORE_CASE; + TransliterationFlags::ignoreSpace_ja_JP + | TransliterationFlags::ignoreMiddleDot_ja_JP + | TransliterationFlags::ignoreProlongedSoundMark_ja_JP + | TransliterationFlags::ignoreSeparator_ja_JP + | TransliterationFlags::IGNORE_CASE; } bool FmSearchParams::isIgnoreWidthCJK( ) const { - return 0 != (nTransliterationFlags & TransliterationModules_IGNORE_WIDTH); + return bool(nTransliterationFlags & TransliterationFlags::IGNORE_WIDTH); } bool FmSearchParams::isCaseSensitive( ) const { - return 0 == (nTransliterationFlags & TransliterationModules_IGNORE_CASE); + return !(nTransliterationFlags & TransliterationFlags::IGNORE_CASE); } void FmSearchParams::setCaseSensitive( bool _bCase ) { if ( _bCase ) - nTransliterationFlags &= ~TransliterationModules_IGNORE_CASE; + nTransliterationFlags &= ~TransliterationFlags::IGNORE_CASE; else - nTransliterationFlags |= TransliterationModules_IGNORE_CASE; + nTransliterationFlags |= TransliterationFlags::IGNORE_CASE; } // maps from ascii values to int values @@ -206,28 +205,28 @@ namespace svxform nPosition = lcl_implMapAsciiValue( m_sSearchPosition, lcl_getSearchPositionValueMap() ); // the transliteration flags - nTransliterationFlags = 0; - - if ( !m_bIsMatchCase ) nTransliterationFlags |= TransliterationModules_IGNORE_CASE; - if ( m_bIsMatchFullHalfWidthForms ) nTransliterationFlags |= TransliterationModules_IGNORE_WIDTH; - if ( m_bIsMatchHiraganaKatakana ) nTransliterationFlags |= TransliterationModules_IGNORE_KANA; - if ( m_bIsMatchContractions ) nTransliterationFlags |= TransliterationModules_ignoreSize_ja_JP; - if ( m_bIsMatchMinusDashCho_on ) nTransliterationFlags |= TransliterationModules_ignoreMinusSign_ja_JP; - if ( m_bIsMatchRepeatCharMarks ) nTransliterationFlags |= TransliterationModules_ignoreIterationMark_ja_JP; - if ( m_bIsMatchVariantFormKanji ) nTransliterationFlags |= TransliterationModules_ignoreTraditionalKanji_ja_JP; - if ( m_bIsMatchOldKanaForms ) nTransliterationFlags |= TransliterationModules_ignoreTraditionalKana_ja_JP; - if ( m_bIsMatch_DiZi_DuZu ) nTransliterationFlags |= TransliterationModules_ignoreZiZu_ja_JP; - if ( m_bIsMatch_BaVa_HaFa ) nTransliterationFlags |= TransliterationModules_ignoreBaFa_ja_JP; - if ( m_bIsMatch_TsiThiChi_DhiZi ) nTransliterationFlags |= TransliterationModules_ignoreTiJi_ja_JP; - if ( m_bIsMatch_HyuIyu_ByuVyu ) nTransliterationFlags |= TransliterationModules_ignoreHyuByu_ja_JP; - if ( m_bIsMatch_SeShe_ZeJe ) nTransliterationFlags |= TransliterationModules_ignoreSeZe_ja_JP; - if ( m_bIsMatch_IaIya ) nTransliterationFlags |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP; - if ( m_bIsMatch_KiKu ) nTransliterationFlags |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP; - - if ( m_bIsIgnorePunctuation ) nTransliterationFlags |= TransliterationModules_ignoreSeparator_ja_JP; - if ( m_bIsIgnoreWhitespace ) nTransliterationFlags |= TransliterationModules_ignoreSpace_ja_JP; - if ( m_bIsIgnoreProlongedSoundMark ) nTransliterationFlags |= TransliterationModules_ignoreProlongedSoundMark_ja_JP; - if ( m_bIsIgnoreMiddleDot ) nTransliterationFlags |= TransliterationModules_ignoreMiddleDot_ja_JP; + nTransliterationFlags = TransliterationFlags::NONE; + + if ( !m_bIsMatchCase ) nTransliterationFlags |= TransliterationFlags::IGNORE_CASE; + if ( m_bIsMatchFullHalfWidthForms ) nTransliterationFlags |= TransliterationFlags::IGNORE_WIDTH; + if ( m_bIsMatchHiraganaKatakana ) nTransliterationFlags |= TransliterationFlags::IGNORE_KANA; + if ( m_bIsMatchContractions ) nTransliterationFlags |= TransliterationFlags::ignoreSize_ja_JP; + if ( m_bIsMatchMinusDashCho_on ) nTransliterationFlags |= TransliterationFlags::ignoreMinusSign_ja_JP; + if ( m_bIsMatchRepeatCharMarks ) nTransliterationFlags |= TransliterationFlags::ignoreIterationMark_ja_JP; + if ( m_bIsMatchVariantFormKanji ) nTransliterationFlags |= TransliterationFlags::ignoreTraditionalKanji_ja_JP; + if ( m_bIsMatchOldKanaForms ) nTransliterationFlags |= TransliterationFlags::ignoreTraditionalKana_ja_JP; + if ( m_bIsMatch_DiZi_DuZu ) nTransliterationFlags |= TransliterationFlags::ignoreZiZu_ja_JP; + if ( m_bIsMatch_BaVa_HaFa ) nTransliterationFlags |= TransliterationFlags::ignoreBaFa_ja_JP; + if ( m_bIsMatch_TsiThiChi_DhiZi ) nTransliterationFlags |= TransliterationFlags::ignoreTiJi_ja_JP; + if ( m_bIsMatch_HyuIyu_ByuVyu ) nTransliterationFlags |= TransliterationFlags::ignoreHyuByu_ja_JP; + if ( m_bIsMatch_SeShe_ZeJe ) nTransliterationFlags |= TransliterationFlags::ignoreSeZe_ja_JP; + if ( m_bIsMatch_IaIya ) nTransliterationFlags |= TransliterationFlags::ignoreIandEfollowedByYa_ja_JP; + if ( m_bIsMatch_KiKu ) nTransliterationFlags |= TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP; + + if ( m_bIsIgnorePunctuation ) nTransliterationFlags |= TransliterationFlags::ignoreSeparator_ja_JP; + if ( m_bIsIgnoreWhitespace ) nTransliterationFlags |= TransliterationFlags::ignoreSpace_ja_JP; + if ( m_bIsIgnoreProlongedSoundMark ) nTransliterationFlags |= TransliterationFlags::ignoreProlongedSoundMark_ja_JP; + if ( m_bIsIgnoreMiddleDot ) nTransliterationFlags |= TransliterationFlags::ignoreMiddleDot_ja_JP; } void FmSearchConfigItem::implTranslateToConfig( ) @@ -240,26 +239,26 @@ namespace svxform // the transliteration flags - m_bIsMatchCase = ( 0 == ( nTransliterationFlags & TransliterationModules_IGNORE_CASE ) ); - m_bIsMatchFullHalfWidthForms = ( 0 != ( nTransliterationFlags & TransliterationModules_IGNORE_WIDTH ) ); - m_bIsMatchHiraganaKatakana = ( 0 != ( nTransliterationFlags & TransliterationModules_IGNORE_KANA ) ); - m_bIsMatchContractions = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreSize_ja_JP ) ); - m_bIsMatchMinusDashCho_on = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreMinusSign_ja_JP ) ); - m_bIsMatchRepeatCharMarks = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreIterationMark_ja_JP ) ); - m_bIsMatchVariantFormKanji = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreTraditionalKanji_ja_JP ) ); - m_bIsMatchOldKanaForms = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreTraditionalKana_ja_JP ) ); - m_bIsMatch_DiZi_DuZu = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreZiZu_ja_JP ) ); - m_bIsMatch_BaVa_HaFa = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreBaFa_ja_JP ) ); - m_bIsMatch_TsiThiChi_DhiZi = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreTiJi_ja_JP ) ); - m_bIsMatch_HyuIyu_ByuVyu = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreHyuByu_ja_JP ) ); - m_bIsMatch_SeShe_ZeJe = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreSeZe_ja_JP ) ); - m_bIsMatch_IaIya = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreIandEfollowedByYa_ja_JP ) ); - m_bIsMatch_KiKu = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreKiKuFollowedBySa_ja_JP ) ); - - m_bIsIgnorePunctuation = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreSeparator_ja_JP ) ); - m_bIsIgnoreWhitespace = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreSpace_ja_JP ) ); - m_bIsIgnoreProlongedSoundMark = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreProlongedSoundMark_ja_JP ) ); - m_bIsIgnoreMiddleDot = ( 0 != ( nTransliterationFlags & TransliterationModules_ignoreMiddleDot_ja_JP ) ); + m_bIsMatchCase = !( nTransliterationFlags & TransliterationFlags::IGNORE_CASE ); + m_bIsMatchFullHalfWidthForms = bool( nTransliterationFlags & TransliterationFlags::IGNORE_WIDTH ); + m_bIsMatchHiraganaKatakana = bool( nTransliterationFlags & TransliterationFlags::IGNORE_KANA ); + m_bIsMatchContractions = bool( nTransliterationFlags & TransliterationFlags::ignoreSize_ja_JP ); + m_bIsMatchMinusDashCho_on = bool( nTransliterationFlags & TransliterationFlags::ignoreMinusSign_ja_JP ); + m_bIsMatchRepeatCharMarks = bool( nTransliterationFlags & TransliterationFlags::ignoreIterationMark_ja_JP ); + m_bIsMatchVariantFormKanji = bool( nTransliterationFlags & TransliterationFlags::ignoreTraditionalKanji_ja_JP ); + m_bIsMatchOldKanaForms = bool( nTransliterationFlags & TransliterationFlags::ignoreTraditionalKana_ja_JP ); + m_bIsMatch_DiZi_DuZu = bool( nTransliterationFlags & TransliterationFlags::ignoreZiZu_ja_JP ); + m_bIsMatch_BaVa_HaFa = bool( nTransliterationFlags & TransliterationFlags::ignoreBaFa_ja_JP ); + m_bIsMatch_TsiThiChi_DhiZi = bool( nTransliterationFlags & TransliterationFlags::ignoreTiJi_ja_JP ); + m_bIsMatch_HyuIyu_ByuVyu = bool( nTransliterationFlags & TransliterationFlags::ignoreHyuByu_ja_JP ); + m_bIsMatch_SeShe_ZeJe = bool( nTransliterationFlags & TransliterationFlags::ignoreSeZe_ja_JP ); + m_bIsMatch_IaIya = bool( nTransliterationFlags & TransliterationFlags::ignoreIandEfollowedByYa_ja_JP ); + m_bIsMatch_KiKu = bool( nTransliterationFlags & TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP ); + + m_bIsIgnorePunctuation = bool( nTransliterationFlags & TransliterationFlags::ignoreSeparator_ja_JP ); + m_bIsIgnoreWhitespace = bool( nTransliterationFlags & TransliterationFlags::ignoreSpace_ja_JP ); + m_bIsIgnoreProlongedSoundMark = bool( nTransliterationFlags & TransliterationFlags::ignoreProlongedSoundMark_ja_JP ); + m_bIsIgnoreMiddleDot = bool( nTransliterationFlags & TransliterationFlags::ignoreMiddleDot_ja_JP ); } const FmSearchParams& FmSearchConfigItem::getParams() const diff --git a/svx/source/form/fmsrcimp.cxx b/svx/source/form/fmsrcimp.cxx index 1e1d3aa337c5..f84ceee8ab2b 100644 --- a/svx/source/form/fmsrcimp.cxx +++ b/svx/source/form/fmsrcimp.cxx @@ -29,12 +29,10 @@ #include <svx/dialmgr.hxx> #include <vcl/svapp.hxx> #include <unotools/textsearch.hxx> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchResult.hpp> #include <com/sun/star/util/SearchFlags.hpp> #include <com/sun/star/lang/Locale.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <com/sun/star/i18n/CollatorOptions.hpp> #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> @@ -51,6 +49,7 @@ #include <comphelper/numbers.hxx> #include <unotools/syslocale.hxx> +#include <i18nutil/searchopt.hxx> #define EQUAL_BOOKMARKS(a, b) a == b @@ -474,13 +473,13 @@ FmSearchEngine::SearchResult FmSearchEngine::SearchRegularApprox(const OUString& FieldCollection::const_iterator iterInitialField = iterFieldLoop; // Parameter sammeln - SearchOptions2 aParam; + i18nutil::SearchOptions2 aParam; aParam.AlgorithmType2 = m_bRegular ? SearchAlgorithms2::REGEXP : SearchAlgorithms2::APPROXIMATE; aParam.searchFlag = 0; aParam.transliterateFlags = GetTransliterationFlags(); if ( !GetTransliteration() ) { // if transliteration is not enabled, the only flags which matter are IGNORE_CASE and IGNORE_WIDTH - aParam.transliterateFlags &= TransliterationModules_IGNORE_CASE | TransliterationModules_IGNORE_WIDTH; + aParam.transliterateFlags &= TransliterationFlags::IGNORE_CASE | TransliterationFlags::IGNORE_WIDTH; } if (m_bLevenshtein) { @@ -605,7 +604,7 @@ FmSearchEngine::FmSearchEngine(const Reference< XComponentContext >& _rxContext, ,m_nLevShorter(0) ,m_nLevLonger(0) ,m_nPosition(MATCHING_ANYWHERE) - ,m_nTransliterationFlags(0) + ,m_nTransliterationFlags(TransliterationFlags::NONE) { fillControlTexts(arrFields); @@ -623,30 +622,30 @@ FmSearchEngine::~FmSearchEngine() void FmSearchEngine::SetIgnoreWidthCJK(bool bSet) { if (bSet) - m_nTransliterationFlags |= TransliterationModules_IGNORE_WIDTH; + m_nTransliterationFlags |= TransliterationFlags::IGNORE_WIDTH; else - m_nTransliterationFlags &= ~TransliterationModules_IGNORE_WIDTH; + m_nTransliterationFlags &= ~TransliterationFlags::IGNORE_WIDTH; } bool FmSearchEngine::GetIgnoreWidthCJK() const { - return 0 != (m_nTransliterationFlags & TransliterationModules_IGNORE_WIDTH); + return bool(m_nTransliterationFlags & TransliterationFlags::IGNORE_WIDTH); } void FmSearchEngine::SetCaseSensitive(bool bSet) { if (bSet) - m_nTransliterationFlags &= ~TransliterationModules_IGNORE_CASE; + m_nTransliterationFlags &= ~TransliterationFlags::IGNORE_CASE; else - m_nTransliterationFlags |= TransliterationModules_IGNORE_CASE; + m_nTransliterationFlags |= TransliterationFlags::IGNORE_CASE; } bool FmSearchEngine::GetCaseSensitive() const { - return 0 == (m_nTransliterationFlags & TransliterationModules_IGNORE_CASE); + return !(m_nTransliterationFlags & TransliterationFlags::IGNORE_CASE); } diff --git a/svx/source/tbxctrls/tbunosearchcontrollers.cxx b/svx/source/tbxctrls/tbunosearchcontrollers.cxx index e07d9f93a612..e3189a5459bd 100644 --- a/svx/source/tbxctrls/tbunosearchcontrollers.cxx +++ b/svx/source/tbxctrls/tbunosearchcontrollers.cxx @@ -39,8 +39,6 @@ #include <com/sun/star/frame/XDispatchProvider.hpp> #include <com/sun/star/frame/XLayoutManager.hpp> #include <com/sun/star/frame/XStatusListener.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> #include <com/sun/star/text/XTextRange.hpp> @@ -123,11 +121,14 @@ void impl_executeSearch( const css::uno::Reference< css::uno::XComponentContext lArgs[2].Value <<= (sal_Int32)0; lArgs[3].Name = "SearchItem.TransliterateFlags"; SvtCTLOptions aCTLOptions; - sal_Int32 nFlags = 0; - nFlags |= (!aMatchCase ? static_cast<int>(css::i18n::TransliterationModules_IGNORE_CASE) : 0); - nFlags |= (aCTLOptions.IsCTLFontEnabled() ? css::i18n::TransliterationModulesExtra::IGNORE_DIACRITICS_CTL:0 ); - nFlags |= (aCTLOptions.IsCTLFontEnabled() ? css::i18n::TransliterationModulesExtra::IGNORE_KASHIDA_CTL:0 ); - lArgs[3].Value <<= nFlags; + TransliterationFlags nFlags = TransliterationFlags::NONE; + if (!aMatchCase) + nFlags |= TransliterationFlags::IGNORE_CASE; + if (aCTLOptions.IsCTLFontEnabled()) + nFlags |= TransliterationFlags::IGNORE_DIACRITICS_CTL; + if (aCTLOptions.IsCTLFontEnabled()) + nFlags |= TransliterationFlags::IGNORE_KASHIDA_CTL; + lArgs[3].Value <<= (sal_Int32)nFlags; lArgs[4].Name = "SearchItem.Command"; lArgs[4].Value <<= (sal_Int16)(aFindAll ? SvxSearchCmd::FIND_ALL : SvxSearchCmd::FIND ); diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx index bf657c01926a..38c24ba78bf2 100644 --- a/sw/inc/PostItMgr.hxx +++ b/sw/inc/PostItMgr.hxx @@ -29,7 +29,6 @@ #include <swrect.hxx> #include <unotools/configitem.hxx> #include <unotools/options.hxx> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/uno/Any.hxx> #include <SidebarWindowsTypes.hxx> #include <svl/lstner.hxx> @@ -63,6 +62,7 @@ class SwFrame; namespace vcl { class Window; } struct ImplSVEvent; class OutlinerSearchable; +namespace i18nutil { struct SearchOptions2; } #define COL_NOTES_SIDEPANE_ARROW_ENABLED RGB_COLORDATA(0,0,0) #define COL_NOTES_SIDEPANE_ARROW_DISABLED RGB_COLORDATA(172,168,153) @@ -273,8 +273,8 @@ class SwPostItMgr: public SfxListener void CheckMetaText(); sal_uInt16 Replace(SvxSearchItem* pItem); - sal_uInt16 SearchReplace(const SwFormatField &pField, const css::util::SearchOptions2& rSearchOptions,bool bSrchForward); - sal_uInt16 FinishSearchReplace(const css::util::SearchOptions2& rSearchOptions,bool bSrchForward); + sal_uInt16 SearchReplace(const SwFormatField &pField, const i18nutil::SearchOptions2& rSearchOptions,bool bSrchForward); + sal_uInt16 FinishSearchReplace(const i18nutil::SearchOptions2& rSearchOptions,bool bSrchForward); void AssureStdModeAtShell(); diff --git a/sw/inc/crsrsh.hxx b/sw/inc/crsrsh.hxx index bcb9eb4a7357..2b03f7bbb734 100644 --- a/sw/inc/crsrsh.hxx +++ b/sw/inc/crsrsh.hxx @@ -67,14 +67,12 @@ class SwPostItField; class SwTextField; struct SwPosition; -namespace com { namespace sun { namespace star { namespace util { +namespace i18nutil { struct SearchOptions2; -} } } } - +} namespace com { namespace sun { namespace star { namespace text { class XTextRange; }}}} - namespace com { namespace sun { namespace star { namespace container { class XStringKeyMap; }}}} @@ -140,7 +138,7 @@ const int CRSR_POSOLD = 0x01, // cursor stays at old position CRSR_POSCHG = 0x02; // position changed by the layout /// Helperfunction to resolve backward references in regular expressions -OUString *ReplaceBackReferences( const css::util::SearchOptions2& rSearchOpt, SwPaM* pPam ); +OUString *ReplaceBackReferences( const i18nutil::SearchOptions2& rSearchOpt, SwPaM* pPam ); class SW_DLLPUBLIC SwCursorShell : public SwViewShell @@ -364,7 +362,7 @@ public: bool MoveColumn( SwWhichColumn, SwPosColumn ); bool MoveRegion( SwWhichRegion, SwMoveFnCollection const & ); - sal_uLong Find( const css::util::SearchOptions2& rSearchOpt, + sal_uLong Find( const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes, SwDocPositions eStart, SwDocPositions eEnd, bool& bCancel, @@ -379,7 +377,7 @@ public: SwDocPositions eStart, SwDocPositions eEnd, bool& bCancel, FindRanges eRng, - const css::util::SearchOptions2* pSearchOpt, + const i18nutil::SearchOptions2* pSearchOpt, const SfxItemSet* rReplSet ); // Position the Cursor diff --git a/sw/inc/editsh.hxx b/sw/inc/editsh.hxx index beb75f833aef..be04c6a52033 100644 --- a/sw/inc/editsh.hxx +++ b/sw/inc/editsh.hxx @@ -102,18 +102,19 @@ struct SwConversionArgs; enum class SvtScriptType; enum class SfxClassificationPolicyType; enum class RedlineFlags; +enum class TransliterationFlags; namespace com { namespace sun { namespace star { namespace uno { template < class > class Sequence; }}}} namespace svx{ -struct SpellPortion; -typedef std::vector<SpellPortion> SpellPortions; + struct SpellPortion; + typedef std::vector<SpellPortion> SpellPortions; } namespace sfx2{ -class LinkManager; + class LinkManager; } namespace sw { @@ -188,7 +189,7 @@ public: bool DelFullPara(); /// Change text to Upper/Lower/Hiragana/Katagana/... - void TransliterateText( sal_uInt32 nType ); + void TransliterateText( TransliterationFlags nType ); /// Count words in current selection. void CountWords( SwDocStat& rStat ) const; diff --git a/sw/inc/pam.hxx b/sw/inc/pam.hxx index 771e753d7b34..ca69c7a104f3 100644 --- a/sw/inc/pam.hxx +++ b/sw/inc/pam.hxx @@ -38,11 +38,9 @@ class SwNode; class SwContentNode; class SwPaM; class Point; - -namespace com { namespace sun { namespace star { namespace util { +namespace i18nutil { struct SearchOptions2; -} } } } - +} namespace utl { class TextSearch; } @@ -187,7 +185,7 @@ public: SwGoInDoc fnGo = GoInContent ); /// Search. - bool Find( const css::util::SearchOptions2& rSearchOpt, + bool Find( const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes, utl::TextSearch& rSText, SwMoveFnCollection const & fnMove = fnMoveForward, @@ -202,7 +200,7 @@ public: SwMoveFnCollection const & fnMove, const SwPaM *pPam, bool bInReadOnly, bool bMoveFirst ); - bool DoSearch( const css::util::SearchOptions2& rSearchOpt, utl::TextSearch& rSText, + bool DoSearch( const i18nutil::SearchOptions2& rSearchOpt, utl::TextSearch& rSText, SwMoveFnCollection const & fnMove, bool bSrchForward, bool bRegSearch, bool bChkEmptyPara, bool bChkParaEnd, sal_Int32 &nStart, sal_Int32 &nEnd, sal_Int32 nTextLen, SwNode* pNode, SwPaM* pPam); diff --git a/sw/inc/swcrsr.hxx b/sw/inc/swcrsr.hxx index 6eeaf657628d..f41c96c5c5c0 100644 --- a/sw/inc/swcrsr.hxx +++ b/sw/inc/swcrsr.hxx @@ -26,10 +26,9 @@ #include <cshtyp.hxx> struct SwCursor_SavePos; - -namespace com { namespace sun { namespace star { namespace util { +namespace i18nutil { struct SearchOptions2; -} } } } +} // Base structure for parameters of the find-methods. // Returns values of found-call. @@ -113,7 +112,7 @@ public: SwMoveFnCollection const & MakeFindRange( SwDocPositions, SwDocPositions, SwPaM* ) const; - sal_uLong Find( const css::util::SearchOptions2& rSearchOpt, + sal_uLong Find( const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes, SwDocPositions nStart, SwDocPositions nEnde, bool& bCancel, @@ -128,7 +127,7 @@ public: SwDocPositions nStart, SwDocPositions nEnde, bool& bCancel, FindRanges = FindRanges::InBody, - const css::util::SearchOptions2* pSearchOpt = nullptr, + const i18nutil::SearchOptions2* pSearchOpt = nullptr, const SfxItemSet* rReplSet = nullptr ); // UI versions diff --git a/sw/inc/unosrch.hxx b/sw/inc/unosrch.hxx index cd19de5657a7..73169cc85bda 100644 --- a/sw/inc/unosrch.hxx +++ b/sw/inc/unosrch.hxx @@ -30,9 +30,9 @@ class SwXTextDocument; class SwSearchProperties_Impl; class SfxItemSet; -namespace com{namespace sun{namespace star{namespace util{ +namespace i18nutil { struct SearchOptions2; -}}}} +} class SwXTextSearch : public cppu::WeakImplHelper < @@ -109,8 +109,7 @@ public: bool HasSearchAttributes() const; bool HasReplaceAttributes() const; - void FillSearchOptions( css::util::SearchOptions2& - rSearchOpt ) const; + void FillSearchOptions( i18nutil::SearchOptions2& rSearchOpt ) const; }; #endif diff --git a/sw/qa/core/macros-test.cxx b/sw/qa/core/macros-test.cxx index 88e4e1116304..ed2324a62053 100644 --- a/sw/qa/core/macros-test.cxx +++ b/sw/qa/core/macros-test.cxx @@ -39,6 +39,7 @@ #include <com/sun/star/awt/XControlModel.hpp> #include <com/sun/star/container/XIndexContainer.hpp> +#include <i18nutil/searchopt.hxx> #include <sfx2/app.hxx> #include <sfx2/docfilt.hxx> #include <sfx2/docfile.hxx> @@ -543,7 +544,7 @@ void SwMacrosTest::testFindReplace() pPaM->Move(fnMoveBackward, GoInDoc); bool bCancel(false); - util::SearchOptions2 opts( + i18nutil::SearchOptions2 opts( util::SearchAlgorithms_REGEXP, 65536, "$", @@ -552,7 +553,8 @@ void SwMacrosTest::testFindReplace() 2, 2, 2, - 1073745152, + TransliterationFlags::IGNORE_CASE | TransliterationFlags::IGNORE_WIDTH | + TransliterationFlags::IGNORE_KASHIDA_CTL | TransliterationFlags::IGNORE_DIACRITICS_CTL, util::SearchAlgorithms2::REGEXP, '\\'); diff --git a/sw/qa/core/uwriter.cxx b/sw/qa/core/uwriter.cxx index 9486e369e9e7..c0c45601fc8a 100644 --- a/sw/qa/core/uwriter.cxx +++ b/sw/qa/core/uwriter.cxx @@ -13,10 +13,9 @@ #include <rtl/strbuf.hxx> #include <osl/file.hxx> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> - #include <comphelper/processfactory.hxx> #include <comphelper/random.hxx> +#include <i18nutil/transliteration.hxx> #include <tools/urlobj.hxx> #include <unotools/tempfile.hxx> #include <unotools/transliterationwrapper.hxx> @@ -1145,7 +1144,7 @@ void SwDocTest::randomTest() } static OUString -translitTest(SwDoc & rDoc, SwPaM & rPaM, sal_uInt32 const nType) +translitTest(SwDoc & rDoc, SwPaM & rPaM, TransliterationFlags const nType) { utl::TransliterationWrapper aTrans( ::comphelper::getProcessComponentContext(), nType); @@ -1165,22 +1164,22 @@ void SwDocTest::testTransliterate() CPPUNIT_ASSERT_EQUAL(OUString("FOOBAR"), translitTest(*m_pDoc, aPaM, - i18n::TransliterationModules_LOWERCASE_UPPERCASE)); + TransliterationFlags::LOWERCASE_UPPERCASE)); CPPUNIT_ASSERT_EQUAL(OUString("Foobar"), translitTest(*m_pDoc, aPaM, - i18n::TransliterationModulesExtra::TITLE_CASE)); + TransliterationFlags::TITLE_CASE)); CPPUNIT_ASSERT_EQUAL(OUString("fOOBAR"), translitTest(*m_pDoc, aPaM, - i18n::TransliterationModulesExtra::TOGGLE_CASE)); + TransliterationFlags::TOGGLE_CASE)); CPPUNIT_ASSERT_EQUAL(OUString("foobar"), translitTest(*m_pDoc, aPaM, - i18n::TransliterationModules_UPPERCASE_LOWERCASE)); + TransliterationFlags::UPPERCASE_LOWERCASE)); CPPUNIT_ASSERT_EQUAL(OUString("Foobar"), translitTest(*m_pDoc, aPaM, - i18n::TransliterationModulesExtra::SENTENCE_CASE)); + TransliterationFlags::SENTENCE_CASE)); CPPUNIT_ASSERT_EQUAL(OUString("Foobar"), translitTest(*m_pDoc, aPaM, - i18n::TransliterationModules_HIRAGANA_KATAKANA)); + TransliterationFlags::HIRAGANA_KATAKANA)); } namespace diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx index 8e6479f20538..d9c76ba5c459 100644 --- a/sw/qa/extras/uiwriter/uiwriter.cxx +++ b/sw/qa/extras/uiwriter/uiwriter.cxx @@ -54,6 +54,8 @@ #include <editeng/scripttypeitem.hxx> #include <editeng/fontitem.hxx> #include <editeng/wghtitem.hxx> +#include <i18nutil/transliteration.hxx> +#include <i18nutil/searchopt.hxx> #include <reffld.hxx> #include <txatbase.hxx> #include <ftnidx.hxx> @@ -71,11 +73,9 @@ #include "com/sun/star/util/XNumberFormatTypes.hpp" #include "com/sun/star/util/NumberFormat.hpp" #include "com/sun/star/util/XNumberFormatsSupplier.hpp" -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchFlags.hpp> #include "com/sun/star/util/SearchAlgorithms.hpp" -#include "com/sun/star/i18n/TransliterationModulesExtra.hpp" #include "com/sun/star/sdbcx/XTablesSupplier.hpp" #include "com/sun/star/text/XParagraphCursor.hpp" #include "com/sun/star/util/XPropertyReplace.hpp" @@ -2005,7 +2005,7 @@ void SwUiWriterTest::testSearchWithTransliterate() SwPaM aPaM(aIdx); pDoc->getIDocumentContentOperations().InsertString(aPaM,"This is Other PARAGRAPH"); } - css::util::SearchOptions2 SearchOpt; + i18nutil::SearchOptions2 SearchOpt; SearchOpt.algorithmType = css::util::SearchAlgorithms_ABSOLUTE; SearchOpt.searchFlag = css::util::SearchFlags::ALL_IGNORE_CASE; SearchOpt.searchString = "other"; @@ -2013,7 +2013,7 @@ void SwUiWriterTest::testSearchWithTransliterate() SearchOpt.changedChars = 0; SearchOpt.deletedChars = 0; SearchOpt.insertedChars = 0; - SearchOpt.transliterateFlags = css::i18n::TransliterationModulesExtra::IGNORE_DIACRITICS_CTL; + SearchOpt.transliterateFlags = TransliterationFlags::IGNORE_DIACRITICS_CTL; SearchOpt.AlgorithmType2 = css::util::SearchAlgorithms2::ABSOLUTE; SearchOpt.WildcardEscapeCharacter = 0; //transliteration option set so that at least one of the search strings is not found @@ -2022,7 +2022,7 @@ void SwUiWriterTest::testSearchWithTransliterate() CPPUNIT_ASSERT_EQUAL(OUString(""),pShellCursor->GetText()); CPPUNIT_ASSERT_EQUAL(0,(int)case1); SearchOpt.searchString = "paragraph"; - SearchOpt.transliterateFlags = css::i18n::TransliterationModulesExtra::IGNORE_KASHIDA_CTL; + SearchOpt.transliterateFlags = TransliterationFlags::IGNORE_KASHIDA_CTL; //transliteration option set so that all search strings are found sal_uLong case2 = pWrtShell->SearchPattern(SearchOpt,true,SwDocPositions::Start,SwDocPositions::End); pShellCursor = pWrtShell->getShellCursor(true); @@ -2047,7 +2047,7 @@ void SwUiWriterTest::testTdf73660() pWrtShell->Insert(aData5 + " "); pWrtShell->Insert("Now we have enough text let's test search for all the cases"); //searching for all 5 strings entered with soft-hyphen, search string contains no soft-hyphen - css::util::SearchOptions2 searchOpt; + i18nutil::SearchOptions2 searchOpt; searchOpt.algorithmType = css::util::SearchAlgorithms_REGEXP; searchOpt.searchFlag = css::util::SearchFlags::NORM_WORD_ONLY; //case 1 diff --git a/sw/source/core/bastyp/init.cxx b/sw/source/core/bastyp/init.cxx index 44c935c6deac..45500bfc5f16 100644 --- a/sw/source/core/bastyp/init.cxx +++ b/sw/source/core/bastyp/init.cxx @@ -902,9 +902,9 @@ namespace uno::Reference< uno::XComponentContext > xContext = ::comphelper::getProcessComponentContext(); xTransWrp.reset(new ::utl::TransliterationWrapper( xContext, - i18n::TransliterationModules_IGNORE_CASE | - i18n::TransliterationModules_IGNORE_KANA | - i18n::TransliterationModules_IGNORE_WIDTH )); + TransliterationFlags::IGNORE_CASE | + TransliterationFlags::IGNORE_KANA | + TransliterationFlags::IGNORE_WIDTH )); xTransWrp->loadModuleIfNeeded( static_cast<sal_uInt16>(GetAppLanguage()) ); } diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx index 9084a272f94e..d252ad9273ba 100644 --- a/sw/source/core/crsr/crsrsh.cxx +++ b/sw/source/core/crsr/crsrsh.cxx @@ -17,7 +17,6 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/text/XTextRange.hpp> #include <hintids.hxx> @@ -3169,7 +3168,7 @@ bool SwCursorShell::SelectHiddenRange() return bRet; } -sal_uLong SwCursorShell::Find( const SearchOptions2& rSearchOpt, +sal_uLong SwCursorShell::Find( const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes, SwDocPositions eStart, SwDocPositions eEnd, bool& bCancel, @@ -3211,7 +3210,7 @@ sal_uLong SwCursorShell::Find( const SfxItemSet& rSet, SwDocPositions eStart, SwDocPositions eEnd, bool& bCancel, FindRanges eRng, - const SearchOptions2* pSearchOpt, + const i18nutil::SearchOptions2* pSearchOpt, const SfxItemSet* rReplSet ) { if( m_pTableCursor ) diff --git a/sw/source/core/crsr/findattr.cxx b/sw/source/core/crsr/findattr.cxx index ba1753624a5e..09c0153a2cf4 100644 --- a/sw/source/core/crsr/findattr.cxx +++ b/sw/source/core/crsr/findattr.cxx @@ -18,10 +18,10 @@ */ #include <com/sun/star/lang/Locale.hpp> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchFlags.hpp> #include <i18nlangtag/languagetag.hxx> +#include <i18nutil/searchopt.hxx> #include <hintids.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> @@ -1056,12 +1056,12 @@ struct SwFindParaAttr : public SwFindParas { bool bValue; const SfxItemSet *pSet, *pReplSet; - const SearchOptions2 *pSearchOpt; + const i18nutil::SearchOptions2 *pSearchOpt; SwCursor& m_rCursor; std::unique_ptr<utl::TextSearch> pSText; SwFindParaAttr( const SfxItemSet& rSet, bool bNoCollection, - const SearchOptions2* pOpt, const SfxItemSet* pRSet, + const i18nutil::SearchOptions2* pOpt, const SfxItemSet* pRSet, SwCursor& rCursor ) : bValue( bNoCollection ), pSet( &rSet ), pReplSet( pRSet ), pSearchOpt( pOpt ), m_rCursor( rCursor ) {} @@ -1109,7 +1109,7 @@ int SwFindParaAttr::Find( SwPaM* pCursor, SwMoveFnCollection const & fnMove, con // then search in text of it if( !pSText ) { - SearchOptions2 aTmp( *pSearchOpt ); + i18nutil::SearchOptions2 aTmp( *pSearchOpt ); // search in selection aTmp.searchFlag |= (SearchFlags::REG_NOT_BEGINOFLINE | @@ -1221,7 +1221,7 @@ bool SwFindParaAttr::IsReplaceMode() const sal_uLong SwCursor::Find( const SfxItemSet& rSet, bool bNoCollections, SwDocPositions nStart, SwDocPositions nEnd, bool& bCancel, FindRanges eFndRngs, - const SearchOptions2* pSearchOpt, + const i18nutil::SearchOptions2* pSearchOpt, const SfxItemSet* pReplSet ) { // switch off OLE-notifications diff --git a/sw/source/core/crsr/findtxt.cxx b/sw/source/core/crsr/findtxt.cxx index 70a0f726389f..c12aa4f9f2b2 100644 --- a/sw/source/core/crsr/findtxt.cxx +++ b/sw/source/core/crsr/findtxt.cxx @@ -19,7 +19,6 @@ #include <memory> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchFlags.hpp> #include <comphelper/lok.hxx> #include <comphelper/string.hxx> @@ -221,7 +220,7 @@ size_t GetPostIt(sal_Int32 aCount,const SwpHints *pHts) return aIndex; } -bool SwPaM::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::TextSearch& rSText, +bool SwPaM::Find( const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::TextSearch& rSText, SwMoveFnCollection const & fnMove, const SwPaM * pRegion, bool bInReadOnly ) { @@ -469,7 +468,7 @@ bool SwPaM::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes , utl::T return bFound; } -bool SwPaM::DoSearch( const SearchOptions2& rSearchOpt, utl::TextSearch& rSText, +bool SwPaM::DoSearch( const i18nutil::SearchOptions2& rSearchOpt, utl::TextSearch& rSText, SwMoveFnCollection const & fnMove, bool bSrchForward, bool bRegSearch, bool bChkEmptyPara, bool bChkParaEnd, sal_Int32 &nStart, sal_Int32 &nEnd, sal_Int32 nTextLen, @@ -632,13 +631,13 @@ bool SwPaM::DoSearch( const SearchOptions2& rSearchOpt, utl::TextSearch& rSText, /// parameters for search and replace in text struct SwFindParaText : public SwFindParas { - const SearchOptions2& m_rSearchOpt; + const i18nutil::SearchOptions2& m_rSearchOpt; SwCursor& m_rCursor; utl::TextSearch m_aSText; bool m_bReplace; bool m_bSearchInNotes; - SwFindParaText( const SearchOptions2& rOpt, bool bSearchInNotes, bool bRepl, SwCursor& rCursor ) + SwFindParaText( const i18nutil::SearchOptions2& rOpt, bool bSearchInNotes, bool bRepl, SwCursor& rCursor ) : m_rSearchOpt( rOpt ), m_rCursor( rCursor ), m_aSText( utl::TextSearch::UpgradeToSearchOptions2( rOpt) ), m_bReplace( bRepl ), m_bSearchInNotes( bSearchInNotes ) {} @@ -712,7 +711,7 @@ bool SwFindParaText::IsReplaceMode() const return m_bReplace; } -sal_uLong SwCursor::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes, +sal_uLong SwCursor::Find( const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes, SwDocPositions nStart, SwDocPositions nEnd, bool& bCancel, FindRanges eFndRngs, bool bReplace ) { @@ -745,7 +744,7 @@ sal_uLong SwCursor::Find( const SearchOptions2& rSearchOpt, bool bSearchInNotes, return nRet; } -OUString *ReplaceBackReferences( const SearchOptions2& rSearchOpt, SwPaM* pPam ) +OUString *ReplaceBackReferences( const i18nutil::SearchOptions2& rSearchOpt, SwPaM* pPam ) { OUString *pRet = nullptr; if( pPam && pPam->HasMark() && diff --git a/sw/source/core/edit/editsh.cxx b/sw/source/core/edit/editsh.cxx index 94686b67e129..b58e657ab84a 100644 --- a/sw/source/core/edit/editsh.cxx +++ b/sw/source/core/edit/editsh.cxx @@ -970,7 +970,7 @@ void SwEditShell::SetExtTextInputData( const CommandExtTextInputData& rData ) } } -void SwEditShell::TransliterateText( sal_uInt32 nType ) +void SwEditShell::TransliterateText( TransliterationFlags nType ) { utl::TransliterationWrapper aTrans( ::comphelper::getProcessComponentContext(), nType ); StartAllAction(); diff --git a/sw/source/core/edit/edtox.cxx b/sw/source/core/edit/edtox.cxx index c4756af05c95..10162be0ecee 100644 --- a/sw/source/core/edit/edtox.cxx +++ b/sw/source/core/edit/edtox.cxx @@ -17,11 +17,11 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchFlags.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <comphelper/string.hxx> +#include <i18nutil/transliteration.hxx> +#include <i18nutil/searchopt.hxx> #include <svl/fstathelper.hxx> #include <osl/thread.h> #include <unotools/textsearch.hxx> @@ -311,16 +311,15 @@ void SwEditShell::ApplyAutoMark() sal_Int32 nLEV_Other = 2; // -> changedChars; sal_Int32 nLEV_Longer = 3; //! -> deletedChars; sal_Int32 nLEV_Shorter = 1; //! -> insertedChars; - sal_Int32 nTransliterationFlags = 0; sal_Int32 nSrchFlags = SearchFlags::LEV_RELAXED; - SearchOptions2 aSearchOpt( + i18nutil::SearchOptions2 aSearchOpt( SearchAlgorithms_ABSOLUTE, nSrchFlags, "", "", SvtSysLocale().GetLanguageTag().getLocale(), nLEV_Other, nLEV_Longer, nLEV_Shorter, - nTransliterationFlags, + TransliterationFlags::NONE, SearchAlgorithms2::ABSOLUTE, '\\' ); @@ -354,12 +353,12 @@ void SwEditShell::ApplyAutoMark() if (!bCaseSensitive) { aSearchOpt.transliterateFlags |= - TransliterationModules_IGNORE_CASE; + TransliterationFlags::IGNORE_CASE; } else { aSearchOpt.transliterateFlags &= - ~TransliterationModules_IGNORE_CASE; + ~TransliterationFlags::IGNORE_CASE; } if ( bWordOnly) aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY; diff --git a/sw/source/core/inc/UndoOverwrite.hxx b/sw/source/core/inc/UndoOverwrite.hxx index a573f90b8982..1b520fae1efb 100644 --- a/sw/source/core/inc/UndoOverwrite.hxx +++ b/sw/source/core/inc/UndoOverwrite.hxx @@ -26,7 +26,7 @@ class SwRedlineSaveDatas; class SwTextNode; - +enum class TransliterationFlags; namespace utl { class TransliterationWrapper; } @@ -69,7 +69,7 @@ struct UndoTransliterate_Data; class SwUndoTransliterate : public SwUndo, public SwUndRng { std::vector< UndoTransliterate_Data * > aChanges; - sal_uInt32 nType; + TransliterationFlags nType; void DoTransliterate(SwDoc & rDoc, SwPaM & rPam); diff --git a/sw/source/core/txtnode/txtedt.cxx b/sw/source/core/txtnode/txtedt.cxx index 9517d953a6bb..5054698874f4 100644 --- a/sw/source/core/txtnode/txtedt.cxx +++ b/sw/source/core/txtnode/txtedt.cxx @@ -25,6 +25,7 @@ #include <editeng/fontitem.hxx> #include <editeng/scripttypeitem.hxx> #include <editeng/hangulhanja.hxx> +#include <i18nutil/transliteration.hxx> #include <SwSmartTagMgr.hxx> #include <linguistic/lngprops.hxx> #include <officecfg/Office/Writer.hxx> @@ -71,8 +72,6 @@ #include <com/sun/star/i18n/WordType.hpp> #include <com/sun/star/i18n/ScriptType.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <vector> #include <utility> @@ -1712,7 +1711,7 @@ void SwTextNode::TransliterateText( std::vector< swTransliterationChgData > aChanges; swTransliterationChgData aChgData; - if (rTrans.getType() == (sal_uInt32)TransliterationModulesExtra::TITLE_CASE) + if (rTrans.getType() == TransliterationFlags::TITLE_CASE) { // for 'capitalize every word' we need to iterate over each word @@ -1776,7 +1775,7 @@ void SwTextNode::TransliterateText( nWordType); } } - else if (rTrans.getType() == (sal_uInt32)TransliterationModulesExtra::SENTENCE_CASE) + else if (rTrans.getType() == TransliterationFlags::SENTENCE_CASE) { // for 'sentence case' we need to iterate sentence by sentence diff --git a/sw/source/core/unocore/unosrch.cxx b/sw/source/core/unocore/unosrch.cxx index 7f94288aefa5..6f3f7bd0e319 100644 --- a/sw/source/core/unocore/unosrch.cxx +++ b/sw/source/core/unocore/unosrch.cxx @@ -24,14 +24,13 @@ #include <unobaseclass.hxx> #include <unomid.h> +#include <i18nutil/searchopt.hxx> #include <o3tl/any.hxx> #include <osl/mutex.hxx> #include <vcl/svapp.hxx> #include <editeng/unolingu.hxx> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchFlags.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <com/sun/star/beans/PropertyAttribute.hpp> #include <comphelper/servicehelper.hxx> #include <cppuhelper/supportsservice.hxx> @@ -715,7 +714,7 @@ uno::Sequence< OUString > SwXTextSearch::getSupportedServiceNames() return aRet; } -void SwXTextSearch::FillSearchOptions( util::SearchOptions2& rSearchOpt ) const +void SwXTextSearch::FillSearchOptions( i18nutil::SearchOptions2& rSearchOpt ) const { if( m_bSimilarity ) { @@ -743,7 +742,7 @@ void SwXTextSearch::FillSearchOptions( util::SearchOptions2& rSearchOpt ) const rSearchOpt.replaceString = m_sReplaceText; if( !m_bCase ) - rSearchOpt.transliterateFlags |= i18n::TransliterationModules_IGNORE_CASE; + rSearchOpt.transliterateFlags |= TransliterationFlags::IGNORE_CASE; if( m_bWord ) rSearchOpt.searchFlag |= util::SearchFlags::NORM_WORD_ONLY; diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx index 199d3ecdbccb..fd79226e02ab 100644 --- a/sw/source/ui/index/swuiidxmrk.cxx +++ b/sw/source/ui/index/swuiidxmrk.cxx @@ -25,11 +25,10 @@ #include <com/sun/star/beans/PropertyValue.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/frame/Bibliography.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <com/sun/star/i18n/IndexEntrySupplier.hpp> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchFlags.hpp> +#include <i18nutil/searchopt.hxx> #include <svl/stritem.hxx> #include <vcl/layout.hxx> #include <sfx2/dispatch.hxx> @@ -438,15 +437,15 @@ static void lcl_SelectSameStrings(SwWrtShell& rSh, bool bWordOnly, bool bCaseSen { rSh.Push(); - SearchOptions2 aSearchOpt( + i18nutil::SearchOptions2 aSearchOpt( SearchAlgorithms_ABSOLUTE, ( bWordOnly ? SearchFlags::NORM_WORD_ONLY : 0 ), rSh.GetSelText(), OUString(), GetAppLanguageTag().getLocale(), 0, 0, 0, (bCaseSensitive - ? 0 - : static_cast<int>(TransliterationModules_IGNORE_CASE)), + ? TransliterationFlags::NONE + : TransliterationFlags::IGNORE_CASE), SearchAlgorithms2::ABSOLUTE, '\\' ); diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx index a3f53456b322..eb838a1d1774 100644 --- a/sw/source/uibase/docvw/PostItMgr.cxx +++ b/sw/source/uibase/docvw/PostItMgr.cxx @@ -2199,7 +2199,7 @@ sal_uInt16 SwPostItMgr::Replace(SvxSearchItem* pItem) return aResult; } -sal_uInt16 SwPostItMgr::FinishSearchReplace(const css::util::SearchOptions2& rSearchOptions, bool bSrchForward) +sal_uInt16 SwPostItMgr::FinishSearchReplace(const i18nutil::SearchOptions2& rSearchOptions, bool bSrchForward) { SwSidebarWin* pWin = GetActiveSidebarWin(); SvxSearchItem aItem(SID_SEARCH_ITEM ); @@ -2211,7 +2211,7 @@ sal_uInt16 SwPostItMgr::FinishSearchReplace(const css::util::SearchOptions2& rSe return aResult; } -sal_uInt16 SwPostItMgr::SearchReplace(const SwFormatField &pField, const css::util::SearchOptions2& rSearchOptions, bool bSrchForward) +sal_uInt16 SwPostItMgr::SearchReplace(const SwFormatField &pField, const i18nutil::SearchOptions2& rSearchOptions, bool bSrchForward) { sal_uInt16 aResult = 0; SwSidebarWin* pWin = GetSidebarWin(&pField); diff --git a/sw/source/uibase/inc/wrtsh.hxx b/sw/source/uibase/inc/wrtsh.hxx index c3b63ef2d03e..894e3cbe2658 100644 --- a/sw/source/uibase/inc/wrtsh.hxx +++ b/sw/source/uibase/inc/wrtsh.hxx @@ -46,9 +46,9 @@ class NaviContentBookmark; struct SwCallMouseEvent; class SfxStringListItem; -namespace com { namespace sun { namespace star { namespace util { +namespace i18nutil { struct SearchOptions2; -} } } } +} typedef sal_Int32 SelectionType; namespace nsSelectionType @@ -360,7 +360,7 @@ typedef bool (SwWrtShell:: *FNSimpleMove)(); void GetDoStrings( DoType eDoType, SfxStringListItem& rStrLstItem ) const; // search and replace - sal_uLong SearchPattern(const css::util::SearchOptions2& rSearchOpt, + sal_uLong SearchPattern(const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes, SwDocPositions eStart, SwDocPositions eEnd, FindRanges eFlags = FindRanges::InBody, @@ -375,7 +375,7 @@ typedef bool (SwWrtShell:: *FNSimpleMove)(); bool bNoColls, SwDocPositions eStart, SwDocPositions eEnd, FindRanges eFlags = FindRanges::InBody, - const css::util::SearchOptions2* pSearchOpt = nullptr, + const i18nutil::SearchOptions2* pSearchOpt = nullptr, const SfxItemSet* pReplaceSet = nullptr); void AutoCorrect( SvxAutoCorrect& rACorr, sal_Unicode cChar ); diff --git a/sw/source/uibase/shells/annotsh.cxx b/sw/source/uibase/shells/annotsh.cxx index 80520635b2fb..3477a7ea3621 100644 --- a/sw/source/uibase/shells/annotsh.cxx +++ b/sw/source/uibase/shells/annotsh.cxx @@ -19,13 +19,12 @@ #include <hintids.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <com/sun/star/i18n/TextConversionOption.hpp> #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> #include <i18nlangtag/mslangid.hxx> +#include <i18nutil/transliteration.hxx> #include <sfx2/objface.hxx> #include <sfx2/viewfrm.hxx> #include <sfx2/bindings.hxx> @@ -1427,43 +1426,43 @@ void SwAnnotationShell::ExecTransliteration(SfxRequest &rReq) using namespace ::com::sun::star::i18n; - sal_uInt32 nMode = 0; + TransliterationFlags nMode = TransliterationFlags::NONE; switch( rReq.GetSlot() ) { case SID_TRANSLITERATE_SENTENCE_CASE: - nMode = TransliterationModulesExtra::SENTENCE_CASE; + nMode = TransliterationFlags::SENTENCE_CASE; break; case SID_TRANSLITERATE_TITLE_CASE: - nMode = TransliterationModulesExtra::TITLE_CASE; + nMode = TransliterationFlags::TITLE_CASE; break; case SID_TRANSLITERATE_TOGGLE_CASE: - nMode = TransliterationModulesExtra::TOGGLE_CASE; + nMode = TransliterationFlags::TOGGLE_CASE; break; case SID_TRANSLITERATE_UPPER: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; + nMode = TransliterationFlags::LOWERCASE_UPPERCASE; break; case SID_TRANSLITERATE_LOWER: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; + nMode = TransliterationFlags::UPPERCASE_LOWERCASE; break; case SID_TRANSLITERATE_HALFWIDTH: - nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; + nMode = TransliterationFlags::FULLWIDTH_HALFWIDTH; break; case SID_TRANSLITERATE_FULLWIDTH: - nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; + nMode = TransliterationFlags::HALFWIDTH_FULLWIDTH; break; case SID_TRANSLITERATE_HIRAGANA: - nMode = TransliterationModules_KATAKANA_HIRAGANA; + nMode = TransliterationFlags::KATAKANA_HIRAGANA; break; case SID_TRANSLITERATE_KATAGANA: - nMode = TransliterationModules_HIRAGANA_KATAKANA; + nMode = TransliterationFlags::HIRAGANA_KATAKANA; break; default: OSL_ENSURE(false, "wrong dispatcher"); } - if( nMode ) + if( nMode != TransliterationFlags::NONE ) pOLV->TransliterateText( nMode ); } diff --git a/sw/source/uibase/shells/drwtxtsh.cxx b/sw/source/uibase/shells/drwtxtsh.cxx index 70cc06b6cb24..5537cd54ad89 100644 --- a/sw/source/uibase/shells/drwtxtsh.cxx +++ b/sw/source/uibase/shells/drwtxtsh.cxx @@ -19,6 +19,7 @@ #include <hintids.hxx> #include <i18nlangtag/lang.h> +#include <i18nutil/transliteration.hxx> #include <svl/slstitm.hxx> #include <svl/cjkoptions.hxx> #include <editeng/fontitem.hxx> @@ -40,8 +41,6 @@ #include <editeng/outliner.hxx> #include <editeng/editstat.hxx> #include <svx/svdoutl.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <com/sun/star/i18n/TextConversionOption.hpp> #include <com/sun/star/ui/dialogs/XExecutableDialog.hpp> #include <com/sun/star/lang/XInitialization.hpp> @@ -615,45 +614,45 @@ void SwDrawTextShell::ExecTransliteration( SfxRequest & rReq ) using namespace i18n; - sal_uInt32 nMode = 0; + TransliterationFlags nMode = TransliterationFlags::NONE; switch( rReq.GetSlot() ) { case SID_TRANSLITERATE_SENTENCE_CASE: - nMode = TransliterationModulesExtra::SENTENCE_CASE; + nMode = TransliterationFlags::SENTENCE_CASE; break; case SID_TRANSLITERATE_TITLE_CASE: - nMode = TransliterationModulesExtra::TITLE_CASE; + nMode = TransliterationFlags::TITLE_CASE; break; case SID_TRANSLITERATE_TOGGLE_CASE: - nMode = TransliterationModulesExtra::TOGGLE_CASE; + nMode = TransliterationFlags::TOGGLE_CASE; break; case SID_TRANSLITERATE_UPPER: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; + nMode = TransliterationFlags::LOWERCASE_UPPERCASE; break; case SID_TRANSLITERATE_LOWER: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; + nMode = TransliterationFlags::UPPERCASE_LOWERCASE; break; case SID_TRANSLITERATE_HALFWIDTH: - nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; + nMode = TransliterationFlags::FULLWIDTH_HALFWIDTH; break; case SID_TRANSLITERATE_FULLWIDTH: - nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; + nMode = TransliterationFlags::HALFWIDTH_FULLWIDTH; break; case SID_TRANSLITERATE_HIRAGANA: - nMode = TransliterationModules_KATAKANA_HIRAGANA; + nMode = TransliterationFlags::KATAKANA_HIRAGANA; break; case SID_TRANSLITERATE_KATAGANA: - nMode = TransliterationModules_HIRAGANA_KATAKANA; + nMode = TransliterationFlags::HIRAGANA_KATAKANA; break; default: OSL_ENSURE(false, "wrong dispatcher"); } - if( nMode ) + if( nMode != TransliterationFlags::NONE ) { OutlinerView* pOLV = pSdrView->GetTextEditOutlinerView(); diff --git a/sw/source/uibase/shells/textsh.cxx b/sw/source/uibase/shells/textsh.cxx index d7b7dc123d17..29b1298898ba 100644 --- a/sw/source/uibase/shells/textsh.cxx +++ b/sw/source/uibase/shells/textsh.cxx @@ -52,8 +52,6 @@ #include <vcl/graphicfilter.hxx> #include <sfx2/htmlmode.hxx> #include <svtools/htmlcfg.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <com/sun/star/embed/Aspects.hpp> #include <comphelper/classids.hxx> @@ -781,45 +779,45 @@ void SwTextShell::ExecDelete(SfxRequest &rReq) void SwTextShell::ExecTransliteration( SfxRequest & rReq ) { using namespace ::com::sun::star::i18n; - sal_uInt32 nMode = 0; + TransliterationFlags nMode = TransliterationFlags::NONE; switch( rReq.GetSlot() ) { case SID_TRANSLITERATE_SENTENCE_CASE: - nMode = TransliterationModulesExtra::SENTENCE_CASE; + nMode = TransliterationFlags::SENTENCE_CASE; break; case SID_TRANSLITERATE_TITLE_CASE: - nMode = TransliterationModulesExtra::TITLE_CASE; + nMode = TransliterationFlags::TITLE_CASE; break; case SID_TRANSLITERATE_TOGGLE_CASE: - nMode = TransliterationModulesExtra::TOGGLE_CASE; + nMode = TransliterationFlags::TOGGLE_CASE; break; case SID_TRANSLITERATE_UPPER: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; + nMode = TransliterationFlags::LOWERCASE_UPPERCASE; break; case SID_TRANSLITERATE_LOWER: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; + nMode = TransliterationFlags::UPPERCASE_LOWERCASE; break; case SID_TRANSLITERATE_HALFWIDTH: - nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; + nMode = TransliterationFlags::FULLWIDTH_HALFWIDTH; break; case SID_TRANSLITERATE_FULLWIDTH: - nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; + nMode = TransliterationFlags::HALFWIDTH_FULLWIDTH; break; case SID_TRANSLITERATE_HIRAGANA: - nMode = TransliterationModules_KATAKANA_HIRAGANA; + nMode = TransliterationFlags::KATAKANA_HIRAGANA; break; case SID_TRANSLITERATE_KATAGANA: - nMode = TransliterationModules_HIRAGANA_KATAKANA; + nMode = TransliterationFlags::HIRAGANA_KATAKANA; break; default: OSL_ENSURE(false, "wrong dispatcher"); } - if( nMode ) + if( nMode != TransliterationFlags::NONE ) GetShell().TransliterateText( nMode ); } diff --git a/sw/source/uibase/uiview/srcview.cxx b/sw/source/uibase/uiview/srcview.cxx index 77950de87c9f..bb1827bc21a1 100644 --- a/sw/source/uibase/uiview/srcview.cxx +++ b/sw/source/uibase/uiview/srcview.cxx @@ -18,7 +18,6 @@ */ #include <hintids.hxx> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/ui/dialogs/TemplateDescription.hpp> #include <comphelper/string.hxx> #include <unotools/tempfile.hxx> @@ -94,7 +93,6 @@ using namespace ::com::sun::star::lang; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::ui::dialogs; using namespace ::sfx2; -using ::com::sun::star::util::SearchOptions2; #define SWSRCVIEWFLAGS ( SfxViewShellFlags::CAN_PRINT | SfxViewShellFlags::NO_NEWWINDOW ) @@ -579,7 +577,7 @@ void SwSrcView::StartSearchAndReplace(const SvxSearchItem& rSearchItem, if( !bForward ) aPaM = TextPaM( TEXT_PARA_ALL, TEXT_INDEX_ALL ); - util::SearchOptions2 aSearchOpt( rSearchItem.GetSearchOptions() ); + i18nutil::SearchOptions2 aSearchOpt( rSearchItem.GetSearchOptions() ); aSearchOpt.Locale = GetAppLanguageTag().getLocale(); sal_uInt16 nFound; diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx index af44ff794712..9fa93e28003e 100644 --- a/sw/source/uibase/uiview/view2.cxx +++ b/sw/source/uibase/uiview/view2.cxx @@ -19,9 +19,7 @@ #include <config_features.h> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <o3tl/any.hxx> #include <vcl/graphicfilter.hxx> #include <com/sun/star/sdb/DatabaseContext.hpp> @@ -146,6 +144,7 @@ #include <vcl/GraphicNativeTransform.hxx> #include <vcl/GraphicNativeMetadata.hxx> #include <vcl/settings.hxx> +#include <i18nutil/searchopt.hxx> #include <memory> @@ -1992,12 +1991,12 @@ bool SwView::JumpToSwMark( const OUString& rMark ) // normal text search m_pWrtShell->EnterStdMode(); - SearchOptions2 aSearchOpt( + i18nutil::SearchOptions2 aSearchOpt( SearchAlgorithms_ABSOLUTE, 0, sName, OUString(), SvtSysLocale().GetLanguageTag().getLocale(), 0,0,0, - TransliterationModules_IGNORE_CASE, + TransliterationFlags::IGNORE_CASE, SearchAlgorithms2::ABSOLUTE, '\\' ); diff --git a/sw/source/uibase/uiview/viewsrch.cxx b/sw/source/uibase/uiview/viewsrch.cxx index 6bbc5f402b7b..f29aa9427924 100644 --- a/sw/source/uibase/uiview/viewsrch.cxx +++ b/sw/source/uibase/uiview/viewsrch.cxx @@ -26,7 +26,6 @@ #include <hintids.hxx> -#include <com/sun/star/util/SearchOptions2.hpp> #include <svl/cjkoptions.hxx> #include <svl/ctloptions.hxx> #include <svx/pageitem.hxx> @@ -310,7 +309,7 @@ void SwView::ExecSearch(SfxRequest& rReq) if (bBack) m_pWrtShell->Push(); OUString aReplace( m_pSrchItem->GetReplaceString() ); - SearchOptions2 aTmp( m_pSrchItem->GetSearchOptions() ); + i18nutil::SearchOptions2 aTmp( m_pSrchItem->GetSearchOptions() ); OUString *pBackRef = ReplaceBackReferences( aTmp, m_pWrtShell->GetCursor() ); if( pBackRef ) m_pSrchItem->SetReplaceString( *pBackRef ); @@ -833,7 +832,7 @@ sal_uLong SwView::FUNC_Search( const SwSearchOptions& rOptions ) // build SearchOptions to be used - SearchOptions2 aSearchOpt( m_pSrchItem->GetSearchOptions() ); + i18nutil::SearchOptions2 aSearchOpt( m_pSrchItem->GetSearchOptions() ); aSearchOpt.Locale = GetAppLanguageTag().getLocale(); if( !bDoReplace ) aSearchOpt.replaceString.clear(); diff --git a/sw/source/uibase/uno/unotxdoc.cxx b/sw/source/uibase/uno/unotxdoc.cxx index 4c18778dec5c..cea95ba2b755 100644 --- a/sw/source/uibase/uno/unotxdoc.cxx +++ b/sw/source/uibase/uno/unotxdoc.cxx @@ -84,7 +84,6 @@ #include <globals.hrc> #include <unomid.h> #include <unotools/printwarningoptions.hxx> -#include <com/sun/star/util/SearchOptions2.hpp> #include <com/sun/star/lang/ServiceNotRegisteredException.hpp> #include <com/sun/star/lang/DisposedException.hpp> #include <com/sun/star/util/XNumberFormatsSupplier.hpp> @@ -135,6 +134,7 @@ #include <editeng/langitem.hxx> #include <docary.hxx> #include <i18nlangtag/languagetag.hxx> +#include <i18nutil/searchopt.hxx> #include <format.hxx> #include <charfmt.hxx> @@ -749,7 +749,7 @@ sal_Int32 SwXTextDocument::replaceAll(const Reference< util::XSearchDescriptor > int eRanges(FindRanges::InBody|FindRanges::InSelAll); - util::SearchOptions2 aSearchOpt; + i18nutil::SearchOptions2 aSearchOpt; pSearch->FillSearchOptions( aSearchOpt ); SwDocPositions eStart = pSearch->m_bBack ? SwDocPositions::End : SwDocPositions::Start; @@ -871,7 +871,7 @@ SwUnoCursor* SwXTextDocument::FindAny(const Reference< util::XSearchDescriptor > rRangeNode.FindFooterStartNode() ; } - util::SearchOptions2 aSearchOpt; + i18nutil::SearchOptions2 aSearchOpt; pSearch->FillSearchOptions( aSearchOpt ); /** diff --git a/sw/source/uibase/wrtsh/select.cxx b/sw/source/uibase/wrtsh/select.cxx index 0874d2af4f73..34542165c62f 100644 --- a/sw/source/uibase/wrtsh/select.cxx +++ b/sw/source/uibase/wrtsh/select.cxx @@ -209,7 +209,7 @@ long SwWrtShell::SelAll() // Description: Text search -sal_uLong SwWrtShell::SearchPattern( const SearchOptions2& rSearchOpt, bool bSearchInNotes, +sal_uLong SwWrtShell::SearchPattern( const i18nutil::SearchOptions2& rSearchOpt, bool bSearchInNotes, SwDocPositions eStt, SwDocPositions eEnd, FindRanges eFlags, bool bReplace ) { @@ -255,7 +255,7 @@ sal_uLong SwWrtShell::SearchTempl( const OUString &rTempl, sal_uLong SwWrtShell::SearchAttr( const SfxItemSet& rFindSet, bool bNoColls, SwDocPositions eStart, SwDocPositions eEnd, - FindRanges eFlags, const SearchOptions2* pSearchOpt, + FindRanges eFlags, const i18nutil::SearchOptions2* pSearchOpt, const SfxItemSet* pReplaceSet ) { // no enhancement of existing selections diff --git a/unotools/source/config/searchopt.cxx b/unotools/source/config/searchopt.cxx index f6a0fbffe575..b4d570496ffb 100644 --- a/unotools/source/config/searchopt.cxx +++ b/unotools/source/config/searchopt.cxx @@ -22,16 +22,14 @@ #include <unotools/searchopt.hxx> #include <tools/debug.hxx> #include <unotools/configitem.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/uno/Any.h> #include <sal/macros.h> #include <osl/diagnose.h> +#include <i18nutil/transliteration.hxx> using namespace utl; using namespace com::sun::star::uno; -using namespace com::sun::star::i18n; #define MAX_FLAGS_OFFSET 29 @@ -268,52 +266,52 @@ void SvtSearchOptions::Commit() pImpl->Commit(); } -sal_Int32 SvtSearchOptions::GetTransliterationFlags() const +TransliterationFlags SvtSearchOptions::GetTransliterationFlags() const { - sal_Int32 nRes = 0; + TransliterationFlags nRes = TransliterationFlags::NONE; if (!IsMatchCase()) // 'IsMatchCase' means act case sensitive - nRes |= TransliterationModules_IGNORE_CASE; + nRes |= TransliterationFlags::IGNORE_CASE; if ( IsMatchFullHalfWidthForms()) - nRes |= TransliterationModules_IGNORE_WIDTH; + nRes |= TransliterationFlags::IGNORE_WIDTH; if ( IsMatchHiraganaKatakana()) - nRes |= TransliterationModules_IGNORE_KANA; + nRes |= TransliterationFlags::IGNORE_KANA; if ( IsMatchContractions()) - nRes |= TransliterationModules_ignoreSize_ja_JP; + nRes |= TransliterationFlags::ignoreSize_ja_JP; if ( IsMatchMinusDashChoon()) - nRes |= TransliterationModules_ignoreMinusSign_ja_JP; + nRes |= TransliterationFlags::ignoreMinusSign_ja_JP; if ( IsMatchRepeatCharMarks()) - nRes |= TransliterationModules_ignoreIterationMark_ja_JP; + nRes |= TransliterationFlags::ignoreIterationMark_ja_JP; if ( IsMatchVariantFormKanji()) - nRes |= TransliterationModules_ignoreTraditionalKanji_ja_JP; + nRes |= TransliterationFlags::ignoreTraditionalKanji_ja_JP; if ( IsMatchOldKanaForms()) - nRes |= TransliterationModules_ignoreTraditionalKana_ja_JP; + nRes |= TransliterationFlags::ignoreTraditionalKana_ja_JP; if ( IsMatchDiziDuzu()) - nRes |= TransliterationModules_ignoreZiZu_ja_JP; + nRes |= TransliterationFlags::ignoreZiZu_ja_JP; if ( IsMatchBavaHafa()) - nRes |= TransliterationModules_ignoreBaFa_ja_JP; + nRes |= TransliterationFlags::ignoreBaFa_ja_JP; if ( IsMatchTsithichiDhizi()) - nRes |= TransliterationModules_ignoreTiJi_ja_JP; + nRes |= TransliterationFlags::ignoreTiJi_ja_JP; if ( IsMatchHyuiyuByuvyu()) - nRes |= TransliterationModules_ignoreHyuByu_ja_JP; + nRes |= TransliterationFlags::ignoreHyuByu_ja_JP; if ( IsMatchSesheZeje()) - nRes |= TransliterationModules_ignoreSeZe_ja_JP; + nRes |= TransliterationFlags::ignoreSeZe_ja_JP; if ( IsMatchIaiya()) - nRes |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP; + nRes |= TransliterationFlags::ignoreIandEfollowedByYa_ja_JP; if ( IsMatchKiku()) - nRes |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP; + nRes |= TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP; if ( IsIgnorePunctuation()) - nRes |= TransliterationModules_ignoreSeparator_ja_JP; + nRes |= TransliterationFlags::ignoreSeparator_ja_JP; if ( IsIgnoreWhitespace()) - nRes |= TransliterationModules_ignoreSpace_ja_JP; + nRes |= TransliterationFlags::ignoreSpace_ja_JP; if ( IsIgnoreProlongedSoundMark()) - nRes |= TransliterationModules_ignoreProlongedSoundMark_ja_JP; + nRes |= TransliterationFlags::ignoreProlongedSoundMark_ja_JP; if ( IsIgnoreMiddleDot()) - nRes |= TransliterationModules_ignoreMiddleDot_ja_JP; + nRes |= TransliterationFlags::ignoreMiddleDot_ja_JP; if ( IsIgnoreDiacritics_CTL()) - nRes |= TransliterationModulesExtra::IGNORE_DIACRITICS_CTL; + nRes |= TransliterationFlags::IGNORE_DIACRITICS_CTL; if ( IsIgnoreKashida_CTL()) - nRes |= TransliterationModulesExtra::IGNORE_KASHIDA_CTL; + nRes |= TransliterationFlags::IGNORE_KASHIDA_CTL; return nRes; } diff --git a/unotools/source/i18n/caserotate.cxx b/unotools/source/i18n/caserotate.cxx index d69fe0c63ad7..d4921e9053ef 100644 --- a/unotools/source/i18n/caserotate.cxx +++ b/unotools/source/i18n/caserotate.cxx @@ -8,29 +8,26 @@ */ #include <unotools/caserotate.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/i18n/TransliterationModulesExtra.hpp> +#include <i18nutil/transliteration.hxx> //TODO Use XCharacterClassification::getStringType to determine the current //(possibly mixed) case type and rotate to the next one -sal_uInt32 RotateTransliteration::getNextMode() +TransliterationFlags RotateTransliteration::getNextMode() { - using namespace ::com::sun::star::i18n; - - sal_uInt32 nMode = 0; + TransliterationFlags nMode = TransliterationFlags::NONE; switch (nF3ShiftCounter) { case 0: - nMode = TransliterationModulesExtra::TITLE_CASE; + nMode = TransliterationFlags::TITLE_CASE; break; case 1: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; + nMode = TransliterationFlags::LOWERCASE_UPPERCASE; break; default: case 2: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; + nMode = TransliterationFlags::UPPERCASE_LOWERCASE; nF3ShiftCounter = -1; break; } diff --git a/unotools/source/i18n/textsearch.cxx b/unotools/source/i18n/textsearch.cxx index d147765ca507..98dc9846083b 100644 --- a/unotools/source/i18n/textsearch.cxx +++ b/unotools/source/i18n/textsearch.cxx @@ -22,11 +22,12 @@ #include <cstdlib> #include <i18nlangtag/languagetag.hxx> +#include <i18nutil/searchopt.hxx> +#include <i18nutil/transliteration.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/util/TextSearch2.hpp> #include <com/sun/star/util/SearchAlgorithms2.hpp> #include <com/sun/star/util/SearchFlags.hpp> -#include <com/sun/star/i18n/TransliterationModules.hpp> #include <sal/log.hxx> #include <unotools/charclass.hxx> #include <comphelper/processfactory.hxx> @@ -57,7 +58,7 @@ SearchParam::SearchParam( const OUString &rText, m_bCaseSense = bCaseSensitive; m_bWildMatchSel = bWildMatchSel; - nTransliterationFlags = 0; + nTransliterationFlags = TransliterationFlags::NONE; // Parameters for weighted Levenshtein distance bLEV_Relaxed = true; @@ -89,7 +90,7 @@ SearchParam::SearchParam( const SearchParam& rParam ) SearchParam::~SearchParam() {} -static bool lcl_Equals( const SearchOptions2& rSO1, const SearchOptions2& rSO2 ) +static bool lcl_Equals( const i18nutil::SearchOptions2& rSO1, const i18nutil::SearchOptions2& rSO2 ) { return rSO1.AlgorithmType2 == rSO2.AlgorithmType2 && @@ -112,7 +113,7 @@ namespace struct CachedTextSearch { ::osl::Mutex mutex; - css::util::SearchOptions2 Options; + i18nutil::SearchOptions2 Options; css::uno::Reference< css::util::XTextSearch2 > xTextSearch; }; @@ -120,7 +121,7 @@ namespace : public rtl::Static< CachedTextSearch, theCachedTextSearch > {}; } -Reference<XTextSearch2> TextSearch::getXTextSearch( const SearchOptions2& rPara ) +Reference<XTextSearch2> TextSearch::getXTextSearch( const i18nutil::SearchOptions2& rPara ) { CachedTextSearch &rCache = theCachedTextSearch::get(); @@ -131,7 +132,7 @@ Reference<XTextSearch2> TextSearch::getXTextSearch( const SearchOptions2& rPara Reference< XComponentContext > xContext = ::comphelper::getProcessComponentContext(); rCache.xTextSearch.set( ::TextSearch2::create(xContext) ); - rCache.xTextSearch->setOptions2( rPara ); + rCache.xTextSearch->setOptions2( rPara.toUnoSearchOptions2() ); rCache.Options = rPara; return rCache.xTextSearch; @@ -151,12 +152,12 @@ TextSearch::TextSearch(const SearchParam & rParam, const CharClass& rCClass ) Init( rParam, rCClass.getLanguageTag().getLocale() ); } -TextSearch::TextSearch( const SearchOptions2& rPara ) +TextSearch::TextSearch( const i18nutil::SearchOptions2& rPara ) { xTextSearch = getXTextSearch( rPara ); } -css::util::SearchOptions2 TextSearch::UpgradeToSearchOptions2( const css::util::SearchOptions& rOptions ) +i18nutil::SearchOptions2 TextSearch::UpgradeToSearchOptions2( const i18nutil::SearchOptions& rOptions ) { sal_Int16 nAlgorithmType2; switch (rOptions.algorithmType) @@ -175,7 +176,7 @@ css::util::SearchOptions2 TextSearch::UpgradeToSearchOptions2( const css::util:: } // It would be nice if an inherited struct had a ctor that takes an // instance of the object the struct derived from.. - SearchOptions2 aOptions2( + i18nutil::SearchOptions2 aOptions2( rOptions.algorithmType, rOptions.searchFlag, rOptions.searchString, @@ -195,7 +196,7 @@ void TextSearch::Init( const SearchParam & rParam, const css::lang::Locale& rLocale ) { // convert SearchParam to the UNO SearchOptions2 - SearchOptions2 aSOpt; + i18nutil::SearchOptions2 aSOpt; switch( rParam.GetSrchType() ) { @@ -232,16 +233,16 @@ void TextSearch::Init( const SearchParam & rParam, if( !rParam.IsCaseSensitive() ) { aSOpt.searchFlag |= SearchFlags::ALL_IGNORE_CASE; - aSOpt.transliterateFlags |= css::i18n::TransliterationModules_IGNORE_CASE; + aSOpt.transliterateFlags |= TransliterationFlags::IGNORE_CASE; } xTextSearch = getXTextSearch( aSOpt ); } -void TextSearch::SetLocale( const css::util::SearchOptions2& rOptions, +void TextSearch::SetLocale( const i18nutil::SearchOptions2& rOptions, const css::lang::Locale& rLocale ) { - SearchOptions2 aSOpt( rOptions ); + i18nutil::SearchOptions2 aSOpt( rOptions ); aSOpt.Locale = rLocale; xTextSearch = getXTextSearch( aSOpt ); diff --git a/unotools/source/i18n/transliterationwrapper.cxx b/unotools/source/i18n/transliterationwrapper.cxx index 4e69bb9eaa02..6e0cd7b521b3 100644 --- a/unotools/source/i18n/transliterationwrapper.cxx +++ b/unotools/source/i18n/transliterationwrapper.cxx @@ -22,6 +22,7 @@ #include <sal/log.hxx> #include <unotools/transliterationwrapper.hxx> #include <i18nlangtag/languagetag.hxx> +#include <i18nutil/transliteration.hxx> #include <com/sun/star/i18n/TransliterationModulesExtra.hpp> #include <com/sun/star/i18n/Transliteration.hpp> @@ -33,7 +34,7 @@ using namespace ::utl; TransliterationWrapper::TransliterationWrapper( const Reference< XComponentContext > & rxContext, - sal_uInt32 nTyp ) + TransliterationFlags nTyp ) : xTrans( Transliteration::create(rxContext) ), aLanguageTag( LANGUAGE_SYSTEM ), nType( nTyp ), bFirstCall( true ) { @@ -87,12 +88,12 @@ OUString TransliterationWrapper::transliterate( const OUString& rStr, bool TransliterationWrapper::needLanguageForTheMode() const { - return TransliterationModules_UPPERCASE_LOWERCASE == nType || - TransliterationModules_LOWERCASE_UPPERCASE == nType || - TransliterationModules_IGNORE_CASE == nType || - (sal_uInt32) TransliterationModulesExtra::SENTENCE_CASE == (sal_uInt32) nType || - (sal_uInt32) TransliterationModulesExtra::TITLE_CASE == (sal_uInt32) nType || - (sal_uInt32) TransliterationModulesExtra::TOGGLE_CASE == (sal_uInt32) nType; + return TransliterationFlags::UPPERCASE_LOWERCASE == nType || + TransliterationFlags::LOWERCASE_UPPERCASE == nType || + TransliterationFlags::IGNORE_CASE == nType || + TransliterationFlags::SENTENCE_CASE == nType || + TransliterationFlags::TITLE_CASE == nType || + TransliterationFlags::TOGGLE_CASE == nType; } void TransliterationWrapper::setLanguageLocaleImpl( sal_uInt16 nLang ) @@ -107,17 +108,17 @@ void TransliterationWrapper::loadModuleIfNeeded( sal_uInt16 nLang ) bool bLoad = bFirstCall; bFirstCall = false; - if( static_cast< sal_Int32 >(nType) == TransliterationModulesExtra::SENTENCE_CASE ) + if( nType == TransliterationFlags::SENTENCE_CASE ) { if( bLoad ) loadModuleByImplName("SENTENCE_CASE", nLang); } - else if( static_cast< sal_Int32 >(nType) == TransliterationModulesExtra::TITLE_CASE ) + else if( nType == TransliterationFlags::TITLE_CASE ) { if( bLoad ) loadModuleByImplName("TITLE_CASE", nLang); } - else if( static_cast< sal_Int32 >(nType) == TransliterationModulesExtra::TOGGLE_CASE ) + else if( nType == TransliterationFlags::TOGGLE_CASE ) { if( bLoad ) loadModuleByImplName("TOGGLE_CASE", nLang); diff --git a/vcl/source/app/i18nhelp.cxx b/vcl/source/app/i18nhelp.cxx index f4f47a553c4d..696d971a30b4 100644 --- a/vcl/source/app/i18nhelp.cxx +++ b/vcl/source/app/i18nhelp.cxx @@ -22,13 +22,13 @@ #include "unotools/transliterationwrapper.hxx" #include "i18nlangtag/languagetag.hxx" +#include "i18nutil/transliteration.hxx" #include "rtl/ustrbuf.hxx" #include <vcl/i18nhelp.hxx> #include "com/sun/star/lang/XMultiServiceFactory.hpp" -#include "com/sun/star/i18n/TransliterationModules.hpp" using namespace ::com::sun::star; @@ -60,11 +60,11 @@ utl::TransliterationWrapper& vcl::I18nHelper::ImplGetTransliterationWrapper() co { if ( !mpTransliterationWrapper ) { - sal_Int32 nModules = i18n::TransliterationModules_IGNORE_WIDTH; + TransliterationFlags nModules = TransliterationFlags::IGNORE_WIDTH; if ( mbTransliterateIgnoreCase ) - nModules |= i18n::TransliterationModules_IGNORE_CASE; + nModules |= TransliterationFlags::IGNORE_CASE; - const_cast<vcl::I18nHelper*>(this)->mpTransliterationWrapper = new utl::TransliterationWrapper( m_xContext, (i18n::TransliterationModules)nModules ); + const_cast<vcl::I18nHelper*>(this)->mpTransliterationWrapper = new utl::TransliterationWrapper( m_xContext, nModules ); const_cast<vcl::I18nHelper*>(this)->mpTransliterationWrapper->loadModuleIfNeeded( maLanguageTag.getLanguageType() ); } return *mpTransliterationWrapper; diff --git a/vcl/source/edit/textview.cxx b/vcl/source/edit/textview.cxx index f810b56ac7bf..120b2ff5d172 100644 --- a/vcl/source/edit/textview.cxx +++ b/vcl/source/edit/textview.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <i18nutil/searchopt.hxx> #include <vcl/textview.hxx> #include <vcl/texteng.hxx> #include <vcl/settings.hxx> @@ -2248,7 +2249,7 @@ bool TextView::MatchGroup() return aMatchSel.HasRange(); } -bool TextView::Search( const css::util::SearchOptions& rSearchOptions, bool bForward ) +bool TextView::Search( const i18nutil::SearchOptions& rSearchOptions, bool bForward ) { bool bFound = false; TextSelection aSel( GetSelection() ); @@ -2271,7 +2272,7 @@ bool TextView::Search( const css::util::SearchOptions& rSearchOptions, bool bFor return bFound; } -sal_uInt16 TextView::Replace( const css::util::SearchOptions& rSearchOptions, bool bAll, bool bForward ) +sal_uInt16 TextView::Replace( const i18nutil::SearchOptions& rSearchOptions, bool bAll, bool bForward ) { sal_uInt16 nFound = 0; diff --git a/vcl/source/edit/xtextedt.cxx b/vcl/source/edit/xtextedt.cxx index 2a43f958158e..aa630c7ecab0 100644 --- a/vcl/source/edit/xtextedt.cxx +++ b/vcl/source/edit/xtextedt.cxx @@ -17,6 +17,7 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include <i18nutil/searchopt.hxx> #include <vcl/xtextedt.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> @@ -133,7 +134,7 @@ TextSelection ExtTextEngine::MatchGroup( const TextPaM& rCursor ) const return aSel; } -bool ExtTextEngine::Search( TextSelection& rSel, const util::SearchOptions& rSearchOptions, bool bForward ) +bool ExtTextEngine::Search( TextSelection& rSel, const i18nutil::SearchOptions& rSearchOptions, bool bForward ) { TextSelection aSel( rSel ); aSel.Justify(); @@ -156,9 +157,9 @@ bool ExtTextEngine::Search( TextSelection& rSel, const util::SearchOptions& rSea const sal_uInt32 nStartNode = aStartPaM.GetPara(); - util::SearchOptions aOptions( rSearchOptions ); + i18nutil::SearchOptions aOptions( rSearchOptions ); aOptions.Locale = Application::GetSettings().GetLanguageTag().getLocale(); - utl::TextSearch aSearcher( utl::TextSearch::UpgradeToSearchOptions2( aOptions)); + utl::TextSearch aSearcher( utl::TextSearch::UpgradeToSearchOptions2(aOptions) ); // iterate over the paragraphs for ( sal_uInt32 nNode = nStartNode; |