summaryrefslogtreecommitdiff
path: root/sc/source/ui/pagedlg
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/pagedlg')
-rw-r--r--sc/source/ui/pagedlg/areasdlg.cxx83
-rw-r--r--sc/source/ui/pagedlg/tphfedit.cxx16
2 files changed, 43 insertions, 56 deletions
diff --git a/sc/source/ui/pagedlg/areasdlg.cxx b/sc/source/ui/pagedlg/areasdlg.cxx
index 57a93d4cd5f3..c9f38f784f7c 100644
--- a/sc/source/ui/pagedlg/areasdlg.cxx
+++ b/sc/source/ui/pagedlg/areasdlg.cxx
@@ -94,12 +94,12 @@ static void printAddressFlags(ScRefFlags nFlag)
#endif
-ScPrintAreasDlg::ScPrintAreasDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent)
+ScPrintAreasDlg::ScPrintAreasDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent, ScViewData& rData)
: ScAnyRefDlgController(pB, pCW, pParent, u"modules/scalc/ui/printareasdialog.ui"_ustr, u"PrintAreasDialog"_ustr)
, bDlgLostFocus(false)
- , pDoc(nullptr)
- , pViewData(nullptr)
- , nCurTab(0)
+ , rViewData(rData)
+ , rDoc(rViewData.GetDocument())
+ , nCurTab(rViewData.GetTabNo())
, m_xLbPrintArea(m_xBuilder->weld_combo_box(u"lbprintarea"_ustr))
, m_xEdPrintArea(new formula::RefEdit(m_xBuilder->weld_entry(u"edprintarea"_ustr)))
, m_xRbPrintArea(new formula::RefButton(m_xBuilder->weld_button(u"rbprintarea"_ustr)))
@@ -128,18 +128,6 @@ ScPrintAreasDlg::ScPrintAreasDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Win
m_xEdRepeatCol->SetReferences(this, m_xColFrameFT.get());
m_xRbRepeatCol->SetReferences(this, m_xEdRepeatCol.get());
- ScTabViewShell* pScViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current() );
- ScDocShell* pScDocSh = dynamic_cast<ScDocShell*>(SfxObjectShell::Current());
- assert(pScDocSh && "Current DocumentShell not found :-(");
-
- pDoc = &pScDocSh->GetDocument();
-
- if ( pScViewSh )
- {
- pViewData = &pScViewSh->GetViewData();
- nCurTab = pViewData->GetTabNo();
- }
-
Impl_Reset();
//@BugID 54702 Enable/Disable only in base class
@@ -172,11 +160,11 @@ void ScPrintAreasDlg::SetReference( const ScRange& rRef, ScDocument& /* rDoc */
RefInputStart( m_pRefInputEdit );
OUString aStr;
- const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+ const formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
if (m_xEdPrintArea.get() == m_pRefInputEdit)
{
- aStr = rRef.Format(*pDoc, ScRefFlags::RANGE_ABS, eConv);
+ aStr = rRef.Format(rDoc, ScRefFlags::RANGE_ABS, eConv);
OUString aVal = m_xEdPrintArea->GetText();
Selection aSel = m_xEdPrintArea->GetSelection();
aSel.Normalize();
@@ -188,7 +176,7 @@ void ScPrintAreasDlg::SetReference( const ScRange& rRef, ScDocument& /* rDoc */
else
{
bool bRow = ( m_xEdRepeatRow.get() == m_pRefInputEdit );
- lcl_GetRepeatRangeString(rRef, *pDoc, bRow, aStr);
+ lcl_GetRepeatRangeString(rRef, rDoc, bRow, aStr);
m_pRefInputEdit->SetRefString( aStr );
}
Impl_ModifyHdl( *m_pRefInputEdit );
@@ -235,8 +223,8 @@ void ScPrintAreasDlg::SetActive()
void ScPrintAreasDlg::Impl_Reset()
{
OUString aStrRange;
- std::optional<ScRange> oRepeatColRange = pDoc->GetRepeatColRange( nCurTab );
- std::optional<ScRange> oRepeatRowRange = pDoc->GetRepeatRowRange( nCurTab );
+ std::optional<ScRange> oRepeatColRange = rDoc.GetRepeatColRange( nCurTab );
+ std::optional<ScRange> oRepeatRowRange = rDoc.GetRepeatRowRange( nCurTab );
m_xEdPrintArea->SetModifyHdl (LINK( this, ScPrintAreasDlg, Impl_ModifyHdl));
m_xEdRepeatRow->SetModifyHdl (LINK( this, ScPrintAreasDlg, Impl_ModifyHdl));
@@ -258,35 +246,35 @@ void ScPrintAreasDlg::Impl_Reset()
// printing area
aStrRange.clear();
- const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+ const formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
const sal_Unicode sep = ScCompiler::GetNativeSymbolChar(ocSep);
- sal_uInt16 nRangeCount = pDoc->GetPrintRangeCount( nCurTab );
+ sal_uInt16 nRangeCount = rDoc.GetPrintRangeCount( nCurTab );
for (sal_uInt16 i=0; i<nRangeCount; i++)
{
- const ScRange* pPrintRange = pDoc->GetPrintRange( nCurTab, i );
+ const ScRange* pPrintRange = rDoc.GetPrintRange( nCurTab, i );
if (pPrintRange)
{
if ( !aStrRange.isEmpty() )
aStrRange += OUStringChar(sep);
- aStrRange += pPrintRange->Format(*pDoc, ScRefFlags::RANGE_ABS, eConv);
+ aStrRange += pPrintRange->Format(rDoc, ScRefFlags::RANGE_ABS, eConv);
}
}
m_xEdPrintArea->SetText( aStrRange );
// repeat row
- lcl_GetRepeatRangeString(oRepeatRowRange, *pDoc, true, aStrRange);
+ lcl_GetRepeatRangeString(oRepeatRowRange, rDoc, true, aStrRange);
m_xEdRepeatRow->SetText( aStrRange );
// repeat column
- lcl_GetRepeatRangeString(oRepeatColRange, *pDoc, false, aStrRange);
+ lcl_GetRepeatRangeString(oRepeatColRange, rDoc, false, aStrRange);
m_xEdRepeatCol->SetText( aStrRange );
Impl_ModifyHdl( *m_xEdPrintArea );
Impl_ModifyHdl( *m_xEdRepeatRow );
Impl_ModifyHdl( *m_xEdRepeatCol );
- if( pDoc->IsPrintEntireSheet( nCurTab ) )
+ if( rDoc.IsPrintEntireSheet( nCurTab ) )
m_xLbPrintArea->set_active(SC_AREASDLG_PR_ENTIRE);
m_xEdPrintArea->SaveValue(); // save for FillItemSet():
@@ -302,9 +290,9 @@ bool ScPrintAreasDlg::Impl_GetItem( const formula::RefEdit* pEd, SfxStringItem&
if ( !aRangeStr.isEmpty() && m_xEdPrintArea.get() != pEd )
{
ScRange aRange;
- const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
- lcl_CheckRepeatString(aRangeStr, *pDoc, m_xEdRepeatRow.get() == pEd, &aRange);
- aRangeStr = aRange.Format(*pDoc, ScRefFlags::RANGE_ABS, eConv);
+ const formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
+ lcl_CheckRepeatString(aRangeStr, rDoc, m_xEdRepeatRow.get() == pEd, &aRange);
+ aRangeStr = aRange.Format(rDoc, ScRefFlags::RANGE_ABS, eConv);
}
rItem.SetValue( aRangeStr );
@@ -324,7 +312,7 @@ bool ScPrintAreasDlg::Impl_CheckRefStrings()
{
const ScRefFlags nValidAddr = ScRefFlags::VALID | ScRefFlags::ROW_VALID | ScRefFlags::COL_VALID;
const ScRefFlags nValidRange = nValidAddr | ScRefFlags::ROW2_VALID | ScRefFlags::COL2_VALID;
- const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+ const formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
const sal_Unicode sep = ScCompiler::GetNativeSymbolChar(ocSep);
ScAddress aAddr;
@@ -332,10 +320,10 @@ bool ScPrintAreasDlg::Impl_CheckRefStrings()
for ( sal_Int32 nIdx = 0; nIdx >= 0; )
{
const OUString aOne = aStrPrintArea.getToken(0, sep, nIdx);
- ScRefFlags nResult = aRange.Parse( aOne, *pDoc, eConv );
+ ScRefFlags nResult = aRange.Parse( aOne, rDoc, eConv );
if ((nResult & nValidRange) != nValidRange)
{
- ScRefFlags nAddrResult = aAddr.Parse( aOne, *pDoc, eConv );
+ ScRefFlags nAddrResult = aAddr.Parse( aOne, rDoc, eConv );
if ((nAddrResult & nValidAddr) != nValidAddr)
{
bPrintAreaOk = false;
@@ -347,11 +335,11 @@ bool ScPrintAreasDlg::Impl_CheckRefStrings()
bool bRepeatRowOk = aStrRepeatRow.isEmpty();
if ( !bRepeatRowOk )
- bRepeatRowOk = lcl_CheckRepeatString(aStrRepeatRow, *pDoc, true, nullptr);
+ bRepeatRowOk = lcl_CheckRepeatString(aStrRepeatRow, rDoc, true, nullptr);
bool bRepeatColOk = aStrRepeatCol.isEmpty();
if ( !bRepeatColOk )
- bRepeatColOk = lcl_CheckRepeatString(aStrRepeatCol, *pDoc, false, nullptr);
+ bRepeatColOk = lcl_CheckRepeatString(aStrRepeatCol, rDoc, false, nullptr);
// error messages
@@ -385,25 +373,24 @@ void ScPrintAreasDlg::Impl_FillLists()
OUString aStrRange;
bool bSimple = true;
- if ( pViewData )
- bSimple = (pViewData->GetSimpleArea( aRange ) == SC_MARK_SIMPLE);
+ bSimple = (rViewData.GetSimpleArea( aRange ) == SC_MARK_SIMPLE);
- formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+ formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
if ( bSimple )
- aStrRange = aRange.Format(*pDoc, ScRefFlags::RANGE_ABS, eConv);
+ aStrRange = aRange.Format(rDoc, ScRefFlags::RANGE_ABS, eConv);
else
{
ScRangeListRef aList( new ScRangeList );
- pViewData->GetMarkData().FillRangeListWithMarks( aList.get(), false );
- aList->Format(aStrRange, ScRefFlags::RANGE_ABS, *pDoc, eConv);
+ rViewData.GetMarkData().FillRangeListWithMarks( aList.get(), false );
+ aList->Format(aStrRange, ScRefFlags::RANGE_ABS, rDoc, eConv);
}
m_xLbPrintArea->set_id(SC_AREASDLG_PR_SELECT, aStrRange);
// Get ranges and remember in ListBoxen
- ScRangeName* pRangeNames = pDoc->GetRangeName();
+ ScRangeName* pRangeNames = rDoc.GetRangeName();
if (!pRangeNames || pRangeNames->empty())
// No range names to process.
@@ -418,23 +405,23 @@ void ScPrintAreasDlg::Impl_FillLists()
OUString aName = rEntry.second->GetName();
OUString aSymbol = rEntry.second->GetSymbol();
- if (aRange.ParseAny(aSymbol, *pDoc, eConv) & ScRefFlags::VALID)
+ if (aRange.ParseAny(aSymbol, rDoc, eConv) & ScRefFlags::VALID)
{
if (rEntry.second->HasType(ScRangeData::Type::PrintArea))
{
- aSymbol = aRange.Format(*pDoc, ScRefFlags::RANGE_ABS, eConv);
+ aSymbol = aRange.Format(rDoc, ScRefFlags::RANGE_ABS, eConv);
m_xLbPrintArea->append(aSymbol, aName);
}
if (rEntry.second->HasType(ScRangeData::Type::RowHeader))
{
- lcl_GetRepeatRangeString(aRange, *pDoc, true, aSymbol);
+ lcl_GetRepeatRangeString(aRange, rDoc, true, aSymbol);
m_xLbRepeatRow->append(aSymbol, aName);
}
if (rEntry.second->HasType(ScRangeData::Type::ColHeader))
{
- lcl_GetRepeatRangeString(aRange, *pDoc, false, aSymbol);
+ lcl_GetRepeatRangeString(aRange, rDoc, false, aSymbol);
m_xLbRepeatCol->append(aSymbol, aName);
}
}
@@ -459,7 +446,7 @@ IMPL_LINK(ScPrintAreasDlg, Impl_BtnHdl, weld::Button&, rBtn, void)
bool bEntireSheet = (m_xLbPrintArea->get_active() == SC_AREASDLG_PR_ENTIRE);
SfxBoolItem aEntireSheet( FN_PARAM_4, bEntireSheet );
- bool bDataChanged = bEntireSheet != pDoc->IsPrintEntireSheet( nCurTab );
+ bool bDataChanged = bEntireSheet != rDoc.IsPrintEntireSheet( nCurTab );
if( !bEntireSheet )
{
// if new list box selection is not "Entire sheet", get the edit field contents
diff --git a/sc/source/ui/pagedlg/tphfedit.cxx b/sc/source/ui/pagedlg/tphfedit.cxx
index 617f2208a9f9..5a98e65dd3fd 100644
--- a/sc/source/ui/pagedlg/tphfedit.cxx
+++ b/sc/source/ui/pagedlg/tphfedit.cxx
@@ -144,23 +144,23 @@ std::unique_ptr<EditTextObject> ScEditWindow::CreateTextObject()
void ScEditWindow::SetFont( const ScPatternAttr& rPattern )
{
- auto pSet = std::make_unique<SfxItemSet>( m_xEditEngine->GetEmptyItemSet() );
- rPattern.FillEditItemSet( pSet.get() );
+ SfxItemSet aSet( m_xEditEngine->GetEmptyItemSet() );
+ rPattern.FillEditItemSet( &aSet );
// FillEditItemSet adjusts font height to 1/100th mm,
// but for header/footer twips is needed, as in the PatternAttr:
- pSet->Put( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) );
- pSet->Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) );
- pSet->Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) );
+ aSet.Put( rPattern.GetItem(ATTR_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT) );
+ aSet.Put( rPattern.GetItem(ATTR_CJK_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CJK) );
+ aSet.Put( rPattern.GetItem(ATTR_CTL_FONT_HEIGHT).CloneSetWhich(EE_CHAR_FONTHEIGHT_CTL) );
// font color used, suitable header/footer background color set in ScEditWindow::SetDrawingArea
Color aFgColor = svtools::ColorConfig().GetColorValue(svtools::FONTCOLOR, false).nColor;
if (aFgColor == COL_AUTO) {
Color aBgColor = svtools::ColorConfig().GetColorValue(svtools::DOCCOLOR).nColor;
aFgColor = aBgColor.IsDark() ? COL_WHITE : COL_BLACK;
}
- pSet->Put(SvxColorItem(aFgColor, EE_CHAR_COLOR));
+ aSet.Put(SvxColorItem(aFgColor, EE_CHAR_COLOR));
if (mbRTL)
- pSet->Put( SvxAdjustItem( SvxAdjust::Right, EE_PARA_JUST ) );
- GetEditEngine()->SetDefaults( std::move(pSet) );
+ aSet.Put( SvxAdjustItem( SvxAdjust::Right, EE_PARA_JUST ) );
+ GetEditEngine()->SetDefaults( std::move(aSet) );
}
void ScEditWindow::SetText( const EditTextObject& rTextObject )