[Libreoffice-commits] core.git: Branch 'private/moggi/chart-opengl-window-version2' - 2 commits - chart2/source sc/source
Markus Mohrhard
markus.mohrhard at collabora.co.uk
Wed May 7 12:06:14 PDT 2014
chart2/source/view/main/ChartView.cxx | 10 ++++++++++
sc/source/ui/drawfunc/fuins2.cxx | 13 +++++++++++--
sc/source/ui/inc/gridwin.hxx | 7 +++++++
sc/source/ui/view/gridwin5.cxx | 5 +++++
4 files changed, 33 insertions(+), 2 deletions(-)
New commits:
commit ab04cf268c0ef482b78f142b8de057f5b25b9239
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed May 7 21:01:47 2014 +0200
fix crash on exit
Change-Id: I31374684a09f1b056154efcaa5c7dfe73bcc1a61
diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx
index 0c941b2..2043ff9 100644
--- a/sc/source/ui/drawfunc/fuins2.cxx
+++ b/sc/source/ui/drawfunc/fuins2.cxx
@@ -82,6 +82,7 @@ using namespace ::com::sun::star;
#include "globstr.hrc"
#include "drawview.hxx"
#include "markdata.hxx"
+#include "gridwin.hxx"
namespace {
@@ -544,11 +545,19 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, Window* pWin, ScDrawView*
ScDocument* pScDoc = pScDocSh->GetDocument();
bool bUndo (pScDoc->IsUndoEnabled());
- OpenGLWindow* pChildWindow = new OpenGLWindow(pData->GetActiveWin());
+ Window* pParentWindow = pData->GetActiveWin();
+ ScGridWindow* pGridWindow = dynamic_cast<ScGridWindow*>(pParentWindow);
+ if(pGridWindow)
+ {
+ pGridWindow->AddChildWindow(pGridWindow);
+ }
+ else
+ SAL_WARN("sc", "not a grid window. Youare in serious trouble");
+ OpenGLWindow* pChildWindow = new OpenGLWindow(pParentWindow);
Size aWindowSize = pChildWindow->LogicToPixel( aSize, MapMode( MAP_100TH_MM ) );
pChildWindow->SetSizePixel(aWindowSize);
Wallpaper aBackground = pChildWindow->GetBackground();
- aBackground.SetColor(COL_RED);
+ aBackground.SetColor(COL_BLUE);
pChildWindow->SetBackground(aBackground);
pChildWindow->Show();
uno::Reference< chart2::X3DChartWindowProvider > x3DWindowProvider( xChartModel, uno::UNO_QUERY_THROW );
diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 63e930b..5170e25 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -32,6 +32,7 @@
#include <boost/scoped_ptr.hpp>
#include <boost/unordered_map.hpp>
#include <boost/ptr_container/ptr_map.hpp>
+#include <boost/ptr_container/ptr_vector.hpp>
namespace editeng {
struct MisspellRanges;
@@ -129,6 +130,7 @@ class ScGridWindow : public Window, public DropTargetHelper, public DragSourceHe
VisibleRange maVisibleRange;
boost::scoped_ptr<sc::SpellCheckContext> mpSpellCheckCxt;
+ boost::ptr_vector<Window> maChildWindows;
ScViewData* pViewData;
ScSplitPos eWhich;
@@ -409,6 +411,11 @@ public:
void UpdateShrinkOverlay();
void UpdateAllOverlays();
+ /**
+ * Takes ownership of the window
+ */
+ void AddChildWindow(Window* pChildWindow);
+
protected:
// #114409#
void ImpCreateOverlayObjects();
diff --git a/sc/source/ui/view/gridwin5.cxx b/sc/source/ui/view/gridwin5.cxx
index 404ca59..798d34a 100644
--- a/sc/source/ui/view/gridwin5.cxx
+++ b/sc/source/ui/view/gridwin5.cxx
@@ -474,4 +474,9 @@ void ScGridWindow::SwitchView()
}
}
+void ScGridWindow::AddChildWindow(Window* pWindow)
+{
+ maChildWindows.push_back(pWindow);
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit ee8f7b518353538c31e3dabf5bbc1bdf86a48454
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed May 7 21:01:28 2014 +0200
hide OpenGLWindow in normal charts
Change-Id: Ie45a910d2b99b7644a8055476aa191ef8a724d38
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index 79eec7b..93d4133 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -2459,6 +2459,14 @@ void ChartView::createShapes()
createShapes3D();
return;
}
+ else
+ {
+ // hide OpenGL window for now in normal charts
+ OpenGLWindow* pWindow = mrChartModel.getOpenGLWindow();
+ if(pWindow)
+ pWindow->Show(false);
+
+ }
#endif
{
@@ -3149,6 +3157,8 @@ void ChartView::createShapes3D()
if(!pWindow)
return;
+ pWindow->Show();
+
GL3DBarChart aBarChart(aDataSeries, *pWindow);
aBarChart.create3DShapes();
aBarChart.render();
More information about the Libreoffice-commits
mailing list