diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-06-19 16:40:38 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2018-07-03 17:46:55 +0200 |
commit | bf1e097c16f9dd672ea43234cbe0eb64c82fd37e (patch) | |
tree | b2d0cd211bc13e7225f8769e3c1fc3a28b7aa441 /sw/source/uibase | |
parent | dd645e70108f31aab611634e77c120e5efe52d05 (diff) |
weld SwWatermarkDialog
Change-Id: Iff3ddfb4dd75088e39ea7675b085f1bbde2c2045
Reviewed-on: https://gerrit.libreoffice.org/56414
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Diffstat (limited to 'sw/source/uibase')
-rw-r--r-- | sw/source/uibase/app/docsh2.cxx | 7 | ||||
-rw-r--r-- | sw/source/uibase/dialog/watermarkdialog.cxx | 66 | ||||
-rw-r--r-- | sw/source/uibase/inc/watermarkdialog.hxx | 23 |
3 files changed, 42 insertions, 54 deletions
diff --git a/sw/source/uibase/app/docsh2.cxx b/sw/source/uibase/app/docsh2.cxx index 7f7df1db893e..07afee0fcd64 100644 --- a/sw/source/uibase/app/docsh2.cxx +++ b/sw/source/uibase/app/docsh2.cxx @@ -1225,10 +1225,11 @@ void SwDocShell::Execute(SfxRequest& rReq) } else { - SfxViewShell* pViewShell = GetView()? GetView(): SfxViewShell::Current(); + SfxViewShell* pViewShell = GetView() ? GetView() : SfxViewShell::Current(); SfxBindings& rBindings( pViewShell->GetViewFrame()->GetBindings() ); - VclPtr<SwWatermarkDialog> pDlg(VclPtr<SwWatermarkDialog>::Create(&GetView()->GetViewFrame()->GetWindow(), rBindings)); - pDlg->StartExecuteAsync([](sal_Int32 /*nResult*/){}); + std::shared_ptr<SwWatermarkDialog> xDlg(new SwWatermarkDialog(pViewShell->GetViewFrame()->GetWindow().GetFrameWeld(), + rBindings)); + weld::DialogController::runAsync(xDlg, [](sal_Int32 /*nResult*/){}); } } } diff --git a/sw/source/uibase/dialog/watermarkdialog.cxx b/sw/source/uibase/dialog/watermarkdialog.cxx index 1a61670945f0..f3fbdb2bd907 100644 --- a/sw/source/uibase/dialog/watermarkdialog.cxx +++ b/sw/source/uibase/dialog/watermarkdialog.cxx @@ -19,36 +19,21 @@ #include <sfx2/watermarkitem.hxx> #include <svtools/ctrltool.hxx> -SwWatermarkDialog::SwWatermarkDialog( vcl::Window* pParent, SfxBindings& rBindings ) -: ModelessDialog( pParent, "WatermarkDialog", "modules/swriter/ui/watermarkdialog.ui" ) -, m_rBindings( rBindings ) +SwWatermarkDialog::SwWatermarkDialog(weld::Window* pParent, SfxBindings& rBindings) + : GenericDialogController(pParent, "modules/swriter/ui/watermarkdialog.ui", "WatermarkDialog") + , m_rBindings(rBindings) + , m_xTextInput(m_xBuilder->weld_entry("TextInput")) + , m_xOKButton(m_xBuilder->weld_button("ok")) + , m_xFont(m_xBuilder->weld_combo_box_text("FontBox")) + , m_xAngle(m_xBuilder->weld_metric_spin_button("Angle", FUNIT_DEGREE)) + , m_xTransparency(m_xBuilder->weld_metric_spin_button("Transparency", FUNIT_PERCENT)) + , m_xColor(new ColorListBox(m_xBuilder->weld_menu_button("Color"), m_xDialog.get())) { - get( m_pTextInput, "TextInput" ); - get( m_pOKButton, "ok" ); - get( m_pFont, "FontBox" ); - get( m_pAngle, "Angle" ); - get( m_pTransparency, "Transparency" ); - get( m_pColor, "Color" ); - InitFields(); - Update(); } SwWatermarkDialog::~SwWatermarkDialog() { - disposeOnce(); -} - -void SwWatermarkDialog::dispose() -{ - m_pFont.clear(); - m_pAngle.clear(); - m_pTransparency.clear(); - m_pColor.clear(); - m_pTextInput.clear(); - m_pOKButton.clear(); - - ModelessDialog::dispose(); } void SwWatermarkDialog::InitFields() @@ -68,9 +53,14 @@ void SwWatermarkDialog::InitFields() pFontList = xFontList.get(); } - m_pFont->Fill( pFontList ); + sal_uInt16 nFontCount = pFontList->GetFontNameCount(); + for (sal_uInt16 i = 0; i < nFontCount; ++i) + { + const FontMetric& rFontMetric = pFontList->GetFontName(i); + m_xFont->append_text(rFontMetric.GetFamilyName()); + } - m_pOKButton->SetClickHdl( LINK( this, SwWatermarkDialog, OKButtonHdl ) ); + m_xOKButton->connect_clicked(LINK(this, SwWatermarkDialog, OKButtonHdl)); // Get watermark properties const SfxPoolItem* pItem; @@ -80,29 +70,29 @@ void SwWatermarkDialog::InitFields() { const SfxWatermarkItem* pWatermark = static_cast<const SfxWatermarkItem*>( pItem ); OUString sText = pWatermark->GetText(); - m_pTextInput->SetText( sText ); - m_pFont->SelectEntryPos( m_pFont->GetEntryPos( pWatermark->GetFont() ) ); - m_pAngle->SetValue( pWatermark->GetAngle() ); - m_pColor->SelectEntry( pWatermark->GetColor() ); - m_pTransparency->SetValue( pWatermark->GetTransparency() ); + m_xTextInput->set_text(sText); + m_xFont->set_entry_text(pWatermark->GetFont()); + m_xAngle->set_value(pWatermark->GetAngle(), FUNIT_DEGREE); + m_xColor->SelectEntry( pWatermark->GetColor() ); + m_xTransparency->set_value(pWatermark->GetTransparency(), FUNIT_PERCENT); } } -IMPL_LINK_NOARG( SwWatermarkDialog, OKButtonHdl, Button*, void ) +IMPL_LINK_NOARG(SwWatermarkDialog, OKButtonHdl, weld::Button&, void) { - OUString sText = m_pTextInput->GetText(); + OUString sText = m_xTextInput->get_text(); css::uno::Sequence<css::beans::PropertyValue> aPropertyValues( comphelper::InitPropertySequence( { { "Text", css::uno::makeAny( sText ) }, - { "Font", css::uno::makeAny( m_pFont->GetSelectedEntry() ) }, - { "Angle", css::uno::makeAny( static_cast<sal_Int16>( m_pAngle->GetValue() ) ) }, - { "Transparency", css::uno::makeAny( static_cast<sal_Int16>( m_pTransparency->GetValue() ) ) }, - { "Color", css::uno::makeAny( static_cast<sal_uInt32>( m_pColor->GetSelectEntryColor().GetRGBColor() ) ) } + { "Font", css::uno::makeAny( m_xFont->get_active_text() ) }, + { "Angle", css::uno::makeAny( static_cast<sal_Int16>( m_xAngle->get_value(FUNIT_DEGREE) ) ) }, + { "Transparency", css::uno::makeAny( static_cast<sal_Int16>( m_xTransparency->get_value(FUNIT_PERCENT) ) ) }, + { "Color", css::uno::makeAny( static_cast<sal_uInt32>( m_xColor->GetSelectEntryColor().GetRGBColor() ) ) } } ) ); comphelper::dispatchCommand( ".uno:Watermark", aPropertyValues ); - Close(); + m_xDialog->response(RET_OK); } /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/sw/source/uibase/inc/watermarkdialog.hxx b/sw/source/uibase/inc/watermarkdialog.hxx index b443fbce797d..68f7d3d40a5f 100644 --- a/sw/source/uibase/inc/watermarkdialog.hxx +++ b/sw/source/uibase/inc/watermarkdialog.hxx @@ -10,31 +10,28 @@ #define INCLUDED_SW_SOURCE_UIBASE_INC_WATERMARKDIALOG_HXX #include <sfx2/bindings.hxx> -#include <vcl/field.hxx> -#include <vcl/layout.hxx> -#include <svtools/ctrlbox.hxx> +#include <vcl/weld.hxx> #include <svx/colorbox.hxx> -class SwWatermarkDialog : public ModelessDialog +class SwWatermarkDialog : public weld::GenericDialogController { public: - SwWatermarkDialog( vcl::Window* pParent, SfxBindings& rBindings ); + SwWatermarkDialog(weld::Window* pParent, SfxBindings& rBindings); virtual ~SwWatermarkDialog() override; - virtual void dispose() override; void InitFields(); private: - DECL_LINK( OKButtonHdl, Button*, void ); + DECL_LINK(OKButtonHdl, weld::Button&, void); SfxBindings& m_rBindings; - VclPtr<Edit> m_pTextInput; - VclPtr<PushButton> m_pOKButton; - VclPtr<FontNameBox> m_pFont; - VclPtr<NumericField> m_pAngle; - VclPtr<NumericField> m_pTransparency; - VclPtr<SvxColorListBox> m_pColor; + std::unique_ptr<weld::Entry> m_xTextInput; + std::unique_ptr<weld::Button> m_xOKButton; + std::unique_ptr<weld::ComboBoxText> m_xFont; + std::unique_ptr<weld::MetricSpinButton> m_xAngle; + std::unique_ptr<weld::MetricSpinButton> m_xTransparency; + std::unique_ptr<ColorListBox> m_xColor; }; #endif |