summaryrefslogtreecommitdiff
path: root/sfx2/source
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2009-12-10 23:06:35 +0100
committerMathias Bauer <mba@openoffice.org>2009-12-10 23:06:35 +0100
commit01a1d08f17800fb7118835a13230226f536d627f (patch)
tree1655855cb12613cf53d884ab380b0df952c1d685 /sfx2/source
parent8747398283b8217bbfcb2ef32bed0e1075b50c39 (diff)
#i107450#: move SvxSearchIten to svl
Diffstat (limited to 'sfx2/source')
-rw-r--r--sfx2/source/appl/appbas.cxx2
-rw-r--r--sfx2/source/control/makefile.mk1
-rw-r--r--sfx2/source/control/srchitem.cxx665
3 files changed, 1 insertions, 667 deletions
diff --git a/sfx2/source/appl/appbas.cxx b/sfx2/source/appl/appbas.cxx
index 4fe352c3c4bc..f2687fcb34ec 100644
--- a/sfx2/source/appl/appbas.cxx
+++ b/sfx2/source/appl/appbas.cxx
@@ -89,7 +89,7 @@
#define ITEMID_SEARCH SID_SEARCH_ITEM
-#include <sfx2/srchitem.hxx>
+#include <svl/srchitem.hxx>
#include <vos/socket.hxx>
#define SFX_TYPEMAP
diff --git a/sfx2/source/control/makefile.mk b/sfx2/source/control/makefile.mk
index 481952409d6c..6de7b1e59ae6 100644
--- a/sfx2/source/control/makefile.mk
+++ b/sfx2/source/control/makefile.mk
@@ -64,7 +64,6 @@ SLOFILES = \
$(SLO)$/sfxstatuslistener.obj \
$(SLO)$/shell.obj \
$(SLO)$/sorgitm.obj \
- $(SLO)$/srchitem.obj \
$(SLO)$/statcach.obj \
$(SLO)$/unoctitm.obj
diff --git a/sfx2/source/control/srchitem.cxx b/sfx2/source/control/srchitem.cxx
deleted file mode 100644
index 5702103e3398..000000000000
--- a/sfx2/source/control/srchitem.cxx
+++ /dev/null
@@ -1,665 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: srchitem.cxx,v $
- * $Revision: 1.24 $
- *
- * 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_sfx2.hxx"
-
-// include ---------------------------------------------------------------
-
-#ifndef __SBX_SBXVARIABLE_HXX
-#include <basic/sbxvar.hxx>
-#endif
-#include <unotools/searchopt.hxx>
-#include <com/sun/star/util/XReplaceable.hpp>
-#include <com/sun/star/util/XSearchable.hpp>
-#include <com/sun/star/util/XSearchDescriptor.hpp>
-#include <com/sun/star/util/XPropertyReplace.hpp>
-#include <com/sun/star/util/XReplaceDescriptor.hpp>
-#include <com/sun/star/lang/Locale.hpp>
-
-#include <svl/memberid.hrc>
-#include <i18npool/mslangid.hxx>
-
-#ifndef GCC
-#endif
-
-#define _SVX_SRCHITEM_CXX
-
-#include <sfx2/sfxsids.hrc>
-#define ITEMID_SEARCH SID_SEARCH_ITEM
-#include <sfx2/srchitem.hxx>
-
-#include <sfx2/sfxuno.hxx>
-
-using namespace utl;
-using namespace com::sun::star::beans;
-using namespace com::sun::star::i18n;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::util;
-
-#define CFG_ROOT_NODE "Office.Common/SearchOptions"
-
-#define SRCH_PARAMS 11
-#define SRCH_PARA_OPTIONS "Options"
-#define SRCH_PARA_FAMILY "Family"
-#define SRCH_PARA_COMMAND "Command"
-#define SRCH_PARA_CELLTYPE "CellType"
-#define SRCH_PARA_APPFLAG "AppFlag"
-#define SRCH_PARA_ROWDIR "RowDirection"
-#define SRCH_PARA_ALLTABLES "AllTables"
-#define SRCH_PARA_BACKWARD "Backward"
-#define SRCH_PARA_PATTERN "Pattern"
-#define SRCH_PARA_CONTENT "Content"
-#define SRCH_PARA_ASIANOPT "AsianOptions"
-
-// STATIC DATA -----------------------------------------------------------
-
-TYPEINIT1_FACTORY(SvxSearchItem, SfxPoolItem, new SvxSearchItem(0));
-
-// -----------------------------------------------------------------------
-
-static Sequence< ::rtl::OUString > lcl_GetNotifyNames()
-{
- // names of transliteration relevant properties
- static const char* aTranslitNames[] =
- {
- "IsMatchCase", // 0
- "Japanese/IsMatchFullHalfWidthForms", // 1
- "Japanese/IsMatchHiraganaKatakana", // 2
- "Japanese/IsMatchContractions", // 3
- "Japanese/IsMatchMinusDashCho-on", // 4
- "Japanese/IsMatchRepeatCharMarks", // 5
- "Japanese/IsMatchVariantFormKanji", // 6
- "Japanese/IsMatchOldKanaForms", // 7
- "Japanese/IsMatch_DiZi_DuZu", // 8
- "Japanese/IsMatch_BaVa_HaFa", // 9
- "Japanese/IsMatch_TsiThiChi_DhiZi", // 10
- "Japanese/IsMatch_HyuIyu_ByuVyu", // 11
- "Japanese/IsMatch_SeShe_ZeJe", // 12
- "Japanese/IsMatch_IaIya", // 13
- "Japanese/IsMatch_KiKu", // 14
- "Japanese/IsIgnorePunctuation", // 15
- "Japanese/IsIgnoreWhitespace", // 16
- "Japanese/IsIgnoreProlongedSoundMark", // 17
- "Japanese/IsIgnoreMiddleDot" // 18
- };
-
- const int nCount = sizeof( aTranslitNames ) / sizeof( aTranslitNames[0] );
- Sequence< ::rtl::OUString > aNames( nCount );
- ::rtl::OUString* pNames = aNames.getArray();
- for (INT32 i = 0; i < nCount; ++i)
- pNames[i] = ::rtl::OUString::createFromAscii( aTranslitNames[i] );
-
- return aNames;
-}
-
-// -----------------------------------------------------------------------
-SvxSearchItem::SvxSearchItem( const sal_uInt16 nId ) :
-
- SfxPoolItem( nId ),
- ConfigItem( ::rtl::OUString::createFromAscii( CFG_ROOT_NODE ) ),
-
- aSearchOpt ( SearchAlgorithms_ABSOLUTE,
- SearchFlags::LEV_RELAXED,
- ::rtl::OUString(),
- ::rtl::OUString(),
- Locale(),
- 2, 2, 2,
- TransliterationModules_IGNORE_CASE ),
- eFamily ( SFX_STYLE_FAMILY_PARA ),
- nCommand ( 0 ),
- nCellType ( SVX_SEARCHIN_FORMULA ),
- nAppFlag ( SVX_SEARCHAPP_WRITER ),
- bRowDirection ( sal_True ),
- bAllTables ( sal_False ),
- bNotes ( sal_False),
- bBackward ( sal_False ),
- bPattern ( sal_False ),
- bContent ( sal_False ),
- bAsianOptions ( FALSE )
-{
- EnableNotification( lcl_GetNotifyNames() );
-
- SvtSearchOptions aOpt;
-
- bBackward = aOpt.IsBackwards();
- bAsianOptions = aOpt.IsUseAsianOptions();
- bNotes = aOpt.IsNotes();
-
- if (aOpt.IsUseRegularExpression())
- aSearchOpt.algorithmType = SearchAlgorithms_REGEXP;
- if (aOpt.IsSimilaritySearch())
- aSearchOpt.algorithmType = SearchAlgorithms_APPROXIMATE;
- if (aOpt.IsWholeWordsOnly())
- aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY;
-
- INT32 &rFlags = aSearchOpt.transliterateFlags;
-
- if (!aOpt.IsMatchCase())
- rFlags |= TransliterationModules_IGNORE_CASE;
- if ( aOpt.IsMatchFullHalfWidthForms())
- rFlags |= TransliterationModules_IGNORE_WIDTH;
- if ( aOpt.IsMatchHiraganaKatakana())
- rFlags |= TransliterationModules_IGNORE_KANA;
- if ( aOpt.IsMatchContractions())
- rFlags |= TransliterationModules_ignoreSize_ja_JP;
- if ( aOpt.IsMatchMinusDashChoon())
- rFlags |= TransliterationModules_ignoreMinusSign_ja_JP;
- if ( aOpt.IsMatchRepeatCharMarks())
- rFlags |= TransliterationModules_ignoreIterationMark_ja_JP;
- if ( aOpt.IsMatchVariantFormKanji())
- rFlags |= TransliterationModules_ignoreTraditionalKanji_ja_JP;
- if ( aOpt.IsMatchOldKanaForms())
- rFlags |= TransliterationModules_ignoreTraditionalKana_ja_JP;
- if ( aOpt.IsMatchDiziDuzu())
- rFlags |= TransliterationModules_ignoreZiZu_ja_JP;
- if ( aOpt.IsMatchBavaHafa())
- rFlags |= TransliterationModules_ignoreBaFa_ja_JP;
- if ( aOpt.IsMatchTsithichiDhizi())
- rFlags |= TransliterationModules_ignoreTiJi_ja_JP;
- if ( aOpt.IsMatchHyuiyuByuvyu())
- rFlags |= TransliterationModules_ignoreHyuByu_ja_JP;
- if ( aOpt.IsMatchSesheZeje())
- rFlags |= TransliterationModules_ignoreSeZe_ja_JP;
- if ( aOpt.IsMatchIaiya())
- rFlags |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP;
- if ( aOpt.IsMatchKiku())
- rFlags |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP;
- if ( aOpt.IsIgnorePunctuation())
- rFlags |= TransliterationModules_ignoreSeparator_ja_JP;
- if ( aOpt.IsIgnoreWhitespace())
- rFlags |= TransliterationModules_ignoreSpace_ja_JP;
- if ( aOpt.IsIgnoreProlongedSoundMark())
- rFlags |= TransliterationModules_ignoreProlongedSoundMark_ja_JP;
- if ( aOpt.IsIgnoreMiddleDot())
- rFlags |= TransliterationModules_ignoreMiddleDot_ja_JP;
-}
-
-// -----------------------------------------------------------------------
-
-SvxSearchItem::SvxSearchItem( const SvxSearchItem& rItem ) :
-
- SfxPoolItem ( rItem ),
- ConfigItem( ::rtl::OUString::createFromAscii( CFG_ROOT_NODE ) ),
-
- aSearchOpt ( rItem.aSearchOpt ),
- eFamily ( rItem.eFamily ),
- nCommand ( rItem.nCommand ),
- nCellType ( rItem.nCellType ),
- nAppFlag ( rItem.nAppFlag ),
- bRowDirection ( rItem.bRowDirection ),
- bAllTables ( rItem.bAllTables ),
- bNotes ( rItem.bNotes),
- bBackward ( rItem.bBackward ),
- bPattern ( rItem.bPattern ),
- bContent ( rItem.bContent ),
- bAsianOptions ( rItem.bAsianOptions )
-{
- EnableNotification( lcl_GetNotifyNames() );
-}
-
-// -----------------------------------------------------------------------
-
-SvxSearchItem::~SvxSearchItem()
-{
-}
-
-// -----------------------------------------------------------------------
-SfxPoolItem* SvxSearchItem::Clone( SfxItemPool *) const
-{
- return new SvxSearchItem(*this);
-}
-
-// -----------------------------------------------------------------------
-
-//! used below
-static BOOL operator == ( const SearchOptions& rItem1, const SearchOptions& rItem2 )
-{
- return rItem1.algorithmType == rItem2.algorithmType &&
- rItem1.searchFlag == rItem2.searchFlag &&
- rItem1.searchString == rItem2.searchString &&
- rItem1.replaceString == rItem2.replaceString &&
- //rItem1.Locale == rItem2.Locale &&
- rItem1.changedChars == rItem2.changedChars &&
- rItem1.deletedChars == rItem2.deletedChars &&
- rItem1.insertedChars == rItem2.insertedChars &&
- rItem1.transliterateFlags == rItem2.transliterateFlags;
-}
-
-
-int SvxSearchItem::operator==( const SfxPoolItem& rItem ) const
-{
- DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal which or type" );
- const SvxSearchItem &rSItem = (SvxSearchItem &) rItem;
- return ( nCommand == rSItem.nCommand ) &&
- ( bBackward == rSItem.bBackward ) &&
- ( bPattern == rSItem.bPattern ) &&
- ( bContent == rSItem.bContent ) &&
- ( eFamily == rSItem.eFamily ) &&
- ( bRowDirection == rSItem.bRowDirection ) &&
- ( bAllTables == rSItem.bAllTables ) &&
- ( nCellType == rSItem.nCellType ) &&
- ( nAppFlag == rSItem.nAppFlag ) &&
- ( bAsianOptions == rSItem.bAsianOptions ) &&
- ( aSearchOpt == rSItem.aSearchOpt ) &&
- ( bNotes == rSItem.bNotes );
-}
-
-
-//------------------------------------------------------------------------
-
-SfxItemPresentation SvxSearchItem::GetPresentation
-(
- SfxItemPresentation ,
- SfxMapUnit ,
- SfxMapUnit ,
- XubString& ,
- const IntlWrapper *
-) const
-{
- return SFX_ITEM_PRESENTATION_NONE;
-}
-
-void SvxSearchItem::GetFromDescriptor( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor >& rDescr )
-{
- SetSearchString( rDescr->getSearchString() );
- ::com::sun::star::uno::Any aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchWords") );
- sal_Bool bTemp = false;
- aAny >>= bTemp ;
- SetWordOnly( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchCaseSensitive") );
- aAny >>= bTemp ;
- SetExact( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchBackwards") );
- aAny >>= bTemp ;
- SetBackward( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchInSelection") );
- aAny >>= bTemp ;
- SetSelection( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchRegularExpression") );
- aAny >>= bTemp ;
- SetRegExp( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarity") );
- aAny >>= bTemp ;
- SetLevenshtein( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRelax") );
- aAny >>= bTemp ;
- SetLEVRelaxed( bTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityExchange") );
- sal_Int16 nTemp = 0;
- aAny >>= nTemp ;
- SetLEVOther( nTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRemove") );
- aAny >>= nTemp ;
- SetLEVShorter( nTemp );
- aAny = rDescr->getPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityAdd") );
- aAny >>= nTemp ;
- SetLEVLonger( nTemp );
-}
-
-void SvxSearchItem::SetToDescriptor( ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > & rDescr )
-{
- rDescr->setSearchString( GetSearchString() );
- ::com::sun::star::uno::Any aAny;
- aAny <<= GetWordOnly() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchWords"), aAny );
- aAny <<= GetExact() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchCaseSensitive"), aAny );
- aAny <<= GetBackward() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchBackwards"), aAny );
- aAny <<= GetSelection() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchInSelection"), aAny );
- aAny <<= GetRegExp() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchRegularExpression"), aAny );
- aAny <<= IsLevenshtein() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarity"), aAny );
- aAny <<= IsLEVRelaxed() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRelax"), aAny );
- aAny <<= GetLEVOther() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityExchange"), aAny );
- aAny <<= GetLEVShorter() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityRemove"), aAny );
- aAny <<= GetLEVLonger() ;
- rDescr->setPropertyValue( DEFINE_CONST_UNICODE("SearchSimilarityAdd"), aAny );
-}
-
-
-void SvxSearchItem::Notify( const Sequence< ::rtl::OUString > & )
-{
- // applies transliteration changes in the configuration database
- // to the current SvxSearchItem
- SetTransliterationFlags( SvtSearchOptions().GetTransliterationFlags() );
-}
-
-void SvxSearchItem::Commit()
-{
-}
-
-void SvxSearchItem::SetMatchFullHalfWidthForms( sal_Bool bVal )
-{
- if (bVal)
- aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_WIDTH;
- else
- aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_WIDTH;
-}
-
-
-void SvxSearchItem::SetWordOnly( sal_Bool bVal )
-{
- if (bVal)
- aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY;
- else
- aSearchOpt.searchFlag &= ~SearchFlags::NORM_WORD_ONLY;
-}
-
-
-void SvxSearchItem::SetExact( sal_Bool bVal )
-{
- if (!bVal)
- aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_CASE;
- else
- aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_CASE;
-}
-
-
-void SvxSearchItem::SetSelection( sal_Bool bVal )
-{
- if (bVal)
- {
- aSearchOpt.searchFlag |= (SearchFlags::REG_NOT_BEGINOFLINE |
- SearchFlags::REG_NOT_ENDOFLINE);
- }
- else
- {
- aSearchOpt.searchFlag &= ~(SearchFlags::REG_NOT_BEGINOFLINE |
- SearchFlags::REG_NOT_ENDOFLINE);
- }
-}
-
-
-void SvxSearchItem::SetRegExp( sal_Bool bVal )
-{
- if ( bVal )
- aSearchOpt.algorithmType = SearchAlgorithms_REGEXP;
- else if ( SearchAlgorithms_REGEXP == aSearchOpt.algorithmType )
- aSearchOpt.algorithmType = SearchAlgorithms_ABSOLUTE;
-}
-
-
-void SvxSearchItem::SetLEVRelaxed( sal_Bool bVal )
-{
- if (bVal)
- aSearchOpt.searchFlag |= SearchFlags::LEV_RELAXED;
- else
- aSearchOpt.searchFlag &= ~SearchFlags::LEV_RELAXED;
-}
-
-
-void SvxSearchItem::SetLevenshtein( sal_Bool bVal )
-{
- if ( bVal )
- aSearchOpt.algorithmType = SearchAlgorithms_APPROXIMATE;
- else if ( SearchAlgorithms_APPROXIMATE == aSearchOpt.algorithmType )
- aSearchOpt.algorithmType = SearchAlgorithms_ABSOLUTE;
-}
-
-
-void SvxSearchItem::SetTransliterationFlags( sal_Int32 nFlags )
-{
- aSearchOpt.transliterateFlags = nFlags;
-}
-
-sal_Bool SvxSearchItem::QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId ) const
-{
- nMemberId &= ~CONVERT_TWIPS;
- switch ( nMemberId )
- {
- case 0 :
- {
- Sequence< PropertyValue > aSeq( SRCH_PARAMS );
- aSeq[0].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_OPTIONS ) );
- aSeq[0].Value <<= aSearchOpt;
- aSeq[1].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_FAMILY ));
- aSeq[1].Value <<= sal_Int16( eFamily );
- aSeq[2].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_COMMAND ));
- aSeq[2].Value <<= nCommand;
- aSeq[3].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_CELLTYPE ));
- aSeq[3].Value <<= nCellType;
- aSeq[4].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_APPFLAG ));
- aSeq[4].Value <<= nAppFlag;
- aSeq[5].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_ROWDIR ));
- aSeq[5].Value <<= bRowDirection;
- aSeq[6].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_ALLTABLES ));
- aSeq[6].Value <<= bAllTables;
- aSeq[7].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_BACKWARD ));
- aSeq[7].Value <<= bBackward;
- aSeq[8].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_PATTERN ));
- aSeq[8].Value <<= bPattern;
- aSeq[9].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_CONTENT ));
- aSeq[9].Value <<= bContent;
- aSeq[10].Name = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SRCH_PARA_ASIANOPT ));
- aSeq[10].Value <<= bAsianOptions;
- rVal <<= aSeq;
- }
- break;
- case MID_SEARCH_COMMAND:
- rVal <<= (sal_Int16) nCommand; break;
- case MID_SEARCH_STYLEFAMILY:
- rVal <<= (sal_Int16) eFamily; break;
- case MID_SEARCH_CELLTYPE:
- rVal <<= (sal_Int32) nCellType; break;
- case MID_SEARCH_ROWDIRECTION:
- rVal <<= (sal_Bool) bRowDirection; break;
- case MID_SEARCH_ALLTABLES:
- rVal <<= (sal_Bool) bAllTables; break;
- case MID_SEARCH_BACKWARD:
- rVal <<= (sal_Bool) bBackward; break;
- case MID_SEARCH_PATTERN:
- rVal <<= (sal_Bool) bPattern; break;
- case MID_SEARCH_CONTENT:
- rVal <<= (sal_Bool) bContent; break;
- case MID_SEARCH_ASIANOPTIONS:
- rVal <<= (sal_Bool) bAsianOptions; break;
- case MID_SEARCH_ALGORITHMTYPE:
- rVal <<= (sal_Int16) aSearchOpt.algorithmType; break;
- case MID_SEARCH_FLAGS:
- rVal <<= aSearchOpt.searchFlag; break;
- case MID_SEARCH_SEARCHSTRING:
- rVal <<= aSearchOpt.searchString; break;
- case MID_SEARCH_REPLACESTRING:
- rVal <<= aSearchOpt.replaceString; break;
- case MID_SEARCH_CHANGEDCHARS:
- rVal <<= aSearchOpt.changedChars; break;
- case MID_SEARCH_DELETEDCHARS:
- rVal <<= aSearchOpt.deletedChars; break;
- case MID_SEARCH_INSERTEDCHARS:
- rVal <<= aSearchOpt.insertedChars; break;
- case MID_SEARCH_TRANSLITERATEFLAGS:
- rVal <<= aSearchOpt.transliterateFlags; break;
- case MID_SEARCH_LOCALE:
- {
- sal_Int16 nLocale;
- if (aSearchOpt.Locale.Language.getLength() || aSearchOpt.Locale.Country.getLength() )
- nLocale = MsLangId::convertLocaleToLanguage( aSearchOpt.Locale );
- else
- nLocale = LANGUAGE_NONE;
- rVal <<= nLocale;
- break;
- }
-
- default:
- DBG_ERRORFILE( "SvxSearchItem::QueryValue(): Unknown MemberId" );
- return sal_False;
- }
-
- return sal_True;
-}
-
-// -----------------------------------------------------------------------
-
-sal_Bool SvxSearchItem::PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId )
-{
- nMemberId &= ~CONVERT_TWIPS;
- sal_Bool bRet = sal_False;
- sal_Int32 nInt = 0;
- switch ( nMemberId )
- {
- case 0 :
- {
- Sequence< PropertyValue > aSeq;
- if ( ( rVal >>= aSeq ) && ( aSeq.getLength() == SRCH_PARAMS ) )
- {
- sal_Int16 nConvertedCount( 0 );
- for ( sal_Int32 i = 0; i < aSeq.getLength(); ++i )
- {
- if ( aSeq[i].Name.equalsAscii( SRCH_PARA_OPTIONS ) )
- {
- if ( ( aSeq[i].Value >>= aSearchOpt ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_FAMILY ) )
- {
- sal_uInt16 nTemp( 0 );
- if ( ( aSeq[i].Value >>= nTemp ) == sal_True )
- {
- eFamily = SfxStyleFamily( nTemp );
- ++nConvertedCount;
- }
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_COMMAND ) )
- {
- if ( ( aSeq[i].Value >>= nCommand ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_CELLTYPE ) )
- {
- if ( ( aSeq[i].Value >>= nCellType ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_APPFLAG ) )
- {
- if ( ( aSeq[i].Value >>= nAppFlag ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_ROWDIR ) )
- {
- if ( ( aSeq[i].Value >>= bRowDirection ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_ALLTABLES ) )
- {
- if ( ( aSeq[i].Value >>= bAllTables ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_BACKWARD ) )
- {
- if ( ( aSeq[i].Value >>= bBackward ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_PATTERN ) )
- {
- if ( ( aSeq[i].Value >>= bPattern ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_CONTENT ) )
- {
- if ( ( aSeq[i].Value >>= bContent ) == sal_True )
- ++nConvertedCount;
- }
- else if ( aSeq[i].Name.equalsAscii( SRCH_PARA_ASIANOPT ) )
- {
- if ( ( aSeq[i].Value >>= bAsianOptions ) == sal_True )
- ++nConvertedCount;
- }
- }
-
- bRet = ( nConvertedCount == SRCH_PARAMS );
- }
- break;
- }
- case MID_SEARCH_COMMAND:
- bRet = (rVal >>= nInt); nCommand = (sal_uInt16) nInt; break;
- case MID_SEARCH_STYLEFAMILY:
- bRet = (rVal >>= nInt); eFamily = (SfxStyleFamily) (sal_Int16) nInt; break;
- case MID_SEARCH_CELLTYPE:
- bRet = (rVal >>= nInt); nCellType = (sal_uInt16) nInt; break;
- case MID_SEARCH_ROWDIRECTION:
- bRet = (rVal >>= bRowDirection); break;
- case MID_SEARCH_ALLTABLES:
- bRet = (rVal >>= bAllTables); break;
- case MID_SEARCH_BACKWARD:
- bRet = (rVal >>= bBackward); break;
- case MID_SEARCH_PATTERN:
- bRet = (rVal >>= bPattern); break;
- case MID_SEARCH_CONTENT:
- bRet = (rVal >>= bContent); break;
- case MID_SEARCH_ASIANOPTIONS:
- bRet = (rVal >>= bAsianOptions); break;
- case MID_SEARCH_ALGORITHMTYPE:
- bRet = (rVal >>= nInt); aSearchOpt.algorithmType = (SearchAlgorithms)(sal_Int16)nInt; break;
- case MID_SEARCH_FLAGS:
- bRet = (rVal >>= aSearchOpt.searchFlag); break;
- case MID_SEARCH_SEARCHSTRING:
- bRet = (rVal >>= aSearchOpt.searchString); break;
- case MID_SEARCH_REPLACESTRING:
- bRet = (rVal >>= aSearchOpt.replaceString); break;
- case MID_SEARCH_CHANGEDCHARS:
- bRet = (rVal >>= aSearchOpt.changedChars); break;
- case MID_SEARCH_DELETEDCHARS:
- bRet = (rVal >>= aSearchOpt.deletedChars); break;
- case MID_SEARCH_INSERTEDCHARS:
- bRet = (rVal >>= aSearchOpt.insertedChars); break;
- case MID_SEARCH_TRANSLITERATEFLAGS:
- bRet = (rVal >>= aSearchOpt.transliterateFlags); break;
- case MID_SEARCH_LOCALE:
- {
- bRet = (rVal >>= nInt);
- if ( bRet )
- {
- if ( nInt == LANGUAGE_NONE )
- {
- aSearchOpt.Locale = ::com::sun::star::lang::Locale();
- }
- else
- {
- MsLangId::convertLanguageToLocale( (sal_Int16) nInt, aSearchOpt.Locale );
- }
- }
- break;
- }
- default:
- DBG_ERROR( "Unknown MemberId" );
- }
-
- return bRet;
-}
-
-