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

weld SdInsertLayerDlg

Change-Id: I1f298fe6bf1bbd1dc8edc6386bf4466d5ac1e05a
Reviewed-on: https://gerrit.libreoffice.org/53651Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst e0958329
......@@ -185,7 +185,7 @@ public:
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) = 0;
virtual VclPtr<AbstractSdModifyFieldDlg> CreateSdModifyFieldDlg(vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet) = 0;
virtual VclPtr<AbstractSdSnapLineDlg> CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) = 0;
virtual VclPtr<AbstractSdInsertLayerDlg> CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) = 0;
virtual VclPtr<AbstractSdInsertLayerDlg> CreateSdInsertLayerDlg(weld::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& rStr) = 0;
virtual VclPtr<AbstractSdInsertPagesObjsDlg> CreateSdInsertPagesObjsDlg(vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName) = 0;
virtual VclPtr<AbstractMorphDlg> CreateMorphDlg(weld::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) = 0;
virtual VclPtr<SfxAbstractTabDialog> CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) = 0;
......
......@@ -372,8 +372,9 @@ VclPtr<VclAbstractDialog> SdDialogsTest::createDialogByID(sal_uInt32 nID)
aNewAttr.Put(makeSdAttrLayerPrintable());
aNewAttr.Put(makeSdAttrLayerLocked());
aNewAttr.Put(makeSdAttrLayerThisPage());
auto const parent = getViewShell()->GetActiveWindow();
pRetval = getSdAbstractDialogFactory()->CreateSdInsertLayerDlg(
getViewShell()->GetActiveWindow(),
parent == nullptr ? nullptr : parent->GetFrameWeld(),
aNewAttr,
true, // alternative: false
SdResId(STR_INSERTLAYER) /* alternative: STR_MODIFYLAYER */);
......
......@@ -18,60 +18,46 @@
*/
#include <svl/itemset.hxx>
#include <vcl/layout.hxx>
#include <sdattr.hxx>
#include <layeroptionsdlg.hxx>
SdInsertLayerDlg::SdInsertLayerDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
bool bDeletable, const OUString& rStr )
: ModalDialog(pWindow, "InsertLayerDialog", "modules/sdraw/ui/insertlayer.ui")
SdInsertLayerDlg::SdInsertLayerDlg(weld::Window* pWindow, const SfxItemSet& rInAttrs,
bool bDeletable, const OUString& rStr)
: GenericDialogController(pWindow, "modules/sdraw/ui/insertlayer.ui", "InsertLayerDialog")
, mrOutAttrs(rInAttrs)
, m_xEdtName(m_xBuilder->weld_entry("name"))
, m_xEdtTitle(m_xBuilder->weld_entry("title"))
, m_xEdtDesc(m_xBuilder->weld_text_view("textview"))
, m_xCbxVisible(m_xBuilder->weld_check_button("visible"))
, m_xCbxPrintable(m_xBuilder->weld_check_button("printable"))
, m_xCbxLocked(m_xBuilder->weld_check_button("locked"))
, m_xNameFrame(m_xBuilder->weld_widget("nameframe"))
{
SetText(rStr);
get(m_pEdtName, "name");
get(m_pEdtTitle, "title");
get(m_pEdtDesc, "textview");
get(m_pCbxVisible, "visible");
get(m_pCbxPrintable, "printable");
get(m_pCbxLocked, "locked");
m_pEdtName->SetText( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_NAME ) ).GetValue() );
m_pEdtTitle->SetText( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_TITLE ) ).GetValue() );
m_pEdtDesc->SetText( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_DESC ) ).GetValue() );
m_pEdtDesc->set_height_request(4 * m_pEdtDesc->GetTextHeight());
m_pCbxVisible->Check( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_VISIBLE ) ).GetValue() );
m_pCbxPrintable->Check( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_PRINTABLE ) ).GetValue() );
m_pCbxLocked->Check( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_LOCKED ) ).GetValue() );
get<VclContainer>("nameframe")->Enable(bDeletable);
m_xDialog->set_title(rStr);
m_xEdtName->set_text( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_NAME ) ).GetValue() );
m_xEdtTitle->set_text( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_TITLE ) ).GetValue() );
m_xEdtDesc->set_text( static_cast<const SfxStringItem&>( mrOutAttrs.Get( ATTR_LAYER_DESC ) ).GetValue() );
m_xEdtDesc->set_size_request(-1, m_xEdtDesc->get_height_rows(4));
m_xCbxVisible->set_active( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_VISIBLE ) ).GetValue() );
m_xCbxPrintable->set_active( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_PRINTABLE ) ).GetValue() );
m_xCbxLocked->set_active( static_cast<const SfxBoolItem&>( mrOutAttrs.Get( ATTR_LAYER_LOCKED ) ).GetValue() );
m_xNameFrame->set_sensitive(bDeletable);
}
SdInsertLayerDlg::~SdInsertLayerDlg()
{
disposeOnce();
}
void SdInsertLayerDlg::dispose()
{
m_pEdtName.clear();
m_pEdtTitle.clear();
m_pEdtDesc.clear();
m_pCbxVisible.clear();
m_pCbxPrintable.clear();
m_pCbxLocked.clear();
ModalDialog::dispose();
}
void SdInsertLayerDlg::GetAttr( SfxItemSet& rAttrs )
{
rAttrs.Put( makeSdAttrLayerName( m_pEdtName->GetText() ) );
rAttrs.Put( makeSdAttrLayerTitle( m_pEdtTitle->GetText() ) );
rAttrs.Put( makeSdAttrLayerDesc( m_pEdtDesc->GetText() ) );
rAttrs.Put( makeSdAttrLayerVisible( m_pCbxVisible->IsChecked() ) );
rAttrs.Put( makeSdAttrLayerPrintable( m_pCbxPrintable->IsChecked() ) );
rAttrs.Put( makeSdAttrLayerLocked( m_pCbxLocked->IsChecked() ) );
rAttrs.Put( makeSdAttrLayerName( m_xEdtName->get_text() ) );
rAttrs.Put( makeSdAttrLayerTitle( m_xEdtTitle->get_text() ) );
rAttrs.Put( makeSdAttrLayerDesc( m_xEdtDesc->get_text() ) );
rAttrs.Put( makeSdAttrLayerVisible( m_xCbxVisible->get_active() ) );
rAttrs.Put( makeSdAttrLayerPrintable( m_xCbxPrintable->get_active() ) );
rAttrs.Put( makeSdAttrLayerLocked( m_xCbxLocked->get_active() ) );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -53,7 +53,12 @@ IMPL_ABSTDLG_BASE(SdAbstractTabDialog_Impl);
IMPL_ABSTDLG_BASE(SdPresLayoutTemplateDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractSdModifyFieldDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractSdSnapLineDlg_Impl);
IMPL_ABSTDLG_BASE(AbstractSdInsertLayerDlg_Impl);
short AbstractSdInsertLayerDlg_Impl::Execute()
{
return m_xDlg->run();
}
IMPL_ABSTDLG_BASE(AbstractSdInsertPagesObjsDlg_Impl);
short AbstractMorphDlg_Impl::Execute()
......@@ -217,12 +222,12 @@ void AbstractSdSnapLineDlg_Impl::SetText( const OUString& rStr )
void AbstractSdInsertLayerDlg_Impl::GetAttr( SfxItemSet& rOutAttrs )
{
pDlg->GetAttr( rOutAttrs );
m_xDlg->GetAttr(rOutAttrs);
}
void AbstractSdInsertLayerDlg_Impl::SetHelpId( const OString& rHelpId )
{
pDlg->SetHelpId( rHelpId );
m_xDlg->set_help_id(rHelpId);
}
std::vector<OUString> AbstractSdInsertPagesObjsDlg_Impl::GetList(const sal_uInt16 nType)
......@@ -334,9 +339,9 @@ VclPtr<AbstractSdSnapLineDlg> SdAbstractDialogFactory_Impl::CreateSdSnapLineDlg(
return VclPtr<AbstractSdSnapLineDlg_Impl>::Create( VclPtr<SdSnapLineDlg>::Create( pParent, rInAttrs, pView ) );
}
VclPtr<AbstractSdInsertLayerDlg> SdAbstractDialogFactory_Impl::CreateSdInsertLayerDlg( vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr )
VclPtr<AbstractSdInsertLayerDlg> SdAbstractDialogFactory_Impl::CreateSdInsertLayerDlg(weld::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr)
{
return VclPtr<AbstractSdInsertLayerDlg_Impl>::Create( VclPtr<SdInsertLayerDlg>::Create( pParent, rInAttrs, bDeletable, aStr ) );
return VclPtr<AbstractSdInsertLayerDlg_Impl>::Create(new SdInsertLayerDlg(pParent, rInAttrs, bDeletable, aStr));
}
VclPtr<AbstractSdInsertPagesObjsDlg> SdAbstractDialogFactory_Impl::CreateSdInsertPagesObjsDlg( vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName )
......
......@@ -154,7 +154,14 @@ class AbstractSdSnapLineDlg_Impl : public AbstractSdSnapLineDlg
class SdInsertLayerDlg;
class AbstractSdInsertLayerDlg_Impl : public AbstractSdInsertLayerDlg
{
DECL_ABSTDLG_BASE(AbstractSdInsertLayerDlg_Impl,SdInsertLayerDlg)
private:
std::unique_ptr<SdInsertLayerDlg> m_xDlg;
public:
AbstractSdInsertLayerDlg_Impl(SdInsertLayerDlg* pDlg)
: m_xDlg(pDlg)
{
}
virtual short Execute() override;
virtual void GetAttr( SfxItemSet& rOutAttrs ) override ;
//from class Window
virtual void SetHelpId( const OString& rHelpId ) override ;
......@@ -239,7 +246,7 @@ public:
virtual VclPtr<SfxAbstractTabDialog> CreateSdTabPageDialog(vcl::Window* pWindow, const SfxItemSet* pAttr, SfxObjectShell* pDocShell, bool bAreaPage) override;
virtual VclPtr<AbstractSdModifyFieldDlg> CreateSdModifyFieldDlg( vcl::Window* pWindow, const SvxFieldData* pInField, const SfxItemSet& rSet ) override;
virtual VclPtr<AbstractSdSnapLineDlg> CreateSdSnapLineDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, ::sd::View* pView) override;
virtual VclPtr<AbstractSdInsertLayerDlg> CreateSdInsertLayerDlg(vcl::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) override;
virtual VclPtr<AbstractSdInsertLayerDlg> CreateSdInsertLayerDlg(weld::Window* pParent, const SfxItemSet& rInAttrs, bool bDeletable, const OUString& aStr) override;
virtual VclPtr<AbstractSdInsertPagesObjsDlg> CreateSdInsertPagesObjsDlg(vcl::Window* pParent, const SdDrawDocument* pDoc, SfxMedium* pSfxMedium, const OUString& rFileName ) override;
virtual VclPtr<AbstractMorphDlg> CreateMorphDlg(weld::Window* pParent, const SdrObject* pObj1, const SdrObject* pObj2) override;
virtual VclPtr<SfxAbstractTabDialog> CreateSdOutlineBulletTabDlg(vcl::Window* pParent, const SfxItemSet* pAttr, ::sd::View* pView) override;
......
......@@ -22,32 +22,28 @@
#include <sddllapi.h>
#include <vcl/edit.hxx>
#include <vcl/fixed.hxx>
#include <vcl/dialog.hxx>
#include <vcl/button.hxx>
#include <vcl/vclmedit.hxx>
#include <vcl/weld.hxx>
class SfxItemSet;
class SD_DLLPUBLIC SdInsertLayerDlg : public ModalDialog
class SD_DLLPUBLIC SdInsertLayerDlg : public weld::GenericDialogController
{
private:
VclPtr<Edit> m_pEdtName;
VclPtr<Edit> m_pEdtTitle;
VclPtr<VclMultiLineEdit> m_pEdtDesc;
VclPtr<CheckBox> m_pCbxVisible;
VclPtr<CheckBox> m_pCbxPrintable;
VclPtr<CheckBox> m_pCbxLocked;
const SfxItemSet& mrOutAttrs;
std::unique_ptr<weld::Entry> m_xEdtName;
std::unique_ptr<weld::Entry> m_xEdtTitle;
std::unique_ptr<weld::TextView> m_xEdtDesc;
std::unique_ptr<weld::CheckButton> m_xCbxVisible;
std::unique_ptr<weld::CheckButton> m_xCbxPrintable;
std::unique_ptr<weld::CheckButton> m_xCbxLocked;
std::unique_ptr<weld::Widget> m_xNameFrame;
public:
SdInsertLayerDlg( vcl::Window* pWindow, const SfxItemSet& rInAttrs,
bool bDeletable, const OUString& rStr );
SdInsertLayerDlg(weld::Window* pWindow, const SfxItemSet& rInAttrs,
bool bDeletable, const OUString& rStr);
virtual ~SdInsertLayerDlg() override;
virtual void dispose() override;
void GetAttr( SfxItemSet& rOutAttrs );
};
......
......@@ -1798,7 +1798,8 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
aNewAttr.Put( makeSdAttrLayerThisPage() );
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSdInsertLayerDlg> pDlg(pFact ? pFact->CreateSdInsertLayerDlg(GetActiveWindow(), aNewAttr, true, SdResId(STR_INSERTLAYER)) : nullptr);
vcl::Window* pWin = GetActiveWindow();
ScopedVclPtr<AbstractSdInsertLayerDlg> pDlg(pFact ? pFact->CreateSdInsertLayerDlg(pWin ? pWin->GetFrameWeld() : nullptr, aNewAttr, true, SdResId(STR_INSERTLAYER)) : nullptr);
if( pDlg )
{
pDlg->SetHelpId( SD_MOD()->GetSlotPool()->GetSlot( SID_INSERTLAYER )->GetCommand() );
......@@ -1965,7 +1966,8 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
aNewAttr.Put( makeSdAttrLayerThisPage() );
SdAbstractDialogFactory* pFact = SdAbstractDialogFactory::Create();
ScopedVclPtr<AbstractSdInsertLayerDlg> pDlg(pFact ? pFact->CreateSdInsertLayerDlg(GetActiveWindow(), aNewAttr, bDelete, SdResId(STR_MODIFYLAYER)) : nullptr);
vcl::Window* pWin = GetActiveWindow();
ScopedVclPtr<AbstractSdInsertLayerDlg> pDlg(pFact ? pFact->CreateSdInsertLayerDlg(pWin ? pWin->GetFrameWeld() : nullptr, aNewAttr, bDelete, SdResId(STR_MODIFYLAYER)) : nullptr);
if( pDlg )
{
pDlg->SetHelpId( SD_MOD()->GetSlotPool()->GetSlot( SID_MODIFYLAYER )->GetCommand() );
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.20.4 -->
<interface domain="sd">
<requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="InsertLayerDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="insertlayer|InsertLayerDialog">Insert Layer</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-vbox4">
......@@ -93,6 +96,7 @@
<object class="GtkEntry" id="name">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
<property name="width_chars">54</property>
</object>
</child>
......@@ -132,6 +136,7 @@
<object class="GtkEntry" id="title">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="activates_default">True</property>
<property name="width_chars">54</property>
</object>
</child>
......@@ -175,9 +180,11 @@
<object class="GtkScrolledWindow" id="scrolledwindow1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTextView" id="textview:border">
<object class="GtkTextView" id="textview">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
......@@ -189,7 +196,7 @@
</object>
</child>
<child type="label">
<object class="GtkLabel" id="description">
<object class="GtkLabel" id="description1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes" context="insertlayer|description">_Description</property>
......@@ -268,5 +275,8 @@
<action-widget response="-6">cancel</action-widget>
<action-widget response="-11">help</action-widget>
</action-widgets>
<child>
<placeholder/>
</child>
</object>
</interface>
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