sc/inc/scabstdlg.hxx | 2 sc/source/ui/attrdlg/scdlgfact.cxx | 13 +- sc/source/ui/attrdlg/scdlgfact.hxx | 13 +- sc/source/ui/dbgui/pvfundlg.cxx | 37 ++---- sc/source/ui/inc/pvfundlg.hxx | 20 +-- sc/source/ui/optdlg/calcoptionsdlg.cxx | 67 ++++------- sc/source/ui/optdlg/calcoptionsdlg.hxx | 38 ++---- sc/source/ui/optdlg/tpformula.cxx | 9 - sc/source/ui/view/cellsh1.cxx | 7 - sc/uiconfig/scalc/ui/formulacalculationoptions.ui | 130 +++++++++++----------- sc/uiconfig/scalc/ui/showdetaildialog.ui | 51 +++++++- 11 files changed, 200 insertions(+), 187 deletions(-)
New commits: commit 56c9746f294639583ce5422bf909ad9e4a746f70 Author: Caolán McNamara <caol...@redhat.com> Date: Sat May 19 20:44:59 2018 +0100 weld ScCalcOptionsDialog Change-Id: I391e26bd95cb3dc6cfa983502aa960a5c54cc800 Reviewed-on: https://gerrit.libreoffice.org/54580 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx index 74e7904249d7..e931a180e8bc 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.cxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx @@ -72,43 +72,32 @@ sal_Int32 toSelectedItem( formula::FormulaGrammar::AddressConvention eConv ) } -ScCalcOptionsDialog::ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfig& rConfig, bool bWriteConfig) - : ModalDialog(pParent, "FormulaCalculationOptions", - "modules/scalc/ui/formulacalculationoptions.ui") +ScCalcOptionsDialog::ScCalcOptionsDialog(weld::Window* pParent, const ScCalcConfig& rConfig, bool bWriteConfig) + : GenericDialogController(pParent, "modules/scalc/ui/formulacalculationoptions.ui", "FormulaCalculationOptions") , maConfig(rConfig) , mbSelectedEmptyStringAsZero(rConfig.mbEmptyStringAsZero) , mbWriteConfig(bWriteConfig) + , mxEmptyAsZero(m_xBuilder->weld_check_button("checkEmptyAsZero")) + , mxConversion(m_xBuilder->weld_combo_box_text("comboConversion")) + , mxCurrentDocOnly(m_xBuilder->weld_check_button("current_doc")) + , mxSyntax(m_xBuilder->weld_combo_box_text("comboSyntaxRef")) { - get(mpConversion,"comboConversion"); - mpConversion->SelectEntryPos(static_cast<sal_Int32>(rConfig.meStringConversion)); - mpConversion->SetSelectHdl(LINK(this, ScCalcOptionsDialog, ConversionModifiedHdl)); + mxConversion->set_active(static_cast<int>(rConfig.meStringConversion)); + mxConversion->connect_changed(LINK(this, ScCalcOptionsDialog, ConversionModifiedHdl)); - get(mpEmptyAsZero,"checkEmptyAsZero"); - mpEmptyAsZero->Check(rConfig.mbEmptyStringAsZero); - mpEmptyAsZero->SetClickHdl(LINK(this, ScCalcOptionsDialog, AsZeroModifiedHdl)); + mxEmptyAsZero->set_active(rConfig.mbEmptyStringAsZero); + mxEmptyAsZero->connect_toggled(LINK(this, ScCalcOptionsDialog, AsZeroModifiedHdl)); CoupleEmptyAsZeroToStringConversion(); - get(mpSyntax,"comboSyntaxRef"); - mpSyntax->SelectEntryPos( toSelectedItem(rConfig.meStringRefAddressSyntax) ); - mpSyntax->SetSelectHdl(LINK(this, ScCalcOptionsDialog, SyntaxModifiedHdl)); + mxSyntax->set_active(toSelectedItem(rConfig.meStringRefAddressSyntax)); + mxSyntax->connect_changed(LINK(this, ScCalcOptionsDialog, SyntaxModifiedHdl)); - get(mpCurrentDocOnly,"current_doc"); - mpCurrentDocOnly->Check(!mbWriteConfig); - mpCurrentDocOnly->SetClickHdl(LINK(this, ScCalcOptionsDialog, CurrentDocOnlyHdl)); + mxCurrentDocOnly->set_active(!mbWriteConfig); + mxCurrentDocOnly->connect_toggled(LINK(this, ScCalcOptionsDialog, CurrentDocOnlyHdl)); } ScCalcOptionsDialog::~ScCalcOptionsDialog() { - disposeOnce(); -} - -void ScCalcOptionsDialog::dispose() -{ - mpEmptyAsZero.clear(); - mpConversion.clear(); - mpSyntax.clear(); - mpCurrentDocOnly.clear(); - ModalDialog::dispose(); } void ScCalcOptionsDialog::CoupleEmptyAsZeroToStringConversion() @@ -117,43 +106,43 @@ void ScCalcOptionsDialog::CoupleEmptyAsZeroToStringConversion() { case ScCalcConfig::StringConversion::ILLEGAL: maConfig.mbEmptyStringAsZero = false; - mpEmptyAsZero->Check(false); - mpEmptyAsZero->Enable(false); + mxEmptyAsZero->set_active(false); + mxEmptyAsZero->set_sensitive(false); break; case ScCalcConfig::StringConversion::ZERO: maConfig.mbEmptyStringAsZero = true; - mpEmptyAsZero->Check(); - mpEmptyAsZero->Enable(false); + mxEmptyAsZero->set_active(true); + mxEmptyAsZero->set_sensitive(false); break; case ScCalcConfig::StringConversion::UNAMBIGUOUS: case ScCalcConfig::StringConversion::LOCALE: // Reset to the value the user selected before. maConfig.mbEmptyStringAsZero = mbSelectedEmptyStringAsZero; - mpEmptyAsZero->Enable(); - mpEmptyAsZero->Check( mbSelectedEmptyStringAsZero); + mxEmptyAsZero->set_sensitive(true); + mxEmptyAsZero->set_active(mbSelectedEmptyStringAsZero); break; } } -IMPL_LINK(ScCalcOptionsDialog, AsZeroModifiedHdl, Button*, pCheckBox, void ) +IMPL_LINK(ScCalcOptionsDialog, AsZeroModifiedHdl, weld::ToggleButton&, rCheckBox, void ) { - maConfig.mbEmptyStringAsZero = mbSelectedEmptyStringAsZero = static_cast<CheckBox*>(pCheckBox)->IsChecked(); + maConfig.mbEmptyStringAsZero = mbSelectedEmptyStringAsZero = rCheckBox.get_active(); } -IMPL_LINK(ScCalcOptionsDialog, ConversionModifiedHdl, ListBox&, rConv, void ) +IMPL_LINK(ScCalcOptionsDialog, ConversionModifiedHdl, weld::ComboBoxText&, rConv, void) { - maConfig.meStringConversion = static_cast<ScCalcConfig::StringConversion>(rConv.GetSelectedEntryPos()); + maConfig.meStringConversion = static_cast<ScCalcConfig::StringConversion>(rConv.get_active()); CoupleEmptyAsZeroToStringConversion(); } -IMPL_LINK(ScCalcOptionsDialog, SyntaxModifiedHdl, ListBox&, rSyntax, void) +IMPL_LINK(ScCalcOptionsDialog, SyntaxModifiedHdl, weld::ComboBoxText&, rSyntax, void) { - maConfig.SetStringRefSyntax(toAddressConvention(rSyntax.GetSelectedEntryPos())); + maConfig.SetStringRefSyntax(toAddressConvention(rSyntax.get_active())); } -IMPL_LINK(ScCalcOptionsDialog, CurrentDocOnlyHdl, Button*, pCheckBox, void) +IMPL_LINK(ScCalcOptionsDialog, CurrentDocOnlyHdl, weld::ToggleButton&, rCheckBox, void) { - mbWriteConfig = !(static_cast<CheckBox*>(pCheckBox)->IsChecked()); + mbWriteConfig = !rCheckBox.get_active(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx index 5d62570678cb..899f04305c9c 100644 --- a/sc/source/ui/optdlg/calcoptionsdlg.hxx +++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx @@ -11,19 +11,7 @@ #define INCLUDED_SC_SOURCE_UI_OPTDLG_CALCOPTIONSDLG_HXX #include <config_features.h> - -#include <vcl/dialog.hxx> -#include <vcl/button.hxx> -#include <vcl/edit.hxx> -#include <vcl/field.hxx> -#include <vcl/fixed.hxx> -#include <vcl/layout.hxx> -#include <vcl/lstbox.hxx> - -#include <svx/checklbx.hxx> - -#include <svtools/treelistbox.hxx> - +#include <vcl/weld.hxx> #include <calcconfig.hxx> #if HAVE_FEATURE_OPENCL @@ -31,17 +19,16 @@ #include <opencl/platforminfo.hxx> #endif -class ScCalcOptionsDialog : public ModalDialog +class ScCalcOptionsDialog : public weld::GenericDialogController { public: - ScCalcOptionsDialog(vcl::Window* pParent, const ScCalcConfig& rConfig, bool bWriteConfig); + ScCalcOptionsDialog(weld::Window* pParent, const ScCalcConfig& rConfig, bool bWriteConfig); virtual ~ScCalcOptionsDialog() override; - virtual void dispose() override; - DECL_LINK( AsZeroModifiedHdl, Button*, void); - DECL_LINK( ConversionModifiedHdl, ListBox&, void); - DECL_LINK( SyntaxModifiedHdl, ListBox&, void); - DECL_LINK( CurrentDocOnlyHdl, Button*, void); + DECL_LINK(AsZeroModifiedHdl, weld::ToggleButton&, void); + DECL_LINK(ConversionModifiedHdl, weld::ComboBoxText&, void); + DECL_LINK(SyntaxModifiedHdl, weld::ComboBoxText&, void); + DECL_LINK(CurrentDocOnlyHdl, weld::ToggleButton&, void); const ScCalcConfig& GetConfig() const { return maConfig;} bool GetWriteCalcConfig() const { return mbWriteConfig;} @@ -50,15 +37,14 @@ private: void CoupleEmptyAsZeroToStringConversion(); private: - VclPtr<CheckBox> mpEmptyAsZero; - VclPtr<ListBox> mpConversion; - VclPtr<ListBox> mpSyntax; - VclPtr<CheckBox> mpCurrentDocOnly; - ScCalcConfig maConfig; - bool mbSelectedEmptyStringAsZero; bool mbWriteConfig; + + std::unique_ptr<weld::CheckButton> mxEmptyAsZero; + std::unique_ptr<weld::ComboBoxText> mxConversion; + std::unique_ptr<weld::CheckButton> mxCurrentDocOnly; + std::unique_ptr<weld::ComboBoxText> mxSyntax; }; #endif diff --git a/sc/source/ui/optdlg/tpformula.cxx b/sc/source/ui/optdlg/tpformula.cxx index 75b3482fefde..09797b051071 100644 --- a/sc/source/ui/optdlg/tpformula.cxx +++ b/sc/source/ui/optdlg/tpformula.cxx @@ -138,12 +138,11 @@ void ScTpFormulaOptions::UpdateCustomCalcRadioButtons(bool bDefault) void ScTpFormulaOptions::LaunchCustomCalcSettings() { - ScopedVclPtrInstance< ScCalcOptionsDialog > aDlg(this, maCurrentConfig, - maCurrentDocOptions.IsWriteCalcConfig()); - if (aDlg->Execute() == RET_OK) + ScCalcOptionsDialog aDlg(GetFrameWeld(), maCurrentConfig, maCurrentDocOptions.IsWriteCalcConfig()); + if (aDlg.run() == RET_OK) { - maCurrentConfig = aDlg->GetConfig(); - maCurrentDocOptions.SetWriteCalcConfig( aDlg->GetWriteCalcConfig()); + maCurrentConfig = aDlg.GetConfig(); + maCurrentDocOptions.SetWriteCalcConfig(aDlg.GetWriteCalcConfig()); } } diff --git a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui index fe751a985bfc..e637ca6af42e 100644 --- a/sc/uiconfig/scalc/ui/formulacalculationoptions.ui +++ b/sc/uiconfig/scalc/ui/formulacalculationoptions.ui @@ -1,25 +1,79 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.20.4 --> <interface domain="sc"> <requires lib="gtk+" version="3.18"/> <requires lib="LibreOffice" version="1.0"/> - <object class="GtkAdjustment" id="adjustment1"> - <property name="lower">2</property> - <property name="value">100</property> - <property name="step_increment">1</property> - <property name="page_increment">100</property> - </object> <object class="GtkDialog" id="FormulaCalculationOptions"> <property name="can_focus">False</property> <property name="vexpand">True</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="formulacalculationoptions|FormulaCalculationOptions">Detailed Calculation Settings</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 internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> <property name="orientation">vertical</property> <property name="spacing">12</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="can_focus">False</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="help"> + <property name="label">gtk-help</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + <property name="secondary">True</property> + </packing> + </child> + <child> + <object class="GtkButton" id="ok"> + <property name="label">gtk-ok</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="cancel"> + <property name="label">gtk-cancel</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> <child> <object class="GtkFrame" id="frame1"> <property name="visible">True</property> @@ -42,8 +96,8 @@ <object class="GtkLabel" id="labelConvT2N"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="formulacalculationoptions|labelConvT2N">Conversion from text to number:</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -147,69 +201,15 @@ <property name="position">0</property> </packing> </child> - <child internal-child="action_area"> - <object class="GtkButtonBox" id="dialog-action_area1"> - <property name="can_focus">False</property> - <property name="layout_style">end</property> - <child> - <object class="GtkButton" id="help"> - <property name="label">gtk-help</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - <property name="secondary">True</property> - </packing> - </child> - <child> - <object class="GtkButton" id="ok"> - <property name="label">gtk-ok</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="has_default">True</property> - <property name="receives_default">True</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkButton" id="cancel"> - <property name="label">gtk-cancel</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> </object> </child> <action-widgets> <action-widget response="-5">ok</action-widget> <action-widget response="-6">cancel</action-widget> </action-widgets> + <child> + <placeholder/> + </child> </object> <object class="GtkSizeGroup" id="sizegroup1"> <widgets> commit 215d1ceaa086e72bb0c7251e97b199a77ef917e1 Author: Caolán McNamara <caol...@redhat.com> Date: Sat May 19 20:15:17 2018 +0100 weld ScDPShowDetailDlg Change-Id: Ifbb93a71ac891f4a5621edcd1c3f004a278a088d Reviewed-on: https://gerrit.libreoffice.org/54577 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index 392e4d60fa2d..7032ab97c8c7 100644 --- a/sc/inc/scabstdlg.hxx +++ b/sc/inc/scabstdlg.hxx @@ -492,7 +492,7 @@ public: sal_Int32 nDatePart, const Date& rNullDate ) = 0; - virtual VclPtr<AbstractScDPShowDetailDlg> CreateScDPShowDetailDlg( vcl::Window* pParent, + virtual VclPtr<AbstractScDPShowDetailDlg> CreateScDPShowDetailDlg(weld::Window* pParent, ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient ) = 0; diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx index a84d7dc9b5dd..dfedd10a54a2 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -160,7 +160,12 @@ IMPL_ABSTDLG_BASE(AbstractScDPFunctionDlg_Impl); IMPL_ABSTDLG_BASE(AbstractScDPSubtotalDlg_Impl); IMPL_ABSTDLG_BASE(AbstractScDPNumGroupDlg_Impl); IMPL_ABSTDLG_BASE(AbstractScDPDateGroupDlg_Impl); -IMPL_ABSTDLG_BASE(AbstractScDPShowDetailDlg_Impl); + +short AbstractScDPShowDetailDlg_Impl::Execute() +{ + return m_xDlg->execute(); +} + IMPL_ABSTDLG_BASE(AbstractScNewScenarioDlg_Impl); short AbstractScShowTabDlg_Impl::Execute() @@ -602,7 +607,7 @@ sal_Int32 AbstractScDPDateGroupDlg_Impl::GetDatePart() const OUString AbstractScDPShowDetailDlg_Impl::GetDimensionName() const { - return pDlg->GetDimensionName(); + return m_xDlg->GetDimensionName(); } void AbstractScNewScenarioDlg_Impl::SetScenarioData( @@ -867,9 +872,9 @@ VclPtr<AbstractScDPDateGroupDlg> ScAbstractDialogFactory_Impl::CreateScDPDateGro } VclPtr<AbstractScDPShowDetailDlg> ScAbstractDialogFactory_Impl::CreateScDPShowDetailDlg ( - vcl::Window* pParent, ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient ) + weld::Window* pParent, ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient ) { - return VclPtr<AbstractScDPShowDetailDlg_Impl>::Create( VclPtr<ScDPShowDetailDlg>::Create( pParent, rDPObj, nOrient ) ); + return VclPtr<AbstractScDPShowDetailDlg_Impl>::Create(new ScDPShowDetailDlg(pParent, rDPObj, nOrient)); } VclPtr<AbstractScNewScenarioDlg> ScAbstractDialogFactory_Impl::CreateScNewScenarioDlg(vcl::Window* pParent, const OUString& rName, diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx index 27e6513b2904..a27a52ab26d7 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -407,7 +407,14 @@ class AbstractScDPDateGroupDlg_Impl : public AbstractScDPDateGroupDlg class AbstractScDPShowDetailDlg_Impl : public AbstractScDPShowDetailDlg { - DECL_ABSTDLG_BASE( AbstractScDPShowDetailDlg_Impl, ScDPShowDetailDlg) +protected: + std::shared_ptr<ScDPShowDetailDlg> m_xDlg; +public: + explicit AbstractScDPShowDetailDlg_Impl(ScDPShowDetailDlg* p) + : m_xDlg(p) + { + } + virtual short Execute() override; virtual OUString GetDimensionName() const override; }; @@ -597,9 +604,9 @@ public: sal_Int32 nDatePart, const Date& rNullDate ) override; - virtual VclPtr<AbstractScDPShowDetailDlg> CreateScDPShowDetailDlg( vcl::Window* pParent, + virtual VclPtr<AbstractScDPShowDetailDlg> CreateScDPShowDetailDlg(weld::Window* pParent, ScDPObject& rDPObj, - css::sheet::DataPilotFieldOrientation nOrient ) override; + css::sheet::DataPilotFieldOrientation nOrient) override; virtual VclPtr<AbstractScNewScenarioDlg> CreateScNewScenarioDlg ( vcl::Window* pParent, const OUString& rName, bool bEdit, bool bSheetProtected ) override; diff --git a/sc/source/ui/dbgui/pvfundlg.cxx b/sc/source/ui/dbgui/pvfundlg.cxx index c03571c7caf8..42117af9ff63 100644 --- a/sc/source/ui/dbgui/pvfundlg.cxx +++ b/sc/source/ui/dbgui/pvfundlg.cxx @@ -812,13 +812,11 @@ IMPL_LINK( ScDPSubtotalOptDlg, SelectHdl, ListBox&, rLBox, void ) } } -ScDPShowDetailDlg::ScDPShowDetailDlg( vcl::Window* pParent, ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient ) : - ModalDialog ( pParent, "ShowDetail", "modules/scalc/ui/showdetaildialog.ui" ), - mrDPObj(rDPObj) +ScDPShowDetailDlg::ScDPShowDetailDlg(weld::Window* pParent, ScDPObject& rDPObj, css::sheet::DataPilotFieldOrientation nOrient) + : GenericDialogController(pParent, "modules/scalc/ui/showdetaildialog.ui", "ShowDetail") + , mrDPObj(rDPObj) + , mxLbDims(m_xBuilder->weld_tree_view("dimsTreeview")) { - get(mpLbDims, "dimsTreeview"); - get(mpBtnOk, "ok"); - ScDPSaveData* pSaveData = rDPObj.GetSaveData(); long nDimCount = rDPObj.GetDimCount(); for (long nDim=0; nDim<nDimCount; nDim++) @@ -837,39 +835,31 @@ ScDPShowDetailDlg::ScDPShowDetailDlg( vcl::Window* pParent, ScDPObject& rDPObj, if (pLayoutName) aName = *pLayoutName; } - mpLbDims->InsertEntry( aName ); + mxLbDims->append_text(aName); maNameIndexMap.emplace(aName, nDim); } } } - if( mpLbDims->GetEntryCount() ) - mpLbDims->SelectEntryPos( 0 ); + if (mxLbDims->n_children()) + mxLbDims->select(0); - mpLbDims->SetDoubleClickHdl( LINK( this, ScDPShowDetailDlg, DblClickHdl ) ); + mxLbDims->connect_row_activated(LINK(this, ScDPShowDetailDlg, DblClickHdl)); } ScDPShowDetailDlg::~ScDPShowDetailDlg() { - disposeOnce(); -} - -void ScDPShowDetailDlg::dispose() -{ - mpLbDims.clear(); - mpBtnOk.clear(); - ModalDialog::dispose(); } -short ScDPShowDetailDlg::Execute() +short ScDPShowDetailDlg::execute() { - return mpLbDims->GetEntryCount() ? ModalDialog::Execute() : static_cast<short>(RET_CANCEL); + return mxLbDims->n_children() ? m_xDialog->run() : static_cast<short>(RET_CANCEL); } OUString ScDPShowDetailDlg::GetDimensionName() const { // Look up the internal dimension name which may be different from the // displayed field name. - OUString aSelectedName = mpLbDims->GetSelectedEntry(); + OUString aSelectedName = mxLbDims->get_selected_text(); DimNameIndexMap::const_iterator itr = maNameIndexMap.find(aSelectedName); if (itr == maNameIndexMap.end()) // This should never happen! @@ -880,10 +870,9 @@ OUString ScDPShowDetailDlg::GetDimensionName() const return mrDPObj.GetDimName(nDim, bIsDataLayout); } -IMPL_LINK( ScDPShowDetailDlg, DblClickHdl, ListBox&, rLBox, void ) +IMPL_LINK_NOARG(ScDPShowDetailDlg, DblClickHdl, weld::TreeView&, void) { - if( &rLBox == mpLbDims ) - mpBtnOk->Click(); + m_xDialog->response(RET_OK); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/pvfundlg.hxx b/sc/source/ui/inc/pvfundlg.hxx index 4ae7ffd4330d..89f732bfcf9c 100644 --- a/sc/source/ui/inc/pvfundlg.hxx +++ b/sc/source/ui/inc/pvfundlg.hxx @@ -31,6 +31,7 @@ #include <vcl/button.hxx> #include <vcl/morebtn.hxx> #include <vcl/field.hxx> +#include <vcl/weld.hxx> #include <svx/checklbx.hxx> #include <sfx2/itemconnect.hxx> #include <pivot.hxx> @@ -186,14 +187,14 @@ private: NameMapType maDataFieldNameMap; /// Cache for displayed name to field name mapping. }; -class ScDPShowDetailDlg : public ModalDialog +class ScDPShowDetailDlg : public weld::GenericDialogController { public: - explicit ScDPShowDetailDlg( vcl::Window* pParent, ScDPObject& rDPObj, - css::sheet::DataPilotFieldOrientation nOrient ); - virtual ~ScDPShowDetailDlg() override; - virtual void dispose() override; - virtual short Execute() override; + explicit ScDPShowDetailDlg(weld::Window* pParent, ScDPObject& rDPObj, + css::sheet::DataPilotFieldOrientation nOrient); + virtual ~ScDPShowDetailDlg() override; + + short execute(); /** * @return String internal name of the selected field. Note that this may @@ -203,15 +204,14 @@ public: OUString GetDimensionName() const; private: - DECL_LINK( DblClickHdl, ListBox&, void ); + DECL_LINK(DblClickHdl, weld::TreeView&, void); private: - VclPtr<ListBox> mpLbDims; - VclPtr<OKButton> mpBtnOk; - typedef std::unordered_map<OUString, long> DimNameIndexMap; DimNameIndexMap maNameIndexMap; ScDPObject& mrDPObj; + + std::unique_ptr<weld::TreeView> mxLbDims; }; #endif diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index 697d52cd8a0f..55fa9e421210 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -1083,11 +1083,10 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) if ( pTabViewShell->HasSelectionForDrillDown( nOrientation ) ) { ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create(); - OSL_ENSURE(pFact, "ScAbstractFactory create fail!"); - + assert(pFact && "ScAbstractFactory create fail!"); ScopedVclPtr<AbstractScDPShowDetailDlg> pDlg( pFact->CreateScDPShowDetailDlg( - pTabViewShell->GetDialogParent(), *pDPObj, nOrientation ) ); - OSL_ENSURE(pDlg, "Dialog create fail!"); + pTabViewShell->GetFrameWeld(), *pDPObj, nOrientation ) ); + assert(pDlg && "Dialog create fail!"); if ( pDlg->Execute() == RET_OK ) { OUString aNewDimName( pDlg->GetDimensionName() ); diff --git a/sc/uiconfig/scalc/ui/showdetaildialog.ui b/sc/uiconfig/scalc/ui/showdetaildialog.ui index 74d5079851db..d7f3f0a9231d 100644 --- a/sc/uiconfig/scalc/ui/showdetaildialog.ui +++ b/sc/uiconfig/scalc/ui/showdetaildialog.ui @@ -1,7 +1,15 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.19.0 --> +<!-- Generated with glade 3.20.4 --> <interface domain="sc"> <requires lib="gtk+" version="3.18"/> + <object class="GtkListStore" id="liststore1"> + <columns> + <!-- column-name text --> + <column type="gchararray"/> + <!-- column-name id --> + <column type="gchararray"/> + </columns> + </object> <object class="GtkDialog" id="ShowDetail"> <property name="can_focus">False</property> <property name="hexpand">True</property> @@ -9,17 +17,20 @@ <property name="border_width">6</property> <property name="title" translatable="yes" context="showdetaildialog|ShowDetail">Show Detail</property> <property name="resizable">False</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 internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> <property name="hexpand">True</property> <property name="vexpand">True</property> + <property name="orientation">vertical</property> <property name="spacing">12</property> <child internal-child="action_area"> <object class="GtkButtonBox" id="dialog-action_area1"> <property name="can_focus">False</property> - <property name="orientation">vertical</property> <property name="layout_style">start</property> <child> <object class="GtkButton" id="ok"> @@ -66,6 +77,7 @@ <property name="expand">False</property> <property name="fill">True</property> <property name="position">2</property> + <property name="secondary">True</property> </packing> </child> </object> @@ -88,12 +100,12 @@ <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="showdetaildialog|label1">_Choose the field containing the detail you want to show</property> <property name="use_underline">True</property> <property name="wrap">True</property> <property name="mnemonic_widget">dimsTreeview</property> <property name="max_width_chars">50</property> + <property name="xalign">0</property> </object> <packing> <property name="expand">False</property> @@ -102,13 +114,37 @@ </packing> </child> <child> - <object class="GtkTreeView" id="dimsTreeview"> + <object class="GtkScrolledWindow"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="vexpand">True</property> - <child internal-child="selection"> - <object class="GtkTreeSelection" id="treeview-selection1"/> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="dimsTreeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <property name="vexpand">True</property> + <property name="model">liststore1</property> + <property name="headers_visible">False</property> + <property name="headers_clickable">False</property> + <property name="search_column">0</property> + <property name="show_expanders">False</property> + <child internal-child="selection"> + <object class="GtkTreeSelection" id="treeview-selection1"/> + </child> + <child> + <object class="GtkTreeViewColumn" id="treeviewcolumn1"> + <child> + <object class="GtkCellRendererText" id="cellrenderertext1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + </child> + </object> </child> </object> <packing> @@ -131,5 +167,8 @@ <action-widget response="-6">cancel</action-widget> <action-widget response="-11">help</action-widget> </action-widgets> + <child> + <placeholder/> + </child> </object> </interface> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits