diff options
Diffstat (limited to 'unotools/source/config/searchopt.cxx')
-rw-r--r-- | unotools/source/config/searchopt.cxx | 640 |
1 files changed, 0 insertions, 640 deletions
diff --git a/unotools/source/config/searchopt.cxx b/unotools/source/config/searchopt.cxx deleted file mode 100644 index 63c5f6e410..0000000000 --- a/unotools/source/config/searchopt.cxx +++ /dev/null @@ -1,640 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_unotools.hxx" - -#include <unotools/searchopt.hxx> -#include <tools/solar.h> -#include <tools/debug.hxx> -#include <unotools/configitem.hxx> -#include <com/sun/star/i18n/TransliterationModules.hpp> -#include <com/sun/star/uno/Sequence.hxx> -#include <com/sun/star/uno/Any.h> -#include <rtl/logfile.hxx> -#include <sal/macros.h> - - -using namespace utl; -using namespace com::sun::star::uno; -using namespace com::sun::star::i18n; - -using ::rtl::OUString; - -#define MAX_FLAGS_OFFSET 25 - -////////////////////////////////////////////////////////////////////// - - -class SvtSearchOptions_Impl : public ConfigItem -{ - sal_Int32 nFlags; - sal_Bool bModified; - - // disallow copy-constructor and assignment-operator for now - SvtSearchOptions_Impl( const SvtSearchOptions_Impl & ); - SvtSearchOptions_Impl & operator = ( const SvtSearchOptions_Impl & ); - -protected: - sal_Bool IsModified() const { return bModified; } - using ConfigItem::SetModified; - void SetModified( sal_Bool bVal ); - sal_Bool Load(); - sal_Bool Save(); - - Sequence< OUString > GetPropertyNames() const; - -public: - SvtSearchOptions_Impl(); - virtual ~SvtSearchOptions_Impl(); - - // ConfigItem - virtual void Commit(); - virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString >& aPropertyNames ); - - sal_Bool GetFlag( sal_uInt16 nOffset ) const; - void SetFlag( sal_uInt16 nOffset, sal_Bool bVal ); -}; - - - -SvtSearchOptions_Impl::SvtSearchOptions_Impl() : - ConfigItem( OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/SearchOptions")) ) -{ - RTL_LOGFILE_CONTEXT(aLog, "unotools SvtSearchOptions_Impl::SvtSearchOptions_Impl()"); - nFlags = 0x0003FFFF; // set all options values to 'true' - Load(); - SetModified( sal_False ); -} - - -SvtSearchOptions_Impl::~SvtSearchOptions_Impl() -{ - Commit(); -} - - -void SvtSearchOptions_Impl::Commit() -{ - if (IsModified()) - Save(); -} - -void SvtSearchOptions_Impl::Notify( const Sequence< rtl::OUString >& ) -{ -} - - -sal_Bool SvtSearchOptions_Impl::GetFlag( sal_uInt16 nOffset ) const -{ - DBG_ASSERT( nOffset <= MAX_FLAGS_OFFSET, "offset out of range"); - return ((nFlags >> nOffset) & 0x01) ? sal_True : sal_False; -} - - -void SvtSearchOptions_Impl::SetFlag( sal_uInt16 nOffset, sal_Bool bVal ) -{ - DBG_ASSERT( nOffset <= MAX_FLAGS_OFFSET, "offset out of range"); - sal_Int32 nOldFlags = nFlags; - sal_Int32 nMask = ((sal_Int32) 1) << nOffset; - if (bVal) - nFlags |= nMask; - else - nFlags &= ~nMask; - if (nFlags != nOldFlags) - SetModified( sal_True ); -} - - -void SvtSearchOptions_Impl::SetModified( sal_Bool bVal ) -{ - bModified = bVal; - if (bModified) - { - ConfigItem::SetModified(); - } -} - - -Sequence< OUString > SvtSearchOptions_Impl::GetPropertyNames() const -{ - static const char* aPropNames[ MAX_FLAGS_OFFSET + 1 ] = - { - "IsWholeWordsOnly", // 0 - "IsBackwards", // 1 - "IsUseRegularExpression", // 2 - //"IsCurrentSelectionOnly", // interactively set or not... - "IsSearchForStyles", // 3 - "IsSimilaritySearch", // 4 - "IsUseAsianOptions", // 5 - "IsMatchCase", // 6 - "Japanese/IsMatchFullHalfWidthForms", // 7 - "Japanese/IsMatchHiraganaKatakana", // 8 - "Japanese/IsMatchContractions", // 9 - "Japanese/IsMatchMinusDashCho-on", // 10 - "Japanese/IsMatchRepeatCharMarks", // 11 - "Japanese/IsMatchVariantFormKanji", // 12 - "Japanese/IsMatchOldKanaForms", // 13 - "Japanese/IsMatch_DiZi_DuZu", // 14 - "Japanese/IsMatch_BaVa_HaFa", // 15 - "Japanese/IsMatch_TsiThiChi_DhiZi", // 16 - "Japanese/IsMatch_HyuIyu_ByuVyu", // 17 - "Japanese/IsMatch_SeShe_ZeJe", // 18 - "Japanese/IsMatch_IaIya", // 19 - "Japanese/IsMatch_KiKu", // 20 - "Japanese/IsIgnorePunctuation", // 21 - "Japanese/IsIgnoreWhitespace", // 22 - "Japanese/IsIgnoreProlongedSoundMark", // 23 - "Japanese/IsIgnoreMiddleDot", // 24 - "IsNotes" // 25 - }; - - const int nCount = SAL_N_ELEMENTS( aPropNames ); - Sequence< OUString > aNames( nCount ); - OUString* pNames = aNames.getArray(); - for (sal_Int32 i = 0; i < nCount; ++i) - pNames[i] = OUString::createFromAscii( aPropNames[i] ); - - return aNames; -} - - -sal_Bool SvtSearchOptions_Impl::Load() -{ - sal_Bool bSucc = sal_False; - - Sequence< OUString > aNames = GetPropertyNames(); - sal_Int32 nProps = aNames.getLength(); - - const Sequence< Any > aValues = GetProperties( aNames ); - DBG_ASSERT( aValues.getLength() == aNames.getLength(), - "GetProperties failed" ); - //EnableNotification( aNames ); - - if (nProps && aValues.getLength() == nProps) - { - bSucc = sal_True; - - const Any* pValues = aValues.getConstArray(); - for (sal_uInt16 i = 0; i < nProps; ++i) - { - const Any &rVal = pValues[i]; - DBG_ASSERT( rVal.hasValue(), "property value missing" ); - if (rVal.hasValue()) - { - sal_Bool bVal = sal_Bool(); - if (rVal >>= bVal) - { - if (i <= MAX_FLAGS_OFFSET) - { - // use index in sequence as flag index - SetFlag( i, bVal ); - } - else { - OSL_FAIL( "unexpected index" ); - } - } - else - { - OSL_FAIL( "unexpected type" ); - bSucc = sal_False; - } - } - else - { - OSL_FAIL( "value missing" ); - bSucc = sal_False; - } - } - } - DBG_ASSERT( bSucc, "LoadConfig failed" ); - - return bSucc; -} - - -sal_Bool SvtSearchOptions_Impl::Save() -{ - sal_Bool bSucc = sal_False; - - const Sequence< OUString > aNames = GetPropertyNames(); - sal_Int32 nProps = aNames.getLength(); - - Sequence< Any > aValues( nProps ); - Any *pValue = aValues.getArray(); - - DBG_ASSERT( nProps == MAX_FLAGS_OFFSET + 1, - "unexpected size of index" ); - if (nProps && nProps == MAX_FLAGS_OFFSET + 1) - { - for (sal_uInt16 i = 0; i < nProps; ++i) - pValue[i] <<= (sal_Bool) GetFlag(i); - bSucc |= PutProperties( aNames, aValues ); - } - - if (bSucc) - SetModified( sal_False ); - - return bSucc; -} - - -////////////////////////////////////////////////////////////////////// - -SvtSearchOptions::SvtSearchOptions() -{ - pImpl = new SvtSearchOptions_Impl; -} - - -SvtSearchOptions::~SvtSearchOptions() -{ - delete pImpl; -} - - -sal_Int32 SvtSearchOptions::GetTransliterationFlags() const -{ - sal_Int32 nRes = 0; - - if (!IsMatchCase()) // 'IsMatchCase' means act case sensitive - nRes |= TransliterationModules_IGNORE_CASE; - if ( IsMatchFullHalfWidthForms()) - nRes |= TransliterationModules_IGNORE_WIDTH; - if ( IsMatchHiraganaKatakana()) - nRes |= TransliterationModules_IGNORE_KANA; - if ( IsMatchContractions()) - nRes |= TransliterationModules_ignoreSize_ja_JP; - if ( IsMatchMinusDashChoon()) - nRes |= TransliterationModules_ignoreMinusSign_ja_JP; - if ( IsMatchRepeatCharMarks()) - nRes |= TransliterationModules_ignoreIterationMark_ja_JP; - if ( IsMatchVariantFormKanji()) - nRes |= TransliterationModules_ignoreTraditionalKanji_ja_JP; - if ( IsMatchOldKanaForms()) - nRes |= TransliterationModules_ignoreTraditionalKana_ja_JP; - if ( IsMatchDiziDuzu()) - nRes |= TransliterationModules_ignoreZiZu_ja_JP; - if ( IsMatchBavaHafa()) - nRes |= TransliterationModules_ignoreBaFa_ja_JP; - if ( IsMatchTsithichiDhizi()) - nRes |= TransliterationModules_ignoreTiJi_ja_JP; - if ( IsMatchHyuiyuByuvyu()) - nRes |= TransliterationModules_ignoreHyuByu_ja_JP; - if ( IsMatchSesheZeje()) - nRes |= TransliterationModules_ignoreSeZe_ja_JP; - if ( IsMatchIaiya()) - nRes |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP; - if ( IsMatchKiku()) - nRes |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP; - if ( IsIgnorePunctuation()) - nRes |= TransliterationModules_ignoreSeparator_ja_JP; - if ( IsIgnoreWhitespace()) - nRes |= TransliterationModules_ignoreSpace_ja_JP; - if ( IsIgnoreProlongedSoundMark()) - nRes |= TransliterationModules_ignoreProlongedSoundMark_ja_JP; - if ( IsIgnoreMiddleDot()) - nRes |= TransliterationModules_ignoreMiddleDot_ja_JP; - - return nRes; -} - - -sal_Bool SvtSearchOptions::IsWholeWordsOnly() const -{ - return pImpl->GetFlag( 0 ); -} - - -void SvtSearchOptions::SetWholeWordsOnly( sal_Bool bVal ) -{ - pImpl->SetFlag( 0, bVal ); -} - - -sal_Bool SvtSearchOptions::IsBackwards() const -{ - return pImpl->GetFlag( 1 ); -} - - -void SvtSearchOptions::SetBackwards( sal_Bool bVal ) -{ - pImpl->SetFlag( 1, bVal ); -} - - -sal_Bool SvtSearchOptions::IsUseRegularExpression() const -{ - return pImpl->GetFlag( 2 ); -} - - -void SvtSearchOptions::SetUseRegularExpression( sal_Bool bVal ) -{ - pImpl->SetFlag( 2, bVal ); -} - - -sal_Bool SvtSearchOptions::IsSearchForStyles() const -{ - return pImpl->GetFlag( 3 ); -} - - -void SvtSearchOptions::SetSearchForStyles( sal_Bool bVal ) -{ - pImpl->SetFlag( 3, bVal ); -} - - -sal_Bool SvtSearchOptions::IsSimilaritySearch() const -{ - return pImpl->GetFlag( 4 ); -} - - -void SvtSearchOptions::SetSimilaritySearch( sal_Bool bVal ) -{ - pImpl->SetFlag( 4, bVal ); -} - - -sal_Bool SvtSearchOptions::IsUseAsianOptions() const -{ - return pImpl->GetFlag( 5 ); -} - - -void SvtSearchOptions::SetUseAsianOptions( sal_Bool bVal ) -{ - pImpl->SetFlag( 5, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchCase() const -{ - return pImpl->GetFlag( 6 ); -} - - -void SvtSearchOptions::SetMatchCase( sal_Bool bVal ) -{ - pImpl->SetFlag( 6, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchFullHalfWidthForms() const -{ - return pImpl->GetFlag( 7 ); -} - - -void SvtSearchOptions::SetMatchFullHalfWidthForms( sal_Bool bVal ) -{ - pImpl->SetFlag( 7, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchHiraganaKatakana() const -{ - return pImpl->GetFlag( 8 ); -} - - -void SvtSearchOptions::SetMatchHiraganaKatakana( sal_Bool bVal ) -{ - pImpl->SetFlag( 8, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchContractions() const -{ - return pImpl->GetFlag( 9 ); -} - - -void SvtSearchOptions::SetMatchContractions( sal_Bool bVal ) -{ - pImpl->SetFlag( 9, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchMinusDashChoon() const -{ - return pImpl->GetFlag( 10 ); -} - - -void SvtSearchOptions::SetMatchMinusDashChoon( sal_Bool bVal ) -{ - pImpl->SetFlag( 10, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchRepeatCharMarks() const -{ - return pImpl->GetFlag( 11 ); -} - - -void SvtSearchOptions::SetMatchRepeatCharMarks( sal_Bool bVal ) -{ - pImpl->SetFlag( 11, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchVariantFormKanji() const -{ - return pImpl->GetFlag( 12 ); -} - - -void SvtSearchOptions::SetMatchVariantFormKanji( sal_Bool bVal ) -{ - pImpl->SetFlag( 12, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchOldKanaForms() const -{ - return pImpl->GetFlag( 13 ); -} - - -void SvtSearchOptions::SetMatchOldKanaForms( sal_Bool bVal ) -{ - pImpl->SetFlag( 13, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchDiziDuzu() const -{ - return pImpl->GetFlag( 14 ); -} - - -void SvtSearchOptions::SetMatchDiziDuzu( sal_Bool bVal ) -{ - pImpl->SetFlag( 14, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchBavaHafa() const -{ - return pImpl->GetFlag( 15 ); -} - - -void SvtSearchOptions::SetMatchBavaHafa( sal_Bool bVal ) -{ - pImpl->SetFlag( 15, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchTsithichiDhizi() const -{ - return pImpl->GetFlag( 16 ); -} - - -void SvtSearchOptions::SetMatchTsithichiDhizi( sal_Bool bVal ) -{ - pImpl->SetFlag( 16, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchHyuiyuByuvyu() const -{ - return pImpl->GetFlag( 17 ); -} - - -void SvtSearchOptions::SetMatchHyuiyuByuvyu( sal_Bool bVal ) -{ - pImpl->SetFlag( 17, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchSesheZeje() const -{ - return pImpl->GetFlag( 18 ); -} - - -void SvtSearchOptions::SetMatchSesheZeje( sal_Bool bVal ) -{ - pImpl->SetFlag( 18, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchIaiya() const -{ - return pImpl->GetFlag( 19 ); -} - - -void SvtSearchOptions::SetMatchIaiya( sal_Bool bVal ) -{ - pImpl->SetFlag( 19, bVal ); -} - - -sal_Bool SvtSearchOptions::IsMatchKiku() const -{ - return pImpl->GetFlag( 20 ); -} - - -void SvtSearchOptions::SetMatchKiku( sal_Bool bVal ) -{ - pImpl->SetFlag( 20, bVal ); -} - - -sal_Bool SvtSearchOptions::IsIgnorePunctuation() const -{ - return pImpl->GetFlag( 21 ); -} - - -void SvtSearchOptions::SetIgnorePunctuation( sal_Bool bVal ) -{ - pImpl->SetFlag( 21, bVal ); -} - - -sal_Bool SvtSearchOptions::IsIgnoreWhitespace() const -{ - return pImpl->GetFlag( 22 ); -} - - -void SvtSearchOptions::SetIgnoreWhitespace( sal_Bool bVal ) -{ - pImpl->SetFlag( 22, bVal ); -} - - -sal_Bool SvtSearchOptions::IsIgnoreProlongedSoundMark() const -{ - return pImpl->GetFlag( 23 ); -} - - -void SvtSearchOptions::SetIgnoreProlongedSoundMark( sal_Bool bVal ) -{ - pImpl->SetFlag( 23, bVal ); -} - - -sal_Bool SvtSearchOptions::IsIgnoreMiddleDot() const -{ - return pImpl->GetFlag( 24 ); -} - - -void SvtSearchOptions::SetIgnoreMiddleDot( sal_Bool bVal ) -{ - pImpl->SetFlag( 24, bVal ); -} - -sal_Bool SvtSearchOptions::IsNotes() const -{ - return pImpl->GetFlag( 25 ); -} - - -void SvtSearchOptions::SetNotes( sal_Bool bVal ) -{ - pImpl->SetFlag( 25, bVal ); -} - -////////////////////////////////////////////////////////////////////// - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |