ooo-build r14018 - in trunk: . patches/dev300



Author: kyoshida
Date: Mon Sep 22 18:54:10 2008
New Revision: 14018
URL: http://svn.gnome.org/viewvc/ooo-build?rev=14018&view=rev

Log:
2008-09-22  Kohei Yoshida  <kyoshida novell com>


	* patches/dev300/chart-skip-hidden-cells-chart2.diff: fixed a bug where
	no data points were displayed when making a chart from Writer, Impress
	or Draw (n#427545).

	* patches/dev300/apply:	
	* patches/dev300/chart-skip-hidden-cells-sc.diff:	
	* patches/dev300/chart-refresh-mark-range-dirty.diff: removed the patch
	as it's been combined with the first patch.


Removed:
   trunk/patches/dev300/chart-refresh-mark-range-dirty.diff
Modified:
   trunk/ChangeLog
   trunk/patches/dev300/apply
   trunk/patches/dev300/chart-skip-hidden-cells-chart2.diff
   trunk/patches/dev300/chart-skip-hidden-cells-sc.diff

Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply	(original)
+++ trunk/patches/dev300/apply	Mon Sep 22 18:54:10 2008
@@ -761,8 +761,8 @@
 sc-goalseek-higher-precision.diff, kohei
 
 # skip data in hidden cells when rendering charts.
-chart-skip-hidden-cells-chart2.diff, n#404190, i#81209, kohei
-chart-skip-hidden-cells-sc.diff, n#404190, i#81209, kohei
+chart-skip-hidden-cells-chart2.diff, n#404190, i#81209, n#427545, kohei
+chart-skip-hidden-cells-sc.diff, n#404190, i#81209, n#425617, kohei
 
 # When filtering by date, strip off the time element from each value.
 calc-filter-by-date-strip-time.diff, n#414303, kohei
@@ -1760,9 +1760,6 @@
 calc-external-defined-names-offapi.diff, i#3740, i#4385, n#355685, kohei
 calc-external-defined-names-officecfg.diff, i#3740, i#4385, n#355685, kohei
 
-# mark data range dirty to force full re-calculation.
-chart-refresh-mark-range-dirty.diff, n#425617, kohei
-
 [ CalcSolver ]
 SectionOwner => kohei
 

Modified: trunk/patches/dev300/chart-skip-hidden-cells-chart2.diff
==============================================================================
--- trunk/patches/dev300/chart-skip-hidden-cells-chart2.diff	(original)
+++ trunk/patches/dev300/chart-skip-hidden-cells-chart2.diff	Mon Sep 22 18:54:10 2008
@@ -86,11 +86,33 @@
          m_bDirty = false;
      }
      return m_aExplicitCategories;
+diff --git chart2/source/tools/UncachedDataSequence.cxx chart2/source/tools/UncachedDataSequence.cxx
+index bcf99f7..1fa3b00 100644
+--- chart2/source/tools/UncachedDataSequence.cxx
++++ chart2/source/tools/UncachedDataSequence.cxx
+@@ -79,7 +79,7 @@ UncachedDataSequence::UncachedDataSequence(
+     const OUString & rRangeRepresentation )
+         : OPropertyContainer( GetBroadcastHelper()),
+           UncachedDataSequence_Base( GetMutex()),
+-          m_bIsHidden( true ),
++          m_bIsHidden( false ),
+           m_xDataProvider( xIntDataProv ),
+           m_aSourceRepresentation( rRangeRepresentation ),
+           m_xModifyEventForwarder( new ModifyListenerHelper::ModifyEventForwarder())
+@@ -93,7 +93,7 @@ UncachedDataSequence::UncachedDataSequence(
+     const OUString & rRole )
+         : OPropertyContainer( GetBroadcastHelper()),
+           UncachedDataSequence_Base( GetMutex()),
+-          m_bIsHidden( true ),
++          m_bIsHidden( false ),
+           m_xDataProvider( xIntDataProv ),
+           m_aSourceRepresentation( rRangeRepresentation ),
+           m_xModifyEventForwarder( new ModifyListenerHelper::ModifyEventForwarder())
 diff --git chart2/source/view/main/VDataSeries.cxx chart2/source/view/main/VDataSeries.cxx
-index 7fdddce..608f548 100644
+index fdee8d7..83bad66 100644
 --- chart2/source/view/main/VDataSeries.cxx
 +++ chart2/source/view/main/VDataSeries.cxx
-@@ -108,7 +108,7 @@ namespace
+@@ -110,7 +110,7 @@ namespace
  
  void VDataSequence::init( const uno::Reference< data::XDataSequence >& xModel )
  {

Modified: trunk/patches/dev300/chart-skip-hidden-cells-sc.diff
==============================================================================
--- trunk/patches/dev300/chart-skip-hidden-cells-sc.diff	(original)
+++ trunk/patches/dev300/chart-skip-hidden-cells-sc.diff	Mon Sep 22 18:54:10 2008
@@ -1,5 +1,5 @@
 diff --git sc/inc/chart2uno.hxx sc/inc/chart2uno.hxx
-index 2d98a5f..4f53e17 100644
+index e9d9d47..9126e8e 100644
 --- sc/inc/chart2uno.hxx
 +++ sc/inc/chart2uno.hxx
 @@ -59,6 +59,7 @@
@@ -10,15 +10,16 @@
  
  class ScDocument;
  
-@@ -382,6 +383,7 @@ public:
- // 	static ScChart2DataSequence* getImplementation( const com::sun::star::uno::Reference<
+@@ -380,5 +381,8 @@ public:
  // 									com::sun::star::uno::XInterface> xObj );
  
 +private:
++    void markRangeDirty(const ScRange& rRange) const;
++
      // Implementation --------------------------------------------------------
  
      ScRangeListRef GetRangeList() { return m_xRanges; }
-@@ -389,8 +391,26 @@ public:
+@@ -387,8 +391,26 @@ private:
      void    RefChanged();
      DECL_LINK( ValueListenerHdl, SfxHint* );
  
@@ -46,10 +47,10 @@
      ::com::sun::star::chart2::data::DataSequenceRole  m_aRole;
      sal_Bool                    m_bHidden;
 diff --git sc/inc/unonames.hxx sc/inc/unonames.hxx
-index 4193574..fcfd0fb 100644
+index ad84ca3..18c858b 100644
 --- sc/inc/unonames.hxx
 +++ sc/inc/unonames.hxx
-@@ -606,6 +606,7 @@
+@@ -610,6 +610,7 @@
  // Chart2
  #define SC_UNONAME_ISHIDDEN         "IsHidden"
  #define SC_UNONAME_ROLE             "Role"
@@ -58,10 +59,10 @@
  // Solver
  #define SC_UNONAME_TIMEOUT          "Timeout"
 diff --git sc/source/ui/unoobj/chart2uno.cxx sc/source/ui/unoobj/chart2uno.cxx
-index 676ce91..926ec0b 100644
+index 28223a8..e2be940 100644
 --- sc/source/ui/unoobj/chart2uno.cxx
 +++ sc/source/ui/unoobj/chart2uno.cxx
-@@ -1287,6 +1287,11 @@ void SAL_CALL ScChart2LabeledDataSequence::removeModifyListener( const uno::Refe
+@@ -1319,6 +1319,11 @@ void SAL_CALL ScChart2LabeledDataSequence::removeModifyListener( const uno::Refe
  
  // DataSequence ==============================================================
  
@@ -73,7 +74,7 @@
  ScChart2DataSequence::ScChart2DataSequence( ScDocument* pDoc,
          const uno::Reference < chart2::data::XDataProvider >& xDP,
          const ScRangeListRef& rRangeList)
-@@ -1342,6 +1347,73 @@ void ScChart2DataSequence::RefChanged()
+@@ -1374,6 +1379,73 @@ void ScChart2DataSequence::RefChanged()
      }
  }
  
@@ -147,7 +148,7 @@
  
  void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
  {
-@@ -1356,8 +1428,10 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
+@@ -1388,8 +1460,10 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
          {
              // delayed broadcast as in ScCellRangesBase
  
@@ -159,7 +160,7 @@
                  lang::EventObject aEvent;
                  aEvent.Source.set((cppu::OWeakObject*)this);
  
-@@ -1367,7 +1441,7 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
+@@ -1399,7 +1473,7 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
                          m_pDocument->AddUnoListenerCall( *m_aValueListeners[n], aEvent );
                  }
  
@@ -168,7 +169,7 @@
              }
          }
      }
-@@ -1433,72 +1507,19 @@ uno::Sequence< uno::Any> SAL_CALL ScChart2DataSequence::getData()
+@@ -1465,72 +1539,19 @@ uno::Sequence< uno::Any> SAL_CALL ScChart2DataSequence::getData()
      if ( !m_pDocument)
          throw uno::RuntimeException();
  
@@ -251,7 +252,7 @@
      return aSeq;
  }
  
-@@ -1511,67 +1532,18 @@ uno::Sequence< double > SAL_CALL ScChart2DataSequence::getNumericalData()
+@@ -1543,67 +1564,18 @@ uno::Sequence< double > SAL_CALL ScChart2DataSequence::getNumericalData()
      if ( !m_pDocument)
          throw uno::RuntimeException();
  
@@ -327,7 +328,7 @@
      return aSeq;
  }
  
-@@ -1583,49 +1555,15 @@ uno::Sequence< rtl::OUString > SAL_CALL ScChart2DataSequence::getTextualData(  )
+@@ -1615,49 +1587,15 @@ uno::Sequence< rtl::OUString > SAL_CALL ScChart2DataSequence::getTextualData(  )
      if ( !m_pDocument)
          throw uno::RuntimeException();
  
@@ -385,7 +386,20 @@
      return aSeq;
  }
  
-@@ -1926,6 +1864,13 @@ uno::Any SAL_CALL ScChart2DataSequence::getPropertyValue(
+@@ -1886,7 +1824,11 @@ void SAL_CALL ScChart2DataSequence::addModifyListener( const uno::Reference< uti
+         {
+             ULONG nCount = m_xRanges->Count();
+             for (ULONG i=0; i<nCount; i++)
+-                m_pDocument->StartListeningArea( *m_xRanges->GetObject(i), m_pValueListener );
++            {
++                ScRange aRange = *m_xRanges->GetObject(i);    
++                m_pDocument->StartListeningArea( aRange, m_pValueListener );
++                markRangeDirty(aRange);
++            }
+         }
+ 
+ 		acquire();	// don't lose this object (one ref for all listeners)
+@@ -1973,6 +1915,13 @@ uno::Any SAL_CALL ScChart2DataSequence::getPropertyValue(
          aRet <<= m_aRole;
      else if ( rPropertyName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( SC_UNONAME_ISHIDDEN)))
          aRet <<= m_bHidden;
@@ -399,3 +413,41 @@
      else
          throw beans::UnknownPropertyException();
      // TODO: support optional properties
+@@ -2027,6 +1976,37 @@ void SAL_CALL ScChart2DataSequence::removeVetoableChangeListener(
+     OSL_ENSURE( false, "Not yet implemented" );
+ }
+ 
++void ScChart2DataSequence::markRangeDirty(const ScRange& rRange) const
++{
++    if (!m_pDocument)
++        return;
++
++    const ScAddress &s = rRange.aStart, &e = rRange.aEnd;
++    SCTAB nTab1 = s.Tab(), nTab2 = e.Tab();
++    SCCOL nCol1 = s.Col(), nCol2 = e.Col();
++    SCROW nRow1 = s.Row(), nRow2 = e.Row();
++    for (SCTAB nTab = nTab1; nTab <= nTab2; ++nTab)
++    {
++        for (SCCOL nCol = nCol1; nCol <= nCol2; ++nCol)
++        {
++            for (SCROW nRow = nRow1; nRow <= nRow2; ++nRow)
++            {
++                ScAddress aAddr(nCol, nRow, nTab);
++                ScBaseCell* pBaseCell = m_pDocument->GetCell(aAddr);
++                if (!pBaseCell || pBaseCell->GetCellType() != CELLTYPE_FORMULA)
++                    continue;
++
++                ScFormulaCell* pFCell = static_cast<ScFormulaCell*>(pBaseCell);
++                ScTokenArray* pArray = pFCell->GetCode();
++                if (!pArray)
++                    continue;
++
++                pFCell->SetDirty();
++            }
++        }
++    }
++}
++
+ // XUnoTunnel
+ 
+ // sal_Int64 SAL_CALL ScChart2DataSequence::getSomething(



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]