diff options
author | Julien Nabet <serval2412@yahoo.fr> | 2018-01-09 22:51:09 +0100 |
---|---|---|
committer | Julien Nabet <serval2412@yahoo.fr> | 2018-01-10 14:43:15 +0100 |
commit | c2bc2c4633e92349cac390c05d245d1a812986c4 (patch) | |
tree | b51858071e396b516c44b4b0ef550dcc503d52d5 | |
parent | d03a754722980a4eaf14fce38d73ae23b604295b (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.cxx | 16 |
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); |