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 20:44:39 +0100
commit71e822bed1131745bb66dc0798b3b8af61f0ec48 (patch)
tree815e00a915332a62aa75bdd6237bab2a4f6b8e28
parent1cb3e8f328dafffbe2449043894526f8d79405fb (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 (cherry picked from commit c2bc2c4633e92349cac390c05d245d1a812986c4) Reviewed-on: https://gerrit.libreoffice.org/47708 Reviewed-by: Lionel Elie Mamane <lionel@mamane.lu> Tested-by: Jenkins <ci@libreoffice.org>
-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 127d6ffee4ef..8549cf16de41 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);