diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-05-21 10:59:34 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-05-21 17:12:36 +0200 |
commit | e4d95fa557179d787fd78211b76dd7c311940762 (patch) | |
tree | f4cd124d1650511c4fb9e7443a90a6ee8f6d0f69 /chart2 | |
parent | 03341d4e9e4341eb119d500e97de0d86804c3fcb (diff) |
weld SchAxisDlg
Change-Id: I18441b4fc06b69caf12dc73e5042ad2b609a7cc5
Reviewed-on: https://gerrit.libreoffice.org/54620
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'chart2')
-rw-r--r-- | chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx | 87 | ||||
-rw-r--r-- | chart2/source/controller/inc/ChartController.hxx | 1 | ||||
-rw-r--r-- | chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx | 25 | ||||
-rw-r--r-- | chart2/source/controller/main/ChartController.cxx | 9 | ||||
-rw-r--r-- | chart2/source/controller/main/ChartController_Insert.cxx | 12 | ||||
-rw-r--r-- | chart2/uiconfig/ui/insertaxisdlg.ui | 8 | ||||
-rw-r--r-- | chart2/uiconfig/ui/insertgriddlg.ui | 8 |
7 files changed, 74 insertions, 76 deletions
diff --git a/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx b/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx index 74f2ce9b8831..9a227f59b2f5 100644 --- a/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx +++ b/chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx @@ -40,74 +40,55 @@ InsertAxisOrGridDialogData::InsertAxisOrGridDialogData() // SchAxisDlg -SchAxisDlg::SchAxisDlg(vcl::Window* pWindow, +SchAxisDlg::SchAxisDlg(weld::Window* pWindow, const InsertAxisOrGridDialogData& rInput, bool bAxisDlg) - : ModalDialog(pWindow, - bAxisDlg ? - OUString("InsertAxisDialog") : - OUString("InsertGridDialog"), + : GenericDialogController(pWindow, bAxisDlg ? OUString("modules/schart/ui/insertaxisdlg.ui") : - OUString("modules/schart/ui/insertgriddlg.ui")) + OUString("modules/schart/ui/insertgriddlg.ui"), + bAxisDlg ? + OString("InsertAxisDialog") : + OString("InsertGridDialog")) + , m_xCbPrimaryX(m_xBuilder->weld_check_button("primaryX")) + , m_xCbPrimaryY(m_xBuilder->weld_check_button("primaryY")) + , m_xCbPrimaryZ(m_xBuilder->weld_check_button("primaryZ")) + , m_xCbSecondaryX(m_xBuilder->weld_check_button("secondaryX")) + , m_xCbSecondaryY(m_xBuilder->weld_check_button("secondaryY")) + , m_xCbSecondaryZ(m_xBuilder->weld_check_button("secondaryZ")) { - get(m_pCbPrimaryX, "primaryX"); - get(m_pCbPrimaryY, "primaryY"); - get(m_pCbPrimaryZ, "primaryZ"); - get(m_pCbSecondaryX, "secondaryX"); - get(m_pCbSecondaryY, "secondaryY"); - get(m_pCbSecondaryZ, "secondaryZ"); - if (bAxisDlg) { - //todo: remove if secondary z axis are possible somewhere - m_pCbSecondaryZ->Hide(); + m_xCbSecondaryZ->hide(); } - m_pCbPrimaryX->Check( rInput.aExistenceList[0] ); - m_pCbPrimaryY->Check( rInput.aExistenceList[1] ); - m_pCbPrimaryZ->Check( rInput.aExistenceList[2] ); - m_pCbSecondaryX->Check( rInput.aExistenceList[3] ); - m_pCbSecondaryY->Check( rInput.aExistenceList[4] ); - m_pCbSecondaryZ->Check( rInput.aExistenceList[5] ); - - m_pCbPrimaryX->Enable( rInput.aPossibilityList[0] ); - m_pCbPrimaryY->Enable( rInput.aPossibilityList[1] ); - m_pCbPrimaryZ->Enable( rInput.aPossibilityList[2] ); - m_pCbSecondaryX->Enable( rInput.aPossibilityList[3] ); - m_pCbSecondaryY->Enable( rInput.aPossibilityList[4] ); - m_pCbSecondaryZ->Enable( rInput.aPossibilityList[5] ); -} - -SchAxisDlg::~SchAxisDlg() -{ - disposeOnce(); -} - -void SchAxisDlg::dispose() -{ - m_pCbPrimaryX.clear(); - m_pCbPrimaryY.clear(); - m_pCbPrimaryZ.clear(); - m_pCbSecondaryX.clear(); - m_pCbSecondaryY.clear(); - m_pCbSecondaryZ.clear(); - ModalDialog::dispose(); + m_xCbPrimaryX->set_active( rInput.aExistenceList[0] ); + m_xCbPrimaryY->set_active( rInput.aExistenceList[1] ); + m_xCbPrimaryZ->set_active( rInput.aExistenceList[2] ); + m_xCbSecondaryX->set_active( rInput.aExistenceList[3] ); + m_xCbSecondaryY->set_active( rInput.aExistenceList[4] ); + m_xCbSecondaryZ->set_active( rInput.aExistenceList[5] ); + + m_xCbPrimaryX->set_sensitive( rInput.aPossibilityList[0] ); + m_xCbPrimaryY->set_sensitive( rInput.aPossibilityList[1] ); + m_xCbPrimaryZ->set_sensitive( rInput.aPossibilityList[2] ); + m_xCbSecondaryX->set_sensitive( rInput.aPossibilityList[3] ); + m_xCbSecondaryY->set_sensitive( rInput.aPossibilityList[4] ); + m_xCbSecondaryZ->set_sensitive( rInput.aPossibilityList[5] ); } - void SchAxisDlg::getResult( InsertAxisOrGridDialogData& rOutput ) { - rOutput.aExistenceList[0]=m_pCbPrimaryX->IsChecked(); - rOutput.aExistenceList[1]=m_pCbPrimaryY->IsChecked(); - rOutput.aExistenceList[2]=m_pCbPrimaryZ->IsChecked(); - rOutput.aExistenceList[3]=m_pCbSecondaryX->IsChecked(); - rOutput.aExistenceList[4]=m_pCbSecondaryY->IsChecked(); - rOutput.aExistenceList[5]=m_pCbSecondaryZ->IsChecked(); + rOutput.aExistenceList[0]=m_xCbPrimaryX->get_active(); + rOutput.aExistenceList[1]=m_xCbPrimaryY->get_active(); + rOutput.aExistenceList[2]=m_xCbPrimaryZ->get_active(); + rOutput.aExistenceList[3]=m_xCbSecondaryX->get_active(); + rOutput.aExistenceList[4]=m_xCbSecondaryY->get_active(); + rOutput.aExistenceList[5]=m_xCbSecondaryZ->get_active(); } -SchGridDlg::SchGridDlg( vcl::Window* pParent, const InsertAxisOrGridDialogData& rInput ) - : SchAxisDlg( pParent, rInput, false )//rInAttrs, b3D, bNet, bSecondaryX, bSecondaryY, false ) +SchGridDlg::SchGridDlg(weld::Window* pParent, const InsertAxisOrGridDialogData& rInput) + : SchAxisDlg(pParent, rInput, false) //rInAttrs, b3D, bNet, bSecondaryX, bSecondaryY, false ) { } diff --git a/chart2/source/controller/inc/ChartController.hxx b/chart2/source/controller/inc/ChartController.hxx index 5a47a8838e55..941672c0cc6e 100644 --- a/chart2/source/controller/inc/ChartController.hxx +++ b/chart2/source/controller/inc/ChartController.hxx @@ -321,6 +321,7 @@ public: DrawModelWrapper* GetDrawModelWrapper(); DrawViewWrapper* GetDrawViewWrapper(); VclPtr<ChartWindow> GetChartWindow(); + weld::Window* GetChartFrame(); bool isAdditionalShapeSelected(); void SetAndApplySelection(const css::uno::Reference<css::drawing::XShape>& rxShape); void StartTextEdit( const Point* pMousePixel = nullptr ); diff --git a/chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx b/chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx index fea533d7b22d..14e3c6669d51 100644 --- a/chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx +++ b/chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx @@ -19,9 +19,7 @@ #ifndef INCLUDED_CHART2_SOURCE_CONTROLLER_INC_DLG_INSERTAXIS_GRID_HXX #define INCLUDED_CHART2_SOURCE_CONTROLLER_INC_DLG_INSERTAXIS_GRID_HXX -#include <vcl/dialog.hxx> -#include <vcl/fixed.hxx> -#include <vcl/button.hxx> +#include <vcl/weld.hxx> #include <com/sun/star/uno/Sequence.hxx> namespace chart @@ -40,21 +38,18 @@ struct InsertAxisOrGridDialogData |* insert Axis dialog (also base for grid dialog) |* \************************************************************************/ -class SchAxisDlg : public ModalDialog +class SchAxisDlg : public weld::GenericDialogController { protected: - VclPtr<CheckBox> m_pCbPrimaryX; - VclPtr<CheckBox> m_pCbPrimaryY; - VclPtr<CheckBox> m_pCbPrimaryZ; - VclPtr<CheckBox> m_pCbSecondaryX; - VclPtr<CheckBox> m_pCbSecondaryY; - VclPtr<CheckBox> m_pCbSecondaryZ; + std::unique_ptr<weld::CheckButton> m_xCbPrimaryX; + std::unique_ptr<weld::CheckButton> m_xCbPrimaryY; + std::unique_ptr<weld::CheckButton> m_xCbPrimaryZ; + std::unique_ptr<weld::CheckButton> m_xCbSecondaryX; + std::unique_ptr<weld::CheckButton> m_xCbSecondaryY; + std::unique_ptr<weld::CheckButton> m_xCbSecondaryZ; public: - SchAxisDlg(vcl::Window* pParent, const InsertAxisOrGridDialogData& rInput, bool bAxisDlg=true); - virtual ~SchAxisDlg() override; - virtual void dispose() override; - + SchAxisDlg(weld::Window* pParent, const InsertAxisOrGridDialogData& rInput, bool bAxisDlg = true); void getResult( InsertAxisOrGridDialogData& rOutput ); }; @@ -66,7 +61,7 @@ public: class SchGridDlg : public SchAxisDlg { public: - SchGridDlg( vcl::Window* pParent, const InsertAxisOrGridDialogData& rInput ); + SchGridDlg(weld::Window* pParent, const InsertAxisOrGridDialogData& rInput); }; } //namespace chart diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx index a57ddc676396..3fc25dd822a7 100644 --- a/chart2/source/controller/main/ChartController.cxx +++ b/chart2/source/controller/main/ChartController.cxx @@ -1487,6 +1487,15 @@ VclPtr<ChartWindow> ChartController::GetChartWindow() return dynamic_cast<ChartWindow*>(VCLUnoHelper::GetWindow(m_xViewWindow).get()); } +weld::Window* ChartController::GetChartFrame() +{ + // clients getting the naked VCL Window from UNO should always have the + // solar mutex (and keep it over the lifetime of this ptr), as VCL might + // might deinit otherwise + DBG_TESTSOLARMUTEX(); + return Application::GetFrameWeld(m_xViewWindow); +} + bool ChartController::isAdditionalShapeSelected() { return m_aSelection.isAdditionalShapeSelected(); diff --git a/chart2/source/controller/main/ChartController_Insert.cxx b/chart2/source/controller/main/ChartController_Insert.cxx index 3589d0cc2d02..a1510a7db984 100644 --- a/chart2/source/controller/main/ChartController_Insert.cxx +++ b/chart2/source/controller/main/ChartController_Insert.cxx @@ -97,14 +97,14 @@ void ChartController::executeDispatch_InsertAxes() AxisHelper::getAxisOrGridPossibilities( aDialogInput.aPossibilityList, xDiagram ); SolarMutexGuard aGuard; - ScopedVclPtrInstance<SchAxisDlg> aDlg( GetChartWindow(), aDialogInput ); - if( aDlg->Execute() == RET_OK ) + SchAxisDlg aDlg(GetChartFrame(), aDialogInput); + if (aDlg.run() == RET_OK) { // lock controllers till end of block ControllerLockGuardUNO aCLGuard( getModel() ); InsertAxisOrGridDialogData aDialogOutput; - aDlg->getResult( aDialogOutput ); + aDlg.getResult(aDialogOutput); std::unique_ptr< ReferenceSizeProvider > pRefSizeProvider( impl_createReferenceSizeProvider()); bool bChanged = AxisHelper::changeVisibilityOfAxes( xDiagram @@ -135,13 +135,13 @@ void ChartController::executeDispatch_InsertGrid() AxisHelper::getAxisOrGridPossibilities( aDialogInput.aPossibilityList, xDiagram, false ); SolarMutexGuard aGuard; - ScopedVclPtrInstance<SchGridDlg> aDlg(GetChartWindow(), aDialogInput);//aItemSet, b3D, bNet, bSecondaryX, bSecondaryY ); - if( aDlg->Execute() == RET_OK ) + SchGridDlg aDlg(GetChartFrame(), aDialogInput);//aItemSet, b3D, bNet, bSecondaryX, bSecondaryY ); + if (aDlg.run() == RET_OK) { // lock controllers till end of block ControllerLockGuardUNO aCLGuard( getModel() ); InsertAxisOrGridDialogData aDialogOutput; - aDlg->getResult( aDialogOutput ); + aDlg.getResult( aDialogOutput ); bool bChanged = AxisHelper::changeVisibilityOfGrids( xDiagram , aDialogInput.aExistenceList, aDialogOutput.aExistenceList ); if( bChanged ) diff --git a/chart2/uiconfig/ui/insertaxisdlg.ui b/chart2/uiconfig/ui/insertaxisdlg.ui index 99441951b724..c445cc8256f2 100644 --- a/chart2/uiconfig/ui/insertaxisdlg.ui +++ b/chart2/uiconfig/ui/insertaxisdlg.ui @@ -1,12 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="chart"> <requires lib="gtk+" version="3.18"/> <object class="GtkDialog" id="InsertAxisDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="insertaxisdlg|InsertAxisDialog">Axes</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> <property name="type_hint">dialog</property> + <child> + <placeholder/> + </child> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox3"> <property name="can_focus">False</property> diff --git a/chart2/uiconfig/ui/insertgriddlg.ui b/chart2/uiconfig/ui/insertgriddlg.ui index 26b9ce55302e..ae3863a59ff5 100644 --- a/chart2/uiconfig/ui/insertgriddlg.ui +++ b/chart2/uiconfig/ui/insertgriddlg.ui @@ -1,12 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="chart"> <requires lib="gtk+" version="3.18"/> <object class="GtkDialog" id="InsertGridDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="insertgriddlg|InsertGridDialog">Grids</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> <property name="type_hint">dialog</property> + <child> + <placeholder/> + </child> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> |