summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2025-04-29 17:29:26 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2025-04-29 21:02:16 +0200
commit0096200a4bdffd052aeb43b40e5d538d20e9c044 (patch)
tree8191b5a24029de5c2413b152ffb2356d6918b3a9 /sc/source/ui
parent8b0a1ff82e4916825a5401ceefeac69ceb657433 (diff)
ScQueryItem: no need to store a ScViewData pointer
it can be passed by reference, like the other dialogs do Change-Id: I79abd717835012af8bcf8d4e135bd7e79f36ac35 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184783 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/app/msgpool.cxx2
-rw-r--r--sc/source/ui/app/uiitems.cxx6
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.cxx4
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.hxx1
-rw-r--r--sc/source/ui/dbgui/filtdlg.cxx93
-rw-r--r--sc/source/ui/dbgui/foptmgr.cxx173
-rw-r--r--sc/source/ui/dbgui/pfiltdlg.cxx80
-rw-r--r--sc/source/ui/dbgui/sfiltdlg.cxx100
-rw-r--r--sc/source/ui/inc/filtdlg.hxx13
-rw-r--r--sc/source/ui/inc/foptmgr.hxx6
-rw-r--r--sc/source/ui/inc/pfiltdlg.hxx8
-rw-r--r--sc/source/ui/inc/uiitems.hxx3
-rw-r--r--sc/source/ui/view/gridwin2.cxx4
-rw-r--r--sc/source/ui/view/pivotsh.cxx4
-rw-r--r--sc/source/ui/view/tabvwshc.cxx10
15 files changed, 222 insertions, 285 deletions
diff --git a/sc/source/ui/app/msgpool.cxx b/sc/source/ui/app/msgpool.cxx
index 5dd25412bfce..a8ab8230d2a3 100644
--- a/sc/source/ui/app/msgpool.cxx
+++ b/sc/source/ui/app/msgpool.cxx
@@ -33,7 +33,7 @@ static ItemInfoPackage& getItemInfoPackageScMessage()
{ SCITEM_STRING, new SfxStringItem(SCITEM_STRING, OUString() ), 0, SFX_ITEMINFOFLAG_NONE },
{ SCITEM_SEARCHDATA, new SvxSearchItem(SCITEM_SEARCHDATA ), 0, SFX_ITEMINFOFLAG_NONE },
{ SCITEM_SORTDATA, new ScSortItem(SCITEM_SORTDATA, nullptr, nullptr), SID_SORT, SFX_ITEMINFOFLAG_NONE },
- { SCITEM_QUERYDATA, new ScQueryItem(SCITEM_QUERYDATA, nullptr, nullptr ), SID_QUERY, SFX_ITEMINFOFLAG_NONE },
+ { SCITEM_QUERYDATA, new ScQueryItem(SCITEM_QUERYDATA, nullptr ), SID_QUERY, SFX_ITEMINFOFLAG_NONE },
{ SCITEM_SUBTDATA, new ScSubTotalItem(SCITEM_SUBTDATA, nullptr, nullptr ), SID_SUBTOTALS, SFX_ITEMINFOFLAG_NONE },
{ SCITEM_CONSOLIDATEDATA, new ScConsolidateItem(SCITEM_CONSOLIDATEDATA, nullptr ), SID_CONSOLIDATE, SFX_ITEMINFOFLAG_NONE },
{ SCITEM_PIVOTDATA, new ScPivotItem(SCITEM_PIVOTDATA, nullptr, nullptr, false ), SID_PIVOT_TABLE, SFX_ITEMINFOFLAG_NONE },
diff --git a/sc/source/ui/app/uiitems.cxx b/sc/source/ui/app/uiitems.cxx
index cde899879ae2..03968d863c18 100644
--- a/sc/source/ui/app/uiitems.cxx
+++ b/sc/source/ui/app/uiitems.cxx
@@ -157,10 +157,8 @@ bool ScSortItem::QueryValue( css::uno::Any& rVal, sal_uInt8 /* nMemberUd */ ) co
* Data for the Filter dialog
*/
ScQueryItem::ScQueryItem( sal_uInt16 nWhichP,
- ScViewData* ptrViewData,
const ScQueryParam* pQueryData ) :
SfxPoolItem ( nWhichP ),
- pViewData ( ptrViewData ),
bIsAdvanced ( false )
{
if (pQueryData)
@@ -172,7 +170,6 @@ ScQueryItem::ScQueryItem( sal_uInt16 nWhichP,
ScQueryItem::ScQueryItem( const ScQueryItem& rItem ) :
SfxPoolItem ( rItem ),
mpQueryData(new ScQueryParam(*rItem.mpQueryData)),
- pViewData ( rItem.pViewData ),
aAdvSource ( rItem.aAdvSource ),
bIsAdvanced ( rItem.bIsAdvanced )
{
@@ -210,8 +207,7 @@ bool ScQueryItem::operator==( const SfxPoolItem& rItem ) const
const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(rItem);
- return ( (pViewData == rQueryItem.pViewData)
- && (bIsAdvanced == rQueryItem.bIsAdvanced)
+ return ( (bIsAdvanced == rQueryItem.bIsAdvanced)
&& (aAdvSource == rQueryItem.aAdvSource)
&& (*mpQueryData == *rQueryItem.mpQueryData) );
}
diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx
index 637c9ae58d78..8867a952be19 100644
--- a/sc/source/ui/attrdlg/scdlgfact.cxx
+++ b/sc/source/ui/attrdlg/scdlgfact.cxx
@@ -568,9 +568,9 @@ public:
}
VclPtr<AbstractScPivotFilterDlg> ScAbstractDialogFactory_Impl::CreateScPivotFilterDlg(weld::Window* pParent,
- const SfxItemSet& rArgSet, sal_uInt16 nSourceTab)
+ const SfxItemSet& rArgSet, ScViewData& rViewData, sal_uInt16 nSourceTab)
{
- return VclPtr<AbstractScPivotFilterDlg_Impl>::Create(pParent, rArgSet, nSourceTab);
+ return VclPtr<AbstractScPivotFilterDlg_Impl>::Create(pParent, rArgSet, rViewData, nSourceTab);
}
namespace
diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx
index adb4293df269..c5083fbbb632 100644
--- a/sc/source/ui/attrdlg/scdlgfact.hxx
+++ b/sc/source/ui/attrdlg/scdlgfact.hxx
@@ -104,6 +104,7 @@ public:
virtual VclPtr<AbstractScNamePasteDlg> CreateScNamePasteDlg(weld::Window * pParent, ScDocShell* pShell) override;
virtual VclPtr<AbstractScPivotFilterDlg> CreateScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArgSet,
+ ScViewData& rViewData,
sal_uInt16 nSourceTab) override;
virtual VclPtr<AbstractScDPFunctionDlg> CreateScDPFunctionDlg(weld::Widget* pParent,
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index c3c8f15b2a05..67d8850f8005 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -50,7 +50,7 @@
ScFilterDlg::EntryList::EntryList() :
mnHeaderPos(INVALID_HEADER_POS) {}
-ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
+ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent, ScViewData& rData,
const SfxItemSet& rArgSet)
: ScAnyRefDlgController(pB, pCW, pParent,
u"modules/scalc/ui/standardfilterdialog.ui"_ustr, u"StandardFilterDialog"_ustr)
@@ -63,9 +63,9 @@ ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pPa
, aStrBackgroundColor(ScResId(SCSTR_FILTER_BACKGROUND_COLOR_COND))
, nWhichQuery(rArgSet.GetPool()->GetWhichIDFromSlotID(SID_QUERY))
, theQueryData(static_cast<const ScQueryItem&>(rArgSet.Get(nWhichQuery)).GetQueryData())
- , pViewData(nullptr)
- , pDoc(nullptr)
- , nSrcTab(0)
+ , rViewData(rData)
+ , rDoc(rViewData.GetDocument())
+ , nSrcTab(rViewData.GetTabNo())
, bRefInputMode(false)
, m_xLbConnect1(m_xBuilder->weld_combo_box(u"connect1"_ustr))
, m_xLbField1(m_xBuilder->weld_combo_box(u"field1"_ustr))
@@ -116,7 +116,7 @@ ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pPa
assert(m_xLbCond1->find_text(aStrFontColor) != -1);
assert(m_xLbCond1->find_text(aStrBackgroundColor) != -1);
- Init( rArgSet );
+ Init();
// Hack: RefInput control
pTimer.reset( new Timer("ScFilterTimer") );
@@ -161,11 +161,8 @@ VirtualDevice* lcl_getColorImage(const Color &rColor)
}
}
-void ScFilterDlg::Init( const SfxItemSet& rArgSet )
+void ScFilterDlg::Init()
{
- const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(
- rArgSet.Get( nWhichQuery ));
-
m_xBtnClear->connect_clicked ( LINK( this, ScFilterDlg, BtnClearHdl ) );
m_xBtnOk->connect_clicked ( LINK( this, ScFilterDlg, EndDlgHdl ) );
m_xBtnCancel->connect_clicked ( LINK( this, ScFilterDlg, EndDlgHdl ) );
@@ -206,10 +203,6 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
m_xBtnRemove3->connect_clicked( LINK( this, ScFilterDlg, BtnRemoveHdl ) );
m_xBtnRemove4->connect_clicked( LINK( this, ScFilterDlg, BtnRemoveHdl ) );
- pViewData = rQueryItem.GetViewData();
- pDoc = pViewData ? &pViewData->GetDocument() : nullptr;
- nSrcTab = pViewData ? pViewData->GetTabNo() : static_cast<SCTAB>(0);
-
// for easier access:
maFieldLbArr.reserve(QUERY_ENTRY_COUNT);
maFieldLbArr.push_back(m_xLbField1.get());
@@ -244,7 +237,7 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
// Option initialization:
pOptionsMgr.reset( new ScFilterOptionsMgr(
- pViewData,
+ rViewData,
theQueryData,
m_xBtnCase.get(),
m_xBtnRegExp.get(),
@@ -302,7 +295,7 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
}
else if ( i == 0 )
{
- nFieldSelPos = pViewData ? GetFieldSelPos(pViewData->GetCurX()) : 0;
+ nFieldSelPos = GetFieldSelPos(rViewData.GetCurX());
rEntry.nField = nFieldSelPos ? (theQueryData.nCol1 +
static_cast<SCCOL>(nFieldSelPos) - 1) : static_cast<SCCOL>(0);
rEntry.bDoQuery=true;
@@ -400,14 +393,13 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
m_xEdVal3->set_entry_width_chars(10);
m_xEdVal4->set_entry_width_chars(10);
- if (pDoc != nullptr && pDoc->GetChangeTrack() != nullptr)
+ if (rDoc.GetChangeTrack() != nullptr)
m_xBtnCopyResult->set_sensitive(false);
}
void ScFilterDlg::Close()
{
- if (pViewData)
- pViewData->GetDocShell()->CancelAutoDBRange();
+ rViewData.GetDocShell()->CancelAutoDBRange();
DoClose( ScFilterDlgWrapper::GetChildWindowId() );
}
@@ -455,27 +447,24 @@ void ScFilterDlg::FillFieldLists()
m_xLbField3->append_text( aStrNone );
m_xLbField4->append_text( aStrNone );
- if ( pDoc )
+ OUString aFieldName;
+ SCTAB nTab = nSrcTab;
+ SCCOL nFirstCol = theQueryData.nCol1;
+ SCROW nFirstRow = theQueryData.nRow1;
+ SCCOL nMaxCol = theQueryData.nCol2;
+ SCCOL col = 0;
+
+ for ( col=nFirstCol; col<=nMaxCol; col++ )
{
- OUString aFieldName;
- SCTAB nTab = nSrcTab;
- SCCOL nFirstCol = theQueryData.nCol1;
- SCROW nFirstRow = theQueryData.nRow1;
- SCCOL nMaxCol = theQueryData.nCol2;
- SCCOL col = 0;
-
- for ( col=nFirstCol; col<=nMaxCol; col++ )
+ aFieldName = rDoc.GetString(col, nFirstRow, nTab);
+ if (!m_xBtnHeader->get_active() || aFieldName.isEmpty())
{
- aFieldName = pDoc->GetString(col, nFirstRow, nTab);
- if (!m_xBtnHeader->get_active() || aFieldName.isEmpty())
- {
- aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, u"%1", ScColToAlpha( col ));
- }
- m_xLbField1->append_text( aFieldName );
- m_xLbField2->append_text( aFieldName );
- m_xLbField3->append_text( aFieldName );
- m_xLbField4->append_text( aFieldName );
+ aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, u"%1", ScColToAlpha( col ));
}
+ m_xLbField1->append_text( aFieldName );
+ m_xLbField2->append_text( aFieldName );
+ m_xLbField3->append_text( aFieldName );
+ m_xLbField4->append_text( aFieldName );
}
m_xLbField4->thaw();
@@ -488,7 +477,7 @@ void ScFilterDlg::UpdateValueList( size_t nList )
{
bool bCaseSens = m_xBtnCase->get_active();
- if (pDoc && nList > 0 && nList <= QUERY_ENTRY_COUNT)
+ if (nList > 0 && nList <= QUERY_ENTRY_COUNT)
{
weld::ComboBox* pValList = maValueEdArr[nList-1];
const sal_Int32 nFieldSelPos = maFieldLbArr[nList-1]->get_active();
@@ -522,7 +511,7 @@ void ScFilterDlg::UpdateValueList( size_t nList )
return;
pList = r.first->second.get();
- pDoc->GetFilterEntriesArea(
+ rDoc.GetFilterEntriesArea(
nColumn, nFirstRow+1, nLastRow,
nTab, bCaseSens, pList->maFilterEntries);
maHasDates[nOffset+nList-1] = pList->maFilterEntries.mbHasDates;
@@ -532,7 +521,7 @@ void ScFilterDlg::UpdateValueList( size_t nList )
pList->mnHeaderPos = INVALID_HEADER_POS;
ScFilterEntries aHdrColl;
- pDoc->GetFilterEntriesArea(
+ rDoc.GetFilterEntriesArea(
nColumn, nFirstRow, nFirstRow, nTab, true, aHdrColl );
if (!aHdrColl.empty())
{
@@ -574,9 +563,6 @@ void ScFilterDlg::UpdateHdrInValueList( size_t nList )
{
//! GetText / SetText ??
- if (!pDoc)
- return;
-
if (nList == 0 || nList > QUERY_ENTRY_COUNT)
return;
@@ -630,7 +616,7 @@ void ScFilterDlg::ClearValueList( size_t nList )
void ScFilterDlg::UpdateColorList(size_t nList)
{
- if (!pDoc || nList <= 0 || nList > QUERY_ENTRY_COUNT)
+ if (nList <= 0 || nList > QUERY_ENTRY_COUNT)
return;
size_t nPos = nList - 1;
@@ -698,7 +684,7 @@ ScQueryItem* ScFilterDlg::GetOutputItem()
if ( m_xBtnCopyResult->get_active() )
{
ScRefFlags nResult = theCopyPos.Parse(
- m_xEdCopyArea->GetText(), *pDoc, pDoc->GetAddressConvention());
+ m_xEdCopyArea->GetText(), rDoc, rDoc.GetAddressConvention());
bCopyPosOk = (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
}
@@ -726,7 +712,7 @@ ScQueryItem* ScFilterDlg::GetOutputItem()
// only set the three - reset everything else
- pOutItem.reset( new ScQueryItem( nWhichQuery, pViewData, &theParam ) );
+ pOutItem.reset( new ScQueryItem( nWhichQuery, &theParam ) );
return pOutItem.get();
}
@@ -1301,11 +1287,11 @@ IMPL_LINK( ScFilterDlg, ValModifyHdl, weld::ComboBox&, rEd, void )
}
else
{
- rItem.maString = pDoc->GetSharedStringPool().intern(aStrVal);
+ rItem.maString = rDoc.GetSharedStringPool().intern(aStrVal);
rItem.mfVal = 0.0;
sal_uInt32 nIndex = 0;
- bool bNumber = pDoc->GetFormatTable()->IsNumberFormat(
+ bool bNumber = rDoc.GetFormatTable()->IsNumberFormat(
rItem.maString.getString(), nIndex, rItem.mfVal);
rItem.meType = bNumber ? ScQueryEntry::ByValue : ScQueryEntry::ByString;
}
@@ -1539,20 +1525,15 @@ void ScFilterDlg::SetValString( const OUString& rQueryStr, const ScQueryEntry::I
{
if (rQueryStr.isEmpty())
{
- pDoc = pViewData ? &pViewData->GetDocument() : nullptr;
if (rItem.meType == ScQueryEntry::ByValue)
{
- if (pDoc)
- rValStr = pDoc->GetFormatTable()->GetInputLineString(rItem.mfVal, 0);
+ rValStr = rDoc.GetFormatTable()->GetInputLineString(rItem.mfVal, 0);
}
else if (rItem.meType == ScQueryEntry::ByDate)
{
- if (pDoc)
- {
- SvNumberFormatter* pFormatter = pDoc->GetFormatTable();
- rValStr = pFormatter->GetInputLineString(rItem.mfVal,
- pFormatter->GetStandardFormat( SvNumFormatType::DATE));
- }
+ SvNumberFormatter* pFormatter = rDoc.GetFormatTable();
+ rValStr = pFormatter->GetInputLineString(rItem.mfVal,
+ pFormatter->GetStandardFormat( SvNumFormatType::DATE));
}
else
{
diff --git a/sc/source/ui/dbgui/foptmgr.cxx b/sc/source/ui/dbgui/foptmgr.cxx
index decaa622ba63..915c505bbd51 100644
--- a/sc/source/ui/dbgui/foptmgr.cxx
+++ b/sc/source/ui/dbgui/foptmgr.cxx
@@ -32,7 +32,7 @@
// ScFilterOptionsMgr (.ui's option helper)
ScFilterOptionsMgr::ScFilterOptionsMgr(
- ScViewData* ptrViewData,
+ ScViewData& rData,
const ScQueryParam& refQueryData,
weld::CheckButton* refBtnCase,
weld::CheckButton* refBtnRegExp,
@@ -47,8 +47,8 @@ ScFilterOptionsMgr::ScFilterOptionsMgr(
weld::Label* refFtDbArea,
const OUString& refStrUndefined )
- : pViewData ( ptrViewData ),
- pDoc ( ptrViewData ? &ptrViewData->GetDocument() : nullptr ),
+ : rViewData ( rData ),
+ rDoc ( rViewData.GetDocument() ),
pBtnCase ( refBtnCase ),
pBtnRegExp ( refBtnRegExp ),
pBtnHeader ( refBtnHeader ),
@@ -69,8 +69,6 @@ ScFilterOptionsMgr::ScFilterOptionsMgr(
void ScFilterOptionsMgr::Init()
{
//moggi:TODO
- OSL_ENSURE( pViewData && pDoc, "Init failed :-/" );
-
pLbCopyArea->connect_changed( LINK( this, ScFilterOptionsMgr, LbAreaSelHdl ) );
pEdCopyArea->SetModifyHdl ( LINK( this, ScFilterOptionsMgr, EdAreaModifyHdl ) );
pBtnCopyResult->connect_toggled( LINK( this, ScFilterOptionsMgr, BtnCopyResultHdl ) );
@@ -80,104 +78,99 @@ void ScFilterOptionsMgr::Init()
pBtnRegExp->set_active( rQueryData.eSearchType == utl::SearchParam::SearchType::Regexp );
pBtnUnique->set_active( !rQueryData.bDuplicate );
- if ( pViewData && pDoc )
+ OUString theAreaStr;
+ ScRange theCurArea ( ScAddress( rQueryData.nCol1,
+ rQueryData.nRow1,
+ rViewData.GetTabNo() ),
+ ScAddress( rQueryData.nCol2,
+ rQueryData.nRow2,
+ rViewData.GetTabNo() ) );
+ ScDBCollection* pDBColl = rDoc.GetDBCollection();
+ OUString theDbArea;
+ OUString theDbName(STR_DB_LOCAL_NONAME);
+ const formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
+
+ theAreaStr = theCurArea.Format(rDoc, ScRefFlags::RANGE_ABS_3D, eConv);
+
+ // fill the target area list
+
+ pLbCopyArea->clear();
+ pLbCopyArea->append_text(rStrUndefined);
+
+ ScAreaNameIterator aIter( rDoc );
+ OUString aName;
+ ScRange aRange;
+ while ( aIter.Next( aName, aRange ) )
{
- OUString theAreaStr;
- ScRange theCurArea ( ScAddress( rQueryData.nCol1,
- rQueryData.nRow1,
- pViewData->GetTabNo() ),
- ScAddress( rQueryData.nCol2,
- rQueryData.nRow2,
- pViewData->GetTabNo() ) );
- ScDBCollection* pDBColl = pDoc->GetDBCollection();
- OUString theDbArea;
- OUString theDbName(STR_DB_LOCAL_NONAME);
- const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
-
- theAreaStr = theCurArea.Format(*pDoc, ScRefFlags::RANGE_ABS_3D, eConv);
-
- // fill the target area list
-
- pLbCopyArea->clear();
- pLbCopyArea->append_text(rStrUndefined);
-
- ScAreaNameIterator aIter( *pDoc );
- OUString aName;
- ScRange aRange;
- while ( aIter.Next( aName, aRange ) )
- {
- OUString aRefStr(aRange.aStart.Format(ScRefFlags::ADDR_ABS_3D, pDoc, eConv));
- pLbCopyArea->append(aRefStr, aName);
- }
+ OUString aRefStr(aRange.aStart.Format(ScRefFlags::ADDR_ABS_3D, &rDoc, eConv));
+ pLbCopyArea->append(aRefStr, aName);
+ }
- pBtnDestPers->set_active(true); // always on when called
- pLbCopyArea->set_active( 0 );
- pEdCopyArea->SetText( OUString() );
+ pBtnDestPers->set_active(true); // always on when called
+ pLbCopyArea->set_active( 0 );
+ pEdCopyArea->SetText( OUString() );
- /*
- * Check whether the transferred area is a database area:
- */
+ /*
+ * Check whether the transferred area is a database area:
+ */
- theDbArea = theAreaStr;
+ theDbArea = theAreaStr;
- if ( pDBColl )
- {
- ScAddress& rStart = theCurArea.aStart;
- ScAddress& rEnd = theCurArea.aEnd;
- const ScDBData* pDBData = pDBColl->GetDBAtArea(
- rStart.Tab(), rStart.Col(), rStart.Row(), rEnd.Col(), rEnd.Row());
+ if ( pDBColl )
+ {
+ ScAddress& rStart = theCurArea.aStart;
+ ScAddress& rEnd = theCurArea.aEnd;
+ const ScDBData* pDBData = pDBColl->GetDBAtArea(
+ rStart.Tab(), rStart.Col(), rStart.Row(), rEnd.Col(), rEnd.Row());
- if ( pDBData )
- {
- pBtnHeader->set_active( pDBData->HasHeader() );
- theDbName = pDBData->GetName();
+ if ( pDBData )
+ {
+ pBtnHeader->set_active( pDBData->HasHeader() );
+ theDbName = pDBData->GetName();
- pBtnHeader->set_sensitive(theDbName == STR_DB_LOCAL_NONAME);
- }
+ pBtnHeader->set_sensitive(theDbName == STR_DB_LOCAL_NONAME);
}
+ }
- if ( theDbName != STR_DB_LOCAL_NONAME )
- {
- theDbArea += " (" + theDbName + ")";
+ if ( theDbName != STR_DB_LOCAL_NONAME )
+ {
+ theDbArea += " (" + theDbName + ")";
- pFtDbArea->set_label( theDbArea );
- }
- else
- {
- pFtDbAreaLabel->set_label( OUString() );
- pFtDbArea->set_label( OUString() );
- }
+ pFtDbArea->set_label( theDbArea );
+ }
+ else
+ {
+ pFtDbAreaLabel->set_label( OUString() );
+ pFtDbArea->set_label( OUString() );
+ }
- // position to copy to:
+ // position to copy to:
- if ( !rQueryData.bInplace )
- {
- OUString aString =
- ScAddress( rQueryData.nDestCol,
- rQueryData.nDestRow,
- rQueryData.nDestTab
- ).Format(ScRefFlags::ADDR_ABS_3D, pDoc, eConv);
-
- pBtnCopyResult->set_active(true);
- pEdCopyArea->SetText( aString );
- EdAreaModifyHdl( *pEdCopyArea );
- pLbCopyArea->set_sensitive(true);
- pEdCopyArea->GetWidget()->set_sensitive(true);
- pRbCopyArea->GetWidget()->set_sensitive(true);
- pBtnDestPers->set_sensitive(true);
- }
- else
- {
- pBtnCopyResult->set_active( false );
- pEdCopyArea->SetText( OUString() );
- pLbCopyArea->set_sensitive(false);
- pEdCopyArea->GetWidget()->set_sensitive(false);
- pRbCopyArea->GetWidget()->set_sensitive(false);
- pBtnDestPers->set_sensitive(false);
- }
+ if ( !rQueryData.bInplace )
+ {
+ OUString aString =
+ ScAddress( rQueryData.nDestCol,
+ rQueryData.nDestRow,
+ rQueryData.nDestTab
+ ).Format(ScRefFlags::ADDR_ABS_3D, &rDoc, eConv);
+
+ pBtnCopyResult->set_active(true);
+ pEdCopyArea->SetText( aString );
+ EdAreaModifyHdl( *pEdCopyArea );
+ pLbCopyArea->set_sensitive(true);
+ pEdCopyArea->GetWidget()->set_sensitive(true);
+ pRbCopyArea->GetWidget()->set_sensitive(true);
+ pBtnDestPers->set_sensitive(true);
}
else
+ {
+ pBtnCopyResult->set_active( false );
pEdCopyArea->SetText( OUString() );
+ pLbCopyArea->set_sensitive(false);
+ pEdCopyArea->GetWidget()->set_sensitive(false);
+ pRbCopyArea->GetWidget()->set_sensitive(false);
+ pBtnDestPers->set_sensitive(false);
+ }
}
bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
@@ -188,7 +181,7 @@ bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
if ( -1 != nColonPos )
aPosStr = aPosStr.copy( 0, nColonPos );
- ScRefFlags nResult = ScAddress().Parse( aPosStr, *pDoc, pDoc->GetAddressConvention() );
+ ScRefFlags nResult = ScAddress().Parse( aPosStr, rDoc, rDoc.GetAddressConvention() );
return (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
}
@@ -215,7 +208,7 @@ IMPL_LINK( ScFilterOptionsMgr, EdAreaModifyHdl, formula::RefEdit&, rEd, void )
return;
OUString theCurPosStr = rEd.GetText();
- ScRefFlags nResult = ScAddress().Parse( theCurPosStr, *pDoc, pDoc->GetAddressConvention() );
+ ScRefFlags nResult = ScAddress().Parse( theCurPosStr, rDoc, rDoc.GetAddressConvention() );
if ( (nResult & ScRefFlags::VALID) == ScRefFlags::VALID)
{
diff --git a/sc/source/ui/dbgui/pfiltdlg.cxx b/sc/source/ui/dbgui/pfiltdlg.cxx
index 47a2c729d262..2b94f895b297 100644
--- a/sc/source/ui/dbgui/pfiltdlg.cxx
+++ b/sc/source/ui/dbgui/pfiltdlg.cxx
@@ -36,7 +36,7 @@
#include <svl/sharedstringpool.hxx>
#include <osl/diagnose.h>
-ScPivotFilterDlg::ScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArgSet,
+ScPivotFilterDlg::ScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArgSet, ScViewData& rData,
SCTAB nSourceTab )
: GenericDialogController(pParent, u"modules/scalc/ui/pivotfilterdialog.ui"_ustr, u"PivotFilterDialog"_ustr)
, aStrNone(ScResId(SCSTR_NONE))
@@ -45,8 +45,8 @@ ScPivotFilterDlg::ScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArg
, aStrColumn(ScResId(SCSTR_COLUMN_LETTER))
, nWhichQuery(rArgSet.GetPool()->GetWhichIDFromSlotID(SID_QUERY))
, theQueryData(static_cast<const ScQueryItem&>(rArgSet.Get(nWhichQuery)).GetQueryData())
- , pViewData(nullptr)
- , pDoc(nullptr)
+ , rViewData(rData)
+ , rDoc(rViewData.GetDocument())
, nSrcTab(nSourceTab) // is not in QueryParam
, m_xLbField1(m_xBuilder->weld_combo_box(u"field1"_ustr))
, m_xLbCond1(m_xBuilder->weld_combo_box(u"cond1"_ustr))
@@ -64,18 +64,15 @@ ScPivotFilterDlg::ScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArg
, m_xBtnUnique(m_xBuilder->weld_check_button(u"unique"_ustr))
, m_xFtDbArea(m_xBuilder->weld_label(u"dbarea"_ustr))
{
- Init( rArgSet );
+ Init();
}
ScPivotFilterDlg::~ScPivotFilterDlg()
{
}
-void ScPivotFilterDlg::Init( const SfxItemSet& rArgSet )
+void ScPivotFilterDlg::Init()
{
- const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(
- rArgSet.Get( nWhichQuery ));
-
m_xBtnCase->connect_toggled( LINK( this, ScPivotFilterDlg, CheckBoxHdl ) );
m_xLbField1->connect_changed ( LINK( this, ScPivotFilterDlg, LbSelectHdl ) );
@@ -88,9 +85,6 @@ void ScPivotFilterDlg::Init( const SfxItemSet& rArgSet )
m_xBtnRegExp->set_active( theQueryData.eSearchType == utl::SearchParam::SearchType::Regexp );
m_xBtnUnique->set_active( !theQueryData.bDuplicate );
- pViewData = rQueryItem.GetViewData();
- pDoc = pViewData ? &pViewData->GetDocument() : nullptr;
-
// for easier access:
aFieldLbArr [0] = m_xLbField1.get();
aFieldLbArr [1] = m_xLbField2.get();
@@ -102,38 +96,31 @@ void ScPivotFilterDlg::Init( const SfxItemSet& rArgSet )
aCondLbArr [1] = m_xLbCond2.get();
aCondLbArr [2] = m_xLbCond3.get();
- if ( pViewData && pDoc )
- {
- ScRange theCurArea ( ScAddress( theQueryData.nCol1,
- theQueryData.nRow1,
- nSrcTab ),
- ScAddress( theQueryData.nCol2,
- theQueryData.nRow2,
- nSrcTab ) );
- ScDBCollection* pDBColl = pDoc->GetDBCollection();
- OUString theDbName = STR_DB_LOCAL_NONAME;
-
- // Check if the passed range is a database range
-
- if ( pDBColl )
- {
- ScAddress& rStart = theCurArea.aStart;
- ScAddress& rEnd = theCurArea.aEnd;
- ScDBData* pDBData = pDBColl->GetDBAtArea( rStart.Tab(),
- rStart.Col(), rStart.Row(),
- rEnd.Col(), rEnd.Row() );
- if ( pDBData )
- theDbName = pDBData->GetName();
- }
+ ScRange theCurArea ( ScAddress( theQueryData.nCol1,
+ theQueryData.nRow1,
+ nSrcTab ),
+ ScAddress( theQueryData.nCol2,
+ theQueryData.nRow2,
+ nSrcTab ) );
+ ScDBCollection* pDBColl = rDoc.GetDBCollection();
+ OUString theDbName = STR_DB_LOCAL_NONAME;
- OUString sLabel = " (" + theDbName + ")";
- m_xFtDbArea->set_label(sLabel);
- }
- else
+ // Check if the passed range is a database range
+
+ if ( pDBColl )
{
- m_xFtDbArea->set_label(OUString());
+ ScAddress& rStart = theCurArea.aStart;
+ ScAddress& rEnd = theCurArea.aEnd;
+ ScDBData* pDBData = pDBColl->GetDBAtArea( rStart.Tab(),
+ rStart.Col(), rStart.Row(),
+ rEnd.Col(), rEnd.Row() );
+ if ( pDBData )
+ theDbName = pDBData->GetName();
}
+ OUString sLabel = " (" + theDbName + ")";
+ m_xFtDbArea->set_label(sLabel);
+
// Read the field lists and select the entries:
FillFieldLists();
@@ -219,9 +206,6 @@ void ScPivotFilterDlg::FillFieldLists()
m_xLbField2->append_text(aStrNone);
m_xLbField3->append_text(aStrNone);
- if ( !pDoc )
- return;
-
OUString aFieldName;
SCTAB nTab = nSrcTab;
SCCOL nFirstCol = theQueryData.nCol1;
@@ -231,7 +215,7 @@ void ScPivotFilterDlg::FillFieldLists()
for ( col=nFirstCol; col<=nMaxCol; col++ )
{
- aFieldName = pDoc->GetString(col, nFirstRow, nTab);
+ aFieldName = rDoc.GetString(col, nFirstRow, nTab);
if ( aFieldName.isEmpty() )
{
aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, u"%1", ScColToAlpha( col ));
@@ -244,7 +228,7 @@ void ScPivotFilterDlg::FillFieldLists()
void ScPivotFilterDlg::UpdateValueList( sal_uInt16 nList )
{
- if ( !(pDoc && nList>0 && nList<=3) )
+ if ( !(nList>0 && nList<=3) )
return;
weld::ComboBox* pValList = aValueEdArr[nList-1];
@@ -255,7 +239,7 @@ void ScPivotFilterDlg::UpdateValueList( sal_uInt16 nList )
pValList->append_text(aStrNotEmpty);
pValList->append_text(aStrEmpty);
- if ( pDoc && nFieldSelPos )
+ if ( nFieldSelPos )
{
SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
if (!m_pEntryLists[nColumn])
@@ -268,7 +252,7 @@ void ScPivotFilterDlg::UpdateValueList( sal_uInt16 nList )
nFirstRow++;
bool bCaseSens = m_xBtnCase->get_active();
m_pEntryLists[nColumn].reset( new ScFilterEntries);
- pDoc->GetFilterEntriesArea(
+ rDoc.GetFilterEntriesArea(
nColumn, nFirstRow, nLastRow, nTab, bCaseSens, *m_pEntryLists[nColumn]);
}
@@ -307,7 +291,7 @@ const ScQueryItem& ScPivotFilterDlg::GetOutputItem()
sal_Int32 nConnect1 = m_xLbConnect1->get_active();
sal_Int32 nConnect2 = m_xLbConnect2->get_active();
- svl::SharedStringPool& rPool = pViewData->GetDocument().GetSharedStringPool();
+ svl::SharedStringPool& rPool = rViewData.GetDocument().GetSharedStringPool();
for ( SCSIZE i=0; i<3; i++ )
{
@@ -368,7 +352,7 @@ const ScQueryItem& ScPivotFilterDlg::GetOutputItem()
theParam.bCaseSens = m_xBtnCase->get_active();
theParam.eSearchType = m_xBtnRegExp->get_active() ? utl::SearchParam::SearchType::Regexp : utl::SearchParam::SearchType::Normal;
- pOutItem.reset( new ScQueryItem( nWhichQuery, pViewData, &theParam ) );
+ pOutItem.reset( new ScQueryItem( nWhichQuery, &theParam ) );
return *pOutItem;
}
diff --git a/sc/source/ui/dbgui/sfiltdlg.cxx b/sc/source/ui/dbgui/sfiltdlg.cxx
index e0527121ce89..f2b1225e38e8 100644
--- a/sc/source/ui/dbgui/sfiltdlg.cxx
+++ b/sc/source/ui/dbgui/sfiltdlg.cxx
@@ -51,15 +51,15 @@ namespace
ScSpecialFilterDlg::ScSpecialFilterDlg( SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
- const SfxItemSet& rArgSet )
+ ScViewData& rData, const SfxItemSet& rArgSet )
: ScAnyRefDlgController(pB, pCW, pParent, u"modules/scalc/ui/advancedfilterdialog.ui"_ustr, u"AdvancedFilterDialog"_ustr)
, aStrUndefined ( ScResId(SCSTR_UNDEFINED) )
, nWhichQuery ( rArgSet.GetPool()->GetWhichIDFromSlotID( SID_QUERY ) )
, theQueryData ( static_cast<const ScQueryItem&>(
rArgSet.Get( nWhichQuery )).GetQueryData() )
- , pViewData(nullptr)
- , pDoc(nullptr)
+ , rViewData(rData)
+ , rDoc(rViewData.GetDocument())
, bRefInputMode(false)
, m_pRefInputEdit(nullptr)
, m_xLbFilterArea(m_xBuilder->weld_combo_box(u"lbfilterarea"_ustr))
@@ -112,44 +112,38 @@ ScSpecialFilterDlg::~ScSpecialFilterDlg()
void ScSpecialFilterDlg::Init( const SfxItemSet& rArgSet )
{
- const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(
- rArgSet.Get( nWhichQuery ));
-
m_xBtnOk->connect_clicked( LINK( this, ScSpecialFilterDlg, EndDlgHdl ) );
m_xBtnCancel->connect_clicked( LINK( this, ScSpecialFilterDlg, EndDlgHdl ) );
m_xLbFilterArea->connect_changed( LINK( this, ScSpecialFilterDlg, FilterAreaSelHdl ) );
m_xEdFilterArea->SetModifyHdl ( LINK( this, ScSpecialFilterDlg, FilterAreaModHdl ) );
- pViewData = rQueryItem.GetViewData();
- pDoc = pViewData ? &pViewData->GetDocument() : nullptr;
-
m_xEdFilterArea->SetText( OUString() ); // may be overwritten below
- if ( pViewData && pDoc )
- {
- if(pDoc->GetChangeTrack()!=nullptr) m_xBtnCopyResult->set_sensitive(false);
+ if(rDoc.GetChangeTrack()!=nullptr) m_xBtnCopyResult->set_sensitive(false);
- ScRangeName* pRangeNames = pDoc->GetRangeName();
- m_xLbFilterArea->clear();
- m_xLbFilterArea->append_text(aStrUndefined);
+ ScRangeName* pRangeNames = rDoc.GetRangeName();
+ m_xLbFilterArea->clear();
+ m_xLbFilterArea->append_text(aStrUndefined);
- for (const auto& rEntry : *pRangeNames)
- {
- if (!rEntry.second->HasType(ScRangeData::Type::Criteria))
- continue;
+ for (const auto& rEntry : *pRangeNames)
+ {
+ if (!rEntry.second->HasType(ScRangeData::Type::Criteria))
+ continue;
- OUString aSymbol = rEntry.second->GetSymbol();
- m_xLbFilterArea->append(aSymbol, rEntry.second->GetName());
- }
+ OUString aSymbol = rEntry.second->GetSymbol();
+ m_xLbFilterArea->append(aSymbol, rEntry.second->GetName());
+ }
- // is there a stored source range?
+ // is there a stored source range?
- ScRange aAdvSource;
- if (rQueryItem.GetAdvancedQuerySource(aAdvSource))
- {
- OUString aRefStr(aAdvSource.Format(*pDoc, ScRefFlags::RANGE_ABS_3D, pDoc->GetAddressConvention()));
- m_xEdFilterArea->SetRefString( aRefStr );
- }
+ ScRange aAdvSource;
+ const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(
+ rArgSet.Get( nWhichQuery ));
+
+ if (rQueryItem.GetAdvancedQuerySource(aAdvSource))
+ {
+ OUString aRefStr(aAdvSource.Format(rDoc, ScRefFlags::RANGE_ABS_3D, rDoc.GetAddressConvention()));
+ m_xEdFilterArea->SetRefString( aRefStr );
}
m_xLbFilterArea->set_active( 0 );
@@ -157,7 +151,7 @@ void ScSpecialFilterDlg::Init( const SfxItemSet& rArgSet )
// let options be initialized:
pOptionsMgr.reset( new ScFilterOptionsMgr(
- pViewData,
+ rViewData,
theQueryData,
m_xBtnCase.get(),
m_xBtnRegExp.get(),
@@ -184,8 +178,7 @@ void ScSpecialFilterDlg::Init( const SfxItemSet& rArgSet )
void ScSpecialFilterDlg::Close()
{
- if (pViewData)
- pViewData->GetDocShell()->CancelAutoDBRange();
+ rViewData.GetDocShell()->CancelAutoDBRange();
DoClose( ScSpecialFilterDlgWrapper::GetChildWindowId() );
}
@@ -236,7 +229,7 @@ void ScSpecialFilterDlg::SetActive()
ScQueryItem* ScSpecialFilterDlg::GetOutputItem( const ScQueryParam& rParam,
const ScRange& rSource )
{
- pOutItem.reset(new ScQueryItem( nWhichQuery, pViewData, &rParam ));
+ pOutItem.reset(new ScQueryItem( nWhichQuery, &rParam ));
pOutItem->SetAdvancedQuerySource( &rSource );
return pOutItem.get();
}
@@ -250,9 +243,7 @@ bool ScSpecialFilterDlg::IsRefInputMode() const
IMPL_LINK(ScSpecialFilterDlg, EndDlgHdl, weld::Button&, rBtn, void)
{
- OSL_ENSURE( pDoc && pViewData, "Document or ViewData not found. :-/" );
-
- if (&rBtn == m_xBtnOk.get() && pDoc && pViewData)
+ if (&rBtn == m_xBtnOk.get())
{
OUString theCopyStr( m_xEdCopyArea->GetText() );
OUString theAreaStr( m_xEdFilterArea->GetText() );
@@ -261,7 +252,7 @@ IMPL_LINK(ScSpecialFilterDlg, EndDlgHdl, weld::Button&, rBtn, void)
bool bEditInputOk = true;
bool bQueryOk = false;
ScRange theFilterArea;
- const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+ const formula::FormulaGrammar::AddressConvention eConv = rDoc.GetAddressConvention();
if ( m_xBtnCopyResult->get_active() )
{
@@ -270,7 +261,7 @@ IMPL_LINK(ScSpecialFilterDlg, EndDlgHdl, weld::Button&, rBtn, void)
if ( -1 != nColonPos )
theCopyStr = theCopyStr.copy( 0, nColonPos );
- ScRefFlags nResult = theAdrCopy.Parse( theCopyStr, *pDoc, eConv );
+ ScRefFlags nResult = theAdrCopy.Parse( theCopyStr, rDoc, eConv );
if ( (nResult & ScRefFlags::VALID) == ScRefFlags::ZERO )
{
@@ -285,7 +276,7 @@ IMPL_LINK(ScSpecialFilterDlg, EndDlgHdl, weld::Button&, rBtn, void)
if ( bEditInputOk )
{
- ScRefFlags nResult = ScRange().Parse( theAreaStr, *pDoc, eConv );
+ ScRefFlags nResult = ScRange().Parse( theAreaStr, rDoc, eConv );
if ( (nResult & ScRefFlags::VALID) == ScRefFlags::ZERO )
{
@@ -302,7 +293,7 @@ IMPL_LINK(ScSpecialFilterDlg, EndDlgHdl, weld::Button&, rBtn, void)
* a ScQueryParam from the filter area:
*/
- ScRefFlags nResult = theFilterArea.Parse( theAreaStr, *pDoc, eConv );
+ ScRefFlags nResult = theFilterArea.Parse( theAreaStr, rDoc, eConv );
if ( (nResult & ScRefFlags::VALID) == ScRefFlags::VALID )
{
@@ -332,7 +323,7 @@ IMPL_LINK(ScSpecialFilterDlg, EndDlgHdl, weld::Button&, rBtn, void)
theOutParam.bDuplicate = !m_xBtnUnique->get_active();
theOutParam.bDestPers = m_xBtnDestPers->get_active();
- bQueryOk = pDoc->CreateQueryParam(ScRange(rStart,rEnd), theOutParam);
+ bQueryOk = rDoc.CreateQueryParam(ScRange(rStart,rEnd), theOutParam);
}
}
@@ -408,28 +399,23 @@ IMPL_LINK( ScSpecialFilterDlg, FilterAreaModHdl, formula::RefEdit&, rEd, void )
if (&rEd != m_xEdFilterArea.get())
return;
- if ( pDoc && pViewData )
- {
- OUString theCurAreaStr = rEd.GetText();
- ScRefFlags nResult = ScRange().Parse( theCurAreaStr, *pDoc );
+ OUString theCurAreaStr = rEd.GetText();
+ ScRefFlags nResult = ScRange().Parse( theCurAreaStr, rDoc );
- if ( (nResult & ScRefFlags::VALID) == ScRefFlags::VALID )
+ if ( (nResult & ScRefFlags::VALID) == ScRefFlags::VALID )
+ {
+ const sal_Int32 nCount = m_xLbFilterArea->get_count();
+ for (sal_Int32 i = 1; i < nCount; ++i)
{
- const sal_Int32 nCount = m_xLbFilterArea->get_count();
- for (sal_Int32 i = 1; i < nCount; ++i)
+ OUString aStr = m_xLbFilterArea->get_id(i);
+ if (theCurAreaStr == aStr)
{
- OUString aStr = m_xLbFilterArea->get_id(i);
- if (theCurAreaStr == aStr)
- {
- m_xLbFilterArea->set_active( i );
- return;
- }
+ m_xLbFilterArea->set_active( i );
+ return;
}
- m_xLbFilterArea->set_active( 0 );
}
- }
- else
m_xLbFilterArea->set_active( 0 );
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/filtdlg.hxx b/sc/source/ui/inc/filtdlg.hxx
index a99bc93edf8c..efd1e0f20244 100644
--- a/sc/source/ui/inc/filtdlg.hxx
+++ b/sc/source/ui/inc/filtdlg.hxx
@@ -50,6 +50,7 @@ class ScFilterDlg : public ScAnyRefDlgController
typedef std::map<SCCOL, std::unique_ptr<EntryList>> EntryListsMap;
public:
ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
+ ScViewData& rData,
const SfxItemSet& rArgSet);
virtual ~ScFilterDlg() override;
@@ -78,8 +79,8 @@ private:
const sal_uInt16 nWhichQuery;
ScQueryParam theQueryData;
std::unique_ptr<ScQueryItem> pOutItem;
- ScViewData* pViewData;
- ScDocument* pDoc;
+ ScViewData& rViewData;
+ ScDocument& rDoc;
SCTAB nSrcTab;
std::vector<weld::ComboBox*> maValueEdArr;
@@ -147,7 +148,7 @@ private:
std::unique_ptr<weld::Label> m_xFtDbArea;
private:
- void Init ( const SfxItemSet& rArgSet );
+ void Init ();
void FillFieldLists ();
void UpdateValueList ( size_t nList );
void UpdateHdrInValueList( size_t nList );
@@ -177,7 +178,7 @@ class ScSpecialFilterDlg : public ScAnyRefDlgController
{
public:
ScSpecialFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
- const SfxItemSet& rArgSet);
+ ScViewData& rData, const SfxItemSet& rArgSet);
virtual ~ScSpecialFilterDlg() override;
virtual void SetReference( const ScRange& rRef, ScDocument& rDoc ) override;
@@ -195,8 +196,8 @@ private:
const sal_uInt16 nWhichQuery;
const ScQueryParam theQueryData;
std::unique_ptr<ScQueryItem> pOutItem;
- ScViewData* pViewData;
- ScDocument* pDoc;
+ ScViewData& rViewData;
+ ScDocument& rDoc;
bool bRefInputMode;
diff --git a/sc/source/ui/inc/foptmgr.hxx b/sc/source/ui/inc/foptmgr.hxx
index 580563183a2f..eadd4696a009 100644
--- a/sc/source/ui/inc/foptmgr.hxx
+++ b/sc/source/ui/inc/foptmgr.hxx
@@ -33,7 +33,7 @@ class ScViewData;
class ScFilterOptionsMgr
{
public:
- ScFilterOptionsMgr(ScViewData* ptrViewData,
+ ScFilterOptionsMgr(ScViewData& rViewData,
const ScQueryParam& refQueryData,
weld::CheckButton* refBtnCase,
weld::CheckButton* refBtnRegExp,
@@ -50,8 +50,8 @@ public:
bool VerifyPosStr ( const OUString& rPosStr ) const;
private:
- ScViewData* pViewData;
- ScDocument* pDoc;
+ ScViewData& rViewData;
+ ScDocument& rDoc;
weld::CheckButton* pBtnCase;
weld::CheckButton* pBtnRegExp;
diff --git a/sc/source/ui/inc/pfiltdlg.hxx b/sc/source/ui/inc/pfiltdlg.hxx
index 892d8655255f..adf80455f3fe 100644
--- a/sc/source/ui/inc/pfiltdlg.hxx
+++ b/sc/source/ui/inc/pfiltdlg.hxx
@@ -34,7 +34,7 @@ struct ScFilterEntries;
class ScPivotFilterDlg : public weld::GenericDialogController
{
public:
- ScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArgSet, SCTAB nSourceTab);
+ ScPivotFilterDlg(weld::Window* pParent, const SfxItemSet& rArgSet, ScViewData& rData, SCTAB nSourceTab);
virtual ~ScPivotFilterDlg() override;
const ScQueryItem& GetOutputItem();
@@ -48,8 +48,8 @@ private:
const sal_uInt16 nWhichQuery;
const ScQueryParam theQueryData;
std::unique_ptr<ScQueryItem> pOutItem;
- ScViewData* pViewData;
- ScDocument* pDoc;
+ ScViewData& rViewData;
+ ScDocument& rDoc;
SCTAB nSrcTab;
std::unique_ptr<weld::ComboBox> m_xLbField1;
@@ -78,7 +78,7 @@ private:
std::array<std::unique_ptr<ScFilterEntries>, MAXCOLCOUNT> m_pEntryLists;
private:
- void Init ( const SfxItemSet& rArgSet );
+ void Init ();
void FillFieldLists ();
void UpdateValueList ( sal_uInt16 nList );
void ClearValueList ( sal_uInt16 nList );
diff --git a/sc/source/ui/inc/uiitems.hxx b/sc/source/ui/inc/uiitems.hxx
index 5ea756dd409b..c14b2be92c61 100644
--- a/sc/source/ui/inc/uiitems.hxx
+++ b/sc/source/ui/inc/uiitems.hxx
@@ -147,7 +147,6 @@ class SC_DLLPUBLIC ScQueryItem : public SfxPoolItem
public:
DECLARE_ITEM_TYPE_FUNCTION(ScQueryItem)
ScQueryItem( sal_uInt16 nWhich,
- ScViewData* ptrViewData,
const ScQueryParam* pQueryData );
ScQueryItem( const ScQueryItem& rItem );
virtual ~ScQueryItem() override;
@@ -155,7 +154,6 @@ public:
virtual bool operator==( const SfxPoolItem& ) const override;
virtual ScQueryItem* Clone( SfxItemPool *pPool = nullptr ) const override;
- ScViewData* GetViewData () const { return pViewData; }
const ScQueryParam& GetQueryData() const;
bool GetAdvancedQuerySource(ScRange& rSource) const;
@@ -163,7 +161,6 @@ public:
private:
std::unique_ptr<ScQueryParam> mpQueryData;
- ScViewData* pViewData;
ScRange aAdvSource;
bool bIsAdvanced;
};
diff --git a/sc/source/ui/view/gridwin2.cxx b/sc/source/ui/view/gridwin2.cxx
index 02df37caac6f..21046171acbd 100644
--- a/sc/source/ui/view/gridwin2.cxx
+++ b/sc/source/ui/view/gridwin2.cxx
@@ -207,13 +207,13 @@ void ScGridWindow::DoPushPivotButton( SCCOL nCol, SCROW nRow, const MouseEvent&
}
SfxItemSet aArgSet(SfxItemSet::makeFixedSfxItemSet<SCITEM_QUERYDATA, SCITEM_QUERYDATA>(mrViewData.GetViewShell()->GetPool()));
- aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA, &mrViewData, &aQueryParam ) );
+ aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA, &aQueryParam ) );
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
ScopedVclPtr<AbstractScPivotFilterDlg> pDlg(
pFact->CreateScPivotFilterDlg(
- mrViewData.GetViewShell()->GetFrameWeld(), aArgSet, nSrcTab));
+ mrViewData.GetViewShell()->GetFrameWeld(), aArgSet, mrViewData, nSrcTab));
if ( pDlg->Execute() == RET_OK )
{
ScSheetSourceDesc aNewDesc(&rDoc);
diff --git a/sc/source/ui/view/pivotsh.cxx b/sc/source/ui/view/pivotsh.cxx
index 40c6425a4025..84e2c3e2a103 100644
--- a/sc/source/ui/view/pivotsh.cxx
+++ b/sc/source/ui/view/pivotsh.cxx
@@ -95,12 +95,12 @@ void ScPivotShell::Execute( const SfxRequest& rReq )
ScViewData& rViewData = pViewShell->GetViewData();
SfxItemSetFixed<SCITEM_QUERYDATA, SCITEM_QUERYDATA> aArgSet( pViewShell->GetPool() );
- aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA, &rViewData, &aQueryParam ) );
+ aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA, &aQueryParam ) );
ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
ScopedVclPtr<AbstractScPivotFilterDlg> pDlg(pFact->CreateScPivotFilterDlg(
- pViewShell->GetFrameWeld(), aArgSet, nSrcTab));
+ pViewShell->GetFrameWeld(), aArgSet, rViewData, nSrcTab));
if( pDlg->Execute() == RET_OK )
{
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index e95fa932178d..2ce3f1826a83 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -345,14 +345,12 @@ std::shared_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont
pDBData->GetArea(aArea);
MarkRange(aArea, false);
- aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA,
- &GetViewData(),
- &aQueryParam ) );
+ aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA, &aQueryParam ) );
// mark current sheet (due to RefInput in dialog)
GetViewData().SetRefTabNo( GetViewData().GetTabNo() );
- xResult = std::make_shared<ScFilterDlg>(pB, pCW, pParent, aArgSet);
+ xResult = std::make_shared<ScFilterDlg>(pB, pCW, pParent, GetViewData(), aArgSet);
break;
}
case SID_SPECIAL_FILTER:
@@ -369,7 +367,7 @@ std::shared_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont
pDBData->GetArea(aArea);
MarkRange(aArea, false);
- ScQueryItem aItem( SCITEM_QUERYDATA, &GetViewData(), &aQueryParam );
+ ScQueryItem aItem( SCITEM_QUERYDATA, &aQueryParam );
ScRange aAdvSource;
if (pDBData->GetAdvancedQuerySource(aAdvSource))
aItem.SetAdvancedQuerySource( &aAdvSource );
@@ -379,7 +377,7 @@ std::shared_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont
// mark current sheet (due to RefInput in dialog)
GetViewData().SetRefTabNo( GetViewData().GetTabNo() );
- xResult = std::make_shared<ScSpecialFilterDlg>(pB, pCW, pParent, aArgSet);
+ xResult = std::make_shared<ScSpecialFilterDlg>(pB, pCW, pParent, GetViewData(), aArgSet);
break;
}
case SID_OPENDLG_OPTSOLVER: