From kde-commits Mon Feb 29 23:12:23 2016 From: Jaroslaw Staniek Date: Mon, 29 Feb 2016 23:12:23 +0000 To: kde-commits Subject: [kexi] src/plugins/importexport/csv: CSV import: Fix crash after canceling primary key addition on i Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=145678907530281 Git commit 91f533ffacd7f8ad47d92753192a43ee8755658a by Jaroslaw Staniek. Committed on 29/02/2016 at 23:07. Pushed by staniek into branch 'master'. CSV import: Fix crash after canceling primary key addition on import and go= ing back Scenario: - Open a CSV file without primary key detected; don't set up any key - Go to the "Name of dest table" page - Go NEXT to the "Import" page - Question about about adding primary key displays, click Cancel - Click back - Click back -> crash (from calligra.git) M +3 -2 src/plugins/importexport/csv/kexicsvimportdialog.cpp M +4 -2 src/plugins/importexport/csv/kexicsvimportdialog.h http://commits.kde.org/kexi/91f533ffacd7f8ad47d92753192a43ee8755658a diff --git a/src/plugins/importexport/csv/kexicsvimportdialog.cpp b/src/plu= gins/importexport/csv/kexicsvimportdialog.cpp index 4384dd7..b158786 100644 --- a/src/plugins/importexport/csv/kexicsvimportdialog.cpp +++ b/src/plugins/importexport/csv/kexicsvimportdialog.cpp @@ -1775,7 +1775,7 @@ void KexiCSVImportDialog::currentCellChanged(const QM= odelIndex &cur, const QMode } = //! Used in emergency by accept() -void KexiCSVImportDialog::dropDestinationTable(KexiProject* project, KexiP= art::Item* partItemForSavedTable) +void KexiCSVImportDialog::dropDestinationTable(KexiProject* project, KexiP= art::Item* &partItemForSavedTable) { m_importingProgressBar->hide(); project->deleteUnstoredItem(partItemForSavedTable); @@ -1786,11 +1786,12 @@ void KexiCSVImportDialog::dropDestinationTable(Kexi= Project* project, KexiPart::I } = //! Used in emergency by accept() -void KexiCSVImportDialog::raiseErrorInAccept(KexiProject* project, KexiPar= t::Item* partItemForSavedTable) +void KexiCSVImportDialog::raiseErrorInAccept(KexiProject* project, KexiPar= t::Item* &partItemForSavedTable) { finishButton()->setEnabled(true); KGuiItem::assign(finishButton(), KGuiItem(xi18nc("@action:button Impor= t CSV", "&Import..."), _IMPORT_ICON)); project->deleteUnstoredItem(partItemForSavedTable); + partItemForSavedTable =3D 0; delete m_destinationTableSchema; m_destinationTableSchema =3D 0; m_conn =3D 0; diff --git a/src/plugins/importexport/csv/kexicsvimportdialog.h b/src/plugi= ns/importexport/csv/kexicsvimportdialog.h index 62760cf..01b5802 100644 --- a/src/plugins/importexport/csv/kexicsvimportdialog.h +++ b/src/plugins/importexport/csv/kexicsvimportdialog.h @@ -112,10 +112,12 @@ protected: = private: //! Used in emergency by accept() - void dropDestinationTable(KexiProject* project, KexiPart::Item* partIt= emForSavedTable); + //! @note @a partItemForSavedTable is IN-OUT + void dropDestinationTable(KexiProject* project, KexiPart::Item* &partI= temForSavedTable); = //! Used in emergency by accept() - void raiseErrorInAccept(KexiProject* project, KexiPart::Item* partItem= ForSavedTable); + //! @note @a partItemForSavedTable is IN-OUT + void raiseErrorInAccept(KexiProject* project, KexiPart::Item* &partIte= mForSavedTable); = QGridLayout* MyDialogLayout; QHBoxLayout* Layout1;