Kaydet (Commit) c1c3a3c6 authored tarafından Mark Hung's avatar Mark Hung

tdf#104922 recover text grid setting properly.

Lines per page and chars per line can not be set before the
max values determined, otherwise we may get incorrect result
because of truncating to incorrect max values.

Change-Id: I9829af0dcfd744f4383a5f9034270b00fdfb15b8
Reviewed-on: https://gerrit.libreoffice.org/73280
Tested-by: Jenkins
Reviewed-by: 's avatarMark Hung <marklh9@gmail.com>
üst d8d8cdec
...@@ -171,6 +171,8 @@ bool SwTextGridPage::FillItemSet(SfxItemSet *rSet) ...@@ -171,6 +171,8 @@ bool SwTextGridPage::FillItemSet(SfxItemSet *rSet)
void SwTextGridPage::Reset(const SfxItemSet *rSet) void SwTextGridPage::Reset(const SfxItemSet *rSet)
{ {
sal_Int32 nLinesPerPage = 0;
if(SfxItemState::DEFAULT <= rSet->GetItemState(RES_TEXTGRID)) if(SfxItemState::DEFAULT <= rSet->GetItemState(RES_TEXTGRID))
{ {
const SwTextGridItem& rGridItem = rSet->Get(RES_TEXTGRID); const SwTextGridItem& rGridItem = rSet->Get(RES_TEXTGRID);
...@@ -185,7 +187,8 @@ void SwTextGridPage::Reset(const SfxItemSet *rSet) ...@@ -185,7 +187,8 @@ void SwTextGridPage::Reset(const SfxItemSet *rSet)
m_xDisplayCB->set_active(rGridItem.IsDisplayGrid()); m_xDisplayCB->set_active(rGridItem.IsDisplayGrid());
GridTypeHdl(*pButton); GridTypeHdl(*pButton);
m_xSnapToCharsCB->set_active(rGridItem.IsSnapToChars()); m_xSnapToCharsCB->set_active(rGridItem.IsSnapToChars());
m_xLinesPerPageNF->set_value(rGridItem.GetLines()); nLinesPerPage = rGridItem.GetLines();
SetLinesOrCharsRanges(*m_xLinesRangeFT , m_xLinesPerPageNF->get_max()); SetLinesOrCharsRanges(*m_xLinesRangeFT , m_xLinesPerPageNF->get_max());
m_nRubyUserValue = rGridItem.GetBaseHeight(); m_nRubyUserValue = rGridItem.GetBaseHeight();
m_bRubyUserValue = true; m_bRubyUserValue = true;
...@@ -198,6 +201,9 @@ void SwTextGridPage::Reset(const SfxItemSet *rSet) ...@@ -198,6 +201,9 @@ void SwTextGridPage::Reset(const SfxItemSet *rSet)
} }
UpdatePageSize(*rSet); UpdatePageSize(*rSet);
if (nLinesPerPage > 0)
m_xLinesPerPageNF->set_value(nLinesPerPage);
m_xNoGridRB->save_state(); m_xNoGridRB->save_state();
m_xLinesGridRB->save_state(); m_xLinesGridRB->save_state();
m_xSnapToCharsCB->save_state(); m_xSnapToCharsCB->save_state();
...@@ -301,8 +307,9 @@ void SwTextGridPage::UpdatePageSize(const SfxItemSet& rSet) ...@@ -301,8 +307,9 @@ void SwTextGridPage::UpdatePageSize(const SfxItemSet& rSet)
if ( m_bSquaredMode ) if ( m_bSquaredMode )
{ {
m_xCharsPerLineNF->set_value(m_aPageSize.Width() / nTextSize); sal_Int32 nCharsPerLine = m_aPageSize.Width() / nTextSize;
m_xCharsPerLineNF->set_max(m_xCharsPerLineNF->get_value()); m_xCharsPerLineNF->set_max(nCharsPerLine);
m_xCharsPerLineNF->set_value(nCharsPerLine);
m_xLinesPerPageNF->set_max(m_aPageSize.Height() / m_xLinesPerPageNF->set_max(m_aPageSize.Height() /
( m_xTextSizeMF->denormalize(m_xTextSizeMF->get_value(FieldUnit::TWIP)) + ( m_xTextSizeMF->denormalize(m_xTextSizeMF->get_value(FieldUnit::TWIP)) +
m_xRubySizeMF->denormalize(m_xRubySizeMF->get_value(FieldUnit::TWIP)))); m_xRubySizeMF->denormalize(m_xRubySizeMF->get_value(FieldUnit::TWIP))));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment