summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2018-01-09 22:51:09 +0100
committerJulien Nabet <serval2412@yahoo.fr>2018-01-10 14:43:15 +0100
commitc2bc2c4633e92349cac390c05d245d1a812986c4 (patch)
treeb51858071e396b516c44b4b0ef550dcc503d52d5
parentd03a754722980a4eaf14fce38d73ae23b604295b (diff)
tdf#113923: don't use twice a new column in table copy
In the case where: 1: we enabled the creation of a primary key 2: we come back here from the "Back" button of the next page, we want to avoid to list the new column generated in the next page So we must check added columns in right panel must exist in the table Change-Id: I467007941b03811381a216c1ab3de8fe729f9b9b Reviewed-on: https://gerrit.libreoffice.org/47684 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Lionel Elie Mamane <lionel@mamane.lu>
-rw-r--r--dbaccess/source/ui/misc/WColumnSelect.cxx16
1 files changed, 13 insertions, 3 deletions
diff --git a/dbaccess/source/ui/misc/WColumnSelect.cxx b/dbaccess/source/ui/misc/WColumnSelect.cxx
index 1deaff02ed7b..032737555f47 100644
--- a/dbaccess/source/ui/misc/WColumnSelect.cxx
+++ b/dbaccess/source/ui/misc/WColumnSelect.cxx
@@ -148,13 +148,23 @@ void OWizColumnSelect::ActivatePage( )
const ODatabaseExport::TColumnVector& rDestColumns = m_pParent->getDestVector();
+ // tdf#113923, the added columns must exist in the table
+ // in the case where:
+ // 1: we enabled the creation of a primary key
+ // 2: we come back here from the "Back" button of the next page,
+ // we want to avoid to list the new column generated in the next page
+ const ODatabaseExport::TColumns& rSrcColumns = m_pParent->getSourceColumns();
+
ODatabaseExport::TColumnVector::const_iterator aIter = rDestColumns.begin();
ODatabaseExport::TColumnVector::const_iterator aEnd = rDestColumns.end();
for(;aIter != aEnd;++aIter)
{
- const sal_Int32 nPos = m_pNewColumnNames->InsertEntry((*aIter)->first);
- m_pNewColumnNames->SetEntryData(nPos,new OFieldDescription(*((*aIter)->second)));
- m_pOrgColumnNames->RemoveEntry((*aIter)->first);
+ if (rSrcColumns.find((*aIter)->first) != rSrcColumns.end())
+ {
+ const sal_Int32 nPos = m_pNewColumnNames->InsertEntry((*aIter)->first);
+ m_pNewColumnNames->SetEntryData(nPos,new OFieldDescription(*((*aIter)->second)));
+ m_pOrgColumnNames->RemoveEntry((*aIter)->first);
+ }
}
m_pParent->GetOKButton().Enable(m_pNewColumnNames->GetEntryCount() != 0);
m_pParent->EnableNextButton(m_pNewColumnNames->GetEntryCount() && m_pParent->getOperation() != CopyTableOperation::AppendData);