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:
@@ -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
@@ -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
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user