diff options
author | Arno <am@disconnect.de> | 2010-12-30 14:47:12 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-12-30 14:47:12 +0100 |
commit | 3c508cad0032f46be56279f3a3ab5a7df9128bef (patch) | |
tree | 5752a0abf3f347dae52288522f39abbf9ea79058 /seriestreewidget.cpp | |
parent | 9fa92d359003485e21aa1a1d81545f63cf4d08da (diff) | |
download | SheMov-3c508cad0032f46be56279f3a3ab5a7df9128bef.tar.gz SheMov-3c508cad0032f46be56279f3a3ab5a7df9128bef.tar.bz2 SheMov-3c508cad0032f46be56279f3a3ab5a7df9128bef.zip |
Fix qWarnings() at startup and shutdown
Fix unexpected NULL receiver on startup: Turns out this warning is
issued when calling deleteLater on a NULL object. This happened in
SheMov::createOpenWith*.
The "database is still in use" warning was a bit harder to track down.
First of all, the destructors weren't called since Qt::WA_DeleteOnClose
wasn't set for SheMov, so Qt would simply exit and let the OS do the
cleanup without calling the destructors.
Then there were several orphan widgets/objects without a parent, so
their destructor would never be called.
Diffstat (limited to 'seriestreewidget.cpp')
-rw-r--r-- | seriestreewidget.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index 19617a7..fa6ded5 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -92,6 +92,14 @@ SeriesTreeWidget::SeriesTreeWidget(QWidget *parent) : QWidget(parent){ connect(mCompleterProducer, SIGNAL(done(QStringListModel*)), this, SLOT(producerFinished(QStringListModel*))); } +SeriesTreeWidget::~SeriesTreeWidget(){ + if(mCompleterProducerThread->isRunning()){ + mCompleterProducerThread->terminate(); + } + delete mCompleterProducerThread; + delete mCompleterProducer; +} + void SeriesTreeWidget::newSeries(){ QList<QVariant> data; data << tr("<New series>") << QVariant() << QVariant() << QVariant() << SeriesTreeModel::NewSeries; @@ -535,6 +543,7 @@ CompleterProducer::~CompleterProducer(){ delete mQualityQuery; delete mDvdNoQuery; mDb.close(); + mDb = QSqlDatabase(); } void CompleterProducer::produce(){ |