chart2/source/controller/dialogs/ChartTypeDialogController.cxx |   64 
+++++++++-
 chart2/source/controller/dialogs/tp_ChartType.cxx              |    1 
 chart2/source/controller/sidebar/ChartTypePanel.cxx            |    2 
 chart2/source/inc/ChartTypeDialogController.hxx                |    9 +
 4 files changed, 71 insertions(+), 5 deletions(-)

New commits:
commit eb38c0470195869b8c38b864cbb9692cd02f15e5
Author:     Muhammet Kara <muhammet.k...@collabora.com>
AuthorDate: Thu Nov 7 13:51:13 2019 +0300
Commit:     Muhammet Kara <muhammet.k...@collabora.com>
CommitDate: Thu Nov 7 13:28:54 2019 +0100

    Overload showExtraControls method
    
    and adjust CombiColumnLineChartDialogController accordingly,
    to be able to use with a VCLContainer parent
    
    Change-Id: I835a5ba0e18fe7dbfca97ee975e4d00c2ac302d4
    Reviewed-on: https://gerrit.libreoffice.org/82206
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Muhammet Kara <muhammet.k...@collabora.com>

diff --git a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx 
b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx
index 04afdc14244c..b34bf3f102df 100644
--- a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx
+++ b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx
@@ -36,6 +36,7 @@
 #include <svtools/valueset.hxx>
 #include <vcl/bitmap.hxx>
 #include <vcl/builder.hxx>
+#include <vcl/fixed.hxx>
 #include <vcl/image.hxx>
 #include <vcl/svapp.hxx>
 #include <vcl/settings.hxx>
@@ -371,6 +372,9 @@ bool 
ChartTypeDialogController::shouldShow_SortByXValuesResourceGroup() const
 void ChartTypeDialogController::showExtraControls(weld::Builder* /*pBuilder*/)
 {
 }
+void ChartTypeDialogController::showExtraControls(VclBuilderContainer* 
/*pParent*/)
+{
+}
 void ChartTypeDialogController::hideExtraControls() const
 {
 }
@@ -1228,6 +1232,8 @@ void 
StockChartDialogController::adjustParameterToSubType( ChartTypeParameter& r
 }
 
 CombiColumnLineChartDialogController::CombiColumnLineChartDialogController()
+    : m_pFT_NumberOfLines(nullptr)
+    , m_pMF_NumberOfLines(nullptr)
 {
     bSupports3D = false;
 }
@@ -1294,21 +1300,51 @@ void 
CombiColumnLineChartDialogController::showExtraControls(weld::Builder* pBui
     m_xMF_NumberOfLines->show();
 }
 
+void 
CombiColumnLineChartDialogController::showExtraControls(VclBuilderContainer* 
pParent)
+{
+    if (!m_pFT_NumberOfLines)
+        {
+            pParent->get(m_pFT_NumberOfLines, "nolinesft");
+        }
+        if (!m_pMF_NumberOfLines)
+        {
+            pParent->get(m_pMF_NumberOfLines, "nolines");
+
+            m_pMF_NumberOfLines->SetSpinSize(1);
+            m_pMF_NumberOfLines->SetFirst( 1 );
+            m_pMF_NumberOfLines->SetLast( 100 );
+            m_pMF_NumberOfLines->SetMin( 1 );
+            m_pMF_NumberOfLines->SetMax( 100 );
+
+            m_pMF_NumberOfLines->SetModifyHdl( LINK( this, 
CombiColumnLineChartDialogController, ChangeLineCountHdl_unwelded ) );
+        }
+
+        m_pFT_NumberOfLines->Show();
+        m_pMF_NumberOfLines->Show();
+}
+
 void CombiColumnLineChartDialogController::hideExtraControls() const
 {
     if (m_xFT_NumberOfLines)
         m_xFT_NumberOfLines->hide();
     if (m_xMF_NumberOfLines)
         m_xMF_NumberOfLines->hide();
+
+    if(m_pFT_NumberOfLines)
+        m_pFT_NumberOfLines->Hide();
+    if(m_pMF_NumberOfLines)
+        m_pMF_NumberOfLines->Hide();
 }
 
 void CombiColumnLineChartDialogController::fillExtraControls( const 
ChartTypeParameter& /*rParameter*/
                 , const uno::Reference< XChartDocument >& xChartModel
                 , const uno::Reference< beans::XPropertySet >& xTemplateProps 
) const
 {
-    if (!m_xMF_NumberOfLines)
+    if (!m_xMF_NumberOfLines && !m_pMF_NumberOfLines)
         return;
 
+    bool bIsWelded = m_xMF_NumberOfLines != nullptr;
+
     uno::Reference< frame::XModel > xModel( xChartModel, uno::UNO_QUERY );
 
     uno::Reference< XDiagram > xDiagram = ChartModelHelper::findDiagram( 
xModel );
@@ -1330,18 +1366,31 @@ void 
CombiColumnLineChartDialogController::fillExtraControls( const ChartTypePar
     }
     if( nNumLines < 0 )
         nNumLines = 0;
-    m_xMF_NumberOfLines->set_value(nNumLines);
+
+    if (bIsWelded)
+        m_xMF_NumberOfLines->set_value(nNumLines);
+    else
+        m_pMF_NumberOfLines->SetValue( nNumLines );
 
     sal_Int32 nMaxLines = ChartModelHelper::getDataSeries( xModel ).size() - 1;
     if( nMaxLines < 0 )
         nMaxLines = 0;
-    m_xMF_NumberOfLines->set_max(nMaxLines);
+
+    if (bIsWelded)
+        m_xMF_NumberOfLines->set_max(nMaxLines);
+    else
+    {
+        m_pMF_NumberOfLines->SetLast( nMaxLines );
+        m_pMF_NumberOfLines->SetMax( nMaxLines );
+    }
 }
 void CombiColumnLineChartDialogController::setTemplateProperties( const 
uno::Reference< beans::XPropertySet >& xTemplateProps ) const
 {
+    bool bIsWelded = m_xMF_NumberOfLines != nullptr;
     if( xTemplateProps.is() )
     {
-        sal_Int32 nNumLines = m_xMF_NumberOfLines->get_value();
+        sal_Int32 nNumLines =
+                bIsWelded ? m_xMF_NumberOfLines->get_value() : static_cast< 
sal_Int32 >(m_pMF_NumberOfLines->GetValue());
         xTemplateProps->setPropertyValue( "NumberOfLines" , 
uno::Any(nNumLines) );
     }
 }
@@ -1351,6 +1400,13 @@ IMPL_LINK_NOARG(CombiColumnLineChartDialogController, 
ChangeLineCountHdl, weld::
     if( m_pChangeListener )
         m_pChangeListener->stateChanged(this);
 }
+
+IMPL_LINK_NOARG(CombiColumnLineChartDialogController, 
ChangeLineCountHdl_unwelded, Edit&, void)
+{
+    if( m_pChangeListener )
+        m_pChangeListener->stateChanged(this);
+}
+
 void CombiColumnLineChartDialogController::adjustParameterToSubType( 
ChartTypeParameter& rParameter )
 {
     rParameter.b3DLook = false;
diff --git a/chart2/source/controller/dialogs/tp_ChartType.cxx 
b/chart2/source/controller/dialogs/tp_ChartType.cxx
index ce489996d2d7..6f19ab1cddcd 100644
--- a/chart2/source/controller/dialogs/tp_ChartType.cxx
+++ b/chart2/source/controller/dialogs/tp_ChartType.cxx
@@ -32,6 +32,7 @@
 
 #include <svtools/controldims.hxx>
 #include <svtools/valueset.hxx>
+#include <vcl/fixed.hxx>
 
 #include <o3tl/make_unique.hxx>
 #include <vcl/weld.hxx>
diff --git a/chart2/source/controller/sidebar/ChartTypePanel.cxx 
b/chart2/source/controller/sidebar/ChartTypePanel.cxx
index 006e9818a8f3..8edc16265baa 100644
--- a/chart2/source/controller/sidebar/ChartTypePanel.cxx
+++ b/chart2/source/controller/sidebar/ChartTypePanel.cxx
@@ -867,7 +867,7 @@ void 
ChartTypePanel::showAllControls(ChartTypeDialogController& rTypeController)
     m_pSortByXValuesResourceGroup->showControls(bShow);
 
     // TODO: Extend ChartTypeDialogController::showExtraControls()
-    //rTypeController.showExtraControls(this);
+    rTypeController.showExtraControls(this);
 }
 
 void ChartTypePanel::fillAllControls(const ChartTypeParameter& rParameter,
diff --git a/chart2/source/inc/ChartTypeDialogController.hxx 
b/chart2/source/inc/ChartTypeDialogController.hxx
index c1b3411a3840..008975ce71ef 100644
--- a/chart2/source/inc/ChartTypeDialogController.hxx
+++ b/chart2/source/inc/ChartTypeDialogController.hxx
@@ -37,6 +37,7 @@ namespace com { namespace sun { namespace star { namespace 
lang { class XMultiSe
 
 class SvtValueSet;
 class ValueSet;
+class VclBuilderContainer;
 
 namespace chart
 {
@@ -104,6 +105,7 @@ public:
     virtual bool    shouldShow_SortByXValuesResourceGroup() const;
 
     virtual void    showExtraControls(weld::Builder* pBuilder);
+    virtual void    showExtraControls(VclBuilderContainer* pParent);
     virtual void    hideExtraControls() const;
     virtual void    fillExtraControls( const ChartTypeParameter& rParameter
                                      , const css::uno::Reference< 
css::chart2::XChartDocument >& xChartModel
@@ -279,6 +281,7 @@ public:
     virtual void adjustParameterToSubType( ChartTypeParameter& rParameter ) 
override;
 
     virtual void    showExtraControls(weld::Builder* pBuilder) override;
+    virtual void    showExtraControls(VclBuilderContainer* pParent) override;
     virtual void    hideExtraControls() const override;
     virtual void    fillExtraControls( const ChartTypeParameter& rParameter
                                      , const css::uno::Reference< 
css::chart2::XChartDocument >& xChartModel
@@ -288,10 +291,16 @@ public:
 
 private:
     DECL_LINK(ChangeLineCountHdl, weld::SpinButton&, void);
+    //Needed for showExtraControls() overload
+    DECL_LINK( ChangeLineCountHdl_unwelded, Edit&, void );
 
 private:
     std::unique_ptr<weld::Label> m_xFT_NumberOfLines;
     std::unique_ptr<weld::SpinButton> m_xMF_NumberOfLines;
+
+    //Needed for showExtraControls() overload
+    VclPtr<FixedText>    m_pFT_NumberOfLines;
+    VclPtr<NumericField> m_pMF_NumberOfLines;
 };
 
 class BubbleChartDialogController : public ChartTypeDialogController
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to