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

weld AddInstanceDialog

Change-Id: I69bcb7fb9c18922a5de03e6f2dedd915a5851712
Reviewed-on: https://gerrit.libreoffice.org/54313Tested-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 f645481d
......@@ -100,6 +100,7 @@ class SVT_DLLPUBLIC URLBox
OUString aBaseURL;
rtl::Reference< MatchContext_Impl > pCtx;
std::unique_ptr<SvtURLBox_Impl> pImpl;
bool bHistoryDisabled : 1;
std::unique_ptr<weld::ComboBoxText> m_xWidget;
......@@ -123,6 +124,7 @@ public:
void SetBaseURL( const OUString& rURL );
OUString GetURL();
void DisableHistory();
weld::Widget* getWidget() { return m_xWidget.get(); }
......
......@@ -2010,7 +2010,8 @@ IMPL_LINK_NOARG(URLBox, TryAutoComplete, Timer *, void)
}
URLBox::URLBox(weld::ComboBoxText* pWidget)
: m_xWidget(pWidget)
: bHistoryDisabled(false)
, m_xWidget(pWidget)
{
Init();
......@@ -2044,6 +2045,9 @@ void URLBox::UpdatePicklistForSmartProtocol_Impl()
{
m_xWidget->clear();
if (bHistoryDisabled)
return;
// read history pick list
Sequence< Sequence< PropertyValue > > seqPicklist = SvtHistoryOptions().GetList( ePICKLIST );
sal_uInt32 nCount = seqPicklist.getLength();
......@@ -2201,4 +2205,10 @@ void URLBox::SetBaseURL( const OUString& rURL )
aBaseURL = rURL;
}
void URLBox::DisableHistory()
{
bHistoryDisabled = true;
UpdatePicklistForSmartProtocol_Impl();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -1624,13 +1624,13 @@ namespace svxform
OString sIdent(pBtn->GetCurItemIdent());
if (sIdent == "instancesadd")
{
ScopedVclPtrInstance< AddInstanceDialog > aDlg( this, false );
if ( aDlg->Execute() == RET_OK )
AddInstanceDialog aDlg(GetFrameWeld(), false);
if (aDlg.run() == RET_OK)
{
sal_uInt16 nInst = GetNewPageId();
OUString sName = aDlg->GetName();
OUString sURL = aDlg->GetURL();
bool bLinkOnce = aDlg->IsLinkInstance();
OUString sName = aDlg.GetName();
OUString sURL = aDlg.GetURL();
bool bLinkOnce = aDlg.IsLinkInstance();
try
{
xUIHelper->newInstance( sName, sURL, !bLinkOnce );
......@@ -1655,16 +1655,16 @@ namespace svxform
XFormsPage* pPage = GetCurrentPage( nId );
if ( pPage )
{
ScopedVclPtrInstance< AddInstanceDialog > aDlg( this, true );
aDlg->SetName( pPage->GetInstanceName() );
aDlg->SetURL( pPage->GetInstanceURL() );
aDlg->SetLinkInstance( pPage->GetLinkOnce() );
OUString sOldName = aDlg->GetName();
if ( aDlg->Execute() == RET_OK )
AddInstanceDialog aDlg(GetFrameWeld(), true);
aDlg.SetName( pPage->GetInstanceName() );
aDlg.SetURL( pPage->GetInstanceURL() );
aDlg.SetLinkInstance( pPage->GetLinkOnce() );
OUString sOldName = aDlg.GetName();
if (aDlg.run() == RET_OK)
{
OUString sNewName = aDlg->GetName();
OUString sURL = aDlg->GetURL();
bool bLinkOnce = aDlg->IsLinkInstance();
OUString sNewName = aDlg.GetName();
OUString sURL = aDlg.GetURL();
bool bLinkOnce = aDlg.IsLinkInstance();
try
{
xUIHelper->renameInstance( sOldName,
......@@ -3339,20 +3339,20 @@ namespace svxform
ModalDialog::dispose();
}
AddInstanceDialog::AddInstanceDialog(vcl::Window* pParent, bool _bEdit)
: ModalDialog(pParent, "AddInstanceDialog" , "svx/ui/addinstancedialog.ui")
AddInstanceDialog::AddInstanceDialog(weld::Window* pParent, bool _bEdit)
: GenericDialogController(pParent, "svx/ui/addinstancedialog.ui", "AddInstanceDialog")
, m_xNameED(m_xBuilder->weld_entry("name"))
, m_xURLFT(m_xBuilder->weld_label("urlft"))
, m_xURLED(new URLBox(m_xBuilder->weld_combo_box_text("url")))
, m_xFilePickerBtn(m_xBuilder->weld_button("browse"))
, m_xLinkInstanceCB(m_xBuilder->weld_check_button("link"))
, m_xAltTitle(m_xBuilder->weld_label("alttitle"))
{
get(m_pNameED, "name");
get(m_pURLFT, "urlft");
get(m_pURLED, "url");
get(m_pFilePickerBtn, "browse");
get(m_pLinkInstanceCB, "link");
if ( _bEdit )
SetText(get<FixedText>("alttitle")->GetText());
if (_bEdit)
m_xDialog->set_title(m_xAltTitle->get_label());
m_pURLED->DisableHistory();
m_pFilePickerBtn->SetClickHdl( LINK( this, AddInstanceDialog, FilePickerHdl ) );
m_xURLED->DisableHistory();
m_xFilePickerBtn->connect_clicked(LINK(this, AddInstanceDialog, FilePickerHdl));
// load the filter name from fps resource
m_sAllFilterName = Translate::get(STR_FILTERNAME_ALL, Translate::Create("fps"));
......@@ -3360,24 +3360,13 @@ namespace svxform
AddInstanceDialog::~AddInstanceDialog()
{
disposeOnce();
}
void AddInstanceDialog::dispose()
{
m_pNameED.clear();
m_pURLFT.clear();
m_pURLED.clear();
m_pFilePickerBtn.clear();
m_pLinkInstanceCB.clear();
ModalDialog::dispose();
}
IMPL_LINK_NOARG(AddInstanceDialog, FilePickerHdl, Button*, void)
IMPL_LINK_NOARG(AddInstanceDialog, FilePickerHdl, weld::Button&, void)
{
::sfx2::FileDialogHelper aDlg(
css::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE,
FileDialogFlags::NONE, GetFrameWeld());
FileDialogFlags::NONE, m_xDialog.get());
INetURLObject aFile( SvtPathOptions().GetWorkPath() );
aDlg.AddFilter( m_sAllFilterName, FILEDIALOG_FILTER_ALL );
......@@ -3386,8 +3375,8 @@ namespace svxform
aDlg.SetCurrentFilter( sFilterName );
aDlg.SetDisplayDirectory( aFile.GetMainURL( INetURLObject::DecodeMechanism::NONE ) );
if( aDlg.Execute() == ERRCODE_NONE )
m_pURLED->SetText( aDlg.GetPath() );
if (aDlg.Execute() == ERRCODE_NONE)
m_xURLED->SetText( aDlg.GetPath() );
}
LinkedInstanceWarningBox::LinkedInstanceWarningBox(weld::Widget* pParent)
......
......@@ -85,7 +85,6 @@ namespace svxform
class DataNavigatorWindow;
class AddInstanceDialog;
class DataTreeListBox : public SvTreeListBox
{
private:
......@@ -604,33 +603,32 @@ namespace svxform
};
class AddInstanceDialog : public ModalDialog
class AddInstanceDialog : public weld::GenericDialogController
{
private:
VclPtr<Edit> m_pNameED;
VclPtr<FixedText> m_pURLFT;
VclPtr<SvtURLBox> m_pURLED;
VclPtr<PushButton> m_pFilePickerBtn;
VclPtr<CheckBox> m_pLinkInstanceCB;
OUString m_sAllFilterName;
DECL_LINK(FilePickerHdl, Button*, void);
std::unique_ptr<weld::Entry> m_xNameED;
std::unique_ptr<weld::Label> m_xURLFT;
std::unique_ptr<URLBox> m_xURLED;
std::unique_ptr<weld::Button> m_xFilePickerBtn;
std::unique_ptr<weld::CheckButton> m_xLinkInstanceCB;
std::unique_ptr<weld::Label> m_xAltTitle;
DECL_LINK(FilePickerHdl, weld::Button&, void);
public:
AddInstanceDialog( vcl::Window* pParent, bool _bEdit );
AddInstanceDialog(weld::Window* pParent, bool _bEdit);
virtual ~AddInstanceDialog() override;
virtual void dispose() override;
OUString GetName() const { return m_pNameED->GetText(); }
void SetName( const OUString& _rName ) { m_pNameED->SetText( _rName );}
OUString GetURL() const { return m_pURLED->GetText(); }
void SetURL( const OUString& _rURL ) { m_pURLED->SetText( _rURL );}
bool IsLinkInstance() const { return m_pLinkInstanceCB->IsChecked(); }
void SetLinkInstance( bool _bLink ) { m_pLinkInstanceCB->Check(_bLink); }
OUString GetName() const { return m_xNameED->get_text(); }
void SetName( const OUString& _rName ) { m_xNameED->set_text( _rName );}
OUString GetURL() const { return m_xURLED->get_active_text(); }
void SetURL( const OUString& _rURL ) { m_xURLED->SetText( _rURL );}
bool IsLinkInstance() const { return m_xLinkInstanceCB->get_active(); }
void SetLinkInstance( bool _bLink ) { m_xLinkInstanceCB->set_active(_bLink); }
};
class LinkedInstanceWarningBox : public weld::MessageDialogController
{
public:
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="svx">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
......@@ -7,7 +7,13 @@
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="addinstancedialog|AddInstanceDialog">Add Instance</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>
<placeholder/>
</child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
......@@ -81,6 +87,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">46</property>
</object>
<packing>
......@@ -93,10 +100,10 @@
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<property name="label" translatable="yes" context="addinstancedialog|label2">_Name:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">name</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
......@@ -119,10 +126,10 @@
<object class="GtkLabel" id="urlft">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">1</property>
<property name="label" translatable="yes" context="addinstancedialog|urlft">_URL:</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">name</property>
<property name="xalign">1</property>
</object>
<packing>
<property name="left_attach">0</property>
......@@ -130,10 +137,16 @@
</packing>
</child>
<child>
<object class="svtlo-SvtURLBox" id="url">
<object class="GtkComboBoxText" id="url">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="has_entry">True</property>
<child internal-child="entry">
<object class="GtkEntry">
<property name="can_focus">True</property>
</object>
</child>
</object>
<packing>
<property name="left_attach">1</property>
......
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