1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
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>
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
[] =
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
] );
97 // -----------------------------------------------------------------------
98 SvxSearchItem::SvxSearchItem( const sal_uInt16 nId
) :
101 ConfigItem( OUString(CFG_ROOT_NODE
) ),
103 aSearchOpt ( SearchAlgorithms_ABSOLUTE
,
104 SearchFlags::LEV_RELAXED
,
109 TransliterationModules_IGNORE_CASE
),
110 eFamily ( SFX_STYLE_FAMILY_PARA
),
112 nCellType ( SVX_SEARCHIN_FORMULA
),
113 nAppFlag ( SVX_SEARCHAPP_WRITER
),
114 bRowDirection ( sal_True
),
115 bAllTables ( sal_False
),
116 bSearchFiltered ( 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
;
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 // -----------------------------------------------------------------------
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
,
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
)
285 aSearchOpt
.transliterateFlags
|= TransliterationModules_IGNORE_WIDTH
;
287 aSearchOpt
.transliterateFlags
&= ~TransliterationModules_IGNORE_WIDTH
;
291 void SvxSearchItem::SetWordOnly( bool bVal
)
294 aSearchOpt
.searchFlag
|= SearchFlags::NORM_WORD_ONLY
;
296 aSearchOpt
.searchFlag
&= ~SearchFlags::NORM_WORD_ONLY
;
300 void SvxSearchItem::SetExact( bool bVal
)
303 aSearchOpt
.transliterateFlags
|= TransliterationModules_IGNORE_CASE
;
305 aSearchOpt
.transliterateFlags
&= ~TransliterationModules_IGNORE_CASE
;
309 void SvxSearchItem::SetSelection( bool bVal
)
313 aSearchOpt
.searchFlag
|= (SearchFlags::REG_NOT_BEGINOFLINE
|
314 SearchFlags::REG_NOT_ENDOFLINE
);
318 aSearchOpt
.searchFlag
&= ~(SearchFlags::REG_NOT_BEGINOFLINE
|
319 SearchFlags::REG_NOT_ENDOFLINE
);
324 void SvxSearchItem::SetRegExp( bool bVal
)
327 aSearchOpt
.algorithmType
= SearchAlgorithms_REGEXP
;
328 else if ( SearchAlgorithms_REGEXP
== aSearchOpt
.algorithmType
)
329 aSearchOpt
.algorithmType
= SearchAlgorithms_ABSOLUTE
;
333 void SvxSearchItem::SetLEVRelaxed( bool bVal
)
336 aSearchOpt
.searchFlag
|= SearchFlags::LEV_RELAXED
;
338 aSearchOpt
.searchFlag
&= ~SearchFlags::LEV_RELAXED
;
342 void SvxSearchItem::SetLevenshtein( bool 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
;
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
;
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
:
430 if (!aSearchOpt
.Locale
.Language
.isEmpty() || !aSearchOpt
.Locale
.Country
.isEmpty() )
431 nLocale
= LanguageTag( aSearchOpt
.Locale
).getLanguageType();
433 nLocale
= LANGUAGE_NONE
;
439 SAL_WARN( "svl.items", "SvxSearchItem::QueryValue(): Unknown MemberId" );
446 // -----------------------------------------------------------------------
448 bool SvxSearchItem::PutValue( const com::sun::star::uno::Any
& rVal
, sal_uInt8 nMemberId
)
450 nMemberId
&= ~CONVERT_TWIPS
;
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
)
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
);
477 else if ( aSeq
[i
].Name
== SRCH_PARA_COMMAND
)
479 if ( ( aSeq
[i
].Value
>>= nCommand
) == sal_True
)
482 else if ( aSeq
[i
].Name
== SRCH_PARA_CELLTYPE
)
484 if ( ( aSeq
[i
].Value
>>= nCellType
) == sal_True
)
487 else if ( aSeq
[i
].Name
== SRCH_PARA_APPFLAG
)
489 if ( ( aSeq
[i
].Value
>>= nAppFlag
) == sal_True
)
492 else if ( aSeq
[i
].Name
== SRCH_PARA_ROWDIR
)
494 if ( ( aSeq
[i
].Value
>>= bRowDirection
) == sal_True
)
497 else if ( aSeq
[i
].Name
== SRCH_PARA_ALLTABLES
)
499 if ( ( aSeq
[i
].Value
>>= bAllTables
) == sal_True
)
502 else if ( aSeq
[i
].Name
== SRCH_PARA_SEARCHFILTERED
)
504 if ( ( aSeq
[i
].Value
>>= bSearchFiltered
) == sal_True
)
507 else if ( aSeq
[i
].Name
== SRCH_PARA_BACKWARD
)
509 if ( ( aSeq
[i
].Value
>>= bBackward
) == sal_True
)
512 else if ( aSeq
[i
].Name
== SRCH_PARA_PATTERN
)
514 if ( ( aSeq
[i
].Value
>>= bPattern
) == sal_True
)
517 else if ( aSeq
[i
].Name
== SRCH_PARA_CONTENT
)
519 if ( ( aSeq
[i
].Value
>>= bContent
) == sal_True
)
522 else if ( aSeq
[i
].Name
== SRCH_PARA_ASIANOPT
)
524 if ( ( aSeq
[i
].Value
>>= bAsianOptions
) == sal_True
)
529 bRet
= ( nConvertedCount
== SRCH_PARAMS
);
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
);
574 if ( nInt
== LANGUAGE_NONE
)
576 aSearchOpt
.Locale
= ::com::sun::star::lang::Locale();
580 aSearchOpt
.Locale
= LanguageTag( nInt
).getLocale();
586 OSL_FAIL( "Unknown MemberId" );
593 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */