summaryrefslogtreecommitdiff
path: root/sw/source/uibase
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-06-19 16:40:38 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2018-07-03 17:46:55 +0200
commitbf1e097c16f9dd672ea43234cbe0eb64c82fd37e (patch)
treeb2d0cd211bc13e7225f8769e3c1fc3a28b7aa441 /sw/source/uibase
parentdd645e70108f31aab611634e77c120e5efe52d05 (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.cxx7
-rw-r--r--sw/source/uibase/dialog/watermarkdialog.cxx66
-rw-r--r--sw/source/uibase/inc/watermarkdialog.hxx23
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