20 #undef SC_DLLIMPLEMENTATION
26 #include <globstr.hrc>
30 #include <officecfg/Office/Calc.hxx>
36 :
SfxTabPage(pPage, pController,
"modules/scalc/ui/optcalculatepage.ui",
"OptCalculatePage", &rCoreAttrs)
39 GetWhich(SID_SCDOCOPTIONS))).GetDocOptions()))
41 , nWhichCalc(
GetWhich(SID_SCDOCOPTIONS))
42 , m_xBtnIterate(m_xBuilder->weld_check_button(
"iterate"))
43 , m_xFtSteps(m_xBuilder->weld_label(
"stepsft"))
44 , m_xEdSteps(m_xBuilder->weld_spin_button(
"steps"))
45 , m_xFtEps(m_xBuilder->weld_label(
"minchangeft"))
46 , m_xEdEps(new
ScDoubleField(m_xBuilder->weld_entry(
"minchange")))
47 , m_xBtnDateStd(m_xBuilder->weld_radio_button(
"datestd"))
48 , m_xBtnDateSc10(m_xBuilder->weld_radio_button(
"datesc10"))
49 , m_xBtnDate1904(m_xBuilder->weld_radio_button(
"date1904"))
50 , m_xBtnCase(m_xBuilder->weld_check_button(
"case"))
51 , m_xBtnCalc(m_xBuilder->weld_check_button(
"calc"))
52 , m_xBtnMatch(m_xBuilder->weld_check_button(
"match"))
53 , m_xBtnWildcards(m_xBuilder->weld_radio_button(
"formulawildcards"))
54 , m_xBtnRegex(m_xBuilder->weld_radio_button(
"formularegex"))
55 , m_xBtnLiteral(m_xBuilder->weld_radio_button(
"formulaliteral"))
56 , m_xBtnLookUp(m_xBuilder->weld_check_button(
"lookup"))
57 , m_xBtnGeneralPrec(m_xBuilder->weld_check_button(
"generalprec"))
58 , m_xFtPrec(m_xBuilder->weld_label(
"precft"))
59 , m_xEdPrec(m_xBuilder->weld_spin_button(
"prec"))
60 , m_xBtnThread(m_xBuilder->weld_check_button(
"threadingenabled"))
82 return std::make_unique<ScTpCalcOptions>( pPage, pController, *rAttrSet );
93 m_xBtnCase->set_sensitive( !officecfg::Office::Calc::Calculate::Other::CaseSensitive::isReadOnly() );
95 m_xBtnCalc->set_sensitive( !officecfg::Office::Calc::Calculate::Other::Precision::isReadOnly() );
97 m_xBtnMatch->set_sensitive( !officecfg::Office::Calc::Calculate::Other::SearchCriteria::isReadOnly() );
103 if (bWildcards && bRegex)
107 m_xBtnWildcards->set_sensitive( !officecfg::Office::Calc::Calculate::Other::Wildcards::isReadOnly() );
108 m_xBtnRegex->set_sensitive( !officecfg::Office::Calc::Calculate::Other::RegularExpressions::isReadOnly() );
119 m_xBtnLookUp->set_sensitive( !officecfg::Office::Calc::Calculate::Other::FindLabel::isReadOnly() );
154 m_xBtnThread->set_sensitive( !officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::isReadOnly() );
155 m_xBtnThread->set_active( officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::get() );
173 static_cast<sal_uInt16>(
m_xEdPrec->get_value()) );
177 bool bShouldEnableThreading =
m_xBtnThread->get_active();
178 if (bShouldEnableThreading != officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::get())
181 officecfg::Office::Calc::Formula::Calculation::UseThreadedCalculationForFormulaGroups::set(bShouldEnableThreading, xBatch);
203 if(
m_xEdEps->GetValue( fEps ) && (fEps > 0.0) )
206 nReturn = DeactivateRC::LeavePage;
209 if ( nReturn == DeactivateRC::KeepPage )
212 VclButtonsType::Ok,
ScResId(STR_INVALID_EPS)));
227 if (&rBtn == m_xBtnDateStd.get())
229 pLocalOptions->SetDate( 30, 12, 1899 );
231 else if (&rBtn == m_xBtnDateSc10.get())
233 pLocalOptions->SetDate( 1, 1, 1900 );
235 else if (&rBtn == m_xBtnDate1904.get())
237 pLocalOptions->SetDate( 1, 1, 1904 );
243 if (&rBtn == m_xBtnGeneralPrec.get())
245 if (rBtn.get_active())
247 m_xEdPrec->set_sensitive(
true);
248 m_xFtPrec->set_sensitive(
true);
252 m_xEdPrec->set_sensitive(
false);
253 m_xFtPrec->set_sensitive(
false);
256 else if (&rBtn == m_xBtnIterate.get())
258 if (rBtn.get_active())
260 pLocalOptions->SetIter(
true );
261 m_xFtSteps->set_sensitive(
true); m_xEdSteps->set_sensitive(
true);
262 m_xFtEps->set_sensitive(
true); m_xEdEps->set_sensitive(
true);
266 pLocalOptions->SetIter(
false );
267 m_xFtSteps->set_sensitive(
false); m_xEdSteps->set_sensitive(
false);
268 m_xFtEps->set_sensitive(
false); m_xEdEps->set_sensitive(
false);
#define LINK(Instance, Class, Member)
std::unique_ptr< weld::CheckButton > m_xBtnCase
std::unique_ptr< weld::CheckButton > m_xBtnThread
virtual void Reset(const SfxItemSet *rCoreSet) override
virtual bool FillItemSet(SfxItemSet *rCoreSet) override
virtual ~ScTpCalcOptions() override
std::unique_ptr< weld::SpinButton > m_xEdPrec
std::unique_ptr< weld::RadioButton > m_xBtnRegex
std::unique_ptr< ScDoubleField > m_xEdEps
ScTpCalcOptions(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet &rCoreSet)
std::unique_ptr< weld::RadioButton > m_xBtnDate1904
void SetExchangeSupport()
std::unique_ptr< weld::CheckButton > m_xBtnMatch
static std::shared_ptr< ConfigurationChanges > create(css::uno::Reference< css::uno::XComponentContext > const &context=comphelper::getProcessComponentContext())
virtual DeactivateRC DeactivatePage(SfxItemSet *pSet) override
std::unique_ptr< weld::RadioButton > m_xBtnWildcards
static std::unique_ptr< SfxTabPage > Create(weld::Container *pPage, weld::DialogController *pController, const SfxItemSet *rCoreSet)
An edit control that contains a double precision floating-point value.
OUString ScResId(const char *pId)
std::unique_ptr< ScDocOptions > pOldOptions
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
std::unique_ptr< weld::CheckButton > m_xBtnGeneralPrec
weld::Window * GetFrameWeld() const
IMPL_LINK(ScTpCalcOptions, RadioClickHdl, weld::Button &, rBtn, void)
std::unique_ptr< weld::CheckButton > m_xBtnCalc
Reference< XComponentContext > getProcessComponentContext()
SfxOkDialogController * GetDialogController() const
std::unique_ptr< weld::SpinButton > m_xEdSteps
std::unique_ptr< weld::Label > m_xFtPrec
std::unique_ptr< weld::CheckButton > m_xBtnLookUp
SVXCORE_DLLPUBLIC MSO_SPT Get(const OUString &)
std::unique_ptr< weld::RadioButton > m_xBtnDateStd
std::unique_ptr< ScDocOptions > pLocalOptions
std::unique_ptr< weld::CheckButton > m_xBtnIterate
std::unique_ptr< weld::RadioButton > m_xBtnDateSc10
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, bool bMobile=false)
std::unique_ptr< weld::RadioButton > m_xBtnLiteral