[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kexi] src/plugins/importexport/csv: CSV import: Fix crash after canceling primary key addition on i
From:       Jaroslaw Staniek <staniek () kde ! org>
Date:       2016-02-29 23:12:23
Message-ID: E1aaWzH-0000sv-0M () scm ! kde ! org
[Download RAW message or body]

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 going 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/plugins/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 QModelIndex \
&cur, const QMode  }
 
 //! Used in emergency by accept()
-void KexiCSVImportDialog::dropDestinationTable(KexiProject* project, KexiPart::Item* \
partItemForSavedTable) +void KexiCSVImportDialog::dropDestinationTable(KexiProject* \
project, KexiPart::Item* &partItemForSavedTable)  {
     m_importingProgressBar->hide();
     project->deleteUnstoredItem(partItemForSavedTable);
@@ -1786,11 +1786,12 @@ void KexiCSVImportDialog::dropDestinationTable(KexiProject* \
project, KexiPart::I  }
 
 //! Used in emergency by accept()
-void KexiCSVImportDialog::raiseErrorInAccept(KexiProject* project, KexiPart::Item* \
partItemForSavedTable) +void KexiCSVImportDialog::raiseErrorInAccept(KexiProject* \
project, KexiPart::Item* &partItemForSavedTable)  {
     finishButton()->setEnabled(true);
     KGuiItem::assign(finishButton(), KGuiItem(xi18nc("@action:button Import CSV", \
"&Import..."), _IMPORT_ICON));  project->deleteUnstoredItem(partItemForSavedTable);
+    partItemForSavedTable = 0;
     delete m_destinationTableSchema;
     m_destinationTableSchema = 0;
     m_conn = 0;
diff --git a/src/plugins/importexport/csv/kexicsvimportdialog.h \
b/src/plugins/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* \
partItemForSavedTable); +    //! @note @a partItemForSavedTable is IN-OUT
+    void dropDestinationTable(KexiProject* project, KexiPart::Item* \
&partItemForSavedTable);  
     //! Used in emergency by accept()
-    void raiseErrorInAccept(KexiProject* project, KexiPart::Item* \
partItemForSavedTable); +    //! @note @a partItemForSavedTable is IN-OUT
+    void raiseErrorInAccept(KexiProject* project, KexiPart::Item* \
&partItemForSavedTable);  
     QGridLayout* MyDialogLayout;
     QHBoxLayout* Layout1;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic