diff options
author | Gülşah Köse <gulsah.kose@collabora.com> | 2020-05-22 11:51:33 +0300 |
---|---|---|
committer | Gülşah Köse <gulsah.kose@collabora.com> | 2020-05-26 09:42:22 +0200 |
commit | 983db96a17630be906b868d2be811663f0d846f6 (patch) | |
tree | 274b334e55fb5516944971fa18544f1878f1cc2c /sw/source/ui/envelp/mailmrge.cxx | |
parent | 46695f3d66cc77b38865c1817b09d95e9c4b6683 (diff) |
Add an option to create encyrpted PDF files with mailmerge.
With that option user can create encyrpted pdf files with
a password column in database via mailmerge.
Change-Id: I081ef050bc269b1fec24fd01ecc812acd7b857ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94709
Tested-by: Jenkins
Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com>
Diffstat (limited to 'sw/source/ui/envelp/mailmrge.cxx')
-rw-r--r-- | sw/source/ui/envelp/mailmrge.cxx | 73 |
1 files changed, 68 insertions, 5 deletions
diff --git a/sw/source/ui/envelp/mailmrge.cxx b/sw/source/ui/envelp/mailmrge.cxx index b29e025773f7..8b7cccb67973 100644 --- a/sw/source/ui/envelp/mailmrge.cxx +++ b/sw/source/ui/envelp/mailmrge.cxx @@ -129,12 +129,15 @@ SwMailMergeDlg::SwMailMergeDlg(weld::Window* pParent, SwWrtShell& rShell, , m_xMailingRB(m_xBuilder->weld_radio_button("electronic")) , m_xFileRB(m_xBuilder->weld_radio_button("file")) , m_xSingleJobsCB(m_xBuilder->weld_check_button("singlejobs")) + , m_xPasswordCB(m_xBuilder->weld_check_button("passwd-check")) , m_xSaveMergedDocumentFT(m_xBuilder->weld_label("savemergeddoclabel")) , m_xSaveSingleDocRB(m_xBuilder->weld_radio_button("singledocument")) , m_xSaveIndividualRB(m_xBuilder->weld_radio_button("individualdocuments")) , m_xGenerateFromDataBaseCB(m_xBuilder->weld_check_button("generate")) , m_xColumnFT(m_xBuilder->weld_label("fieldlabel")) , m_xColumnLB(m_xBuilder->weld_combo_box("field")) + , m_xPasswordFT(m_xBuilder->weld_label("passwd-label")) + , m_xPasswordLB(m_xBuilder->weld_combo_box("passwd-combobox")) , m_xPathFT(m_xBuilder->weld_label("pathlabel")) , m_xPathED(m_xBuilder->weld_entry("path")) , m_xPathPB(m_xBuilder->weld_button("pathpb")) @@ -164,6 +167,9 @@ SwMailMergeDlg::SwMailMergeDlg(weld::Window* pParent, SwWrtShell& rShell, m_xAttachFT->hide(); m_xAttachED->hide(); m_xAttachPB->hide(); + m_xPasswordCB->hide(); + m_xPasswordFT->hide(); + m_xPasswordLB->hide(); uno::Reference< lang::XMultiServiceFactory > xMSF = comphelper::getProcessServiceFactory(); if(pSelection) { @@ -241,6 +247,8 @@ SwMailMergeDlg::SwMailMergeDlg(weld::Window* pParent, SwWrtShell& rShell, m_xSaveIndividualRB->connect_toggled(LINK(this, SwMailMergeDlg, SaveTypeHdl)); SaveTypeHdl(*m_xSaveSingleDocRB); + m_xFilterLB->connect_changed(LINK(this, SwMailMergeDlg, FileFormatHdl)); + Link<weld::SpinButton&,void> aLk2 = LINK(this, SwMailMergeDlg, ModifyHdl); m_xFromNF->connect_value_changed(aLk2); m_xToNF->connect_value_changed(aLk2); @@ -253,7 +261,10 @@ SwMailMergeDlg::SwMailMergeDlg(weld::Window* pParent, SwWrtShell& rShell, else pDBManager->GetColumnNames(*m_xAddressFieldLB, rSourceName, rTableName); for(sal_Int32 nEntry = 0, nEntryCount = m_xAddressFieldLB->get_count(); nEntry < nEntryCount; ++nEntry) + { m_xColumnLB->append_text(m_xAddressFieldLB->get_text(nEntry)); + m_xPasswordLB->append_text(m_xAddressFieldLB->get_text(nEntry)); + } m_xAddressFieldLB->set_active_text("EMAIL"); @@ -268,15 +279,23 @@ SwMailMergeDlg::SwMailMergeDlg(weld::Window* pParent, SwWrtShell& rShell, else m_xPathED->set_text(aURL.GetFull()); - if (!bColumn ) { + if (!bColumn ) + { m_xColumnLB->set_active_text("NAME"); - } else + m_xPasswordLB->set_active_text("PASSWORD"); + } + else + { m_xColumnLB->set_active_text(pModOpt->GetNameFromColumn()); + m_xPasswordLB->set_active_text(pModOpt->GetPasswordFromColumn()); + } if (m_xAddressFieldLB->get_active() == -1) m_xAddressFieldLB->set_active(0); if (m_xColumnLB->get_active() == -1) m_xColumnLB->set_active(0); + if (m_xPasswordLB->get_active() == -1) + m_xPasswordLB->set_active(0); const bool bEnable = m_aSelection.hasElements(); m_xMarkedRB->set_sensitive(bEnable); @@ -355,6 +374,9 @@ IMPL_LINK_NOARG(SwMailMergeDlg, OutputTypeHdl, weld::ToggleButton&, void) m_xFilterFT->set_sensitive(false); m_xFilterLB->set_sensitive(false); m_xGenerateFromDataBaseCB->set_sensitive(false); + m_xPasswordCB->set_sensitive( false ); + m_xPasswordFT->set_sensitive( false ); + m_xPasswordLB->set_sensitive( false ); } } @@ -363,9 +385,12 @@ IMPL_LINK_NOARG(SwMailMergeDlg, SaveTypeHdl, weld::ToggleButton&, void) bool bIndividual = m_xSaveIndividualRB->get_active(); m_xGenerateFromDataBaseCB->set_sensitive( bIndividual ); - if( bIndividual ) { + if( bIndividual ) + { FilenameHdl(*m_xGenerateFromDataBaseCB); - } else { + } + else + { m_xColumnFT->set_sensitive(false); m_xColumnLB->set_sensitive(false); m_xPathFT->set_sensitive( false ); @@ -373,6 +398,9 @@ IMPL_LINK_NOARG(SwMailMergeDlg, SaveTypeHdl, weld::ToggleButton&, void) m_xPathPB->set_sensitive( false ); m_xFilterFT->set_sensitive( false ); m_xFilterLB->set_sensitive( false ); + m_xPasswordCB->set_sensitive( false ); + m_xPasswordFT->set_sensitive( false ); + m_xPasswordLB->set_sensitive( false ); } } @@ -386,6 +414,37 @@ IMPL_LINK( SwMailMergeDlg, FilenameHdl, weld::ToggleButton&, rBox, void ) m_xPathPB->set_sensitive( bEnable ); m_xFilterFT->set_sensitive( bEnable ); m_xFilterLB->set_sensitive( bEnable ); + + if(m_xFilterLB->get_active_id() == "writer_pdf_Export") + { + m_xPasswordCB->show(); + m_xPasswordFT->show(); + m_xPasswordLB->show(); + + m_xPasswordCB->set_sensitive( bEnable ); + m_xPasswordFT->set_sensitive( bEnable ); + m_xPasswordLB->set_sensitive( bEnable ); + } +} + +IMPL_LINK_NOARG( SwMailMergeDlg, FileFormatHdl, weld::ComboBox&, void ) +{ + if(m_xFilterLB->get_active_id() == "writer_pdf_Export") + { + m_xPasswordCB->show(); + m_xPasswordFT->show(); + m_xPasswordLB->show(); + + m_xPasswordCB->set_sensitive( true ); + m_xPasswordFT->set_sensitive( true ); + m_xPasswordLB->set_sensitive( true ); + } + else + { + m_xPasswordCB->hide(); + m_xPasswordFT->hide(); + m_xPasswordLB->hide(); + } } IMPL_LINK_NOARG(SwMailMergeDlg, ModifyHdl, weld::SpinButton&, void) @@ -425,15 +484,19 @@ bool SwMailMergeDlg::ExecQryShell() nMergeType = DBMGR_MERGE_FILE; pModOpt->SetMailingPath( GetURLfromPath() ); pModOpt->SetIsNameFromColumn(m_xGenerateFromDataBaseCB->get_active()); + pModOpt->SetIsFileEncyrptedFromColumn(m_xPasswordCB->get_active()); - if (!AskUserFilename()) { + if (!AskUserFilename()) + { pModOpt->SetNameFromColumn(m_xColumnLB->get_active_text()); + pModOpt->SetPasswordFromColumn(m_xPasswordLB->get_active_text()); if (m_xFilterLB->get_active() != -1) m_sSaveFilter = m_xFilterLB->get_active_id(); m_sFilename = OUString(); } else { //#i97667# reset column name - otherwise it's remembered from the last run pModOpt->SetNameFromColumn(OUString()); + pModOpt->SetPasswordFromColumn(OUString()); //start save as dialog OUString sFilter; m_sFilename = SwMailMergeHelper::CallSaveAsDialog(m_xDialog.get(), sFilter); |