23#include <config_features.h>
24#include <config_feature_opencl.h>
25#include <config_feature_desktop.h>
26#include <config_gpgme.h>
28#include <officecfg/Office/Common.hxx>
30#include <svx/dialogs.hrc>
31#include <svx/svxids.hrc>
56#if HAVE_FEATURE_OPENCL
68#include <com/sun/star/awt/XContainerWindowEventHandler.hpp>
69#include <com/sun/star/awt/ContainerWindowProvider.hpp>
70#include <com/sun/star/awt/XControl.hpp>
71#include <com/sun/star/awt/PosSize.hpp>
72#include <com/sun/star/frame/Desktop.hpp>
73#include <com/sun/star/frame/ModuleManager.hpp>
74#include <com/sun/star/frame/UnknownModuleException.hpp>
75#include <com/sun/star/lang/XMultiServiceFactory.hpp>
76#include <com/sun/star/linguistic2/LinguProperties.hpp>
77#include <com/sun/star/setup/UpdateCheck.hpp>
84#include <officecfg/Office/OptionsDialog.hxx>
141struct ModuleToGroupNameMap_Impl
143 std::u16string_view m_pModule;
144 OUString m_sGroupName;
145 sal_uInt16 m_nNodeId;
151 {
u"ProductName", OUString(), SID_GENERAL_OPTIONS },
152 {
u"LanguageSettings", OUString(), SID_LANGUAGE_OPTIONS },
153 {
u"Internet", OUString(), SID_INET_DLG },
154 {
u"LoadSave", OUString(), SID_FILTER_DLG },
155 {
u"Writer", OUString(), SID_SW_EDITOPTIONS },
156 {
u"WriterWeb", OUString(), SID_SW_ONLINEOPTIONS },
157 {
u"Math", OUString(), SID_SM_EDITOPTIONS },
158 {
u"Calc", OUString(), SID_SC_EDITOPTIONS },
159 {
u"Impress", OUString(), SID_SD_EDITOPTIONS },
160 {
u"Draw", OUString(), SID_SD_GRAPHIC_OPTIONS },
161 {
u"Charts", OUString(), SID_SCH_EDITOPTIONS },
162 {
u"Base", OUString(), SID_SB_STARBASEOPTIONS },
165static void setGroupName( std::u16string_view rModule,
const OUString& rGroupName )
167 for (ModuleToGroupNameMap_Impl& rEntry :
ModuleMap)
169 if ( rEntry.m_pModule == rModule )
171 rEntry.m_sGroupName = rGroupName;
177static OUString
getGroupName( std::u16string_view rModule,
bool bForced )
180 for (
const ModuleToGroupNameMap_Impl& rEntry :
ModuleMap)
182 if ( rEntry.m_pModule == rModule )
184 sGroupName = rEntry.m_sGroupName;
189 if ( sGroupName.isEmpty() && bForced )
191 if ( rModule ==
u"Writer" )
193 else if ( rModule ==
u"WriterWeb" )
195 else if ( rModule ==
u"Calc" )
197 else if ( rModule ==
u"Impress" )
199 else if ( rModule ==
u"Draw" )
201 else if ( rModule ==
u"Math" )
203 else if ( rModule ==
u"Base" )
211 for (ModuleToGroupNameMap_Impl& rEntry :
ModuleMap)
212 rEntry.m_sGroupName.clear();
217 sal_uInt16 nNodeId = 0xFFFF;
218 for (
const ModuleToGroupNameMap_Impl& rEntry :
ModuleMap)
220 if ( rEntry.m_pModule == rModule )
222 nNodeId = rEntry.m_nNodeId;
236 bool bIsEmailSupported;
243 virtual void Notify(
const css::uno::Sequence< OUString >& _rPropertyNames)
override;
245 bool IsEmailSupported()
const {
return bIsEmailSupported;}
251MailMergeCfg_Impl::MailMergeCfg_Impl() :
252 utl::ConfigItem(
"Office.Writer/MailMergeWizard"),
253 bIsEmailSupported(false)
255 Sequence<OUString> aNames {
"EMailSupported" };
256 const Sequence< Any > aValues = GetProperties(aNames);
258 if(aValues.hasElements() && pValues[0].hasValue())
259 pValues[0] >>= bIsEmailSupported;
262void MailMergeCfg_Impl::ImplCommit()
266void MailMergeCfg_Impl::Notify(
const css::uno::Sequence< OUString >& )
289#if HAVE_FEATURE_DESKTOP
304#if HAVE_FEATURE_OPENCL
309#if HAVE_FEATURE_SCRIPTING
314 return fnCreate ? (*fnCreate)( pPage, pController, &
rSet ) :
nullptr;
319struct OptionsMapping_Impl
321 const char* m_pGroupName;
322 const char* m_pPageName;
323 sal_uInt16 m_nPageId;
331 {
"ProductName",
nullptr, SID_GENERAL_OPTIONS },
345 {
"LanguageSettings",
nullptr, SID_LANGUAGE_OPTIONS },
351 {
"Internet",
nullptr, SID_INET_DLG },
354 {
"LoadSave",
nullptr, SID_FILTER_DLG },
356 {
"LoadSave",
"VBAProperties", SID_OPTFILTER_MSOFFICE },
359 {
"Writer",
nullptr, SID_SW_EDITOPTIONS },
360 {
"Writer",
"General", RID_SW_TP_OPTLOAD_PAGE },
361 {
"Writer",
"View", RID_SW_TP_CONTENT_OPT },
362 {
"Writer",
"FormattingAids", RID_SW_TP_OPTSHDWCRSR },
363 {
"Writer",
"Grid", RID_SVXPAGE_GRID },
364 {
"Writer",
"BasicFontsWestern", RID_SW_TP_STD_FONT },
365 {
"Writer",
"BasicFontsAsian", RID_SW_TP_STD_FONT_CJK },
366 {
"Writer",
"BasicFontsCTL", RID_SW_TP_STD_FONT_CTL },
367 {
"Writer",
"Print", RID_SW_TP_OPTPRINT_PAGE },
368 {
"Writer",
"Table", RID_SW_TP_OPTTABLE_PAGE },
369 {
"Writer",
"Changes", RID_SW_TP_REDLINE_OPT },
370 {
"Writer",
"Comparison", RID_SW_TP_COMPARISON_OPT },
371 {
"Writer",
"Compatibility", RID_SW_TP_OPTCOMPATIBILITY_PAGE },
372 {
"Writer",
"AutoCaption", RID_SW_TP_OPTCAPTION_PAGE },
373 {
"Writer",
"MailMerge", RID_SW_TP_MAILCONFIG },
374 {
"WriterWeb",
nullptr, SID_SW_ONLINEOPTIONS },
375 {
"WriterWeb",
"View", RID_SW_TP_HTML_CONTENT_OPT },
376 {
"WriterWeb",
"FormattingAids", RID_SW_TP_HTML_OPTSHDWCRSR },
377 {
"WriterWeb",
"Grid", RID_SW_TP_HTML_OPTGRID_PAGE },
378 {
"WriterWeb",
"Print", RID_SW_TP_HTML_OPTPRINT_PAGE },
379 {
"WriterWeb",
"Table", RID_SW_TP_HTML_OPTTABLE_PAGE },
380 {
"WriterWeb",
"Background", RID_SW_TP_BACKGROUND },
381 {
"Math",
nullptr, SID_SM_EDITOPTIONS },
382 {
"Math",
"Settings", SID_SM_TP_PRINTOPTIONS },
383 {
"Calc",
nullptr, SID_SC_EDITOPTIONS },
384 {
"Calc",
"General", SID_SC_TP_LAYOUT },
385 {
"Calc",
"View", SID_SC_TP_CONTENT },
386 {
"Calc",
"Calculate", SID_SC_TP_CALC },
387 {
"Calc",
"Formula", SID_SC_TP_FORMULA },
388 {
"Calc",
"SortLists", SID_SC_TP_USERLISTS },
389 {
"Calc",
"Changes", SID_SC_TP_CHANGES },
390 {
"Calc",
"Compatibility", SID_SC_TP_COMPATIBILITY },
391 {
"Calc",
"Grid", SID_SC_TP_GRID },
392 {
"Calc",
"Print", RID_SC_TP_PRINT },
393 {
"Impress",
nullptr, SID_SD_EDITOPTIONS },
394 {
"Impress",
"General", SID_SI_TP_MISC },
395 {
"Impress",
"View", SID_SI_TP_CONTENTS },
396 {
"Impress",
"Grid", SID_SI_TP_SNAP },
397 {
"Impress",
"Print", SID_SI_TP_PRINT },
398 {
"Draw",
nullptr, SID_SD_GRAPHIC_OPTIONS },
399 {
"Draw",
"General", SID_SD_TP_MISC },
400 {
"Draw",
"View", SID_SD_TP_CONTENTS },
401 {
"Draw",
"Grid", SID_SD_TP_SNAP },
402 {
"Draw",
"Print", SID_SD_TP_PRINT },
403 {
"Charts",
nullptr, SID_SCH_EDITOPTIONS },
405 {
"Base",
nullptr, SID_SB_STARBASEOPTIONS },
406 {
"Base",
"Connections", SID_SB_CONNECTIONPOOLING },
407 {
"Base",
"Databases", SID_SB_DBREGISTEROPTIONS },
408 {
nullptr,
nullptr, 0 }
421 _rGroupName = OUString::createFromAscii(
OptionsMap_Impl[nIdx].m_pGroupName );
423 _rPageName = OUString::createFromAscii(
OptionsMap_Impl[nIdx].m_pPageName );
434 bool bIsHidden =
false;
435 OUString sGroupName, sPageName;
438 if ( sPageName.isEmpty() )
441 bIsHidden = _rOptOptions.
IsPageHidden( sPageName, sGroupName );
471 , m_pParent ( pParent )\
472 , sTitle ( m_xDialog->get_title() )\
473 , bForgetSelection ( false )\
474 , bIsFromExtensionManager( false ) \
475 , bIsForSetDocumentLanguage( false ) \
476 , bNeedsRestart ( false ) \
477 , eRestartReason( svtools::RESTART_REASON_NONE )
481 xOkPB = m_xBuilder->weld_button(
"ok");
482 xApplyPB = m_xBuilder->weld_button(
"apply");
483 xBackPB = m_xBuilder->weld_button(
"revert");
484 xTreeLB = m_xBuilder->weld_tree_view(
"pages");
485 xTabBox = m_xBuilder->weld_container(
"box");
486 Size aSize(
xTreeLB->get_approximate_digit_width() * 82,
xTreeLB->get_height_rows(30));
487#if HAVE_FEATURE_GPGME
505 if (bActivateLastSelection)
528 std::unique_ptr<weld::TreeIter> xEntry =
xTreeLB->make_iterator();
529 bool bEntry =
xTreeLB->get_iter_first(*xEntry);
534 if (
xTreeLB->get_iter_depth(*xEntry))
539 pPageInfo->
m_xPage->FillUserData();
540 OUString aPageData(pPageInfo->
m_xPage->GetUserData());
541 if ( !aPageData.isEmpty() )
563 bEntry =
xTreeLB->iter_next(*xEntry);
567 bEntry =
xTreeLB->get_iter_first(*xEntry);
570 if (!
xTreeLB->get_iter_depth(*xEntry))
575 bEntry =
xTreeLB->iter_next(*xEntry);
581 sal_uInt16 nId,
const OUString& rPageName, sal_uInt16 nGroup )
583 std::unique_ptr<weld::TreeIter> xParent =
xTreeLB->make_iterator();
584 if (!
xTreeLB->get_iter_first(*xParent))
586 xTreeLB->iter_nth_sibling(*xParent, nGroup);
590 xTreeLB->insert(xParent.get(), -1, &rPageName, &
sId,
nullptr,
nullptr,
false,
nullptr);
598 sal_uInt16 nDialogId )
606 std::unique_ptr<weld::TreeIter> xEntry =
xTreeLB->make_iterator();
607 bool bEntry =
xTreeLB->get_iter_first(*xEntry);
610 if (!
xTreeLB->get_iter_depth(*xEntry))
612 bEntry =
xTreeLB->iter_next(*xEntry);
631 xTreeLB->iter_parent(*xParent);
633 weld::fromId<OptionsGroupInfo*>(
xTreeLB->get_id(*xParent));
642 ResetCurrentPageFromConfig();
647 std::unique_ptr<weld::TreeIter> xEntry =
xTreeLB->make_iterator();
648 bool bEntry =
xTreeLB->get_iter_first(*xEntry);
651 if (
xTreeLB->get_iter_depth(*xEntry))
654 if ( pPageInfo->
m_xPage && !pPageInfo->
m_xPage->HasExchangeSupport() )
656 std::unique_ptr<weld::TreeIter> xParent =
xTreeLB->make_iterator(xEntry.get());
657 xTreeLB->iter_parent(*xParent);
659 weld::fromId<OptionsGroupInfo*>(
xTreeLB->get_id(*xParent));
674 bEntry =
xTreeLB->iter_next(*xEntry);
681 if (pHelp && xCurrentPageEntry && xTreeLB->get_iter_depth(*xCurrentPageEntry))
683 OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry));
686 OString sHelpId(pPageInfo->
m_xPage->GetHelpId());
687 pHelp->
Start(OStringToOUString(sHelpId, RTL_TEXTENCODING_UTF8),
m_xDialog.get());
696 bool bOkPressed = &rButton == xOkPB.get();
700 if (xCurrentPageEntry && xTreeLB->get_iter_depth(*xCurrentPageEntry))
702 OptionsPageInfo* pPageInfo = weld::fromId<OptionsPageInfo*>(xTreeLB->get_id(*xCurrentPageEntry));
705 std::unique_ptr<weld::TreeIter> xParent = xTreeLB->make_iterator(xCurrentPageEntry.get());
706 xTreeLB->iter_parent(*xParent);
708 pGroupInfo = weld::fromId<OptionsGroupInfo*>(xTreeLB->get_id(*xParent));
710 && pPageInfo->
m_xPage->HasExchangeSupport() )
713 if ( nLeave == DeactivateRC::KeepPage )
716 assert(xTreeLB->is_selected(*xCurrentPageEntry));
739 auto xInItemSet = pGroupInfo->
m_pShell
748 ResetCurrentPageFromConfig();
750 xCurrentPageEntry.reset();
767 pParent, eRestartReason);
768 if (bRestart && !bOkPressed)
774 std::unique_ptr<weld::TreeIter> xEntry =
xTreeLB->make_iterator();
775 bool bEntry =
xTreeLB->get_iter_first(*xEntry);
778 if (!
xTreeLB->get_iter_depth(*xEntry))
789 bEntry =
xTreeLB->iter_next(*xEntry);
835 std::unique_ptr<weld::TreeIter> xEntry;
841 if ( sLastURL.isEmpty() )
849 std::unique_ptr<weld::TreeIter> xTemp =
xTreeLB->make_iterator();
850 bool bTemp =
xTreeLB->get_iter_first(*xTemp);
854 if (
xTreeLB->get_iter_depth(*xTemp) &&
xTreeLB->get_id(*xTemp).toInt64())
866 || ( !pPageInfo->
m_nPageId && sLastURL == sPageURL ) )
868 xEntry =
xTreeLB->make_iterator(xTemp.get());
872 bTemp =
xTreeLB->iter_next(*xTemp);
878 xEntry =
xTreeLB->make_iterator();
879 if (!
xTreeLB->get_iter_first(*xEntry) || !
xTreeLB->iter_next(*xEntry))
886 std::unique_ptr<weld::TreeIter> xParent(
xTreeLB->make_iterator(xEntry.get()));
887 xTreeLB->iter_parent(*xParent);
889 xTreeLB->scroll_to_row(*xParent);
890 xTreeLB->scroll_to_row(*xEntry);
911 std::unique_ptr<weld::TreeIter> xEntry(
xTreeLB->make_iterator());
913 if (!
xTreeLB->get_cursor(xEntry.get()))
919 std::unique_ptr<weld::TreeIter> xParent(
xTreeLB->make_iterator(xEntry.get()));
920 bool bParent =
xTreeLB->iter_parent(*xParent);
931 if (pOptPageInfo && pOptPageInfo->
m_xPage && pOptPageInfo->
m_xPage->IsVisible())
934 xTreeLB->iter_parent(*xCurParent);
941 if ( nLeave == DeactivateRC::KeepPage )
949 pOptPageInfo->
m_xPage->set_visible(
false);
951 else if ( pOptPageInfo && pOptPageInfo->
m_xExtPage )
983 pPageInfo->
m_xExtPage = std::make_unique<ExtensionsTabPage>(
990 pPageInfo->
m_xPage->HasExchangeSupport())
994 pPageInfo->
m_xPage->set_visible(
true);
1003 OUString sTitleText =
sTitle
1004 +
" - " +
xTreeLB->get_text(*xParent)
1005 +
" - " +
xTreeLB->get_text(*xEntry);
1025 pNewPage = pPageInfo->
m_xPage.get();
1028 OString sHelpId(pNewPage ? pNewPage->
GetHelpId() : OString());
1029 if (sHelpId.isEmpty())
1031 xTreeLB->set_help_id(sHelpId);
1037 std::optional<SfxItemSet> pRet;
1040 case SID_GENERAL_OPTIONS:
1045 SID_HTML_MODE, SID_HTML_MODE,
1046 SID_ATTR_METRIC, SID_ATTR_METRIC,
1047 SID_AUTOSPELL_CHECK, SID_AUTOSPELL_CHECK,
1048 SID_ATTR_QUICKLAUNCHER, SID_ATTR_QUICKLAUNCHER,
1049 SID_ATTR_YEAR2000, SID_ATTR_YEAR2000> );
1062 if( SfxItemState::DEFAULT <= pDispatch->QueryState( SID_ATTR_YEAR2000, pItem ) )
1065 pRet->Put(
SfxUInt16Item( SID_ATTR_YEAR2000, officecfg::Office::Common::DateFormat::TwoDigitYear::get() ) );
1068 pRet->Put(
SfxUInt16Item( SID_ATTR_YEAR2000, officecfg::Office::Common::DateFormat::TwoDigitYear::get() ) );
1072 pRet->Put(
SfxBoolItem(SID_PRINTER_NOTFOUND_WARN, officecfg::Office::Common::Print::Warning::NotFound::get()));
1074 SfxPrinterChangeFlags nFlag = officecfg::Office::Common::Print::Warning::PaperSize::get() ? SfxPrinterChangeFlags::CHG_SIZE : SfxPrinterChangeFlags::NONE;
1075 nFlag |= officecfg::Office::Common::Print::Warning::PaperOrientation::get() ? SfxPrinterChangeFlags::CHG_ORIENTATION : SfxPrinterChangeFlags::NONE;
1076 pRet->Put(
SfxFlagItem( SID_PRINTER_CHANGESTODOC,
static_cast<int>(nFlag) ));
1080 case SID_LANGUAGE_OPTIONS :
1085 SID_ATTR_CHAR_CJK_LANGUAGE, SID_ATTR_CHAR_CJK_LANGUAGE,
1086 SID_ATTR_CHAR_CTL_LANGUAGE, SID_ATTR_CHAR_CTL_LANGUAGE,
1087 SID_SET_DOCUMENT_LANGUAGE, SID_SET_DOCUMENT_LANGUAGE,
1088 SID_ATTR_LANGUAGE, SID_ATTR_LANGUAGE,
1089 SID_AUTOSPELL_CHECK, SID_AUTOSPELL_CHECK,
1090 SID_OPT_LOCALE_CHANGED, SID_OPT_LOCALE_CHANGED>);
1095 sal_Int16 nMinLead = 2,
1099 nMinLead = xProp->getHyphMinLeading();
1100 nMinTrail = xProp->getHyphMinTrailing();
1110 if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_LANGUAGE, pLangItem))
1111 pRet->Put(*pLangItem, SID_ATTR_LANGUAGE);
1112 if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CJK_LANGUAGE, pLangItem))
1113 pRet->Put(*pLangItem, SID_ATTR_CHAR_CJK_LANGUAGE);
1114 if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_ATTR_CHAR_CTL_LANGUAGE, pLangItem))
1115 pRet->Put(*pLangItem, SID_ATTR_CHAR_CTL_LANGUAGE);
1119 if(SfxItemState::DEFAULT <= pDispatch->QueryState(SID_AUTOSPELL_CHECK, pItem))
1121 pRet->Put(std::unique_ptr<SfxPoolItem>(pItem->
Clone()));
1128 bVal = xProp->getIsSpellAuto();
1131 pRet->Put(
SfxBoolItem(SID_AUTOSPELL_CHECK, bVal));
1141 SID_SAVEREL_INET, SID_SAVEREL_FSYS,
1142 SID_INET_NOPROXY, SID_INET_FTP_PROXY_PORT,
1143 SID_SECURE_URL, SID_SECURE_URL> );
1146 case SID_FILTER_DLG:
1150 SID_ATTR_WARNALIENFORMAT, SID_ATTR_WARNALIENFORMAT,
1151 SID_ATTR_DOCINFO, SID_ATTR_AUTOSAVEMINUTE,
1152 SID_SAVEREL_INET, SID_SAVEREL_FSYS,
1153 SID_ATTR_PRETTYPRINTING, SID_ATTR_PRETTYPRINTING> );
1157 case SID_SB_STARBASEOPTIONS:
1159 svl::Items<SID_SB_POOLING_ENABLED, SID_SB_DB_REGISTER> );
1164 case SID_SCH_EDITOPTIONS:
1167 pRet.emplace(
SfxGetpApp()->GetPool(), svl::Items<SID_SCH_EDITOPTIONS, SID_SCH_EDITOPTIONS> );
1179 case SID_GENERAL_OPTIONS:
1191 sal_uInt16 nY2K = USHRT_MAX;
1195 if( USHRT_MAX != nY2K )
1201 SfxCallMode::ASYNCHRON, { pYearItem });
1203 officecfg::Office::Common::DateFormat::TwoDigitYear::set(nY2K, batch);
1208 officecfg::Office::Common::Print::Warning::NotFound::set(pWarnItem->GetValue(), batch);
1212 bool bPaperSizeWarning = bool(
static_cast<SfxPrinterChangeFlags>(pFlag->GetValue()) & SfxPrinterChangeFlags::CHG_SIZE);
1213 officecfg::Office::Common::Print::Warning::PaperSize::set(bPaperSizeWarning, batch);
1214 bool bPaperOrientationWarning = bool(
static_cast<SfxPrinterChangeFlags>(pFlag->GetValue()) & SfxPrinterChangeFlags::CHG_ORIENTATION);
1215 officecfg::Office::Common::Print::Warning::PaperOrientation::set(bPaperOrientationWarning, batch);
1219 bool bHelpTips = officecfg::Office::Common::Help::Tip::get();
1222 bool bExtendedHelp = officecfg::Office::Common::Help::ExtendedTip::get();
1229 case SID_LANGUAGE_OPTIONS :
1235 case SID_FILTER_DLG:
1239 case SID_SB_STARBASEOPTIONS:
1244 case SID_SCH_EDITOPTIONS:
1250 OSL_FAIL(
"Unhandled option in ApplyItemSet" );
1258 bool bSaveSpellCheck =
false;
1261 Reference< XComponentContext > xContext( ::comphelper::getProcessComponentContext() );
1262 Reference< XLinguProperties > xProp = LinguProperties::create( xContext );
1265 xProp->setHyphMinLeading(
static_cast<sal_Int16
>(pHyphenItem->GetMinLead()) );
1266 xProp->setHyphMinTrailing(
static_cast<sal_Int16
>(pHyphenItem->GetMinTrail()) );
1267 bSaveSpellCheck =
true;
1275 if(SfxItemState::SET ==
rSet.
GetItemState( SID_ATTR_LANGUAGE,
false, &pItem ))
1278 bSaveSpellCheck =
true;
1280 if(SfxItemState::SET ==
rSet.
GetItemState( SID_ATTR_CHAR_CTL_LANGUAGE,
false, &pItem ))
1283 bSaveSpellCheck =
true;
1285 if(SfxItemState::SET ==
rSet.
GetItemState( SID_ATTR_CHAR_CJK_LANGUAGE,
false, &pItem ))
1288 bSaveSpellCheck =
true;
1291 if( SfxItemState::SET ==
rSet.
GetItemState(SID_AUTOSPELL_CHECK,
false, &pItem ))
1295 SfxCallMode::ASYNCHRON|SfxCallMode::RECORD, { pItem });
1297 xProp->setIsSpellAuto( bOnlineSpelling );
1300 if( bSaveSpellCheck )
1304 pDispatch->
Execute(SID_SPELLCHECKER_CHANGED, SfxCallMode::ASYNCHRON);
1308 if( SfxItemState::SET ==
rSet.
GetItemState(SID_OPT_LOCALE_CHANGED,
false, &pItem ))
1311 while ( _pViewFrame )
1314 SfxCallMode::ASYNCHRON, { pItem });
1322 OUString sIdentifier;
1323 Reference < XFrame > xCurrentFrame( _xFrame );
1324 Reference < XModuleManager2 > xModuleManager = ModuleManager::create(::comphelper::getProcessComponentContext());
1325 if ( !xCurrentFrame.is() )
1328 xCurrentFrame = xDesktop->getCurrentFrame();
1331 if ( xCurrentFrame.is() )
1335 sIdentifier = xModuleManager->identify( xCurrentFrame );
1337 catch ( css::frame::UnknownModuleException& )
1339 SAL_INFO(
"cui.options",
"unknown module" );
1343 TOOLS_WARN_EXCEPTION(
"cui.options",
"getActiveModule_Impl(): exception of XModuleManager::identify()" );
1352 sal_uInt16 nGroup = 0;
1361 nGroup =
AddGroup(
CuiResId(SID_GENERAL_OPTIONS_RES[0].
first),
nullptr,
nullptr, SID_GENERAL_OPTIONS );
1362 const sal_uInt16 nEnd =
static_cast<sal_uInt16
>(std::size(SID_GENERAL_OPTIONS_RES));
1364 for (sal_uInt16
i = 1;
i < nEnd; ++
i)
1367 nPageId = SID_GENERAL_OPTIONS_RES[
i].second;
1376 Reference < XInterface > xService( setup::UpdateCheck::create( ::comphelper::getProcessComponentContext() ) );
1377 if( ! xService.is() )
1380 catch ( css::uno::DeploymentException& )
1389 if( ! officecfg::Office::Common::Misc::ExperimentalMode::get() )
1402 for (
size_t i = 1;
i < std::size(SID_FILTER_DLG_RES); ++
i )
1404 nPageId =
static_cast<sal_uInt16
>(SID_FILTER_DLG_RES[
i].second);
1415 nGroup =
AddGroup(
CuiResId(SID_LANGUAGE_OPTIONS_RES[0].
first),
nullptr,
nullptr, SID_LANGUAGE_OPTIONS );
1416 for (
size_t i = 1;
i < std::size(SID_LANGUAGE_OPTIONS_RES); ++
i)
1418 nPageId =
static_cast<sal_uInt16
>(SID_LANGUAGE_OPTIONS_RES[
i].second);
1425 if( ! officecfg::Office::Common::Misc::ExperimentalMode::get() )
1444 if ( aFactory ==
"com.sun.star.text.TextDocument"
1445 || aFactory ==
"com.sun.star.text.WebDocument"
1446 || aFactory ==
"com.sun.star.text.GlobalDocument" )
1451 if ( aFactory ==
"com.sun.star.text.WebDocument" )
1456 for (
size_t i = 1;
i < std::size(SID_SW_EDITOPTIONS_RES); ++
i )
1458 nPageId =
static_cast<sal_uInt16
>(SID_SW_EDITOPTIONS_RES[
i].second);
1463 ( RID_SW_TP_MAILCONFIG !=
nPageId || MailMergeCfg_Impl().IsEmailSupported() ) )
1467 AddTabPage( RID_SW_TP_OPTTEST_PAGE,
"Internal Test", nGroup );
1474 nGroup =
AddGroup(
CuiResId(SID_SW_ONLINEOPTIONS_RES[0].
first), pSwMod, pSwMod, SID_SW_ONLINEOPTIONS );
1475 for(
size_t i = 1;
i < std::size(SID_SW_ONLINEOPTIONS_RES); ++
i )
1477 nPageId =
static_cast<sal_uInt16
>(SID_SW_ONLINEOPTIONS_RES[
i].second);
1482 AddTabPage( RID_SW_TP_OPTTEST_PAGE,
"Internal Test", nGroup );
1491 if ( aFactory ==
"com.sun.star.sheet.SpreadsheetDocument" )
1498 const sal_uInt16
nCount =
static_cast<sal_uInt16
>(std::size(SID_SC_EDITOPTIONS_RES));
1499 for ( sal_uInt16
i = 1;
i <
nCount; ++
i )
1501 nPageId =
static_cast<sal_uInt16
>(SID_SC_EDITOPTIONS_RES[
i].second);
1515 if ( aFactory ==
"com.sun.star.presentation.PresentationDocument" )
1521 const sal_uInt16
nCount =
static_cast<sal_uInt16
>(std::size(SID_SD_EDITOPTIONS_RES));
1522 for ( sal_uInt16
i = 1;
i <
nCount; ++
i )
1524 nPageId =
static_cast<sal_uInt16
>(SID_SD_EDITOPTIONS_RES[
i].second);
1537 if ( aFactory ==
"com.sun.star.drawing.DrawingDocument" )
1542 nGroup =
AddGroup(
CuiResId(SID_SD_GRAPHIC_OPTIONS_RES[0].
first), pSdMod, pSdMod, SID_SD_GRAPHIC_OPTIONS );
1543 const sal_uInt16
nCount =
static_cast<sal_uInt16
>(std::size(SID_SD_GRAPHIC_OPTIONS_RES));
1544 for ( sal_uInt16
i = 1;
i <
nCount; ++
i )
1546 nPageId =
static_cast<sal_uInt16
>(SID_SD_GRAPHIC_OPTIONS_RES[
i].second);
1559 if ( aFactory ==
"com.sun.star.formula.FormulaProperties" )
1566 for (
size_t i = 1;
i < std::size(SID_SM_EDITOPTIONS_RES); ++
i )
1568 nPageId =
static_cast<sal_uInt16
>(SID_SM_EDITOPTIONS_RES[
i].second);
1584 nGroup =
AddGroup(
CuiResId(SID_SB_STARBASEOPTIONS_RES[0].
first),
nullptr,
nullptr, SID_SB_STARBASEOPTIONS );
1585 for (
size_t i = 1;
i < std::size(SID_SB_STARBASEOPTIONS_RES); ++
i )
1587 nPageId =
static_cast<sal_uInt16
>(SID_SB_STARBASEOPTIONS_RES[
i].second);
1597 nGroup =
AddGroup(
CuiResId(SID_SCH_EDITOPTIONS_RES[0].
first),
nullptr,
nullptr, SID_SCH_EDITOPTIONS );
1598 for (
size_t i = 1;
i < std::size(SID_SCH_EDITOPTIONS_RES); ++
i )
1600 nPageId =
static_cast<sal_uInt16
>(SID_SCH_EDITOPTIONS_RES[
i].second);
1613 for (
size_t i = 1;
i < std::size(SID_INET_DLG_RES); ++
i )
1615 nPageId =
static_cast<sal_uInt16
>(SID_INET_DLG_RES[
i].second);
1648 if ( j->m_sId == pNode->
m_sId )
1656 std::unique_ptr<Module> pModule;
1659 if ( rExtensionId.empty() )
1671 Reference < XFrame > xCurrentFrame( rFrame );
1673 Reference < XModuleManager2 > xModuleManager = ModuleManager::create(xContext);
1675 if ( !xCurrentFrame.is() )
1677 Reference < XDesktop2 > xDesktop = Desktop::create( xContext );
1678 xCurrentFrame = xDesktop->getCurrentFrame();
1681 if ( xCurrentFrame.is() )
1685 sModule = xModuleManager->identify( xCurrentFrame );
1687 catch ( css::frame::UnknownModuleException& )
1689 SAL_INFO(
"cui.options",
"unknown module" );
1693 TOOLS_WARN_EXCEPTION(
"cui.options",
"OfaTreeOptionsDialog::GetModuleIdentifier(): exception of XModuleManager::identify()");
1700 std::u16string_view rModuleIdentifier )
1702 std::unique_ptr<Module> pModule;
1704 officecfg::Office::OptionsDialog::Modules::get());
1707 for (
const OUString& rModule : seqNames )
1709 if ( rModuleIdentifier == rModule )
1712 pModule.reset(
new Module);
1713 pModule->m_bActive =
true;
1716 xSet->getByName( rModule ) >>= xModAccess;
1717 if ( xModAccess.is() )
1721 xModAccess->getByName(
"Nodes" ) >>= xNodeAccess;
1722 if ( xNodeAccess.is() )
1727 for (
const OUString& rNode : xTemp)
1729 xNodeAccess->getByName( rNode ) >>= xAccess;
1732 xAccess->getByName(
"Index" ) >>=
nIndex;
1735 pModule->m_aNodeList.push_back(
1740 std::vector<OrderedEntry *>::size_type
y = 0;
1741 for ( ;
y < pModule->m_aNodeList.size(); ++
y )
1743 sal_Int32 nNodeIdx = pModule->m_aNodeList[
y]->m_nIndex;
1744 if ( nNodeIdx < 0 || nNodeIdx >
nIndex )
1748 pModule->m_aNodeList.insert(
1749 pModule->m_aNodeList.begin() +
y,
1763 Module* pModule, std::u16string_view rExtensionId)
1768 officecfg::Office::OptionsDialog::Nodes::get());
1772 for ( OUString
const & sGroupName : seqNames )
1775 xSet->getByName( sGroupName ) >>= xNodeAccess;
1777 if ( xNodeAccess.is() )
1779 OUString sNodeId, sLabel, sPageURL;
1780 bool bAllModules =
false;
1782 sNodeId = sGroupName;
1783 xNodeAccess->getByName(
"Label" ) >>= sLabel;
1784 xNodeAccess->getByName(
"OptionsPage" ) >>= sPageURL;
1785 xNodeAccess->getByName(
"AllModules" ) >>= bAllModules;
1787 if ( sLabel.isEmpty() )
1788 sLabel = sGroupName;
1789 OUString sTemp =
getGroupName( sLabel, !rExtensionId.empty() );
1790 if ( !sTemp.isEmpty() )
1792 std::unique_ptr<OptionsNode> pNode(
new OptionsNode(sNodeId, sLabel, bAllModules));
1794 if ( rExtensionId.empty() && !
isNodeActive( pNode.get(), pModule ) )
1800 xNodeAccess->getByName(
"Leaves" ) >>= xLeavesSet;
1801 if ( xLeavesSet.is() )
1804 for ( OUString
const & leafName : seqLeaves )
1807 xLeavesSet->getByName( leafName ) >>= xLeaveAccess;
1809 if ( xLeaveAccess.is() )
1811 OUString
sId, sLeafLabel, sEventHdl, sLeafURL, sLeafGrpId;
1812 sal_Int32 nLeafGrpIdx = 0;
1814 xLeaveAccess->getByName(
"Id" ) >>=
sId;
1815 xLeaveAccess->getByName(
"Label" ) >>= sLeafLabel;
1816 xLeaveAccess->getByName(
"OptionsPage" ) >>= sLeafURL;
1817 xLeaveAccess->getByName(
"EventHandlerService" ) >>= sEventHdl;
1818 xLeaveAccess->getByName(
"GroupId" ) >>= sLeafGrpId;
1819 xLeaveAccess->getByName(
"GroupIndex" ) >>= nLeafGrpIdx;
1821 if ( rExtensionId.empty() ||
sId == rExtensionId )
1823 std::unique_ptr<OptionsLeaf> pLeaf(
new OptionsLeaf(
1824 sLeafLabel, sLeafURL, sEventHdl, sLeafGrpId, nLeafGrpIdx ));
1826 if ( !sLeafGrpId.isEmpty() )
1828 bool bAlreadyOpened =
false;
1829 if ( !pNode->m_aGroupedLeaves.empty() )
1831 for (
auto & rGroup : pNode->m_aGroupedLeaves)
1833 if ( !rGroup.empty() &&
1834 rGroup[0]->m_sGroupId == sLeafGrpId )
1836 std::vector<std::unique_ptr<OptionsLeaf>>::size_type l = 0;
1837 for ( ; l < rGroup.size(); ++l )
1839 if ( rGroup[l]->m_nGroupIndex >= nLeafGrpIdx )
1842 rGroup.insert( rGroup.begin() + l, std::move(pLeaf) );
1843 bAlreadyOpened =
true;
1848 if ( !bAlreadyOpened )
1850 std::vector< std::unique_ptr<OptionsLeaf> > aGroupedLeaves;
1851 aGroupedLeaves.push_back( std::move(pLeaf) );
1852 pNode->m_aGroupedLeaves.push_back( std::move(aGroupedLeaves) );
1856 pNode->m_aLeaves.push_back( std::move(pLeaf) );
1863 if ( !pNode->m_aLeaves.empty() || !pNode->m_aGroupedLeaves.empty() )
1865 pModule ? aNodeList.push_back( std::move(pNode) ) : aOutNodeList.push_back( std::move(pNode) );
1870 if ( pModule && !aNodeList.empty() )
1874 OUString sNodeId =
i->m_sId;
1875 for (
auto j = aNodeList.begin(); j != aNodeList.end(); ++j )
1877 if ( (*j)->m_sId == sNodeId )
1879 aOutNodeList.push_back( std::move(*j) );
1880 aNodeList.erase( j );
1886 for (
auto &
i: aNodeList )
1887 aOutNodeList.push_back( std::move(
i) );
1889 return aOutNodeList;
1894 sal_uInt16 nRet = 0;
1896 std::unique_ptr<weld::TreeIter> xEntry = rTreeLB.
make_iterator();
1902 OUString sTemp(rTreeLB.
get_text(*xEntry));
1903 if (sTemp == rGroupName)
1917 if ( USHRT_MAX == nGrpId )
1929 for (
auto const& node : rNodeList)
1931 if ( !node->m_aLeaves.empty() || !node->m_aGroupedLeaves.empty() )
1933 for (
auto const & j: node->m_aGroupedLeaves )
1935 for (
size_t k = 0; k < j.size(); ++k )
1941 for (
auto const & j: node->m_aLeaves )
1957 std::unique_ptr< SvxDicListChgClamp > pClamp;
1965 return SfxOkDialogController::run();
1971 OUString aEvtHdl,
const Reference< awt::XContainerWindowProvider >& rProvider )
1972 : m_pContainer(pParent)
1973 , m_sPageURL(
std::move(aPageURL))
1974 , m_sEventHdl(
std::move(aEvtHdl))
1975 , m_xWinProvider(rProvider)
2016 Reference < XMultiServiceFactory >
xFactory( ::comphelper::getProcessServiceFactory() );
2023 Reference<awt::XWindowPeer> xParent(
m_xPageParent, UNO_QUERY);
2028 Reference< awt::XControl > xPageControl(
m_xPage, UNO_QUERY );
2029 if ( xPageControl.is() )
2031 Reference< awt::XWindowPeer > xWinPeer( xPageControl->getPeer() );
2032 if ( xWinPeer.is() )
2043 TOOLS_WARN_EXCEPTION(
"cui.options",
"ExtensionsTabPage::CreateDialogWithHandler(): exception of XDialogProvider2::createDialogWithHandler()");
2058 TOOLS_WARN_EXCEPTION(
"cui.options",
"ExtensionsTabPage::DispatchAction(): exception of XDialogEventHandler::callHandlerMethod()" );
2074 xPageParent->Show(
true, ShowFlags::NoActivate);
2096 m_xPage->setPosSize(0, 0, aWindowRect.Width, aWindowRect.Height, awt::PosSize::POSSIZE);
const PropertyValue * pValues
SfxApplication * SfxGetpApp()
Reference< XExecutableDialog > m_xDialog
std::map< OUString, std::shared_ptr< NoAutoUnloadModule > > ModuleMap
OString GetHelpId() const
sal_uInt16 GetValue() const
bool DispatchAction(const OUString &rAction)
css::uno::Reference< css::awt::XWindow > m_xPageParent
ExtensionsTabPage(weld::Container *pParent, OUString rPageURL, OUString aEvtHdl, const css::uno::Reference< css::awt::XContainerWindowProvider > &rProvider)
css::uno::Reference< css::awt::XWindow > m_xPage
void CreateDialogWithHandler()
css::uno::Reference< css::awt::XContainerWindowProvider > m_xWinProvider
weld::Container * m_pContainer
css::uno::Reference< css::awt::XContainerWindowEventHandler > m_xEventHdl
virtual bool Start(const OUString &rHelpId, weld::Widget *pWidget=nullptr)
static void EnableQuickHelp()
static bool IsQuickHelpEnabled()
static void DisableBalloonHelp()
static void EnableBalloonHelp()
static void DisableQuickHelp()
static bool IsBalloonHelpEnabled()
INetProtocol GetProtocol() const
static css::uno::Reference< css::linguistic2::XSearchableDictionaryList > GetDictionaryList()
static css::uno::Reference< css::linguistic2::XLinguProperties > GetLinguPropertySet()
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
virtual ~OfaTreeOptionsDialog() override
std::unique_ptr< weld::Button > xBackPB
std::unique_ptr< weld::TreeIter > xCurrentPageEntry
static void ApplyItemSet(sal_uInt16 nId, const SfxItemSet &rSet)
svtools::RestartReason eRestartReason
std::unique_ptr< weld::Button > xApplyPB
static void ApplyLanguageOptions(const SfxItemSet &rSet)
void SetNeedsRestart(svtools::RestartReason eReason)
bool bIsForSetDocumentLanguage
void InsertNodes(const VectorOfNodes &rNodeList)
static std::unique_ptr< Module > LoadModule(std::u16string_view rModuleIdentifier)
OptionsPageInfo * AddTabPage(sal_uInt16 nId, const OUString &rPageName, sal_uInt16 nGroup)
void ActivatePage(sal_uInt16 nResId)
void InitItemSets(OptionsGroupInfo &rGroupInfo)
static LastPageSaver * pLastPageSaver
virtual short run() override
void LoadExtensionOptions(std::u16string_view rExtensionId)
static VectorOfNodes LoadNodes(Module *pModule, std::u16string_view rExtensionId)
void Initialize(const css::uno::Reference< css::frame::XFrame > &_xFrame)
bool bIsFromExtensionManager
sal_uInt16 AddGroup(const OUString &rGroupName, SfxShell *pCreateShell, SfxModule *pCreateModule, sal_uInt16 nDialogId)
std::unique_ptr< weld::Container > xTabBox
void InitTreeAndHandler()
std::unique_ptr< weld::Button > xOkPB
void ResetCurrentPageFromConfig()
std::optional< SfxItemSet > CreateItemSet(sal_uInt16 nId)
void ActivateLastSelection()
static OUString GetModuleIdentifier(const css::uno::Reference< css::frame::XFrame > &xFrame)
OfaTreeOptionsDialog(weld::Window *pParent, const css::uno::Reference< css::frame::XFrame > &_xFrame, bool bActivateLastSelection)
css::uno::Reference< css::awt::XContainerWindowProvider > m_xContainerWinProvider
std::unique_ptr< weld::TreeView > xTreeLB
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static void GetOptions(SfxItemSet &)
void SetOptions(const SfxItemSet &)
static SfxModule * GetModule(SfxToolsModule nSharedLib)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *)
const SfxPoolItem * Execute(sal_uInt16 nSlot, SfxCallMode nCall=SfxCallMode::SLOT, const SfxPoolItem **pArgs=nullptr, sal_uInt16 nModi=0, const SfxPoolItem **pInternalArgs=nullptr)
const SfxPoolItem * ExecuteList(sal_uInt16 nSlot, SfxCallMode nCall, std::initializer_list< SfxPoolItem const * > args, std::initializer_list< SfxPoolItem const * > internalargs=std::initializer_list< SfxPoolItem const * >())
sal_uInt8 & GetMinTrail()
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
virtual std::unique_ptr< SfxTabPage > CreateTabPage(sal_uInt16 nId, weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rSet)
virtual SfxPoolItem * Clone(SfxItemPool *pPool=nullptr) const=0
virtual void ApplyItemSet(sal_uInt16 nId, const SfxItemSet &rSet)
virtual std::optional< SfxItemSet > CreateItemSet(sal_uInt16 nId)
static SAL_WARN_UNUSED_RESULT SfxViewFrame * Current()
static SAL_WARN_UNUSED_RESULT SfxViewFrame * GetNext(const SfxViewFrame &rPrev, const SfxObjectShell *pDoc=nullptr, bool bOnlyVisible=true)
SfxDispatcher * GetDispatcher()
static SAL_WARN_UNUSED_RESULT SfxViewFrame * GetFirst(const SfxObjectShell *pDoc=nullptr, bool bOnlyVisible=true)
constexpr tools::Long Height() const
void setHeight(tools::Long nHeight)
constexpr tools::Long Width() const
bool IsCTLFontEnabled() const
bool IsModuleInstalled(EModule eModule) const
bool IsPageHidden(std::u16string_view _rPage, std::u16string_view _rGroup) const
bool IsGroupHidden(std::u16string_view _rGroup) const
css::uno::Any GetUserItem(const OUString &sName) const
void SetUserItem(const OUString &sName, const css::uno::Any &aValue)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
const SvxChartColorTable & GetDefaultColors()
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rInAttrs)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static vcl::Window * GetWindow(const css::uno::Reference< css::awt::XWindow > &rxWindow)
static std::shared_ptr< ConfigurationChanges > create()
static void GetOptions(SfxItemSet &_rFillItems)
static void SetOptions(const SfxItemSet &_rSourceItems)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *_rAttrSet)
static void SetOptions(const SfxItemSet &_rSourceItems)
static void GetOptions(SfxItemSet &_rFillItems)
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rSet)
virtual void Notify(const css::uno::Sequence< OUString > &aPropertyNames)=0
virtual void ImplCommit()=0
static void storeConfigItems()
virtual css::uno::Reference< css::awt::XWindow > CreateChildFrame()=0
virtual std::unique_ptr< TreeIter > make_iterator(const TreeIter *pOrig=nullptr) const=0
virtual OUString get_text(int row, int col=-1) const=0
virtual bool get_iter_first(TreeIter &rIter) const=0
virtual bool iter_next(TreeIter &rIter) const=0
virtual int get_iter_depth(const TreeIter &rIter) const=0
OUString CuiResId(TranslateId aKey)
#define DBG_ASSERT(sCon, aError)
#define TOOLS_WARN_EXCEPTION(area, stream)
virtual tools::Long GetValue() const override
Reference< XSingleServiceFactory > xFactory
constexpr OStringLiteral HID_OFADLG_TREELISTBOX
#define LINK(Instance, Class, Member)
#define SAL_INFO(area, stream)
bool IsJapaneseFindEnabled()
bool IsAsianTypographyEnabled()
COMPHELPER_DLLPUBLIC OUString getExpandedUri(css::uno::Reference< css::uno::XComponentContext > const &context, OUString const &uri)
Reference< XComponentContext > getProcessComponentContext()
constexpr OUStringLiteral first
bool SaveDictionaries(const uno::Reference< XSearchableDictionaryList > &xDicList)
static constexpr auto Items
int GetMinimumEditHeight()
OUString toId(const void *pValue)
#define RID_SVXPAGE_OPTIONS_CTL
#define RID_SFXPAGE_LINGU
#define OFA_TP_LANGUAGES_FOR_SET_DOCUMENT_LANGUAGE
#define RID_SVXPAGE_BASICIDE_OPTIONS
#define RID_SVXPAGE_OPENCL
#define RID_SVXPAGE_INET_SECURITY
#define RID_SVXPAGE_LANGTOOL_OPTIONS
#define RID_SVXPAGE_ONLINEUPDATE
#define RID_SVXPAGE_ASIAN_LAYOUT
#define RID_SVX_FONT_SUBSTITUTION
#define RID_SVXPAGE_JSEARCH_OPTIONS
#define RID_SVXPAGE_INET_PROXY
#define RID_SVXPAGE_PERSONALIZATION
#define RID_SVXPAGE_OPTIONS_JAVA
#define RID_SVXPAGE_COLORCONFIG
#define RID_SVXPAGE_ACCESSIBILITYCONFIG
#define RID_OFAPAGE_HTMLOPT
#define RID_SVXPAGE_INET_MAIL
#define RID_SVXPAGE_COLOR
#define RID_OPTPAGE_CHART_DEFCOLORS
#define RID_OFAPAGE_MSFILTEROPT2
#define RID_SFXPAGE_GENERAL
#define RID_SVXPAGE_DEEPL_OPTIONS
#define RID_SFXPAGE_PRINTOPTIONS
OUString m_sLastPageURL_ExtMgr
OUString m_sLastPageURL_Tools
std::vector< std::unique_ptr< OrderedEntry > > m_aNodeList
std::unique_ptr< SfxItemSet > m_pOutItemSet
OptionsGroupInfo(SfxShell *pSh, SfxModule *pMod, sal_uInt16 nId)
std::optional< SfxItemSet > m_pInItemSet
std::unique_ptr< ExtensionsTabPage > m_xExtPage
std::unique_ptr< SfxTabPage > m_xPage
OptionsPageInfo(sal_uInt16 nId)
std::unique_ptr< SfxTabPage >(* CreateTabPage)(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rAttrSet)
static void deleteGroupNames()
static bool isNodeActive(OptionsNode const *pNode, Module *pModule)
IMPL_LINK_NOARG(OfaTreeOptionsDialog, ShowPageHdl_Impl, weld::TreeView &, void)
constexpr OUStringLiteral VIEWOPT_DATANAME
static void lcl_insertLeaf(OfaTreeOptionsDialog *pDlg, OptionsNode const *pNode, OptionsLeaf const *pLeaf, const weld::TreeView &rTreeLB)
static OUString getGroupName(std::u16string_view rModule, bool bForced)
static void SetViewOptUserItem(SvtViewOptions &rOpt, const OUString &rData)
static sal_uInt16 getGroupNodeId(std::u16string_view rModule)
static std::unique_ptr< SfxTabPage > CreateGeneralTabPage(sal_uInt16 nId, weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rSet)
static OUString getCurrentFactory_Impl(const Reference< XFrame > &_xFrame)
static OUString GetViewOptUserItem(const SvtViewOptions &rOpt)
static bool lcl_isOptionHidden(sal_uInt16 _nPageId, const SvtOptionsDialogOptions &_rOptOptions)
IMPL_LINK(OfaTreeOptionsDialog, ApplyHdl_Impl, weld::Button &, rButton, void)
static void setGroupName(std::u16string_view rModule, const OUString &rGroupName)
static bool lcl_getStringFromID(sal_uInt16 _nPageId, OUString &_rGroupName, OUString &_rPageName)
OptionsMapping_Impl const OptionsMap_Impl[]
static sal_uInt16 lcl_getGroupId(std::u16string_view rGroupName, const weld::TreeView &rTreeLB)
std::vector< std::unique_ptr< OptionsNode > > VectorOfNodes
WinBits const WB_DIALOGCONTROL
WinBits const WB_CHILDDLGCTRL