weld SwInsertSectionTabPage

Change-Id: Ifdd794ae97eac3885c828f7610135b60ce7b3b7d
Reviewed-on: https://gerrit.libreoffice.org/69282
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
Caolán McNamara
2019-03-15 09:58:26 +01:00
parent 8bddb3c770
commit a98bb35d4e
5 changed files with 307 additions and 188 deletions
@@ -231,6 +231,7 @@ sw/uiconfig/swriter/ui/savemonitordialog.ui://GtkLabel[@id='saving'] orphan-labe
sw/uiconfig/swriter/ui/savemonitordialog.ui://GtkLabel[@id='printer'] orphan-label
sw/uiconfig/swriter/ui/savemonitordialog.ui://GtkLabel[@id='printinfo'] orphan-label
sw/uiconfig/swriter/ui/sectionpage.ui://GtkEntry[@id='filename'] duplicate-mnemonic
sw/uiconfig/swriter/ui/sectionpage.ui://GtkEntry[@id='sectionnames-entry'] no-labelled-by
sw/uiconfig/swriter/ui/selectaddressdialog.ui://GtkLabel[@id='desc'] orphan-label
sw/uiconfig/swriter/ui/selectaddressdialog.ui://GtkLabel[@id='label2'] orphan-label
sw/uiconfig/swriter/ui/selectaddressdialog.ui://svtlo-SvSimpleTableContainer[@id='sources:border'] no-labelled-by
+209 -141
View File
@@ -77,6 +77,7 @@ Image BuildBitmap(bool bProtect, bool bHidden)
}
static void lcl_ReadSections( SfxMedium& rMedium, ComboBox& rBox );
static void lcl_ReadSections( SfxMedium& rMedium, weld::ComboBox& rBox );
static void lcl_FillList( SwWrtShell& rSh, ComboBox& rSubRegions, ComboBox* pAvailNames, const SwSectionFormat* pNewFormat )
{
@@ -125,6 +126,54 @@ static void lcl_FillList( SwWrtShell& rSh, ComboBox& rSubRegions, ComboBox* pAva
}
}
static void lcl_FillList( SwWrtShell& rSh, weld::ComboBox& rSubRegions, weld::ComboBox* pAvailNames, const SwSectionFormat* pNewFormat )
{
if( !pNewFormat )
{
const size_t nCount = rSh.GetSectionFormatCount();
for (size_t i = 0; i<nCount; i++)
{
SectionType eTmpType;
const SwSectionFormat* pFormat = &rSh.GetSectionFormat(i);
if( !pFormat->GetParent() &&
pFormat->IsInNodesArr() &&
(eTmpType = pFormat->GetSection()->GetType()) != TOX_CONTENT_SECTION
&& TOX_HEADER_SECTION != eTmpType )
{
const OUString sString(pFormat->GetSection()->GetSectionName());
if (pAvailNames)
pAvailNames->append_text(sString);
rSubRegions.append_text(sString);
lcl_FillList( rSh, rSubRegions, pAvailNames, pFormat );
}
}
}
else
{
SwSections aTmpArr;
pNewFormat->GetChildSections(aTmpArr, SectionSort::Pos);
if( !aTmpArr.empty() )
{
SectionType eTmpType;
for( const auto pSect : aTmpArr )
{
const SwSectionFormat* pFormat = pSect->GetFormat();
if( pFormat->IsInNodesArr()&&
(eTmpType = pFormat->GetSection()->GetType()) != TOX_CONTENT_SECTION
&& TOX_HEADER_SECTION != eTmpType )
{
const OUString sString(pFormat->GetSection()->GetSectionName());
if (pAvailNames)
pAvailNames->append_text(sString);
rSubRegions.append_text(sString);
lcl_FillList( rSh, rSubRegions, pAvailNames, pFormat );
}
}
}
}
}
static void lcl_FillSubRegionList( SwWrtShell& rSh, ComboBox& rSubRegions, ComboBox* pAvailNames )
{
lcl_FillList( rSh, rSubRegions, pAvailNames, nullptr );
@@ -139,6 +188,20 @@ static void lcl_FillSubRegionList( SwWrtShell& rSh, ComboBox& rSubRegions, Combo
}
}
static void lcl_FillSubRegionList( SwWrtShell& rSh, weld::ComboBox& rSubRegions, weld::ComboBox* pAvailNames )
{
lcl_FillList( rSh, rSubRegions, pAvailNames, nullptr );
IDocumentMarkAccess* const pMarkAccess = rSh.getIDocumentMarkAccess();
for( IDocumentMarkAccess::const_iterator_t ppMark = pMarkAccess->getBookmarksBegin();
ppMark != pMarkAccess->getBookmarksEnd();
++ppMark)
{
const ::sw::mark::IMark* pBkmk = ppMark->get();
if( pBkmk->IsExpanded() )
rSubRegions.append_text( pBkmk->GetName() );
}
}
// user data class for region information
class SectRepr
{
@@ -1403,6 +1466,26 @@ static void lcl_ReadSections( SfxMedium& rMedium, ComboBox& rBox )
}
}
// helper function - read section names from medium
static void lcl_ReadSections( SfxMedium& rMedium, weld::ComboBox& rBox )
{
rBox.clear();
uno::Reference < embed::XStorage > xStg;
if( rMedium.IsStorage() && (xStg = rMedium.GetStorage()).is() )
{
std::vector<OUString> aArr;
SotClipboardFormatId nFormat = SotStorage::GetFormatID( xStg );
if ( nFormat == SotClipboardFormatId::STARWRITER_60 || nFormat == SotClipboardFormatId::STARWRITERGLOB_60 ||
nFormat == SotClipboardFormatId::STARWRITER_8 || nFormat == SotClipboardFormatId::STARWRITERGLOB_8)
SwGetReaderXML()->GetSectionList( rMedium, aArr );
for (auto const& it : aArr)
{
rBox.append_text(it);
}
}
}
SwInsertSectionTabDialog::SwInsertSectionTabDialog(
vcl::Window* pParent, const SfxItemSet& rSet, SwWrtShell& rSh)
: SfxTabDialog(pParent, "InsertSectionDialog",
@@ -1500,43 +1583,42 @@ short SwInsertSectionTabDialog::Ok()
return nRet;
}
SwInsertSectionTabPage::SwInsertSectionTabPage(
vcl::Window *pParent, const SfxItemSet &rAttrSet)
: SfxTabPage(pParent, "SectionPage",
"modules/swriter/ui/sectionpage.ui", &rAttrSet)
SwInsertSectionTabPage::SwInsertSectionTabPage(TabPageParent pParent, const SfxItemSet &rAttrSet)
: SfxTabPage(pParent, "modules/swriter/ui/sectionpage.ui", "SectionPage", &rAttrSet)
, m_pWrtSh(nullptr)
{
get(m_pCurName, "sectionnames");
m_pCurName->SetStyle(m_pCurName->GetStyle() | WB_SORT);
m_pCurName->set_height_request(m_pCurName->GetTextHeight() * 12);
get(m_pFileCB, "link");
get(m_pDDECB, "dde");
get(m_pDDECommandFT, "ddelabel");
get(m_pFileNameFT, "filelabel");
get(m_pFileNameED, "filename");
get(m_pFilePB, "selectfile");
get(m_pSubRegionFT, "sectionlabel");
get(m_pSubRegionED, "sectionname");
m_pSubRegionED->SetStyle(m_pSubRegionED->GetStyle() | WB_SORT);
get(m_pProtectCB, "protect");
get(m_pPasswdCB, "withpassword");
get(m_pPasswdPB, "selectpassword");
get(m_pHideCB, "hide");
get(m_pConditionFT, "condlabel");
get(m_pConditionED, "withcond");
, m_xCurName(m_xBuilder->weld_entry_tree_view("sectionnames", "sectionnames-entry",
"sectionnames-list"))
, m_xFileCB(m_xBuilder->weld_check_button("link"))
, m_xDDECB(m_xBuilder->weld_check_button("dde"))
, m_xDDECommandFT(m_xBuilder->weld_label("ddelabel"))
, m_xFileNameFT(m_xBuilder->weld_label("filelabel"))
, m_xFileNameED(m_xBuilder->weld_entry("filename"))
, m_xFilePB(m_xBuilder->weld_button("selectfile"))
, m_xSubRegionFT(m_xBuilder->weld_label("sectionlabel"))
, m_xSubRegionED(m_xBuilder->weld_combo_box("sectionname"))
, m_xProtectCB(m_xBuilder->weld_check_button("protect"))
, m_xPasswdCB(m_xBuilder->weld_check_button("withpassword"))
, m_xPasswdPB(m_xBuilder->weld_button("selectpassword"))
, m_xHideCB(m_xBuilder->weld_check_button("hide"))
, m_xConditionFT(m_xBuilder->weld_label("condlabel"))
, m_xConditionED(new SwConditionEdit(m_xBuilder->weld_entry("withcond")))
// edit in readonly sections
get(m_pEditInReadonlyCB, "editable");
, m_xEditInReadonlyCB(m_xBuilder->weld_check_button("editable"))
{
m_xCurName->make_sorted();
m_xCurName->set_height_request_by_rows(12);
m_xSubRegionED->make_sorted();
m_pProtectCB->SetClickHdl ( LINK( this, SwInsertSectionTabPage, ChangeProtectHdl));
m_pPasswdCB->SetClickHdl ( LINK( this, SwInsertSectionTabPage, ChangePasswdHdl));
m_pPasswdPB->SetClickHdl ( LINK( this, SwInsertSectionTabPage, ChangePasswdHdl));
m_pHideCB->SetClickHdl ( LINK( this, SwInsertSectionTabPage, ChangeHideHdl));
m_pFileCB->SetClickHdl ( LINK( this, SwInsertSectionTabPage, UseFileHdl ));
m_pFilePB->SetClickHdl ( LINK( this, SwInsertSectionTabPage, FileSearchHdl ));
m_pCurName->SetModifyHdl ( LINK( this, SwInsertSectionTabPage, NameEditHdl));
m_pDDECB->SetClickHdl ( LINK( this, SwInsertSectionTabPage, DDEHdl ));
ChangeProtectHdl(m_pProtectCB);
m_pSubRegionED->EnableAutocomplete( true, true );
m_xProtectCB->connect_toggled( LINK( this, SwInsertSectionTabPage, ChangeProtectHdl));
m_xPasswdCB->connect_toggled( LINK( this, SwInsertSectionTabPage, TogglePasswdHdl));
m_xPasswdPB->connect_clicked( LINK( this, SwInsertSectionTabPage, ChangePasswdHdl));
m_xHideCB->connect_toggled( LINK( this, SwInsertSectionTabPage, ChangeHideHdl));
m_xFileCB->connect_toggled( LINK( this, SwInsertSectionTabPage, UseFileHdl ));
m_xFilePB->connect_clicked( LINK( this, SwInsertSectionTabPage, FileSearchHdl ));
m_xCurName->connect_changed( LINK( this, SwInsertSectionTabPage, NameEditHdl));
m_xDDECB->connect_toggled( LINK( this, SwInsertSectionTabPage, DDEHdl ));
ChangeProtectHdl(*m_xProtectCB);
//TODO m_xSubRegionED->EnableAutocomplete( true, true );
}
SwInsertSectionTabPage::~SwInsertSectionTabPage()
@@ -1544,28 +1626,6 @@ SwInsertSectionTabPage::~SwInsertSectionTabPage()
disposeOnce();
}
void SwInsertSectionTabPage::dispose()
{
m_pDocInserter.reset();
m_pCurName.clear();
m_pFileCB.clear();
m_pDDECB.clear();
m_pDDECommandFT.clear();
m_pFileNameFT.clear();
m_pFileNameED.clear();
m_pFilePB.clear();
m_pSubRegionFT.clear();
m_pSubRegionED.clear();
m_pProtectCB.clear();
m_pPasswdCB.clear();
m_pPasswdPB.clear();
m_pHideCB.clear();
m_pConditionFT.clear();
m_pConditionED.clear();
m_pEditInReadonlyCB.clear();
SfxTabPage::dispose();
}
void SwInsertSectionTabPage::SetWrtShell(SwWrtShell& rSh)
{
m_pWrtSh = &rSh;
@@ -1573,14 +1633,14 @@ void SwInsertSectionTabPage::SetWrtShell(SwWrtShell& rSh)
bool bWeb = dynamic_cast<SwWebDocShell*>( m_pWrtSh->GetView().GetDocShell() )!= nullptr;
if(bWeb)
{
m_pHideCB->Hide();
m_pConditionED->Hide();
m_pConditionFT->Hide();
m_pDDECB->Hide();
m_pDDECommandFT->Hide();
m_xHideCB->hide();
m_xConditionED->hide();
m_xConditionFT->hide();
m_xDDECB->hide();
m_xDDECommandFT->hide();
}
lcl_FillSubRegionList(*m_pWrtSh, *m_pSubRegionED, m_pCurName);
lcl_FillSubRegionList(*m_pWrtSh, *m_xSubRegionED, m_xCurName.get());
SwSectionData *const pSectionData =
static_cast<SwInsertSectionTabDialog*>(GetTabDialog())
@@ -1588,38 +1648,38 @@ void SwInsertSectionTabPage::SetWrtShell(SwWrtShell& rSh)
if (pSectionData) // something set?
{
const OUString sSectionName(pSectionData->GetSectionName());
m_pCurName->SetText(rSh.GetUniqueSectionName(&sSectionName));
m_pProtectCB->Check( pSectionData->IsProtectFlag() );
m_xCurName->set_entry_text(rSh.GetUniqueSectionName(&sSectionName));
m_xProtectCB->set_active( pSectionData->IsProtectFlag() );
m_sFileName = pSectionData->GetLinkFileName();
m_sFilePasswd = pSectionData->GetLinkFilePassword();
m_pFileCB->Check( !m_sFileName.isEmpty() );
m_pFileNameED->SetText( m_sFileName );
UseFileHdl(m_pFileCB);
m_xFileCB->set_active( !m_sFileName.isEmpty() );
m_xFileNameED->set_text( m_sFileName );
UseFileHdl(*m_xFileCB);
}
else
{
m_pCurName->SetText( rSh.GetUniqueSectionName() );
m_xCurName->set_entry_text(rSh.GetUniqueSectionName());
}
}
bool SwInsertSectionTabPage::FillItemSet( SfxItemSet* )
{
SwSectionData aSection(CONTENT_SECTION, m_pCurName->GetText());
aSection.SetCondition(m_pConditionED->GetText());
bool bProtected = m_pProtectCB->IsChecked();
SwSectionData aSection(CONTENT_SECTION, m_xCurName->get_active_text());
aSection.SetCondition(m_xConditionED->get_text());
bool bProtected = m_xProtectCB->get_active();
aSection.SetProtectFlag(bProtected);
aSection.SetHidden(m_pHideCB->IsChecked());
aSection.SetHidden(m_xHideCB->get_active());
// edit in readonly sections
aSection.SetEditInReadonlyFlag(m_pEditInReadonlyCB->IsChecked());
aSection.SetEditInReadonlyFlag(m_xEditInReadonlyCB->get_active());
if(bProtected)
{
aSection.SetPassword(m_aNewPasswd);
}
const OUString sFileName = m_pFileNameED->GetText();
const OUString sSubRegion = m_pSubRegionED->GetText();
bool bDDe = m_pDDECB->IsChecked();
if(m_pFileCB->IsChecked() && (!sFileName.isEmpty() || !sSubRegion.isEmpty() || bDDe))
const OUString sFileName = m_xFileNameED->get_text();
const OUString sSubRegion = m_xSubRegionED->get_active_text();
bool bDDe = m_xDDECB->get_active();
if (m_xFileCB->get_active() && (!sFileName.isEmpty() || !sSubRegion.isEmpty() || bDDe))
{
OUString aLinkFile;
if( bDDe )
@@ -1652,7 +1712,7 @@ bool SwInsertSectionTabPage::FillItemSet( SfxItemSet* )
aSection.SetLinkFileName(aLinkFile);
if (!aLinkFile.isEmpty())
{
aSection.SetType( m_pDDECB->IsChecked() ?
aSection.SetType( m_xDDECB->get_active() ?
DDE_LINK_SECTION :
FILE_LINK_SECTION);
}
@@ -1665,35 +1725,34 @@ void SwInsertSectionTabPage::Reset( const SfxItemSet* )
{
}
VclPtr<SfxTabPage> SwInsertSectionTabPage::Create( TabPageParent pParent,
const SfxItemSet* rAttrSet)
VclPtr<SfxTabPage> SwInsertSectionTabPage::Create(TabPageParent pParent,
const SfxItemSet* rAttrSet)
{
return VclPtr<SwInsertSectionTabPage>::Create(pParent.pParent, *rAttrSet);
return VclPtr<SwInsertSectionTabPage>::Create(pParent, *rAttrSet);
}
IMPL_LINK( SwInsertSectionTabPage, ChangeHideHdl, Button *, pBox, void )
IMPL_LINK(SwInsertSectionTabPage, ChangeHideHdl, weld::ToggleButton&, rBox, void)
{
bool bHide = static_cast<CheckBox*>(pBox)->IsChecked();
m_pConditionED->Enable(bHide);
m_pConditionFT->Enable(bHide);
bool bHide = rBox.get_active();
m_xConditionED->set_sensitive(bHide);
m_xConditionFT->set_sensitive(bHide);
}
IMPL_LINK( SwInsertSectionTabPage, ChangeProtectHdl, Button *, pBox, void )
IMPL_LINK(SwInsertSectionTabPage, ChangeProtectHdl, weld::ToggleButton&, rBox, void)
{
bool bCheck = static_cast<CheckBox*>(pBox)->IsChecked();
m_pPasswdCB->Enable(bCheck);
m_pPasswdPB->Enable(bCheck);
bool bCheck = rBox.get_active();
m_xPasswdCB->set_sensitive(bCheck);
m_xPasswdPB->set_sensitive(bCheck);
}
IMPL_LINK( SwInsertSectionTabPage, ChangePasswdHdl, Button *, pButton, void )
void SwInsertSectionTabPage::ChangePasswd(bool bChange)
{
bool bChange = pButton == m_pPasswdPB;
bool bSet = bChange ? bChange : m_pPasswdCB->IsChecked();
if(bSet)
bool bSet = bChange ? bChange : m_xPasswdCB->get_active();
if (bSet)
{
if(!m_aNewPasswd.getLength() || bChange)
{
SfxPasswordDialog aPasswdDlg(GetFrameWeld());
SfxPasswordDialog aPasswdDlg(GetDialogFrameWeld());
aPasswdDlg.ShowExtras(SfxShowExtras::CONFIRM);
if (RET_OK == aPasswdDlg.run())
{
@@ -1704,92 +1763,101 @@ IMPL_LINK( SwInsertSectionTabPage, ChangePasswdHdl, Button *, pButton, void )
}
else
{
std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(pButton->GetFrameWeld(),
std::unique_ptr<weld::MessageDialog> xInfoBox(Application::CreateMessageDialog(GetDialogFrameWeld(),
VclMessageType::Info, VclButtonsType::Ok,
SwResId(STR_WRONG_PASSWD_REPEAT)));
xInfoBox->run();
}
}
else if(!bChange)
m_pPasswdCB->Check(false);
m_xPasswdCB->set_active(false);
}
}
else
m_aNewPasswd.realloc(0);
}
IMPL_LINK_NOARG(SwInsertSectionTabPage, NameEditHdl, Edit&, void)
IMPL_LINK_NOARG(SwInsertSectionTabPage, TogglePasswdHdl, weld::ToggleButton&, void)
{
const OUString aName = m_pCurName->GetText();
GetTabDialog()->GetOKButton().Enable(!aName.isEmpty() &&
m_pCurName->GetEntryPos( aName ) == LISTBOX_ENTRY_NOTFOUND);
ChangePasswd(false);
}
IMPL_LINK( SwInsertSectionTabPage, UseFileHdl, Button *, pButton, void )
IMPL_LINK_NOARG(SwInsertSectionTabPage, ChangePasswdHdl, weld::Button&, void)
{
CheckBox* pBox = static_cast<CheckBox*>(pButton);
if( pBox->IsChecked() )
ChangePasswd(true);
}
IMPL_LINK_NOARG(SwInsertSectionTabPage, NameEditHdl, weld::ComboBox&, void)
{
const OUString aName = m_xCurName->get_active_text();
GetDialogController()->GetOKButton().set_sensitive(!aName.isEmpty() &&
m_xCurName->find_text(aName) == -1);
}
IMPL_LINK(SwInsertSectionTabPage, UseFileHdl, weld::ToggleButton&, rButton, void)
{
if (rButton.get_active())
{
if (m_pWrtSh->HasSelection())
{
std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(GetFrameWeld(),
std::unique_ptr<weld::MessageDialog> xQueryBox(Application::CreateMessageDialog(GetDialogFrameWeld(),
VclMessageType::Question, VclButtonsType::YesNo,
SwResId(STR_QUERY_CONNECT)));
if (RET_NO == xQueryBox->run())
pBox->Check( false );
rButton.set_active(false);
}
}
bool bFile = pBox->IsChecked();
m_pFileNameFT->Enable(bFile);
m_pFileNameED->Enable(bFile);
m_pFilePB->Enable(bFile);
m_pSubRegionFT->Enable(bFile);
m_pSubRegionED->Enable(bFile);
m_pDDECommandFT->Enable(bFile);
m_pDDECB->Enable(bFile);
if( bFile )
bool bFile = rButton.get_active();
m_xFileNameFT->set_sensitive(bFile);
m_xFileNameED->set_sensitive(bFile);
m_xFilePB->set_sensitive(bFile);
m_xSubRegionFT->set_sensitive(bFile);
m_xSubRegionED->set_sensitive(bFile);
m_xDDECommandFT->set_sensitive(bFile);
m_xDDECB->set_sensitive(bFile);
if (bFile)
{
m_pFileNameED->GrabFocus();
m_pProtectCB->Check();
m_xFileNameED->grab_focus();
m_xProtectCB->set_active(true);
}
else
{
m_pDDECB->Check(false);
DDEHdl(m_pDDECB);
m_xDDECB->set_active(false);
DDEHdl(*m_xDDECB);
}
}
IMPL_LINK_NOARG(SwInsertSectionTabPage, FileSearchHdl, Button*, void)
IMPL_LINK_NOARG(SwInsertSectionTabPage, FileSearchHdl, weld::Button&, void)
{
m_pDocInserter.reset(new ::sfx2::DocumentInserter(GetFrameWeld(), "swriter"));
m_pDocInserter.reset(new ::sfx2::DocumentInserter(GetDialogFrameWeld(), "swriter"));
m_pDocInserter->StartExecuteModal( LINK( this, SwInsertSectionTabPage, DlgClosedHdl ) );
}
IMPL_LINK( SwInsertSectionTabPage, DDEHdl, Button*, pButton, void )
IMPL_LINK( SwInsertSectionTabPage, DDEHdl, weld::ToggleButton&, rButton, void )
{
CheckBox* pBox = static_cast<CheckBox*>(pButton);
bool bDDE = pBox->IsChecked();
bool bFile = m_pFileCB->IsChecked();
m_pFilePB->Enable(!bDDE && bFile);
if(bDDE)
bool bDDE = rButton.get_active();
bool bFile = m_xFileCB->get_active();
m_xFilePB->set_sensitive(!bDDE && bFile);
if (bDDE)
{
m_pFileNameFT->Hide();
m_pDDECommandFT->Enable(bDDE);
m_pDDECommandFT->Show();
m_pSubRegionFT->Hide();
m_pSubRegionED->Hide();
m_pFileNameED->SetAccessibleName(m_pDDECommandFT->GetText());
m_xFileNameFT->hide();
m_xDDECommandFT->set_sensitive(bDDE);
m_xDDECommandFT->show();
m_xSubRegionFT->hide();
m_xSubRegionED->hide();
m_xFileNameED->set_accessible_name(m_xDDECommandFT->get_label());
}
else
{
m_pDDECommandFT->Hide();
m_pFileNameFT->Enable(bFile);
m_pFileNameFT->Show();
m_pSubRegionFT->Show();
m_pSubRegionED->Show();
m_pSubRegionED->Enable(bFile);
m_pFileNameED->SetAccessibleName(m_pFileNameFT->GetText());
m_xDDECommandFT->hide();
m_xFileNameFT->set_sensitive(bFile);
m_xFileNameFT->show();
m_xSubRegionFT->show();
m_xSubRegionED->show();
m_xSubRegionED->set_sensitive(bFile);
m_xFileNameED->set_accessible_name(m_xFileNameFT->get_label());
}
}
@@ -1805,9 +1873,9 @@ IMPL_LINK( SwInsertSectionTabPage, DlgClosedHdl, sfx2::FileDialogHelper *, _pFil
const SfxPoolItem* pItem;
if ( SfxItemState::SET == pMedium->GetItemSet()->GetItemState( SID_PASSWORD, false, &pItem ) )
m_sFilePasswd = static_cast<const SfxStringItem*>(pItem)->GetValue();
m_pFileNameED->SetText( INetURLObject::decode(
m_xFileNameED->set_text( INetURLObject::decode(
m_sFileName, INetURLObject::DecodeMechanism::Unambiguous ) );
::lcl_ReadSections(*pMedium, *m_pSubRegionED);
::lcl_ReadSections(*pMedium, *m_xSubRegionED);
}
}
else
+1
View File
@@ -71,6 +71,7 @@ public:
OUString get_text() const { return m_xControl->get_text(); }
bool get_sensitive() const { return m_xControl->get_sensitive(); }
void set_sensitive(bool bSensitive) { m_xControl->set_sensitive(bSensitive); }
void hide() { m_xControl->hide(); }
weld::Entry& get_widget() { return *m_xControl; }
void ShowBrackets(bool bShow) { bBrackets = bShow; }
+29 -31
View File
@@ -133,28 +133,6 @@ public:
// dialog "insert region"
class SwInsertSectionTabPage : public SfxTabPage
{
VclPtr<ComboBox> m_pCurName;
VclPtr<CheckBox> m_pFileCB;
VclPtr<CheckBox> m_pDDECB;
VclPtr<FixedText> m_pDDECommandFT;
VclPtr<FixedText> m_pFileNameFT;
VclPtr<Edit> m_pFileNameED;
VclPtr<PushButton> m_pFilePB;
VclPtr<FixedText> m_pSubRegionFT;
VclPtr<ComboBox> m_pSubRegionED;
VclPtr<CheckBox> m_pProtectCB;
VclPtr<CheckBox> m_pPasswdCB;
VclPtr<PushButton> m_pPasswdPB;
VclPtr<CheckBox> m_pHideCB;
VclPtr<FixedText> m_pConditionFT;
VclPtr<ConditionEdit> m_pConditionED;
// #114856# edit in readonly sections
VclPtr<CheckBox> m_pEditInReadonlyCB;
OUString m_sFileName;
OUString m_sFilterName;
OUString m_sFilePasswd;
@@ -163,19 +141,39 @@ class SwInsertSectionTabPage : public SfxTabPage
SwWrtShell* m_pWrtSh;
std::unique_ptr<sfx2::DocumentInserter> m_pDocInserter;
DECL_LINK( ChangeHideHdl, Button *, void );
DECL_LINK( ChangeProtectHdl, Button *, void );
DECL_LINK( ChangePasswdHdl, Button *, void );
DECL_LINK( NameEditHdl, Edit&, void );
DECL_LINK( UseFileHdl, Button*, void );
DECL_LINK( FileSearchHdl, Button*, void );
DECL_LINK( DDEHdl, Button*, void );
std::unique_ptr<weld::EntryTreeView> m_xCurName;
std::unique_ptr<weld::CheckButton> m_xFileCB;
std::unique_ptr<weld::CheckButton> m_xDDECB;
std::unique_ptr<weld::Label> m_xDDECommandFT;
std::unique_ptr<weld::Label> m_xFileNameFT;
std::unique_ptr<weld::Entry> m_xFileNameED;
std::unique_ptr<weld::Button> m_xFilePB;
std::unique_ptr<weld::Label> m_xSubRegionFT;
std::unique_ptr<weld::ComboBox> m_xSubRegionED;
std::unique_ptr<weld::CheckButton> m_xProtectCB;
std::unique_ptr<weld::CheckButton> m_xPasswdCB;
std::unique_ptr<weld::Button> m_xPasswdPB;
std::unique_ptr<weld::CheckButton> m_xHideCB;
std::unique_ptr<weld::Label> m_xConditionFT;
std::unique_ptr<SwConditionEdit> m_xConditionED;
// #114856# edit in readonly sections
std::unique_ptr<weld::CheckButton> m_xEditInReadonlyCB;
void ChangePasswd(bool bChange);
DECL_LINK( ChangeHideHdl, weld::ToggleButton&, void );
DECL_LINK( ChangeProtectHdl, weld::ToggleButton&, void );
DECL_LINK( ChangePasswdHdl, weld::Button&, void );
DECL_LINK( TogglePasswdHdl, weld::ToggleButton&, void );
DECL_LINK( NameEditHdl, weld::ComboBox&, void );
DECL_LINK( UseFileHdl, weld::ToggleButton&, void );
DECL_LINK( FileSearchHdl, weld::Button&, void );
DECL_LINK( DDEHdl, weld::ToggleButton&, void );
DECL_LINK( DlgClosedHdl, sfx2::FileDialogHelper*, void );
public:
SwInsertSectionTabPage(vcl::Window *pParent, const SfxItemSet &rAttrSet);
SwInsertSectionTabPage(TabPageParent pParent, const SfxItemSet &rAttrSet);
virtual ~SwInsertSectionTabPage() override;
virtual void dispose() override;
void SetWrtShell(SwWrtShell& rSh);
+67 -16
View File
@@ -1,8 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 -->
<!-- Generated with glade 3.22.1 -->
<interface domain="sw">
<requires lib="gtk+" version="3.18"/>
<requires lib="LibreOffice" version="1.0"/>
<object class="GtkTreeStore" id="liststore1">
<columns>
<!-- column-name text -->
<column type="gchararray"/>
<!-- column-name id -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkGrid" id="SectionPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -27,18 +34,62 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
<object class="VclComboBoxText" id="sectionnames">
<object class="GtkGrid" id="sectionnames">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="has_entry">True</property>
<property name="dropdown">False</property>
<property name="max_width_chars">18</property>
<child internal-child="entry">
<object class="GtkEntry" id="comboboxtext-entry">
<property name="row_spacing">3</property>
<child>
<object class="GtkScrolledWindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="sectionnames-list">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="vexpand">True</property>
<property name="model">liststore1</property>
<property name="headers_visible">False</property>
<property name="headers_clickable">False</property>
<property name="search_column">0</property>
<property name="show_expanders">False</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection1"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
<child>
<object class="GtkCellRendererText" id="cellrenderertext1"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="sectionnames-entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hexpand">True</property>
<property name="activates_default">True</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
</object>
</child>
@@ -125,10 +176,10 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="sectionpage|sectionlabel">_Section</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">sectionname</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>
@@ -149,16 +200,16 @@
</packing>
</child>
<child>
<object class="VclComboBoxText" id="sectionname">
<object class="GtkComboBoxText" id="sectionname">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
<property name="has_entry">True</property>
<property name="max_width_chars">18</property>
<child internal-child="entry">
<object class="GtkEntry" id="comboboxtext-entry1">
<property name="can_focus">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
</object>
</child>
</object>
@@ -177,10 +228,10 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="sectionpage|filelabel">_File name</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">filename</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -192,10 +243,10 @@
<object class="GtkLabel" id="ddelabel">
<property name="can_focus">False</property>
<property name="no_show_all">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="sectionpage|ddelabel">DDE _command</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">filename</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="expand">False</property>
@@ -355,7 +406,7 @@
<property name="row_spacing">6</property>
<property name="column_spacing">12</property>
<child>
<object class="swlo-ConditionEdit" id="withcond">
<object class="GtkEntry" id="withcond">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
@@ -388,10 +439,10 @@
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="sectionpage|condlabel">_With Condition</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">withcond</property>
<property name="xalign">0</property>
</object>
<packing>
<property name="left_attach">0</property>