diff options
-rw-r--r-- | archivemodel.cpp | 33 | ||||
-rw-r--r-- | archivemodel.h | 2 | ||||
-rw-r--r-- | filestreemodel.cpp | 12 | ||||
-rw-r--r-- | filestreemodel.h | 1 | ||||
-rw-r--r-- | mappingtableeditor.cpp | 5 | ||||
-rw-r--r-- | mappingtableeditor.h | 1 | ||||
-rw-r--r-- | mappingtablemodel.cpp | 12 | ||||
-rw-r--r-- | mappingtablemodel.h | 1 | ||||
-rw-r--r-- | mappingtreemodel.cpp | 14 | ||||
-rw-r--r-- | mappingtreemodel.h | 1 | ||||
-rw-r--r-- | newmoviewizard.h | 1 | ||||
-rw-r--r-- | newpicsdialog.cpp | 5 | ||||
-rw-r--r-- | newpicsdialog.h | 1 | ||||
-rw-r--r-- | picfilesmodel.cpp | 7 | ||||
-rw-r--r-- | picfilesmodel.h | 1 | ||||
-rw-r--r-- | seriesmetadatamodel.cpp | 8 | ||||
-rw-r--r-- | seriesmetadatamodel.h | 1 | ||||
-rw-r--r-- | seriestreemodel.cpp | 18 | ||||
-rw-r--r-- | seriestreemodel.h | 1 | ||||
-rw-r--r-- | shemov.cpp | 1 | ||||
-rw-r--r-- | smdirmodel.cpp | 6 | ||||
-rw-r--r-- | smdirmodel.h | 1 | ||||
-rw-r--r-- | smdirwatcher.cpp | 18 | ||||
-rw-r--r-- | smdirwatcher.h | 3 | ||||
-rw-r--r-- | statisticsdialog.h | 1 |
25 files changed, 50 insertions, 105 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp index 28a9cbb..4ca9f1c 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -878,7 +878,7 @@ void ArchiveFilesModel::readConfig(){ /* * ArchiveCollector BEGIN */ -ArchiveCollector::ArchiveCollector(int numFields, int order, QObject *parent) : QThread(parent), mRootItem(0), mNumFields(numFields), mSortOrder(order) { +ArchiveCollector::ArchiveCollector(int numFields, int order, QObject *parent) : QThread(parent), mRootItem(0), mNumFields(numFields), mSortOrder(order), mCancelled(false) { QString dbName = QString("%1").arg((qint64(this))); mDb = QSqlDatabase::cloneDatabase(QSqlDatabase::database("treedb"), dbName); mDb.open(); @@ -919,7 +919,9 @@ void ArchiveCollector::run(){ void ArchiveCollector::populateBySeriesName() { fetchSeries(QVariant(), mRootItem); for(int i = 0; i < mRootItem->childCount(); ++i){ - checkCancelled(); + if(checkCancelled()){ + return; + } fetchParts(QVariant(), mRootItem->child(i)); } } @@ -927,7 +929,9 @@ void ArchiveCollector::populateBySeriesName() { void ArchiveCollector::populateByGenre(){ QSqlQuery genreIdQuery = QSqlQuery("SELECT igenres_id, tgenrename FROM genres ORDER BY tgenrename", mDb); while(genreIdQuery.next()){ - checkCancelled(); + if(checkCancelled()){ + return; + } QList<QVariant> genreIdData; genreIdData << genreIdQuery.value(1) << genreIdQuery.value(0) << QVariant() << QVariant() << ArchiveModel::GenreNode << false << QVariant() << QVariant(); SmTreeItem *genreIdItem = new SmTreeItem(genreIdData, mRootItem); @@ -939,7 +943,9 @@ void ArchiveCollector::populateByGenre(){ void ArchiveCollector::populateByActor(){ QSqlQuery actorIdQuery = QSqlQuery("SELECT iactors_id, tactorname FROM actors ORDER BY tactorname", mDb); while(actorIdQuery.next()){ - checkCancelled(); + if(checkCancelled()){ + return; + } QList<QVariant> actorIdData; actorIdData << actorIdQuery.value(1) << actorIdQuery.value(0) << QVariant() << QVariant() << ArchiveModel::ActorNode << false << QVariant() << QVariant(); SmTreeItem *actorIdItem = new SmTreeItem(actorIdData, mRootItem); @@ -950,7 +956,9 @@ void ArchiveCollector::populateByActor(){ void ArchiveCollector::fetchChildren(SmTreeItem *parent){ for(int i = 0; i < parent->childCount(); ++i){ - checkCancelled(); + if(checkCancelled()){ + return; + } fetchSeries(parent->child(i)->data(ArchiveModel::GenericId), parent->child(i)); for(int j = 0; j < parent->child(i)->childCount(); ++j){ checkCancelled(); @@ -983,7 +991,9 @@ void ArchiveCollector::fetchSeries(const QVariant &id, SmTreeItem *parent){ return; } while(seriesIdQuery.next()){ - checkCancelled(); + if(checkCancelled()){ + return; + } QList<QVariant> seriesData; seriesData << seriesIdQuery.value(1) << seriesIdQuery.value(0) << QVariant() << QVariant() << ArchiveModel::SeriesNode << false << QVariant() << QVariant(); SmTreeItem *seriesItem = new SmTreeItem(seriesData, parent); @@ -1009,7 +1019,9 @@ void ArchiveCollector::fetchParts(const QVariant &id, SmTreeItem *parent){ } partsQuery.exec(); while(partsQuery.next()){ - checkCancelled(); + if(checkCancelled()){ + return; + } QList<QVariant> partData; partData << parent->data(ArchiveModel::Name) << parent->data(ArchiveModel::GenericId) << partsQuery.value(0) << partsQuery.value(1) << ArchiveModel::SeriesPartNode << partsQuery.value(2) << partsQuery.value(3) << QVariant(); SmTreeItem *partItem = new SmTreeItem(partData, parent); @@ -1018,10 +1030,7 @@ void ArchiveCollector::fetchParts(const QVariant &id, SmTreeItem *parent){ parent->setData(ArchiveModel::Count, parent->childCount()); } -void ArchiveCollector::checkCancelled(){ +bool ArchiveCollector::checkCancelled(){ QMutexLocker l(&mCancelledMx); - if(mCancelled){ - mCancelled = false; - quit(); - } + return mCancelled; } diff --git a/archivemodel.h b/archivemodel.h index 8e0d853..f14dd30 100644 --- a/archivemodel.h +++ b/archivemodel.h @@ -131,7 +131,7 @@ class ArchiveCollector : public QThread { void fetchChildren(SmTreeItem *parent); void fetchSeries(const QVariant &id, SmTreeItem *parent); void fetchParts(const QVariant &id, SmTreeItem *parent); - void checkCancelled(); + bool checkCancelled(); QSqlDatabase mDb; SmTreeItem *mRootItem; QMutex mAccessMx; diff --git a/filestreemodel.cpp b/filestreemodel.cpp index b6738af..2b4ad6d 100644 --- a/filestreemodel.cpp +++ b/filestreemodel.cpp @@ -67,18 +67,6 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo mDvdSize = SmGlobals::instance()->dvdSize(); } -FilesTreeModel::~FilesTreeModel(){ - delete mUpdateDvdQuery; - delete mUpdateQualityQuery; - delete mUpdatePartNoQuery; - delete mUpdateFileTypeQuery; - delete mInsertFileQuery; - delete mFilesQuery; - delete mDeleteFileQuery; - delete mFileTypeQuery; - mDb = QSqlDatabase(); -} - void FilesTreeModel::setIds(const QList<int> &seriesPartIds){ mDisplayMode = Ids; mCurrentIds = seriesPartIds; diff --git a/filestreemodel.h b/filestreemodel.h index cce75fe..3b7924b 100644 --- a/filestreemodel.h +++ b/filestreemodel.h @@ -35,7 +35,6 @@ class FilesTreeModel : public SmTreeModel { void setMode(int mode) { mMode = mode; } int displayMode() const { return mDisplayMode; } void setDisplayMode(int mode) { mDisplayMode = mode; } - ~FilesTreeModel(); //data + flags void setIds(const QList<int> &seriesPartIds); diff --git a/mappingtableeditor.cpp b/mappingtableeditor.cpp index 1f6d19d..d1fe985 100644 --- a/mappingtableeditor.cpp +++ b/mappingtableeditor.cpp @@ -144,11 +144,6 @@ MappingTableEditorModel::MappingTableEditorModel(const QString &table, const QSt populate(); } -MappingTableEditorModel::~MappingTableEditorModel(){ - delete mDataQuery; - mDb = QSqlDatabase(); -} - Qt::ItemFlags MappingTableEditorModel::flags(const QModelIndex &index) const{ if(!index.isValid()){ return 0; diff --git a/mappingtableeditor.h b/mappingtableeditor.h index cbdacf9..f09483e 100644 --- a/mappingtableeditor.h +++ b/mappingtableeditor.h @@ -56,7 +56,6 @@ class MappingTableEditorModel : public SmTreeModel { enum Roles { NameRole = Qt::UserRole + 1, CountRole = Qt::UserRole +2, IdRole = Qt::UserRole + 3 }; enum Fields { Name = 0, Count = 1, Id = 2 }; explicit MappingTableEditorModel(const QString &table, const QStringList &headers, QObject *parent = 0); - virtual ~MappingTableEditorModel(); virtual Qt::ItemFlags flags(const QModelIndex &idx) const; virtual QVariant data(const QModelIndex &index, int role) const; virtual bool setData(const QModelIndex &idx, const QVariant &value, int role); diff --git a/mappingtablemodel.cpp b/mappingtablemodel.cpp index 0724c00..8d3752f 100644 --- a/mappingtablemodel.cpp +++ b/mappingtablemodel.cpp @@ -50,18 +50,6 @@ MappingTableModel::MappingTableModel(QStringList &headers, const QString &table, populate(); } -MappingTableModel::~MappingTableModel(){ - delete mUpdateItemNameQuery; - delete mInsertItemQuery; - delete mDeleteItemQuery; - delete mAddMappingQuery; - delete mRemoveMappingQuery; - delete mMappingQuery; - delete mAllItemsQuery; - delete mItemCountQuery; - mDb = QSqlDatabase(); -} - Qt::ItemFlags MappingTableModel::flags(const QModelIndex &index) const{ if(!index.isValid()){ return 0; diff --git a/mappingtablemodel.h b/mappingtablemodel.h index 1c264ff..8f3793b 100644 --- a/mappingtablemodel.h +++ b/mappingtablemodel.h @@ -23,7 +23,6 @@ class MappingTableModel : public SmTreeModel{ enum CustomRoles { ItemNameRole = Qt::UserRole + 1, ItemIdRole = Qt::UserRole + 2 }; enum Fields { ItemName = 0, ItemId = 1 }; explicit MappingTableModel(QStringList &headers, const QString &table, QObject *parent = 0); - virtual ~MappingTableModel(); //data + flags virtual Qt::ItemFlags flags(const QModelIndex &index) const; diff --git a/mappingtreemodel.cpp b/mappingtreemodel.cpp index 9c6be13..650a21d 100644 --- a/mappingtreemodel.cpp +++ b/mappingtreemodel.cpp @@ -43,20 +43,6 @@ MappingTreeModel::MappingTreeModel(QStringList &headers, QObject *parent) : SmTr mDescriptionQ->prepare("SELECT tdescription_name, idescription_id FROM mapping_description WHERE idescription_type = :type"); } -MappingTreeModel::~MappingTreeModel(){ - delete mTypesQ; - delete mUpdateTypeQ; - delete mUpdateChildQ; - delete mAddMappingTypeQ; - delete mDeleteMappingTypeQ; - delete mAddDescriptionQ; - delete mSelectDescriptionQ; - delete mAddParentQ; - delete mUpdateParentQ; - delete mDescriptionQ; - mDb = QSqlDatabase(); -} - QStringList MappingTreeModel::mappingTypeNames() const { QStringList retval; foreach(mappingType t, mMappingTypes){ diff --git a/mappingtreemodel.h b/mappingtreemodel.h index 247c96d..4665e07 100644 --- a/mappingtreemodel.h +++ b/mappingtreemodel.h @@ -25,7 +25,6 @@ class MappingTreeModel : public SmTreeModel { enum Fields { Name = 0, MappingId = 1, DescAdded = 2, DescId = 3, MappingParentId = 4 }; enum { NumFields = 5 }; MappingTreeModel(QStringList &headers, QObject *parent = 0); - ~MappingTreeModel(); //model type convenience functions QStringList mappingTypeNames() const; diff --git a/newmoviewizard.h b/newmoviewizard.h index 0aae2d2..5f4d385 100644 --- a/newmoviewizard.h +++ b/newmoviewizard.h @@ -117,7 +117,6 @@ class WizardTreeModel : public SmTreeModel { enum { NumFields = 5 }; enum Types { Movie = 1, FrontCover = 2, BackCover = 3, GeneralCover = 4 }; explicit WizardTreeModel(QStringList &headers, QObject *parent = 0); - virtual ~WizardTreeModel() {} //data + flags virtual QVariant data(const QModelIndex &index, int role) const; diff --git a/newpicsdialog.cpp b/newpicsdialog.cpp index 36fdfe1..31e14c4 100644 --- a/newpicsdialog.cpp +++ b/newpicsdialog.cpp @@ -173,11 +173,6 @@ NewPicFilesModel::NewPicFilesModel(const QStringList &header, QObject *parent) : mMd5Query->prepare("SELECT COUNT(*) FROM pics WHERE cmd5sum = :md5"); } -NewPicFilesModel::~NewPicFilesModel(){ - delete mMd5Query; - mDb = QSqlDatabase(); -} - Qt::ItemFlags NewPicFilesModel::flags(const QModelIndex &index) const{ Q_UNUSED(index); return (Qt::ItemIsSelectable | Qt::ItemIsEnabled); diff --git a/newpicsdialog.h b/newpicsdialog.h index 87db4f3..67068df 100644 --- a/newpicsdialog.h +++ b/newpicsdialog.h @@ -59,7 +59,6 @@ class NewPicFilesModel : public SmTreeModel { enum Fields { FileName = 0, Size = 1, Valid = 2, Md5Sum = 3, MimeType = 4, FullPath = 5 }; enum { NumFields = 6 }; explicit NewPicFilesModel(const QStringList &header, QObject *parent = 0); - ~NewPicFilesModel(); //data Qt::ItemFlags flags(const QModelIndex &index) const; diff --git a/picfilesmodel.cpp b/picfilesmodel.cpp index 6b8153f..cb54503 100644 --- a/picfilesmodel.cpp +++ b/picfilesmodel.cpp @@ -32,13 +32,6 @@ PicFilesModel::PicFilesModel(const QStringList &headers, QObject *parent) : SmTr } -PicFilesModel::~PicFilesModel(){ - delete mDeleteFileQ; - delete mDeleteMappingsQ; - delete mAddMappingsQ; - mDb = QSqlDatabase::database(); -} - void PicFilesModel::setMapping(int pMapId){ QList<QVariant> ids = mMappingTreeModel->childList(pMapId, MappingTreeModel::MappingId); mMappingIds.clear(); diff --git a/picfilesmodel.h b/picfilesmodel.h index a27372d..6a033c1 100644 --- a/picfilesmodel.h +++ b/picfilesmodel.h @@ -18,7 +18,6 @@ class PicFilesModel : public SmTreeModel { enum Fields { FileName = 0, Size = 1, MimeType = 2, FullPath = 3, Id = 4, Added = 5, Md5Sum = 6, SizeDisplay = 7 }; enum { NumFields = 8 }; explicit PicFilesModel(const QStringList &headers, QObject *parent = 0); - ~PicFilesModel(); void setMapping(int pMapId); //some data diff --git a/seriesmetadatamodel.cpp b/seriesmetadatamodel.cpp index 21a9c3d..383c77b 100644 --- a/seriesmetadatamodel.cpp +++ b/seriesmetadatamodel.cpp @@ -56,14 +56,6 @@ SeriesMetadataModel::SeriesMetadataModel(const QStringList &headers, QObject *pa mDisplayColumnNames.insert(Added, "Date added"); } -SeriesMetadataModel::~SeriesMetadataModel(){ - delete mPopulateQuery; - delete mPresentQuery; - delete mUpdateAllQuery; - delete mInsertQuery; - mDb = QSqlDatabase(); -} - QVariant SeriesMetadataModel::data(int column) const { if((column < 0 ) || (column >= mDataFields)){ return QVariant(); diff --git a/seriesmetadatamodel.h b/seriesmetadatamodel.h index 4aaa3e1..8c25c6b 100644 --- a/seriesmetadatamodel.h +++ b/seriesmetadatamodel.h @@ -28,7 +28,6 @@ class SeriesMetadataModel : public SmTreeModel { public: enum Fields { ReleaseYear = 0, SourceMedium = 1, Subject = 2, ReleaseGroup = 3, EncoderOpts = 4, Comment = 5, Passes = 6, Added = 7 }; explicit SeriesMetadataModel(const QStringList &headers, QObject *parent = 0); - virtual ~SeriesMetadataModel(); //data int currentId() const { return mCurrentId; } diff --git a/seriestreemodel.cpp b/seriestreemodel.cpp index 4ec9f3f..ac1a381 100644 --- a/seriestreemodel.cpp +++ b/seriestreemodel.cpp @@ -56,24 +56,6 @@ SeriesTreeModel::SeriesTreeModel(QStringList &headers, QObject *parent) : SmTree populate(); } -SeriesTreeModel::~SeriesTreeModel(){ - delete mSeriesPartsQuery; - delete mUpdateSeriesIdQuery; - delete mUpdateSeriesNameQuery; - delete mDeleteSeriesQuery; - delete mDeleteSeriesPartQuery; - delete mSeriesInsertQuery; - delete mSeriesFilesQuery; - delete mSeriesPartFilesQuery; - delete mSeriesPartInsertQuery; - delete mSortedMovieListQuery; - delete mNextDvdNoQuery; - delete mGenreFilterQuery; - delete mFavoriteSeriesIdQuery; - delete mFavoriteSeriesPartsQuery; - mDb = QSqlDatabase(); -} - Qt::ItemFlags SeriesTreeModel::flags(const QModelIndex &index) const{ if(!index.isValid()){ return 0; diff --git a/seriestreemodel.h b/seriestreemodel.h index 55add52..19b496f 100644 --- a/seriestreemodel.h +++ b/seriestreemodel.h @@ -27,7 +27,6 @@ class SeriesTreeModel : public SmTreeModel { enum { NumFields = 8 }; enum RowFilter { All = 0, Archived = 1, Local = 2 }; explicit SeriesTreeModel(QStringList &headers, QObject *parent = 0); - ~SeriesTreeModel(); //data + flags Qt::ItemFlags flags(const QModelIndex &index) const; @@ -162,6 +162,7 @@ void SheMov::closeEvent(QCloseEvent *event){ writeSettings(); SmGlobals *globals = SmGlobals::instance(); delete globals; + QSqlDatabase::database("treedb").close(); event->accept(); } diff --git a/smdirmodel.cpp b/smdirmodel.cpp index 16caf02..23e76fa 100644 --- a/smdirmodel.cpp +++ b/smdirmodel.cpp @@ -30,6 +30,12 @@ SmDirModel::SmDirModel(const QStringList &headers, QObject *parent) : SmTreeMode connect(mCollector, SIGNAL(newData(QList<QVariant>,int)), this, SLOT(dirEvent(QList<QVariant>,int)), Qt::BlockingQueuedConnection); } +SmDirModel::~SmDirModel(){ + if(mWatch->isRunning()){ + mWatch->stop(); + } +} + QVariant SmDirModel::data(const QModelIndex &index, int role) const{ if(!index.isValid()){ return QVariant(); diff --git a/smdirmodel.h b/smdirmodel.h index 8522662..21aab40 100644 --- a/smdirmodel.h +++ b/smdirmodel.h @@ -27,6 +27,7 @@ class SmDirModel : public SmTreeModel { enum { NumFields = 9 }; enum FileDate { Access, Modified, Status }; explicit SmDirModel(const QStringList &headers, QObject *parent = 0); + virtual ~SmDirModel(); virtual QVariant data(const QModelIndex &index, int role) const; virtual bool setData(const QModelIndex &index, const QVariant &value, int role); bool isDir(const QModelIndex &idx) const; diff --git a/smdirwatcher.cpp b/smdirwatcher.cpp index a6163c2..371e7cf 100644 --- a/smdirwatcher.cpp +++ b/smdirwatcher.cpp @@ -86,7 +86,17 @@ void SmDirWatcher::run(){ } } -SmDataColletor::SmDataColletor(const int numFields, QObject *parent) : QThread(parent), mSemFree(0), mSemUsed(0), mDataQueue(0), mNumFields(numFields), mCheckForPresent(true) { +void SmDirWatcher::stop(){ + mSemFree->acquire(); + mCollector->stop(); + mSemUsed->release(); + if(mCollector->isRunning()){ + mCollector->wait(); + } + quit(); +} + +SmDataColletor::SmDataColletor(const int numFields, QObject *parent) : QThread(parent), mSemFree(0), mSemUsed(0), mDataQueue(0), mNumFields(numFields), mCheckForPresent(true), mCancel(false) { QSqlDatabase db = QSqlDatabase::cloneDatabase(QSqlDatabase::database("treedb"), "collectordb"); db.open(); mPicPresentQ = new QSqlQuery(db); @@ -109,6 +119,11 @@ void SmDataColletor::setCheckForPresent(bool present){ void SmDataColletor::run(){ forever { mSemUsed->acquire(); + if(mCancel){ + QSqlDatabase::database("collectordb").close(); + mSemFree->release(); + break; + } QPair<QString, SmDirWatcher::DWEvent> cur = mDataQueue->dequeue(); if(cur.second == SmDirWatcher::Populate){ SmTreeItem *i = populate(cur.first); @@ -123,6 +138,7 @@ void SmDataColletor::run(){ emit newData(fd, cur.second); mSemFree->release(); } + quit(); } SmTreeItem * SmDataColletor::populate(const QString &dir){ diff --git a/smdirwatcher.h b/smdirwatcher.h index b0edd2f..77d0d97 100644 --- a/smdirwatcher.h +++ b/smdirwatcher.h @@ -34,6 +34,7 @@ class SmDirWatcher : public QThread { public slots: void run(); + void stop(); void setDir(const QString &dir); private: @@ -57,6 +58,7 @@ class SmDataColletor : public QThread { public slots: void setCheckForPresent(bool present); void run(); + void stop() { mCancel = true; } signals: void newData(const QList<QVariant>,int); @@ -73,6 +75,7 @@ class SmDataColletor : public QThread { int mMode; const int mNumFields; bool mCheckForPresent; + bool mCancel; QMutex mCheckForPresentMx; QSqlQuery *mPicPresentQ; QSqlQuery *mMovPresentQ; diff --git a/statisticsdialog.h b/statisticsdialog.h index 27de9fa..c9441c3 100644 --- a/statisticsdialog.h +++ b/statisticsdialog.h @@ -22,7 +22,6 @@ class StatisticsDialog : public SmDialog { Q_OBJECT public: StatisticsDialog(QWidget *parent = 0, Qt::WindowFlags f = 0); - ~StatisticsDialog() {} private: QList<QList<QVariant> > queryData(const QString &query) const; |