bump product version to 4.1.6.2
[LibreOffice.git] / svl / source / items / srchitem.cxx
blobf094b5376d48fccfec5bed68bcf0742ac27401a2
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include <svl/srchitem.hxx>
21 #include <sal/macros.h>
23 #include <unotools/searchopt.hxx>
24 #include <com/sun/star/util/XReplaceable.hpp>
25 #include <com/sun/star/util/XSearchable.hpp>
26 #include <com/sun/star/util/XSearchDescriptor.hpp>
27 #include <com/sun/star/util/XPropertyReplace.hpp>
28 #include <com/sun/star/util/XReplaceDescriptor.hpp>
29 #include <com/sun/star/lang/Locale.hpp>
30 #include <svl/memberid.hrc>
31 #include <i18nlangtag/languagetag.hxx>
33 using namespace utl;
34 using namespace com::sun::star::beans;
35 using namespace com::sun::star::i18n;
36 using namespace com::sun::star::lang;
37 using namespace com::sun::star::uno;
38 using namespace com::sun::star::util;
40 #define CFG_ROOT_NODE "Office.Common/SearchOptions"
42 #define SRCH_PARAMS 12
43 #define SRCH_PARA_OPTIONS "Options"
44 #define SRCH_PARA_FAMILY "Family"
45 #define SRCH_PARA_COMMAND "Command"
46 #define SRCH_PARA_CELLTYPE "CellType"
47 #define SRCH_PARA_APPFLAG "AppFlag"
48 #define SRCH_PARA_ROWDIR "RowDirection"
49 #define SRCH_PARA_ALLTABLES "AllTables"
50 #define SRCH_PARA_SEARCHFILTERED "SearchFiltered"
51 #define SRCH_PARA_BACKWARD "Backward"
52 #define SRCH_PARA_PATTERN "Pattern"
53 #define SRCH_PARA_CONTENT "Content"
54 #define SRCH_PARA_ASIANOPT "AsianOptions"
56 // STATIC DATA -----------------------------------------------------------
58 TYPEINIT1_FACTORY(SvxSearchItem, SfxPoolItem, new SvxSearchItem(0));
60 // -----------------------------------------------------------------------
62 static Sequence< OUString > lcl_GetNotifyNames()
64 // names of transliteration relevant properties
65 static const char* aTranslitNames[] =
67 "IsMatchCase", // 0
68 "Japanese/IsMatchFullHalfWidthForms", // 1
69 "Japanese/IsMatchHiraganaKatakana", // 2
70 "Japanese/IsMatchContractions", // 3
71 "Japanese/IsMatchMinusDashCho-on", // 4
72 "Japanese/IsMatchRepeatCharMarks", // 5
73 "Japanese/IsMatchVariantFormKanji", // 6
74 "Japanese/IsMatchOldKanaForms", // 7
75 "Japanese/IsMatch_DiZi_DuZu", // 8
76 "Japanese/IsMatch_BaVa_HaFa", // 9
77 "Japanese/IsMatch_TsiThiChi_DhiZi", // 10
78 "Japanese/IsMatch_HyuIyu_ByuVyu", // 11
79 "Japanese/IsMatch_SeShe_ZeJe", // 12
80 "Japanese/IsMatch_IaIya", // 13
81 "Japanese/IsMatch_KiKu", // 14
82 "Japanese/IsIgnorePunctuation", // 15
83 "Japanese/IsIgnoreWhitespace", // 16
84 "Japanese/IsIgnoreProlongedSoundMark", // 17
85 "Japanese/IsIgnoreMiddleDot" // 18
88 const int nCount = SAL_N_ELEMENTS( aTranslitNames );
89 Sequence< OUString > aNames( nCount );
90 OUString* pNames = aNames.getArray();
91 for (sal_Int32 i = 0; i < nCount; ++i)
92 pNames[i] = OUString::createFromAscii( aTranslitNames[i] );
94 return aNames;
97 // -----------------------------------------------------------------------
98 SvxSearchItem::SvxSearchItem( const sal_uInt16 nId ) :
100 SfxPoolItem( nId ),
101 ConfigItem( OUString(CFG_ROOT_NODE ) ),
103 aSearchOpt ( SearchAlgorithms_ABSOLUTE,
104 SearchFlags::LEV_RELAXED,
105 OUString(),
106 OUString(),
107 Locale(),
108 2, 2, 2,
109 TransliterationModules_IGNORE_CASE ),
110 eFamily ( SFX_STYLE_FAMILY_PARA ),
111 nCommand ( 0 ),
112 nCellType ( SVX_SEARCHIN_FORMULA ),
113 nAppFlag ( SVX_SEARCHAPP_WRITER ),
114 bRowDirection ( sal_True ),
115 bAllTables ( sal_False ),
116 bSearchFiltered ( sal_False ),
117 bNotes ( sal_False),
118 bBackward ( sal_False ),
119 bPattern ( sal_False ),
120 bContent ( sal_False ),
121 bAsianOptions ( sal_False )
123 EnableNotification( lcl_GetNotifyNames() );
125 SvtSearchOptions aOpt;
127 bBackward = aOpt.IsBackwards();
128 bAsianOptions = aOpt.IsUseAsianOptions();
129 bNotes = aOpt.IsNotes();
131 if (aOpt.IsUseRegularExpression())
132 aSearchOpt.algorithmType = SearchAlgorithms_REGEXP;
133 if (aOpt.IsSimilaritySearch())
134 aSearchOpt.algorithmType = SearchAlgorithms_APPROXIMATE;
135 if (aOpt.IsWholeWordsOnly())
136 aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY;
138 sal_Int32 &rFlags = aSearchOpt.transliterateFlags;
140 if (!aOpt.IsMatchCase())
141 rFlags |= TransliterationModules_IGNORE_CASE;
142 if ( aOpt.IsMatchFullHalfWidthForms())
143 rFlags |= TransliterationModules_IGNORE_WIDTH;
144 if ( bAsianOptions )
146 if ( aOpt.IsMatchHiraganaKatakana())
147 rFlags |= TransliterationModules_IGNORE_KANA;
148 if ( aOpt.IsMatchContractions())
149 rFlags |= TransliterationModules_ignoreSize_ja_JP;
150 if ( aOpt.IsMatchMinusDashChoon())
151 rFlags |= TransliterationModules_ignoreMinusSign_ja_JP;
152 if ( aOpt.IsMatchRepeatCharMarks())
153 rFlags |= TransliterationModules_ignoreIterationMark_ja_JP;
154 if ( aOpt.IsMatchVariantFormKanji())
155 rFlags |= TransliterationModules_ignoreTraditionalKanji_ja_JP;
156 if ( aOpt.IsMatchOldKanaForms())
157 rFlags |= TransliterationModules_ignoreTraditionalKana_ja_JP;
158 if ( aOpt.IsMatchDiziDuzu())
159 rFlags |= TransliterationModules_ignoreZiZu_ja_JP;
160 if ( aOpt.IsMatchBavaHafa())
161 rFlags |= TransliterationModules_ignoreBaFa_ja_JP;
162 if ( aOpt.IsMatchTsithichiDhizi())
163 rFlags |= TransliterationModules_ignoreTiJi_ja_JP;
164 if ( aOpt.IsMatchHyuiyuByuvyu())
165 rFlags |= TransliterationModules_ignoreHyuByu_ja_JP;
166 if ( aOpt.IsMatchSesheZeje())
167 rFlags |= TransliterationModules_ignoreSeZe_ja_JP;
168 if ( aOpt.IsMatchIaiya())
169 rFlags |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP;
170 if ( aOpt.IsMatchKiku())
171 rFlags |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP;
172 if ( aOpt.IsIgnorePunctuation())
173 rFlags |= TransliterationModules_ignoreSeparator_ja_JP;
174 if ( aOpt.IsIgnoreWhitespace())
175 rFlags |= TransliterationModules_ignoreSpace_ja_JP;
176 if ( aOpt.IsIgnoreProlongedSoundMark())
177 rFlags |= TransliterationModules_ignoreProlongedSoundMark_ja_JP;
178 if ( aOpt.IsIgnoreMiddleDot())
179 rFlags |= TransliterationModules_ignoreMiddleDot_ja_JP;
184 // -----------------------------------------------------------------------
186 SvxSearchItem::SvxSearchItem( const SvxSearchItem& rItem ) :
188 SfxPoolItem ( rItem ),
189 ConfigItem( OUString(CFG_ROOT_NODE ) ),
191 aSearchOpt ( rItem.aSearchOpt ),
192 eFamily ( rItem.eFamily ),
193 nCommand ( rItem.nCommand ),
194 nCellType ( rItem.nCellType ),
195 nAppFlag ( rItem.nAppFlag ),
196 bRowDirection ( rItem.bRowDirection ),
197 bAllTables ( rItem.bAllTables ),
198 bSearchFiltered ( rItem.bSearchFiltered ),
199 bNotes ( rItem.bNotes),
200 bBackward ( rItem.bBackward ),
201 bPattern ( rItem.bPattern ),
202 bContent ( rItem.bContent ),
203 bAsianOptions ( rItem.bAsianOptions )
205 EnableNotification( lcl_GetNotifyNames() );
208 // -----------------------------------------------------------------------
210 SvxSearchItem::~SvxSearchItem()
214 // -----------------------------------------------------------------------
215 SfxPoolItem* SvxSearchItem::Clone( SfxItemPool *) const
217 return new SvxSearchItem(*this);
220 // -----------------------------------------------------------------------
222 //! used below
223 static bool operator == ( const SearchOptions& rItem1, const SearchOptions& rItem2 )
225 return rItem1.algorithmType == rItem2.algorithmType &&
226 rItem1.searchFlag == rItem2.searchFlag &&
227 rItem1.searchString == rItem2.searchString &&
228 rItem1.replaceString == rItem2.replaceString &&
229 //rItem1.Locale == rItem2.Locale &&
230 rItem1.changedChars == rItem2.changedChars &&
231 rItem1.deletedChars == rItem2.deletedChars &&
232 rItem1.insertedChars == rItem2.insertedChars &&
233 rItem1.transliterateFlags == rItem2.transliterateFlags;
237 int SvxSearchItem::operator==( const SfxPoolItem& rItem ) const
239 DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal which or type" );
240 const SvxSearchItem &rSItem = (SvxSearchItem &) rItem;
241 return ( nCommand == rSItem.nCommand ) &&
242 ( bBackward == rSItem.bBackward ) &&
243 ( bPattern == rSItem.bPattern ) &&
244 ( bContent == rSItem.bContent ) &&
245 ( eFamily == rSItem.eFamily ) &&
246 ( bRowDirection == rSItem.bRowDirection ) &&
247 ( bAllTables == rSItem.bAllTables ) &&
248 ( bSearchFiltered == rSItem.bSearchFiltered ) &&
249 ( nCellType == rSItem.nCellType ) &&
250 ( nAppFlag == rSItem.nAppFlag ) &&
251 ( bAsianOptions == rSItem.bAsianOptions ) &&
252 ( aSearchOpt == rSItem.aSearchOpt ) &&
253 ( bNotes == rSItem.bNotes );
257 //------------------------------------------------------------------------
259 SfxItemPresentation SvxSearchItem::GetPresentation
261 SfxItemPresentation ,
262 SfxMapUnit ,
263 SfxMapUnit ,
264 OUString& ,
265 const IntlWrapper *
266 ) const
268 return SFX_ITEM_PRESENTATION_NONE;
271 void SvxSearchItem::Notify( const Sequence< OUString > & )
273 // applies transliteration changes in the configuration database
274 // to the current SvxSearchItem
275 SetTransliterationFlags( SvtSearchOptions().GetTransliterationFlags() );
278 void SvxSearchItem::Commit()
282 void SvxSearchItem::SetMatchFullHalfWidthForms( bool bVal )
284 if (bVal)
285 aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_WIDTH;
286 else
287 aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_WIDTH;
291 void SvxSearchItem::SetWordOnly( bool bVal )
293 if (bVal)
294 aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY;
295 else
296 aSearchOpt.searchFlag &= ~SearchFlags::NORM_WORD_ONLY;
300 void SvxSearchItem::SetExact( bool bVal )
302 if (!bVal)
303 aSearchOpt.transliterateFlags |= TransliterationModules_IGNORE_CASE;
304 else
305 aSearchOpt.transliterateFlags &= ~TransliterationModules_IGNORE_CASE;
309 void SvxSearchItem::SetSelection( bool bVal )
311 if (bVal)
313 aSearchOpt.searchFlag |= (SearchFlags::REG_NOT_BEGINOFLINE |
314 SearchFlags::REG_NOT_ENDOFLINE);
316 else
318 aSearchOpt.searchFlag &= ~(SearchFlags::REG_NOT_BEGINOFLINE |
319 SearchFlags::REG_NOT_ENDOFLINE);
324 void SvxSearchItem::SetRegExp( bool bVal )
326 if ( bVal )
327 aSearchOpt.algorithmType = SearchAlgorithms_REGEXP;
328 else if ( SearchAlgorithms_REGEXP == aSearchOpt.algorithmType )
329 aSearchOpt.algorithmType = SearchAlgorithms_ABSOLUTE;
333 void SvxSearchItem::SetLEVRelaxed( bool bVal )
335 if (bVal)
336 aSearchOpt.searchFlag |= SearchFlags::LEV_RELAXED;
337 else
338 aSearchOpt.searchFlag &= ~SearchFlags::LEV_RELAXED;
342 void SvxSearchItem::SetLevenshtein( bool bVal )
344 if ( bVal )
345 aSearchOpt.algorithmType = SearchAlgorithms_APPROXIMATE;
346 else if ( SearchAlgorithms_APPROXIMATE == aSearchOpt.algorithmType )
347 aSearchOpt.algorithmType = SearchAlgorithms_ABSOLUTE;
351 void SvxSearchItem::SetTransliterationFlags( sal_Int32 nFlags )
353 aSearchOpt.transliterateFlags = nFlags;
356 bool SvxSearchItem::QueryValue( com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
358 nMemberId &= ~CONVERT_TWIPS;
359 switch ( nMemberId )
361 case 0 :
363 Sequence< PropertyValue > aSeq( SRCH_PARAMS );
364 aSeq[0].Name = OUString( SRCH_PARA_OPTIONS );
365 aSeq[0].Value <<= aSearchOpt;
366 aSeq[1].Name = OUString( SRCH_PARA_FAMILY );
367 aSeq[1].Value <<= sal_Int16( eFamily );
368 aSeq[2].Name = OUString( SRCH_PARA_COMMAND );
369 aSeq[2].Value <<= nCommand;
370 aSeq[3].Name = OUString( SRCH_PARA_CELLTYPE );
371 aSeq[3].Value <<= nCellType;
372 aSeq[4].Name = OUString( SRCH_PARA_APPFLAG );
373 aSeq[4].Value <<= nAppFlag;
374 aSeq[5].Name = OUString( SRCH_PARA_ROWDIR );
375 aSeq[5].Value <<= bRowDirection;
376 aSeq[6].Name = OUString( SRCH_PARA_ALLTABLES );
377 aSeq[6].Value <<= bAllTables;
378 aSeq[6].Name = OUString( SRCH_PARA_SEARCHFILTERED );
379 aSeq[6].Value <<= bSearchFiltered;
380 aSeq[7].Name = OUString( SRCH_PARA_BACKWARD );
381 aSeq[7].Value <<= bBackward;
382 aSeq[8].Name = OUString( SRCH_PARA_PATTERN );
383 aSeq[8].Value <<= bPattern;
384 aSeq[9].Name = OUString( SRCH_PARA_CONTENT );
385 aSeq[9].Value <<= bContent;
386 aSeq[10].Name = OUString( SRCH_PARA_ASIANOPT );
387 aSeq[10].Value <<= bAsianOptions;
388 rVal <<= aSeq;
390 break;
391 case MID_SEARCH_COMMAND:
392 rVal <<= (sal_Int16) nCommand; break;
393 case MID_SEARCH_STYLEFAMILY:
394 rVal <<= (sal_Int16) eFamily; break;
395 case MID_SEARCH_CELLTYPE:
396 rVal <<= (sal_Int32) nCellType; break;
397 case MID_SEARCH_ROWDIRECTION:
398 rVal <<= (sal_Bool) bRowDirection; break;
399 case MID_SEARCH_ALLTABLES:
400 rVal <<= (sal_Bool) bAllTables; break;
401 case MID_SEARCH_SEARCHFILTERED:
402 rVal <<= (sal_Bool) bSearchFiltered; break;
403 case MID_SEARCH_BACKWARD:
404 rVal <<= (sal_Bool) bBackward; break;
405 case MID_SEARCH_PATTERN:
406 rVal <<= (sal_Bool) bPattern; break;
407 case MID_SEARCH_CONTENT:
408 rVal <<= (sal_Bool) bContent; break;
409 case MID_SEARCH_ASIANOPTIONS:
410 rVal <<= (sal_Bool) bAsianOptions; break;
411 case MID_SEARCH_ALGORITHMTYPE:
412 rVal <<= (sal_Int16) aSearchOpt.algorithmType; break;
413 case MID_SEARCH_FLAGS:
414 rVal <<= aSearchOpt.searchFlag; break;
415 case MID_SEARCH_SEARCHSTRING:
416 rVal <<= aSearchOpt.searchString; break;
417 case MID_SEARCH_REPLACESTRING:
418 rVal <<= aSearchOpt.replaceString; break;
419 case MID_SEARCH_CHANGEDCHARS:
420 rVal <<= aSearchOpt.changedChars; break;
421 case MID_SEARCH_DELETEDCHARS:
422 rVal <<= aSearchOpt.deletedChars; break;
423 case MID_SEARCH_INSERTEDCHARS:
424 rVal <<= aSearchOpt.insertedChars; break;
425 case MID_SEARCH_TRANSLITERATEFLAGS:
426 rVal <<= aSearchOpt.transliterateFlags; break;
427 case MID_SEARCH_LOCALE:
429 sal_Int16 nLocale;
430 if (!aSearchOpt.Locale.Language.isEmpty() || !aSearchOpt.Locale.Country.isEmpty() )
431 nLocale = LanguageTag( aSearchOpt.Locale ).getLanguageType();
432 else
433 nLocale = LANGUAGE_NONE;
434 rVal <<= nLocale;
435 break;
438 default:
439 SAL_WARN( "svl.items", "SvxSearchItem::QueryValue(): Unknown MemberId" );
440 return false;
443 return true;
446 // -----------------------------------------------------------------------
448 bool SvxSearchItem::PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
450 nMemberId &= ~CONVERT_TWIPS;
451 bool bRet = false;
452 sal_Int32 nInt = 0;
453 switch ( nMemberId )
455 case 0 :
457 Sequence< PropertyValue > aSeq;
458 if ( ( rVal >>= aSeq ) && ( aSeq.getLength() == SRCH_PARAMS ) )
460 sal_Int16 nConvertedCount( 0 );
461 for ( sal_Int32 i = 0; i < aSeq.getLength(); ++i )
463 if ( aSeq[i].Name == SRCH_PARA_OPTIONS )
465 if ( ( aSeq[i].Value >>= aSearchOpt ) == sal_True )
466 ++nConvertedCount;
468 else if ( aSeq[i].Name == SRCH_PARA_FAMILY )
470 sal_uInt16 nTemp( 0 );
471 if ( ( aSeq[i].Value >>= nTemp ) == sal_True )
473 eFamily = SfxStyleFamily( nTemp );
474 ++nConvertedCount;
477 else if ( aSeq[i].Name == SRCH_PARA_COMMAND )
479 if ( ( aSeq[i].Value >>= nCommand ) == sal_True )
480 ++nConvertedCount;
482 else if ( aSeq[i].Name == SRCH_PARA_CELLTYPE )
484 if ( ( aSeq[i].Value >>= nCellType ) == sal_True )
485 ++nConvertedCount;
487 else if ( aSeq[i].Name == SRCH_PARA_APPFLAG )
489 if ( ( aSeq[i].Value >>= nAppFlag ) == sal_True )
490 ++nConvertedCount;
492 else if ( aSeq[i].Name == SRCH_PARA_ROWDIR )
494 if ( ( aSeq[i].Value >>= bRowDirection ) == sal_True )
495 ++nConvertedCount;
497 else if ( aSeq[i].Name == SRCH_PARA_ALLTABLES )
499 if ( ( aSeq[i].Value >>= bAllTables ) == sal_True )
500 ++nConvertedCount;
502 else if ( aSeq[i].Name == SRCH_PARA_SEARCHFILTERED )
504 if ( ( aSeq[i].Value >>= bSearchFiltered ) == sal_True )
505 ++nConvertedCount;
507 else if ( aSeq[i].Name == SRCH_PARA_BACKWARD )
509 if ( ( aSeq[i].Value >>= bBackward ) == sal_True )
510 ++nConvertedCount;
512 else if ( aSeq[i].Name == SRCH_PARA_PATTERN )
514 if ( ( aSeq[i].Value >>= bPattern ) == sal_True )
515 ++nConvertedCount;
517 else if ( aSeq[i].Name == SRCH_PARA_CONTENT )
519 if ( ( aSeq[i].Value >>= bContent ) == sal_True )
520 ++nConvertedCount;
522 else if ( aSeq[i].Name == SRCH_PARA_ASIANOPT )
524 if ( ( aSeq[i].Value >>= bAsianOptions ) == sal_True )
525 ++nConvertedCount;
529 bRet = ( nConvertedCount == SRCH_PARAMS );
531 break;
533 case MID_SEARCH_COMMAND:
534 bRet = (rVal >>= nInt); nCommand = (sal_uInt16) nInt; break;
535 case MID_SEARCH_STYLEFAMILY:
536 bRet = (rVal >>= nInt); eFamily = (SfxStyleFamily) (sal_Int16) nInt; break;
537 case MID_SEARCH_CELLTYPE:
538 bRet = (rVal >>= nInt); nCellType = (sal_uInt16) nInt; break;
539 case MID_SEARCH_ROWDIRECTION:
540 bRet = (rVal >>= bRowDirection); break;
541 case MID_SEARCH_ALLTABLES:
542 bRet = (rVal >>= bAllTables); break;
543 case MID_SEARCH_SEARCHFILTERED:
544 bRet = (rVal >>= bSearchFiltered); break;
545 case MID_SEARCH_BACKWARD:
546 bRet = (rVal >>= bBackward); break;
547 case MID_SEARCH_PATTERN:
548 bRet = (rVal >>= bPattern); break;
549 case MID_SEARCH_CONTENT:
550 bRet = (rVal >>= bContent); break;
551 case MID_SEARCH_ASIANOPTIONS:
552 bRet = (rVal >>= bAsianOptions); break;
553 case MID_SEARCH_ALGORITHMTYPE:
554 bRet = (rVal >>= nInt); aSearchOpt.algorithmType = (SearchAlgorithms)(sal_Int16)nInt; break;
555 case MID_SEARCH_FLAGS:
556 bRet = (rVal >>= aSearchOpt.searchFlag); break;
557 case MID_SEARCH_SEARCHSTRING:
558 bRet = (rVal >>= aSearchOpt.searchString); break;
559 case MID_SEARCH_REPLACESTRING:
560 bRet = (rVal >>= aSearchOpt.replaceString); break;
561 case MID_SEARCH_CHANGEDCHARS:
562 bRet = (rVal >>= aSearchOpt.changedChars); break;
563 case MID_SEARCH_DELETEDCHARS:
564 bRet = (rVal >>= aSearchOpt.deletedChars); break;
565 case MID_SEARCH_INSERTEDCHARS:
566 bRet = (rVal >>= aSearchOpt.insertedChars); break;
567 case MID_SEARCH_TRANSLITERATEFLAGS:
568 bRet = (rVal >>= aSearchOpt.transliterateFlags); break;
569 case MID_SEARCH_LOCALE:
571 bRet = (rVal >>= nInt);
572 if ( bRet )
574 if ( nInt == LANGUAGE_NONE )
576 aSearchOpt.Locale = ::com::sun::star::lang::Locale();
578 else
580 aSearchOpt.Locale = LanguageTag( nInt).getLocale();
583 break;
585 default:
586 OSL_FAIL( "Unknown MemberId" );
589 return bRet;
593 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */