Kaydet (Commit) 5dd60299 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Dump formula group listener info.

Change-Id: Idbad1451393c42c272465907312c64c65eba9525
üst db93b490
......@@ -11,6 +11,7 @@
#define INCLUDED_SC_GROUPAREALISTENER_HXX
#include <address.hxx>
#include <calcmacros.hxx>
#include <svl/listener.hxx>
......@@ -51,6 +52,11 @@ public:
*/
void collectFormulaCells( SCTAB nTab, SCCOL nCol, SCROW nRow1, SCROW nRow2, std::vector<ScFormulaCell*>& rCells ) const;
#if DEBUG_AREA_BROADCASTER
ScAddress getTopCellPos() const;
SCROW getGroupLength() const;
#endif
private:
void notifyCellChange( const SfxHint& rHint, const ScAddress& rPos );
void notifyBulkChange( const BulkDataHint& rHint );
......
......@@ -31,6 +31,7 @@
#if DEBUG_AREA_BROADCASTER
#include <formulacell.hxx>
#include <grouparealistener.hxx>
#endif
// Number of slots per dimension
......@@ -620,20 +621,35 @@ void ScBroadcastAreaSlot::Dump() const
{
const ScBroadcastAreaEntry& rEntry = *it;
const ScBroadcastArea* pArea = rEntry.mpArea;
cout << " * range: " << rtl::OUStringToOString(pArea->GetRange().Format(SCA_VALID|SCA_TAB_3D, pDoc), RTL_TEXTENCODING_UTF8).getStr() << endl;
const SvtBroadcaster& rBC = pArea->GetBroadcaster();
const SvtBroadcaster::ListenersType& rListeners = rBC.GetAllListeners();
size_t n = rListeners.size();
cout << " * listener count: " << n << endl;
cout << " * range: " << rtl::OUStringToOString(pArea->GetRange().Format(SCA_VALID|SCA_TAB_3D, pDoc), RTL_TEXTENCODING_UTF8).getStr()
<< ", listener count: " << n << endl;
for (size_t i = 0; i < n; ++i)
{
const ScFormulaCell* pFC = dynamic_cast<const ScFormulaCell*>(rListeners[i]);
if (!pFC)
if (pFC)
{
cout << " * listener: formula cell: "
<< rtl::OUStringToOString(pFC->aPos.Format(SCA_VALID|SCA_TAB_3D, pDoc), RTL_TEXTENCODING_UTF8).getStr()
<< endl;
continue;
}
const sc::FormulaGroupAreaListener* pFGListener = dynamic_cast<const sc::FormulaGroupAreaListener*>(rListeners[i]);
if (pFGListener)
{
cout << " * listener: formula group: (pos: "
<< rtl::OUStringToOString(pFGListener->getTopCellPos().Format(SCA_VALID | SCA_TAB_3D, pDoc), RTL_TEXTENCODING_UTF8).getStr()
<< ", length: " << pFGListener->getGroupLength()
<< ")" << endl;
continue;
}
cout << " * listener: formula cell: "
<< rtl::OUStringToOString(pFC->aPos.Format(SCA_VALID|SCA_TAB_3D, pDoc), RTL_TEXTENCODING_UTF8).getStr()
<< endl;
cout << " * listener: unknown" << endl;
}
}
}
......
......@@ -219,6 +219,19 @@ void FormulaGroupAreaListener::collectFormulaCells(
}
}
#if DEBUG_AREA_BROADCASTER
ScAddress FormulaGroupAreaListener::getTopCellPos() const
{
const ScFormulaCell& rFC = **mppTopCell;
return rFC.aPos;
}
SCROW FormulaGroupAreaListener::getGroupLength() const
{
return mnGroupLen;
}
#endif
void FormulaGroupAreaListener::notifyCellChange( const SfxHint& rHint, const ScAddress& rPos )
{
// Determine which formula cells within the group need to be notified of this change.
......
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