summaryrefslogtreecommitdiff
path: root/cui/source/options/optasian.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/options/optasian.cxx')
-rw-r--r--cui/source/options/optasian.cxx85
1 files changed, 55 insertions, 30 deletions
diff --git a/cui/source/options/optasian.cxx b/cui/source/options/optasian.cxx
index 94a192cfddc7..390621a0cdd9 100644
--- a/cui/source/options/optasian.cxx
+++ b/cui/source/options/optasian.cxx
@@ -20,9 +20,8 @@
#include <memory>
#include <map>
#include <optasian.hxx>
-#include <osl/diagnose.h>
#include <tools/debug.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <o3tl/any.hxx>
#include <i18nlangtag/mslangid.hxx>
#include <svl/asiancfg.hxx>
@@ -43,15 +42,15 @@ using namespace com::sun::star::i18n;
using namespace com::sun::star::frame;
using namespace com::sun::star::beans;
-constexpr OUStringLiteral cIsKernAsianPunctuation = u"IsKernAsianPunctuation";
-constexpr OUStringLiteral cCharacterCompressionType = u"CharacterCompressionType";
+constexpr OUString cIsKernAsianPunctuation = u"IsKernAsianPunctuation"_ustr;
+constexpr OUString cCharacterCompressionType = u"CharacterCompressionType"_ustr;
namespace {
struct SvxForbiddenChars_Impl
{
bool bRemoved;
- std::unique_ptr<ForbiddenCharacters> pCharacters;
+ std::optional<ForbiddenCharacters> oCharacters;
};
}
@@ -64,12 +63,12 @@ struct SvxAsianLayoutPage_Impl
Reference< XForbiddenCharacters > xForbidden;
Reference< XPropertySet > xPrSet;
Reference< XPropertySetInfo > xPrSetInfo;
- std::map< LanguageType, std::unique_ptr<SvxForbiddenChars_Impl> >
+ std::map< LanguageType, SvxForbiddenChars_Impl >
aChangedLanguagesMap;
bool hasForbiddenCharacters(LanguageType eLang);
SvxForbiddenChars_Impl* getForbiddenCharacters(LanguageType eLang);
- void addForbiddenCharacters(LanguageType eLang, std::unique_ptr<ForbiddenCharacters> pForbidden);
+ void addForbiddenCharacters(LanguageType eLang, std::optional<ForbiddenCharacters> oForbidden);
};
bool SvxAsianLayoutPage_Impl::hasForbiddenCharacters(LanguageType eLang)
@@ -82,25 +81,25 @@ SvxForbiddenChars_Impl* SvxAsianLayoutPage_Impl::getForbiddenCharacters(Language
auto it = aChangedLanguagesMap.find( eLang );
DBG_ASSERT( ( it != aChangedLanguagesMap.end() ), "language not available");
if( it != aChangedLanguagesMap.end() )
- return it->second.get();
+ return &it->second;
return nullptr;
}
void SvxAsianLayoutPage_Impl::addForbiddenCharacters(
- LanguageType eLang, std::unique_ptr<ForbiddenCharacters> pForbidden)
+ LanguageType eLang, std::optional<ForbiddenCharacters> oForbidden)
{
auto itOld = aChangedLanguagesMap.find( eLang );
if( itOld == aChangedLanguagesMap.end() )
{
- std::unique_ptr<SvxForbiddenChars_Impl> pChar(new SvxForbiddenChars_Impl);
- pChar->bRemoved = nullptr == pForbidden;
- pChar->pCharacters = std::move(pForbidden);
- aChangedLanguagesMap.emplace( eLang, std::move(pChar) );
+ SvxForbiddenChars_Impl aChar;
+ aChar.bRemoved = !oForbidden.has_value();
+ aChar.oCharacters = std::move(oForbidden);
+ aChangedLanguagesMap.emplace( eLang, std::move(aChar) );
}
else
{
- itOld->second->bRemoved = nullptr == pForbidden;
- itOld->second->pCharacters = std::move(pForbidden);
+ itOld->second.bRemoved = !oForbidden.has_value();
+ itOld->second.oCharacters = std::move(oForbidden);
}
}
@@ -142,6 +141,32 @@ std::unique_ptr<SfxTabPage> SvxAsianLayoutPage::Create(weld::Container* pPage, w
return std::make_unique<SvxAsianLayoutPage>(pPage, pController, *rAttrSet);
}
+OUString SvxAsianLayoutPage::GetAllStrings()
+{
+ OUString sAllStrings;
+ OUString labels[]
+ = { "label1", "label2", "label3", "languageft", "startft", "endft", "hintft" };
+
+ for (const auto& label : labels)
+ {
+ if (const auto& pString = m_xBuilder->weld_label(label))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ OUString radioButton[] = { "charkerning", "charpunctkerning", "nocompression",
+ "punctcompression", "punctkanacompression" };
+
+ for (const auto& radio : radioButton)
+ {
+ if (const auto& pString = m_xBuilder->weld_radio_button(radio))
+ sAllStrings += pString->get_label() + " ";
+ }
+
+ sAllStrings += m_xStandardCB->get_label() + " ";
+
+ return sAllStrings.replaceAll("_", "");
+}
+
bool SvxAsianLayoutPage::FillItemSet( SfxItemSet* )
{
if(m_xCharKerningRB->get_state_changed_from_saved())
@@ -176,10 +201,10 @@ bool SvxAsianLayoutPage::FillItemSet( SfxItemSet* )
for (auto const& changedLanguage : pImpl->aChangedLanguagesMap)
{
Locale aLocale( LanguageTag::convertToLocale(changedLanguage.first));
- if(changedLanguage.second->bRemoved)
+ if(changedLanguage.second.bRemoved)
pImpl->xForbidden->removeForbiddenCharacters( aLocale );
- else if(changedLanguage.second->pCharacters)
- pImpl->xForbidden->setForbiddenCharacters( aLocale, *( changedLanguage.second->pCharacters ) );
+ else if(changedLanguage.second.oCharacters)
+ pImpl->xForbidden->setForbiddenCharacters( aLocale, *( changedLanguage.second.oCharacters ) );
}
}
catch (const Exception&)
@@ -206,8 +231,8 @@ void SvxAsianLayoutPage::Reset( const SfxItemSet* )
}
if( pImpl->xPrSet.is() )
pImpl->xPrSetInfo = pImpl->xPrSet->getPropertySetInfo();
- bool bKernWesternText = pImpl->aConfig.IsKerningWesternTextOnly();
- CharCompressType nCompress = pImpl->aConfig.GetCharDistanceCompression();
+ bool bKernWesternText = SvxAsianConfig::IsKerningWesternTextOnly();
+ CharCompressType nCompress = SvxAsianConfig::GetCharDistanceCompression();
if(pImpl->xPrSetInfo.is())
{
OUString sForbidden("ForbiddenCharacters");
@@ -287,14 +312,14 @@ IMPL_LINK_NOARG(SvxAsianLayoutPage, LanguageHdl, weld::ComboBox&, void)
if(bAvail)
{
SvxForbiddenChars_Impl* pElement = pImpl->getForbiddenCharacters(eSelectLanguage);
- if(pElement->bRemoved || !pElement->pCharacters)
+ if(pElement->bRemoved || !pElement->oCharacters)
{
bAvail = false;
}
else
{
- sStart = pElement->pCharacters->beginLine;
- sEnd = pElement->pCharacters->endLine;
+ sStart = pElement->oCharacters->beginLine;
+ sEnd = pElement->oCharacters->endLine;
}
}
else
@@ -317,11 +342,11 @@ IMPL_LINK_NOARG(SvxAsianLayoutPage, LanguageHdl, weld::ComboBox&, void)
}
else
{
- bAvail = pImpl->aConfig.GetStartEndChars( aLocale, sStart, sEnd );
+ bAvail = SvxAsianConfig::GetStartEndChars( aLocale, sStart, sEnd );
}
if(!bAvail)
{
- LocaleDataWrapper aWrap( aLanguageTag );
+ LocaleDataWrapper aWrap( std::move(aLanguageTag) );
ForbiddenCharacters aForbidden = aWrap.getForbiddenCharacters();
sStart = aForbidden.beginLine;
sEnd = aForbidden.endLine;
@@ -359,13 +384,13 @@ IMPL_LINK(SvxAsianLayoutPage, ModifyHdl, weld::Entry&, rEdit, void)
{
if(bEnable)
{
- std::unique_ptr<ForbiddenCharacters> pFCSet(new ForbiddenCharacters);
- pFCSet->beginLine = sStart;
- pFCSet->endLine = sEnd;
- pImpl->addForbiddenCharacters(eSelectLanguage, std::move(pFCSet));
+ ForbiddenCharacters aFCSet;
+ aFCSet.beginLine = sStart;
+ aFCSet.endLine = sEnd;
+ pImpl->addForbiddenCharacters(eSelectLanguage, std::move(aFCSet));
}
else
- pImpl->addForbiddenCharacters(eSelectLanguage, nullptr);
+ pImpl->addForbiddenCharacters(eSelectLanguage, std::nullopt);
}
catch (const Exception&)
{