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

weld GraphicFilterPoster

Change-Id: I1e8af81267fdadc725eee8ac28e4dcf038cc50d9
Reviewed-on: https://gerrit.libreoffice.org/60710Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst d85d2060
...@@ -522,44 +522,25 @@ Graphic GraphicFilterSepia::GetFilteredGraphic( const Graphic& rGraphic, double, ...@@ -522,44 +522,25 @@ Graphic GraphicFilterSepia::GetFilteredGraphic( const Graphic& rGraphic, double,
return aRet; return aRet;
} }
GraphicFilterPoster::GraphicFilterPoster(weld::Window* pParent, const Graphic& rGraphic,
GraphicFilterPoster::GraphicFilterPoster(vcl::Window* pParent, const Graphic& rGraphic,
sal_uInt16 nPosterCount) sal_uInt16 nPosterCount)
: GraphicFilterDialog(pParent, "PosterDialog", : GraphicFilterDialogController(pParent, "cui/ui/posterdialog.ui", "PosterDialog", rGraphic)
"cui/ui/posterdialog.ui", rGraphic) , mxNumPoster(m_xBuilder->weld_spin_button("value"))
{ {
get(mpNumPoster, "value"); mxNumPoster->set_range(2, rGraphic.GetBitmapEx().GetBitCount());
mxNumPoster->set_value(nPosterCount);
mpNumPoster->SetFirst( 2 ); mxNumPoster->connect_value_changed(LINK(this, GraphicFilterPoster, EditModifyHdl));
mpNumPoster->SetLast( rGraphic.GetBitmapEx().GetBitCount() );
mpNumPoster->SetValue( nPosterCount );
mpNumPoster->SetModifyHdl( LINK(this, GraphicFilterPoster, EditModifyHdl) );
} }
IMPL_LINK_NOARG(GraphicFilterPoster, EditModifyHdl, weld::SpinButton&, void)
IMPL_LINK_NOARG(GraphicFilterPoster, EditModifyHdl, Edit&, void)
{ {
GetModifyHdl().Call(nullptr); GetModifyHdl().Call(nullptr);
} }
GraphicFilterPoster::~GraphicFilterPoster()
{
disposeOnce();
}
void GraphicFilterPoster::dispose()
{
mpNumPoster.clear();
GraphicFilterDialog::dispose();
}
Graphic GraphicFilterPoster::GetFilteredGraphic( const Graphic& rGraphic, double, double ) Graphic GraphicFilterPoster::GetFilteredGraphic( const Graphic& rGraphic, double, double )
{ {
Graphic aRet; Graphic aRet;
const sal_uInt16 nPosterCount = static_cast<sal_uInt16>(mpNumPoster->GetValue()); const sal_uInt16 nPosterCount = static_cast<sal_uInt16>(mxNumPoster->get_value());
if( rGraphic.IsAnimated() ) if( rGraphic.IsAnimated() )
{ {
......
...@@ -1285,11 +1285,10 @@ VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFil ...@@ -1285,11 +1285,10 @@ VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFil
return VclPtr<AbstractGraphicFilterDialogController_Impl>::Create(o3tl::make_unique<GraphicFilterEmboss>(pParent, rGraphic, RectPoint::MM)); return VclPtr<AbstractGraphicFilterDialogController_Impl>::Create(o3tl::make_unique<GraphicFilterEmboss>(pParent, rGraphic, RectPoint::MM));
} }
VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterPoster(vcl::Window* pParent, VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterPoster(weld::Window* pParent,
const Graphic& rGraphic) const Graphic& rGraphic)
{ {
VclPtrInstance<GraphicFilterPoster> pDlg( pParent, rGraphic, 16 ); return VclPtr<AbstractGraphicFilterDialogController_Impl>::Create(o3tl::make_unique<GraphicFilterPoster>(pParent, rGraphic, 16));
return VclPtr<AbstractGraphicFilterDialog_Impl>::Create( pDlg );
} }
VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSepia(weld::Window* pParent, VclPtr<AbstractGraphicFilterDialog> AbstractDialogFactory_Impl::CreateGraphicFilterSepia(weld::Window* pParent,
......
...@@ -755,7 +755,7 @@ public: ...@@ -755,7 +755,7 @@ public:
const Link<FmSearchContext&,sal_uInt32>& lnkContextSupplier) override; const Link<FmSearchContext&,sal_uInt32>& lnkContextSupplier) override;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterEmboss(weld::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterEmboss(weld::Window* pParent,
const Graphic& rGraphic) override; const Graphic& rGraphic) override;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterPoster(vcl::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterPoster(weld::Window* pParent,
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;
......
...@@ -209,17 +209,14 @@ public: ...@@ -209,17 +209,14 @@ public:
virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) override; virtual Graphic GetFilteredGraphic( const Graphic& rGraphic, double fScaleX, double fScaleY ) override;
}; };
class GraphicFilterPoster : public GraphicFilterDialog class GraphicFilterPoster : public GraphicFilterDialogController
{ {
private: private:
VclPtr<NumericField> mpNumPoster; std::unique_ptr<weld::SpinButton> mxNumPoster;
DECL_LINK(EditModifyHdl, Edit&, void); DECL_LINK(EditModifyHdl, weld::SpinButton&, void);
public: public:
GraphicFilterPoster( vcl::Window* pParent, const Graphic& rGraphic, GraphicFilterPoster(weld::Window* pParent, const Graphic& rGraphic,
sal_uInt16 nPosterColorCount ); sal_uInt16 nPosterColorCount);
virtual ~GraphicFilterPoster() 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"/> <requires lib="LibreOffice" version="1.0"/>
...@@ -14,7 +14,13 @@ ...@@ -14,7 +14,13 @@
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="border_width">6</property> <property name="border_width">6</property>
<property name="title" translatable="yes" context="posterdialog|PosterDialog">Posterize</property> <property name="title" translatable="yes" context="posterdialog|PosterDialog">Posterize</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>
...@@ -101,11 +107,28 @@ ...@@ -101,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>
...@@ -132,10 +155,10 @@ ...@@ -132,10 +155,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="posterdialog|label2">Poster colors:</property> <property name="label" translatable="yes" context="posterdialog|label2">Poster colors:</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="mnemonic_widget">value</property> <property name="mnemonic_widget">value</property>
<property name="xalign">0</property>
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
......
...@@ -414,7 +414,7 @@ public: ...@@ -414,7 +414,7 @@ public:
const Link<FmSearchContext&,sal_uInt32>& lnkContextSupplier)=0; const Link<FmSearchContext&,sal_uInt32>& lnkContextSupplier)=0;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterEmboss(weld::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterEmboss(weld::Window* pParent,
const Graphic& rGraphic)=0; const Graphic& rGraphic)=0;
virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterPoster(vcl::Window* pParent, virtual VclPtr<AbstractGraphicFilterDialog> CreateGraphicFilterPoster(weld::Window* pParent,
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;
......
...@@ -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, rGraphic)); ScopedVclPtr<AbstractGraphicFilterDialog> aDlg(pFact->CreateGraphicFilterPoster(pWindow ? pWindow->GetFrameWeld() : nullptr, 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