diff --git a/0001-Resolves-rhbz-1255811-implement-Edit-modify-handler.patch b/0001-Resolves-rhbz-1255811-implement-Edit-modify-handler.patch new file mode 100644 index 0000000..9229981 --- /dev/null +++ b/0001-Resolves-rhbz-1255811-implement-Edit-modify-handler.patch @@ -0,0 +1,510 @@ +From 13e0e4f24c5620f8018c91589ece1710d063e38c Mon Sep 17 00:00:00 2001 +Message-Id: <13e0e4f24c5620f8018c91589ece1710d063e38c.1440585014.git.erack@redhat.com> +From: Eike Rathke +Date: Tue, 25 Aug 2015 21:16:43 +0200 +Subject: [PATCH] Resolves: rhbz#1255811 implement Edit modify handler +MIME-Version: 1.0 +Content-Type: multipart/mixed; boundary="------------erAck-patch-parts" + +This is a multi-part message in MIME format. +--------------erAck-patch-parts +Content-Type: text/plain; charset=UTF-8; format=fixed +Content-Transfer-Encoding: 8bit + + +... and disable/enable Apply/Ok buttons for in/valid ranges. + +(cherry picked from commit ad1284df599f3493e7c76c7f8b4230aab1946558) + +implement Edit modify handler, rhbz#1255811 related + +Same as in ScRandomNumberGeneratorDialog. + +(cherry picked from commit da9ecf1a59b85eb93004507fe55b92f74c2cdb4c) + +implement Edit modify handler, rhbz#1255811 related + +Same as in ScSamplingDialog. + +(cherry picked from commit a88fecdcdbf0b3f6a5ba3375f8193a9dc7ba7422) + +implement Edit modify handler, rhbz#1255811 related + +Same as in ScStatisticsInputOutputDialog. + +(cherry picked from commit b2363e98af7b0281279617e43b8fec5b898b9120) + +1bc9296bfc8b1b2b8f3fc20183e2c626f94dee09 +ff709ec2284673efa8824a9b8cfc037e4d6d567a +0e3eb06bc86cf77c405c54f312340c7b2551c1ec + +Conflicts: + sc/source/ui/StatisticsDialogs/SamplingDialog.cxx + +Change-Id: I52b5eae2f34e3fca7c0761b14124477a0d160b01 +--- + .../RandomNumberGeneratorDialog.cxx | 29 +++++++ + sc/source/ui/StatisticsDialogs/SamplingDialog.cxx | 74 +++++++++++++++++- + .../StatisticsInputOutputDialog.cxx | 71 ++++++++++++++++- + .../StatisticsTwoVariableDialog.cxx | 89 +++++++++++++++++++++- + sc/source/ui/inc/RandomNumberGeneratorDialog.hxx | 1 + + sc/source/ui/inc/SamplingDialog.hxx | 1 + + sc/source/ui/inc/StatisticsInputOutputDialog.hxx | 1 + + sc/source/ui/inc/StatisticsTwoVariableDialog.hxx | 1 + + 8 files changed, 258 insertions(+), 9 deletions(-) + + +--------------erAck-patch-parts +Content-Type: text/x-patch; name="0001-Resolves-rhbz-1255811-implement-Edit-modify-handler.patch" +Content-Transfer-Encoding: 8bit +Content-Disposition: attachment; filename="0001-Resolves-rhbz-1255811-implement-Edit-modify-handler.patch" + +diff --git a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx +index 35b72f8..2571dba 100644 +--- a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx ++++ b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx +@@ -104,6 +104,7 @@ void ScRandomNumberGeneratorDialog::Init() + mpInputRangeEdit->SetLoseFocusHdl ( aLink ); + mpInputRangeButton->SetLoseFocusHdl ( aLink ); + ++ mpInputRangeEdit->SetModifyHdl( LINK( this, ScRandomNumberGeneratorDialog, InputRangeModified )); + mpParameter1Value->SetModifyHdl( LINK( this, ScRandomNumberGeneratorDialog, Parameter1ValueModified )); + mpParameter2Value->SetModifyHdl( LINK( this, ScRandomNumberGeneratorDialog, Parameter2ValueModified )); + +@@ -157,11 +158,17 @@ void ScRandomNumberGeneratorDialog::SetReference( const ScRange& rReferenceRange + + OUString aReferenceString(maInputRange.Format(SCR_ABS_3D, pDoc, pDoc->GetAddressConvention())); + mpInputRangeEdit->SetRefString( aReferenceString ); ++ ++ mpButtonApply->Enable(); ++ mpButtonOk->Enable(); + } + } + + void ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers() + { ++ if (!maInputRange.IsValid()) ++ return; ++ + sal_Int16 aSelectedIndex = mpDistributionCombo-> GetSelectEntryPos(); + sal_Int64 aSelectedId = (sal_Int64) mpDistributionCombo->GetEntryData(aSelectedIndex); + +@@ -345,6 +352,28 @@ IMPL_LINK_NOARG(ScRandomNumberGeneratorDialog, LoseFocusHandler) + return 0; + } + ++IMPL_LINK_NOARG(ScRandomNumberGeneratorDialog, InputRangeModified) ++{ ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mpDoc); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ maInputRange = *pRange; ++ mpButtonApply->Enable(); ++ mpButtonOk->Enable(); ++ // Highlight the resulting range. ++ mpInputRangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ maInputRange = ScRange( ScAddress::INITIALIZE_INVALID); ++ mpButtonApply->Disable(); ++ mpButtonOk->Disable(); ++ } ++ return 0; ++} ++ + IMPL_LINK_NOARG(ScRandomNumberGeneratorDialog, Parameter1ValueModified) + { + sal_Int16 aSelectedIndex = mpDistributionCombo-> GetSelectEntryPos(); +diff --git a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx +index 4c2529b..64acad5 100644 +--- a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx ++++ b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx +@@ -34,7 +34,9 @@ ScSamplingDialog::ScSamplingDialog( + mpActiveEdit ( NULL ), + mViewData ( pViewData ), + mDocument ( pViewData->GetDocument() ), ++ mInputRange ( ScAddress::INITIALIZE_INVALID ), + mAddressDetails ( mDocument->GetAddressConvention(), 0, 0 ), ++ mOutputAddress ( ScAddress::INITIALIZE_INVALID ), + mCurrentAddress ( pViewData->GetCurX(), pViewData->GetCurY(), pViewData->GetTabNo() ), + mDialogLostFocus( false ) + { +@@ -79,6 +81,10 @@ void ScSamplingDialog::Init() + mpOutputRangeEdit->SetLoseFocusHdl( aLink ); + mpOutputRangeButton->SetLoseFocusHdl( aLink ); + ++ aLink = LINK( this, ScSamplingDialog, RefInputModifyHandler); ++ mpInputRangeEdit->SetModifyHdl( aLink); ++ mpOutputRangeEdit->SetModifyHdl( aLink); ++ + mpSampleSize->SetModifyHdl( LINK( this, ScSamplingDialog, SamplingSizeValueModified )); + + mpPeriodicMethodRadio->SetToggleHdl( LINK( this, ScSamplingDialog, ToggleSamplingMethod ) ); +@@ -151,11 +157,12 @@ void ScSamplingDialog::SetReference( const ScRange& rReferenceRange, ScDocument* + if (aSelectedSampleSize > 1) + mpSampleSize->SetValue(aSelectedSampleSize); + SamplingSizeValueModified(NULL); +- +- // Enable OK, Cancel if output range is set +- mpButtonOk->Enable(!mpOutputRangeEdit->GetText().isEmpty()); + } + } ++ ++ // Enable OK if both, input range and output address are set. ++ if (mInputRange.IsValid() && mOutputAddress.IsValid()) ++ mpButtonOk->Enable(); + } + + ScRange ScSamplingDialog::PerformPeriodicSampling(ScDocShell* pDocShell) +@@ -322,5 +329,66 @@ IMPL_LINK_NOARG(ScSamplingDialog, ToggleSamplingMethod) + return 0; + } + ++IMPL_LINK_NOARG(ScSamplingDialog, RefInputModifyHandler) ++{ ++ if ( mpActiveEdit ) ++ { ++ if ( mpActiveEdit == mpInputRangeEdit ) ++ { ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mDocument); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ mInputRange = *pRange; ++ // Highlight the resulting range. ++ mpInputRangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ mInputRange = ScRange( ScAddress::INITIALIZE_INVALID); ++ } ++ } ++ else if ( mpActiveEdit == mpOutputRangeEdit ) ++ { ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ mOutputAddress = pRange->aStart; ++ ++ // Crop output range to top left address for Edit field. ++ if (pRange->aStart != pRange->aEnd) ++ { ++ sal_uInt16 nFormat = ( mOutputAddress.Tab() == mCurrentAddress.Tab() ) ? SCA_ABS : SCA_ABS_3D; ++ OUString aReferenceString = mOutputAddress.Format(nFormat, mDocument, mDocument->GetAddressConvention()); ++ mpOutputRangeEdit->SetRefString( aReferenceString ); ++ } ++ ++ // Change sampling size according to output range selection ++ sal_Int64 aSelectedSampleSize = pRange->aEnd.Row() - pRange->aStart.Row() + 1; ++ if (aSelectedSampleSize > 1) ++ mpSampleSize->SetValue(aSelectedSampleSize); ++ SamplingSizeValueModified(NULL); ++ ++ // Highlight the resulting range. ++ mpOutputRangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ mOutputAddress = ScAddress( ScAddress::INITIALIZE_INVALID); ++ } ++ } ++ } ++ ++ // Enable OK if both, input range and output address are set. ++ if (mInputRange.IsValid() && mOutputAddress.IsValid()) ++ mpButtonOk->Enable(); ++ else ++ mpButtonOk->Disable(); ++ ++ return 0; ++} + + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ +diff --git a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx +index d8e835a..2fb463a 100644 +--- a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx ++++ b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx +@@ -59,7 +59,9 @@ ScStatisticsInputOutputDialog::ScStatisticsInputOutputDialog( + ScAnyRefDlg ( pSfxBindings, pChildWindow, pParent, rID, rUIXMLDescription ), + mViewData ( pViewData ), + mDocument ( pViewData->GetDocument() ), ++ mInputRange ( ScAddress::INITIALIZE_INVALID ), + mAddressDetails ( mDocument->GetAddressConvention(), 0, 0 ), ++ mOutputAddress ( ScAddress::INITIALIZE_INVALID ), + mGroupedBy ( BY_COLUMN ), + mpActiveEdit ( NULL ), + mCurrentAddress ( pViewData->GetCurX(), pViewData->GetCurY(), pViewData->GetTabNo() ), +@@ -106,6 +108,10 @@ void ScStatisticsInputOutputDialog::Init() + mpOutputRangeEdit->SetLoseFocusHdl( aLink ); + mpOutputRangeButton->SetLoseFocusHdl( aLink ); + ++ aLink = LINK( this, ScStatisticsInputOutputDialog, RefInputModifyHandler); ++ mpInputRangeEdit->SetModifyHdl( aLink); ++ mpOutputRangeEdit->SetModifyHdl( aLink); ++ + mpOutputRangeEdit->GrabFocus(); + + mpGroupByColumnsRadio->SetToggleHdl( LINK( this, ScStatisticsInputOutputDialog, GroupByChanged ) ); +@@ -159,11 +165,14 @@ void ScStatisticsInputOutputDialog::SetReference( const ScRange& rReferenceRange + sal_uInt16 nFormat = ( mOutputAddress.Tab() == mCurrentAddress.Tab() ) ? SCA_ABS : SCA_ABS_3D; + aReferenceString = mOutputAddress.Format(nFormat, pDocument, pDocument->GetAddressConvention()); + mpOutputRangeEdit->SetRefString( aReferenceString ); +- +- // Enable OK, Cancel if output range is set +- mpButtonOk->Enable(!mpOutputRangeEdit->GetText().isEmpty()); + } + } ++ ++ // Enable OK if both, input range and output address are set. ++ if (mInputRange.IsValid() && mOutputAddress.IsValid()) ++ mpButtonOk->Enable(); ++ else ++ mpButtonOk->Disable(); + } + + IMPL_LINK( ScStatisticsInputOutputDialog, OkClicked, PushButton*, /*pButton*/ ) +@@ -204,6 +213,62 @@ IMPL_LINK_NOARG( ScStatisticsInputOutputDialog, GroupByChanged ) + return 0; + } + ++IMPL_LINK_NOARG( ScStatisticsInputOutputDialog, RefInputModifyHandler ) ++{ ++ if ( mpActiveEdit ) ++ { ++ if ( mpActiveEdit == mpInputRangeEdit ) ++ { ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mDocument); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ mInputRange = *pRange; ++ // Highlight the resulting range. ++ mpInputRangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ mInputRange = ScRange( ScAddress::INITIALIZE_INVALID); ++ } ++ } ++ else if ( mpActiveEdit == mpOutputRangeEdit ) ++ { ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ mOutputAddress = pRange->aStart; ++ ++ // Crop output range to top left address for Edit field. ++ if (pRange->aStart != pRange->aEnd) ++ { ++ sal_uInt16 nFormat = ( mOutputAddress.Tab() == mCurrentAddress.Tab() ) ? SCA_ABS : SCA_ABS_3D; ++ OUString aReferenceString = mOutputAddress.Format(nFormat, mDocument, mDocument->GetAddressConvention()); ++ mpOutputRangeEdit->SetRefString( aReferenceString ); ++ } ++ ++ // Highlight the resulting range. ++ mpOutputRangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ mOutputAddress = ScAddress( ScAddress::INITIALIZE_INVALID); ++ } ++ } ++ } ++ ++ // Enable OK if both, input range and output address are set. ++ if (mInputRange.IsValid() && mOutputAddress.IsValid()) ++ mpButtonOk->Enable(); ++ else ++ mpButtonOk->Disable(); ++ ++ return 0; ++} ++ + void ScStatisticsInputOutputDialog::CalculateInputAndWriteToOutput() + { + OUString aUndo(SC_STRLOAD(RID_STATISTICS_DLGS, GetUndoNameId())); +diff --git a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx +index a55da6d..1d47458 100644 +--- a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx ++++ b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx +@@ -31,7 +31,10 @@ ScStatisticsTwoVariableDialog::ScStatisticsTwoVariableDialog( + ScAnyRefDlg ( pSfxBindings, pChildWindow, pParent, rID, rUIXMLDescription ), + mViewData ( pViewData ), + mDocument ( pViewData->GetDocument() ), ++ mVariable1Range ( ScAddress::INITIALIZE_INVALID ), ++ mVariable2Range ( ScAddress::INITIALIZE_INVALID ), + mAddressDetails ( mDocument->GetAddressConvention(), 0, 0 ), ++ mOutputAddress ( ScAddress::INITIALIZE_INVALID ), + mGroupedBy ( BY_COLUMN ), + mpActiveEdit ( NULL ), + mCurrentAddress ( pViewData->GetCurX(), pViewData->GetCurY(), pViewData->GetTabNo() ), +@@ -88,6 +91,11 @@ void ScStatisticsTwoVariableDialog::Init() + mpOutputRangeEdit->SetLoseFocusHdl( aLink ); + mpOutputRangeButton->SetLoseFocusHdl( aLink ); + ++ aLink = LINK( this, ScStatisticsTwoVariableDialog, RefInputModifyHandler); ++ mpVariable1RangeEdit->SetModifyHdl( aLink); ++ mpVariable2RangeEdit->SetModifyHdl( aLink); ++ mpOutputRangeEdit->SetModifyHdl( aLink); ++ + mpOutputRangeEdit->GrabFocus(); + + mpGroupByColumnsRadio->SetToggleHdl( LINK( this, ScStatisticsTwoVariableDialog, GroupByChanged ) ); +@@ -167,11 +175,14 @@ void ScStatisticsTwoVariableDialog::SetReference( const ScRange& rReferenceRange + sal_uInt16 nFormat = ( mOutputAddress.Tab() == mCurrentAddress.Tab() ) ? SCA_ABS : SCA_ABS_3D; + aReferenceString = mOutputAddress.Format(nFormat, pDocument, pDocument->GetAddressConvention()); + mpOutputRangeEdit->SetRefString( aReferenceString ); +- +- // Enable OK, Cancel if output range is set +- mpButtonOk->Enable(!mpOutputRangeEdit->GetText().isEmpty()); + } + } ++ ++ // Enable OK if all ranges are set. ++ if (mVariable1Range.IsValid() && mVariable2Range.IsValid() && mOutputAddress.IsValid()) ++ mpButtonOk->Enable(); ++ else ++ mpButtonOk->Disable(); + } + + IMPL_LINK( ScStatisticsTwoVariableDialog, OkClicked, PushButton*, /*pButton*/ ) +@@ -222,6 +233,78 @@ IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, GroupByChanged ) + return 0; + } + ++IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, RefInputModifyHandler ) ++{ ++ if ( mpActiveEdit ) ++ { ++ if ( mpActiveEdit == mpVariable1RangeEdit ) ++ { ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpVariable1RangeEdit->GetText(), mDocument); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ mVariable1Range = *pRange; ++ // Highlight the resulting range. ++ mpVariable1RangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ mVariable1Range = ScRange( ScAddress::INITIALIZE_INVALID); ++ } ++ } ++ else if ( mpActiveEdit == mpVariable2RangeEdit ) ++ { ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpVariable2RangeEdit->GetText(), mDocument); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ mVariable2Range = *pRange; ++ // Highlight the resulting range. ++ mpVariable2RangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ mVariable2Range = ScRange( ScAddress::INITIALIZE_INVALID); ++ } ++ } ++ else if ( mpActiveEdit == mpOutputRangeEdit ) ++ { ++ ScRangeList aRangeList; ++ bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument); ++ const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; ++ if (pRange) ++ { ++ mOutputAddress = pRange->aStart; ++ ++ // Crop output range to top left address for Edit field. ++ if (pRange->aStart != pRange->aEnd) ++ { ++ sal_uInt16 nFormat = ( mOutputAddress.Tab() == mCurrentAddress.Tab() ) ? SCA_ABS : SCA_ABS_3D; ++ OUString aReferenceString = mOutputAddress.Format(nFormat, mDocument, mDocument->GetAddressConvention()); ++ mpOutputRangeEdit->SetRefString( aReferenceString ); ++ } ++ ++ // Highlight the resulting range. ++ mpOutputRangeEdit->StartUpdateData(); ++ } ++ else ++ { ++ mOutputAddress = ScAddress( ScAddress::INITIALIZE_INVALID); ++ } ++ } ++ } ++ ++ // Enable OK if all ranges are set. ++ if (mVariable1Range.IsValid() && mVariable2Range.IsValid() && mOutputAddress.IsValid()) ++ mpButtonOk->Enable(); ++ else ++ mpButtonOk->Disable(); ++ ++ return 0; ++} ++ + void ScStatisticsTwoVariableDialog::CalculateInputAndWriteToOutput() + { + OUString aUndo(SC_STRLOAD(RID_STATISTICS_DLGS, GetUndoNameId())); +diff --git a/sc/source/ui/inc/RandomNumberGeneratorDialog.hxx b/sc/source/ui/inc/RandomNumberGeneratorDialog.hxx +index ffb95d5..908f7a4 100644 +--- a/sc/source/ui/inc/RandomNumberGeneratorDialog.hxx ++++ b/sc/source/ui/inc/RandomNumberGeneratorDialog.hxx +@@ -75,6 +75,7 @@ private: + DECL_LINK( GetFocusHandler, Control* ); + DECL_LINK( LoseFocusHandler, void* ); + ++ DECL_LINK( InputRangeModified, void* ); + DECL_LINK( Parameter1ValueModified, void* ); + DECL_LINK( Parameter2ValueModified, void* ); + DECL_LINK( DistributionChanged, void* ); +diff --git a/sc/source/ui/inc/SamplingDialog.hxx b/sc/source/ui/inc/SamplingDialog.hxx +index 9cebb6c..169dda8 100644 +--- a/sc/source/ui/inc/SamplingDialog.hxx ++++ b/sc/source/ui/inc/SamplingDialog.hxx +@@ -76,6 +76,7 @@ private: + DECL_LINK( LoseFocusHandler, void* ); + DECL_LINK( SamplingSizeValueModified, void* ); + DECL_LINK( ToggleSamplingMethod, void* ); ++ DECL_LINK( RefInputModifyHandler, void* ); + }; + + #endif +diff --git a/sc/source/ui/inc/StatisticsInputOutputDialog.hxx b/sc/source/ui/inc/StatisticsInputOutputDialog.hxx +index d54ac00..7e0981c 100644 +--- a/sc/source/ui/inc/StatisticsInputOutputDialog.hxx ++++ b/sc/source/ui/inc/StatisticsInputOutputDialog.hxx +@@ -82,6 +82,7 @@ private: + DECL_LINK( OkClicked, PushButton* ); + DECL_LINK( GetFocusHandler, Control* ); + DECL_LINK( LoseFocusHandler, void* ); ++ DECL_LINK( RefInputModifyHandler, void* ); + }; + + #endif +diff --git a/sc/source/ui/inc/StatisticsTwoVariableDialog.hxx b/sc/source/ui/inc/StatisticsTwoVariableDialog.hxx +index 87c1d6b..7e93517 100644 +--- a/sc/source/ui/inc/StatisticsTwoVariableDialog.hxx ++++ b/sc/source/ui/inc/StatisticsTwoVariableDialog.hxx +@@ -85,6 +85,7 @@ private: + DECL_LINK( OkClicked, PushButton* ); + DECL_LINK( GetFocusHandler, Control* ); + DECL_LINK( LoseFocusHandler, void* ); ++ DECL_LINK( RefInputModifyHandler, void* ); + }; + + #endif + +--------------erAck-patch-parts-- + + diff --git a/libreoffice.spec b/libreoffice.spec index 1d16dbb..d44cb98 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -405,6 +405,7 @@ Patch95: 0001-check-annotation-caption-pointers-blind-fix-for-rhbz.patch Patch96: 0001-Resolves-tdf-86024-do-not-attempt-to-shorten-numeric.patch Patch97: 0001-fix-langtag-test-with-liblangtag-0.5.7.patch Patch98: 0001-support-en-GB-oxendict-additionally-to-now-deprecate.patch +Patch99: 0001-Resolves-rhbz-1255811-implement-Edit-modify-handler.patch %define instdir %{_libdir} %define baseinstdir %{instdir}/libreoffice @@ -2380,11 +2381,12 @@ update-desktop-database %{_datadir}/applications &> /dev/null || : %endif %changelog -* Tue Aug 11 2015 Eike Rathke - 1:4.3.7.2-10 +* Wed Aug 26 2015 Eike Rathke - 1:4.3.7.2-10 - Resolves: tdf#92767 use ISO 8601 for internal date string representation - check annotation caption pointers, blind fix for rhbz#1242099 - Resolves: tdf#86024 do not attempt to shorten numeric value output - handle en-GB-oxendict vs en-GB-oed language tag for newer liblangtag data +- Resolves: rhbz#1255811 implement Edit modify handler * Sat Jul 11 2015 Eike Rathke - 1:4.3.7.2-9 - Resolves: rhbz#1146058 using a fp register also consumes a gp register slot