Kaydet (Commit) d6cee8ad authored tarafından Caolán McNamara's avatar Caolán McNamara

weld GraphicFilterSmooth

Change-Id: I9f92b49bff105965c13e5977ef39788c6684da29
Reviewed-on: https://gerrit.libreoffice.org/60711Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 65b5fc8f
...@@ -370,42 +370,24 @@ Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic, ...@@ -370,42 +370,24 @@ Graphic GraphicFilterMosaic::GetFilteredGraphic( const Graphic& rGraphic,
return aRet; return aRet;
} }
GraphicFilterSmooth::GraphicFilterSmooth(weld::Window* pParent, const Graphic& rGraphic, double nRadius)
GraphicFilterSmooth::GraphicFilterSmooth( vcl::Window* pParent, const Graphic& rGraphic, double nRadius) : GraphicFilterDialogController(pParent, "cui/ui/smoothdialog.ui", "SmoothDialog", rGraphic)
: GraphicFilterDialog(pParent, "SmoothDialog", , mxMtrRadius(m_xBuilder->weld_spin_button("radius"))
"cui/ui/smoothdialog.ui", rGraphic)
{ {
get(mpMtrRadius, "radius"); mxMtrRadius->set_value(nRadius * 10);
mxMtrRadius->connect_value_changed(LINK(this, GraphicFilterSmooth, EditModifyHdl));
mpMtrRadius->SetValue( nRadius* 10 ); mxMtrRadius->grab_focus();
mpMtrRadius->SetModifyHdl( LINK(this, GraphicFilterSmooth, EditModifyHdl) );
mpMtrRadius->GrabFocus();
} }
IMPL_LINK_NOARG(GraphicFilterSmooth, EditModifyHdl, weld::SpinButton&, void)
IMPL_LINK_NOARG(GraphicFilterSmooth, EditModifyHdl, Edit&, void)
{ {
GetModifyHdl().Call(nullptr); GetModifyHdl().Call(nullptr);
} }
GraphicFilterSmooth::~GraphicFilterSmooth()
{
disposeOnce();
}
void GraphicFilterSmooth::dispose()
{
mpMtrRadius.clear();
GraphicFilterDialog::dispose();
}
Graphic GraphicFilterSmooth::GetFilteredGraphic( const Graphic& rGraphic, double, double ) Graphic GraphicFilterSmooth::GetFilteredGraphic( const Graphic& rGraphic, double, double )
{ {
Graphic aRet; Graphic aRet;
double nRadius = mpMtrRadius->GetValue() / 10.0; double nRadius = mxMtrRadius->get_value() / 10.0;
if( rGraphic.IsAnimated() ) if( rGraphic.IsAnimated() )
{ {
......
...@@ -1297,11 +1297,10 @@ VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFil ...@@ -1297,11 +1297,10 @@ VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFil
return VclPtr<AbstractGraphicFilterDialogController_Impl>::Create(o3tl::make_unique<GraphicFilterSepia>(pParent, rGraphic, 10)); return VclPtr<AbstractGraphicFilterDialogController_Impl>::Create(o3tl::make_unique<GraphicFilterSepia>(pParent, rGraphic, 10));
} }
VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSmooth(vcl::Window* pParent, VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSmooth(weld::Window* pParent,
const Graphic& rGraphic, double nRadius) const Graphic& rGraphic, double nRadius)
{ {
VclPtrInstance<GraphicFilterSmooth> pDlg( pParent, rGraphic, nRadius ); return VclPtr<AbstractGraphicFilterDialogController_Impl>::Create(o3tl::make_unique<GraphicFilterSmooth>(pParent, rGraphic, nRadius));
return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
} }
VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSolarize(weld::Window* pParent, VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSolarize(weld::Window* pParent,
......
...@@ -759,7 +759,7 @@ public: ...@@ -759,7 +759,7 @@ public:
const Graphic& rGraphic) override; const Graphic& rGraphic) override;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSepia(weld::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSepia(weld::Window* pParent,
const Graphic& rGraphic) override; const Graphic& rGraphic) override;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSmooth (vcl::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSmooth(weld::Window* pParent,
const Graphic& rGraphic, double nRadius) override; const Graphic& rGraphic, double nRadius) override;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSolarize(weld::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSolarize(weld::Window* pParent,
const Graphic& rGraphic) override; const Graphic& rGraphic) override;
......
...@@ -151,18 +151,15 @@ public: ...@@ -151,18 +151,15 @@ public:
virtual Graphic GetFilteredGraphic(const Graphic& rGraphic, double fScaleX, double fScaleY) = 0; virtual Graphic GetFilteredGraphic(const Graphic& rGraphic, double fScaleX, double fScaleY) = 0;
}; };
class GraphicFilterSmooth : public GraphicFilterDialog class GraphicFilterSmooth : public GraphicFilterDialogController
{ {
private: private:
VclPtr<NumericField> mpMtrRadius; std::unique_ptr<weld::SpinButton> mxMtrRadius;
DECL_LINK(EditModifyHdl, Edit&, void); DECL_LINK(EditModifyHdl, weld::SpinButton&, void);
public: public:
GraphicFilterSmooth( vcl::Window* pParent, const Graphic& rGraphic, double nRadius); GraphicFilterSmooth(weld::Window* pParent, const Graphic& rGraphic, double nRadius);
virtual ~GraphicFilterSmooth() override;
virtual void dispose() override;
virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) override; virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) override;
}; };
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 --> <!-- Generated with glade 3.22.1 -->
<interface domain="cui"> <interface domain="cui">
<requires lib="gtk+" version="3.18"/> <requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkAdjustment" id="adjustment1"> <object class="GtkAdjustment" id="adjustment1">
<property name="lower">0.10000000000000001</property> <property name="lower">0.10000000000000001</property>
<property name="upper">100</property> <property name="upper">100</property>
...@@ -15,7 +14,13 @@ ...@@ -15,7 +14,13 @@
<property name="border_width">6</property> <property name="border_width">6</property>
<property name="title" translatable="yes" context="smoothdialog|SmoothDialog">Smooth</property> <property name="title" translatable="yes" context="smoothdialog|SmoothDialog">Smooth</property>
<property name="resizable">False</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> <property name="type_hint">dialog</property>
<child>
<placeholder/>
</child>
<child internal-child="vbox"> <child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1"> <object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property> <property name="can_focus">False</property>
...@@ -102,11 +107,28 @@ ...@@ -102,11 +107,28 @@
<property name="vexpand">True</property> <property name="vexpand">True</property>
<property name="column_spacing">24</property> <property name="column_spacing">24</property>
<child> <child>
<object class="cuilo-GraphicPreviewWindow" id="preview"> <object class="GtkScrolledWindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<property name="vexpand">True</property> <property name="vexpand">True</property>
<property name="hscrollbar_policy">never</property>
<property name="vscrollbar_policy">never</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<child>
<object class="GtkDrawingArea" id="preview">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
</object>
</child>
</object>
</child>
</object> </object>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
...@@ -134,10 +156,10 @@ ...@@ -134,10 +156,10 @@
<object class="GtkLabel" id="label2"> <object class="GtkLabel" id="label2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="smoothdialog|label2">_Smooth radius:</property> <property name="label" translatable="yes" context="smoothdialog|label2">_Smooth radius:</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="mnemonic_widget">radius</property> <property name="mnemonic_widget">radius</property>
<property name="xalign">0</property>
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
......
...@@ -418,7 +418,7 @@ public: ...@@ -418,7 +418,7 @@ public:
const Graphic& rGraphic)=0; const Graphic& rGraphic)=0;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSepia(weld::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSepia(weld::Window* pParent,
const Graphic& rGraphic)=0; const Graphic& rGraphic)=0;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSmooth (vcl::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSmooth(weld::Window* pParent,
const Graphic& rGraphic, const Graphic& rGraphic,
double nRadius)=0; double nRadius)=0;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSolarize(weld::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterSolarize(weld::Window* pParent,
......
...@@ -42,7 +42,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const ...@@ -42,7 +42,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const
{ {
SfxViewFrame* pViewFrame = SfxViewFrame::Current(); SfxViewFrame* pViewFrame = SfxViewFrame::Current();
SfxObjectShell* pShell = pViewFrame ? pViewFrame->GetObjectShell() : nullptr; SfxObjectShell* pShell = pViewFrame ? pViewFrame->GetObjectShell() : nullptr;
vcl::Window* pWindow = ( pViewFrame && pViewFrame->GetViewShell() ) ? pViewFrame->GetViewShell()->GetWindow() : nullptr; weld::Window* pFrameWeld = (pViewFrame && pViewFrame->GetViewShell()) ? pViewFrame->GetViewShell()->GetFrameWeld() : nullptr;
Graphic aGraphic; Graphic aGraphic;
switch( rReq.GetSlot() ) switch( rReq.GetSlot() )
...@@ -75,7 +75,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const ...@@ -75,7 +75,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const
case SID_GRFFILTER_SMOOTH: case SID_GRFFILTER_SMOOTH:
{ {
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterSmooth(pWindow, rGraphic, 0.7)); ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterSmooth(pFrameWeld, rGraphic, 0.7));
if( aDlg->Execute() == RET_OK ) if( aDlg->Execute() == RET_OK )
aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
} }
...@@ -159,7 +159,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const ...@@ -159,7 +159,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const
case SID_GRFFILTER_MOSAIC: case SID_GRFFILTER_MOSAIC:
{ {
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterMosaic(pWindow ? pWindow->GetFrameWeld() : nullptr, rGraphic)); ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterMosaic(pFrameWeld, rGraphic));
if( aDlg->Execute() == RET_OK ) if( aDlg->Execute() == RET_OK )
aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
} }
...@@ -168,7 +168,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const ...@@ -168,7 +168,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const
case SID_GRFFILTER_EMBOSS: case SID_GRFFILTER_EMBOSS:
{ {
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterEmboss(pWindow ? pWindow->GetFrameWeld() : nullptr, rGraphic)); ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterEmboss(pFrameWeld, rGraphic));
if( aDlg->Execute() == RET_OK ) if( aDlg->Execute() == RET_OK )
aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
} }
...@@ -177,7 +177,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const ...@@ -177,7 +177,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const
case SID_GRFFILTER_POSTER: case SID_GRFFILTER_POSTER:
{ {
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterPoster(pWindow ? pWindow->GetFrameWeld() : nullptr, rGraphic)); ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterPoster(pFrameWeld, rGraphic));
if( aDlg->Execute() == RET_OK ) if( aDlg->Execute() == RET_OK )
aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
} }
...@@ -211,7 +211,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const ...@@ -211,7 +211,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const
case SID_GRFFILTER_SEPIA: case SID_GRFFILTER_SEPIA:
{ {
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterSepia(pWindow ? pWindow->GetFrameWeld() : nullptr, rGraphic)); ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterSepia(pFrameWeld, rGraphic));
if( aDlg->Execute() == RET_OK ) if( aDlg->Execute() == RET_OK )
aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
} }
...@@ -220,7 +220,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const ...@@ -220,7 +220,7 @@ SvxGraphicFilterResult SvxGraphicFilter::ExecuteGrfFilterSlot( SfxRequest const
case SID_GRFFILTER_SOLARIZE: case SID_GRFFILTER_SOLARIZE:
{ {
SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterSolarize(pWindow ? pWindow->GetFrameWeld() : nullptr, rGraphic)); ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterSolarize(pFrameWeld, rGraphic));
if( aDlg->Execute() == RET_OK ) if( aDlg->Execute() == RET_OK )
aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 ); aGraphic = aDlg->GetFilteredGraphic( rGraphic, 1.0, 1.0 );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment