25#include <com/sun/star/uno/Sequence.hxx>
26#include <com/sun/star/uno/Any.h>
27#include <osl/diagnose.h>
33#define MAX_FLAGS_OFFSET 29
48 using ConfigItem::SetModified;
59 virtual void Notify(
const css::uno::Sequence< OUString >& aPropertyNames )
override;
61 bool GetFlag( sal_uInt16 nOffset )
const;
62 void SetFlag( sal_uInt16 nOffset,
bool bVal );
93 return ((
nFlags >> nOffset) & 0x01) != 0;
99 sal_Int32 nOldFlags =
nFlags;
100 sal_Int32 nMask = (sal_Int32(1)) << nOffset;
114 ConfigItem::SetModified();
124 "IsUseRegularExpression",
127 "IsSimilaritySearch",
130 "Japanese/IsMatchFullHalfWidthForms",
131 "Japanese/IsMatchHiraganaKatakana",
132 "Japanese/IsMatchContractions",
133 "Japanese/IsMatchMinusDashCho-on",
134 "Japanese/IsMatchRepeatCharMarks",
135 "Japanese/IsMatchVariantFormKanji",
136 "Japanese/IsMatchOldKanaForms",
137 "Japanese/IsMatch_DiZi_DuZu",
138 "Japanese/IsMatch_BaVa_HaFa",
139 "Japanese/IsMatch_TsiThiChi_DhiZi",
140 "Japanese/IsMatch_HyuIyu_ByuVyu",
141 "Japanese/IsMatch_SeShe_ZeJe",
142 "Japanese/IsMatch_IaIya",
143 "Japanese/IsMatch_KiKu",
144 "Japanese/IsIgnorePunctuation",
145 "Japanese/IsIgnoreWhitespace",
146 "Japanese/IsIgnoreProlongedSoundMark",
147 "Japanese/IsIgnoreMiddleDot",
149 "IsIgnoreDiacritics_CTL",
150 "IsIgnoreKashida_CTL",
156 OUString* pNames = aNames.getArray();
168 if (nOffset != 2 &&
GetFlag(2))
170 if (nOffset != 4 &&
GetFlag(4))
172 if (nOffset != 29 &&
GetFlag(29))
183 sal_Int32 nProps = aNames.getLength();
186 DBG_ASSERT( aValues.getLength() == aNames.getLength(),
187 "GetProperties failed" );
190 if (nProps && aValues.getLength() == nProps)
195 for (sal_Int32
i = 0;
i < nProps; ++
i)
198 DBG_ASSERT( rVal.hasValue(),
"property value missing" );
210 OSL_FAIL(
"unexpected index" );
215 OSL_FAIL(
"unexpected type" );
221 OSL_FAIL(
"value missing" );
234 sal_Int32 nProps = aNames.getLength();
237 Any *pValue = aValues.getArray();
240 "unexpected size of index" );
243 for (sal_Int32
i = 0;
i < nProps; ++
i)
273 nRes |= TransliterationFlags::IGNORE_CASE;
275 nRes |= TransliterationFlags::IGNORE_WIDTH;
277 nRes |= TransliterationFlags::IGNORE_KANA;
279 nRes |= TransliterationFlags::ignoreSize_ja_JP;
281 nRes |= TransliterationFlags::ignoreMinusSign_ja_JP;
283 nRes |= TransliterationFlags::ignoreIterationMark_ja_JP;
285 nRes |= TransliterationFlags::ignoreTraditionalKanji_ja_JP;
287 nRes |= TransliterationFlags::ignoreTraditionalKana_ja_JP;
289 nRes |= TransliterationFlags::ignoreZiZu_ja_JP;
291 nRes |= TransliterationFlags::ignoreBaFa_ja_JP;
293 nRes |= TransliterationFlags::ignoreTiJi_ja_JP;
295 nRes |= TransliterationFlags::ignoreHyuByu_ja_JP;
297 nRes |= TransliterationFlags::ignoreSeZe_ja_JP;
299 nRes |= TransliterationFlags::ignoreIandEfollowedByYa_ja_JP;
301 nRes |= TransliterationFlags::ignoreKiKuFollowedBySa_ja_JP;
303 nRes |= TransliterationFlags::ignoreSeparator_ja_JP;
305 nRes |= TransliterationFlags::ignoreSpace_ja_JP;
307 nRes |= TransliterationFlags::ignoreProlongedSoundMark_ja_JP;
309 nRes |= TransliterationFlags::ignoreMiddleDot_ja_JP;
311 nRes |= TransliterationFlags::IGNORE_DIACRITICS_CTL;
313 nRes |= TransliterationFlags::IGNORE_KASHIDA_CTL;
319 return pImpl->GetFlag( 0 );
324 pImpl->SetFlag( 0, bVal );
329 return pImpl->GetFlag( 1 );
334 pImpl->SetFlag( 1, bVal );
339 return pImpl->GetFlag( 2 );
344 pImpl->SetSearchAlgorithm( 2, bVal );
349 pImpl->SetFlag( 3, bVal );
354 return pImpl->GetFlag( 4 );
359 pImpl->SetSearchAlgorithm( 4, bVal );
364 return pImpl->GetFlag( 5 );
369 pImpl->SetFlag( 5, bVal );
374 return pImpl->GetFlag( 6 );
379 pImpl->SetFlag( 6, bVal );
384 return pImpl->GetFlag( 7 );
389 pImpl->SetFlag( 7, bVal );
394 return pImpl->GetFlag( 8 );
399 pImpl->SetFlag( 8, bVal );
404 return pImpl->GetFlag( 9 );
409 pImpl->SetFlag( 9, bVal );
414 return pImpl->GetFlag( 10 );
419 pImpl->SetFlag( 10, bVal );
424 return pImpl->GetFlag( 11 );
429 pImpl->SetFlag( 11, bVal );
434 return pImpl->GetFlag( 12 );
439 pImpl->SetFlag( 12, bVal );
444 return pImpl->GetFlag( 13 );
449 pImpl->SetFlag( 13, bVal );
454 return pImpl->GetFlag( 14 );
459 pImpl->SetFlag( 14, bVal );
464 return pImpl->GetFlag( 15 );
469 pImpl->SetFlag( 15, bVal );
474 return pImpl->GetFlag( 16 );
479 pImpl->SetFlag( 16, bVal );
484 return pImpl->GetFlag( 17 );
489 pImpl->SetFlag( 17, bVal );
494 return pImpl->GetFlag( 18 );
499 pImpl->SetFlag( 18, bVal );
504 return pImpl->GetFlag( 19 );
509 pImpl->SetFlag( 19, bVal );
514 return pImpl->GetFlag( 20 );
519 pImpl->SetFlag( 20, bVal );
524 return pImpl->GetFlag( 21 );
529 pImpl->SetFlag( 21, bVal );
534 return pImpl->GetFlag( 22 );
539 pImpl->SetFlag( 22, bVal );
544 return pImpl->GetFlag( 23 );
549 pImpl->SetFlag( 23, bVal );
554 return pImpl->GetFlag( 24 );
559 pImpl->SetFlag( 24, bVal );
564 return pImpl->GetFlag( 25 );
569 pImpl->SetFlag( 25, bVal );
574 return pImpl->GetFlag( 26 );
579 pImpl->SetFlag( 26, bVal );
584 return pImpl->GetFlag( 27 );
589 pImpl->SetFlag( 27, bVal );
594 return pImpl->GetFlag( 28 );
599 pImpl->SetFlag( 28, bVal );
604 return pImpl->GetFlag( 29 );
609 pImpl->SetSearchAlgorithm( 29, bVal );
const PropertyValue * pValues
static Sequence< OUString > GetPropertyNames()
bool GetFlag(sal_uInt16 nOffset) const
SvtSearchOptions_Impl & operator=(const SvtSearchOptions_Impl &)=delete
void SetFlag(sal_uInt16 nOffset, bool bVal)
virtual void ImplCommit() override
writes the changed values into the sub tree.
virtual ~SvtSearchOptions_Impl() override
void SetSearchAlgorithm(sal_uInt16 nOffset, bool bVal)
virtual void Notify(const css::uno::Sequence< OUString > &aPropertyNames) override
is called from the ConfigManager before application ends of from the PropertyChangeListener if the su...
SvtSearchOptions_Impl(const SvtSearchOptions_Impl &)=delete
bool IsMatchBavaHafa() const
bool IsMatchTsithichiDhizi() const
bool IsMatchVariantFormKanji() const
bool IsMatchIaiya() const
bool IsMatchDiziDuzu() const
void SetMatchVariantFormKanji(bool bVal)
void SetSearchFormatted(bool bVal)
void SetIgnoreKashida_CTL(bool bVal)
void SetSimilaritySearch(bool bVal)
bool IsMatchHiraganaKatakana() const
bool IsMatchFullHalfWidthForms() const
bool IsIgnoreMiddleDot() const
bool IsSearchFormatted() const
void SetMatchHiraganaKatakana(bool bVal)
bool IsWholeWordsOnly() const
bool IsUseRegularExpression() const
void SetUseWildcard(bool bVal)
void SetMatchCase(bool bVal)
bool IsIgnoreKashida_CTL() const
bool IsMatchOldKanaForms() const
void SetMatchBavaHafa(bool bVal)
bool IsSimilaritySearch() const
void SetMatchRepeatCharMarks(bool bVal)
bool IsMatchContractions() const
void SetMatchHyuiyuByuvyu(bool bVal)
bool IsIgnorePunctuation() const
bool IsUseWildcard() const
bool IsIgnoreProlongedSoundMark() const
void SetIgnoreWhitespace(bool bVal)
bool IsMatchRepeatCharMarks() const
void SetMatchIaiya(bool bVal)
void SetMatchSesheZeje(bool bVal)
void SetUseAsianOptions(bool bVal)
void SetWholeWordsOnly(bool bVal)
void SetMatchContractions(bool bVal)
bool IsIgnoreDiacritics_CTL() const
bool IsIgnoreWhitespace() const
void SetMatchKiku(bool bVal)
bool IsMatchHyuiyuByuvyu() const
void SetUseRegularExpression(bool bVal)
void SetBackwards(bool bVal)
void SetMatchFullHalfWidthForms(bool bVal)
void SetMatchMinusDashChoon(bool bVal)
std::unique_ptr< SvtSearchOptions_Impl > pImpl
bool IsMatchMinusDashChoon() const
void SetMatchOldKanaForms(bool bVal)
void SetIgnoreMiddleDot(bool bVal)
void SetIgnoreProlongedSoundMark(bool bVal)
void SetIgnoreDiacritics_CTL(bool bVal)
bool IsMatchSesheZeje() const
void SetSearchForStyles(bool bVal)
void SetIgnorePunctuation(bool bVal)
void SetMatchTsithichiDhizi(bool bVal)
TransliterationFlags GetTransliterationFlags() const
bool IsUseAsianOptions() const
void SetMatchDiziDuzu(bool bVal)
css::uno::Sequence< css::uno::Any > GetProperties(const css::uno::Sequence< OUString > &rNames)
bool PutProperties(const css::uno::Sequence< OUString > &rNames, const css::uno::Sequence< css::uno::Any > &rValues)
#define DBG_ASSERT(sCon, aError)
const PropertyStruct aPropNames[]