diff --git a/qcross/cgamewindow.cpp b/qcross/cgamewindow.cpp index dd08de8..9f992f1 100644 --- a/qcross/cgamewindow.cpp +++ b/qcross/cgamewindow.cpp @@ -184,7 +184,7 @@ namespace qcross { delete m_Highscore; m_Highscore = dialog.takeHighscore(); - m_PackageName = dialog.selectedPackage()->name(); + m_PackageName = dialog.selectedPackageName(); m_PictureIndex = m_Highscore ? dialog.nonogramIndex() : -1; CNonogram * newPicture = dialog.takeNonogram(); diff --git a/qcross/cnewgamedialog.cpp b/qcross/cnewgamedialog.cpp index 45f7e44..5b1341d 100644 --- a/qcross/cnewgamedialog.cpp +++ b/qcross/cnewgamedialog.cpp @@ -94,10 +94,17 @@ namespace qcross { } libqnono::CCrossPackage * CNewGameDialog::selectedPackage() const { + if (m_Nonogram) return NULL; QModelIndex selected = ui.packageList->selectionModel()->selectedIndexes()[0]; return static_cast(selected.internalPointer()); } + QString CNewGameDialog::selectedPackageName() const { + if (m_Nonogram) return QString(); + libqnono::CCrossPackage *p = selectedPackage(); + return p ? p->name() : QString(); + } + libqnono::CNonogram * CNewGameDialog::takeNonogram() { libqnono::CNonogram * result; diff --git a/qcross/cnewgamedialog.h b/qcross/cnewgamedialog.h index 430a398..a3e1aa8 100644 --- a/qcross/cnewgamedialog.h +++ b/qcross/cnewgamedialog.h @@ -44,6 +44,7 @@ namespace qcross { int nonogramIndex() const; libqnono::CCrossPackage * selectedPackage() const; + QString selectedPackageName() const; libqnono::CNonogram * takeNonogram(); CHighscore * takeHighscore(); @@ -53,7 +54,7 @@ namespace qcross { private: Ui::picselect ui; CHighscore * m_Highscore; - libqnono::CNonogram * m_Nonogram; + libqnono::CNonogram * m_Nonogram; /* if != NULL package wasn't used */ CMaskedCrossPackageModel * m_PicModel; CMaskedCrossPackageProxyModel * m_PicProxyModel; private slots: