/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef ARCHIVECONTROLLER_H #define ARCHIVECONTROLLER_H #include #include #include #include class ArchiveView; class ArchiveTree; class ArchiveProxy; class ArchiveFiles; class ArchiveFilesProxy; class ArchiveModel; class ArchiveFilesModel; class QItemSelectionModel; class QSortFilterProxyModel; class QStandardItemModel; class QTextEdit; class QAction; class ArchiveController : public QObject { Q_OBJECT public: explicit ArchiveController(QObject *parent = 0); void setArchiveView(ArchiveView *view); void setArchiveTree(ArchiveTree *atree, ArchiveProxy *aproxy); void setArchiveFiles(ArchiveFiles *afiles, ArchiveFilesProxy *afilesproxy); void setModels(ArchiveModel *amodel, ArchiveFilesModel *afilesmodel); void setMappingModels(QStandardItemModel *actorModel, QStandardItemModel *genreModel); void setMetadata(QTextEdit *metaEdit); ArchiveFilesModel *archiveFilesModel() { return mArchiveFilesModel; } ArchiveFiles *archiveFiles() { return mArchiveFiles; } ArchiveModel *archiveTreeModel() { return mArchiveModel; } ArchiveTree *archiveTree() { return mArchiveTree; } ArchiveView *archiveView() { return mArchiveView; } void setSeriesPart(int seriesPartId); void init(); public slots: void treeSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void playSelectedFiles(); void editQuality(); void editDvdNo(); void editFileType(); void editFileNo(); void showProperties(); void showPreview(); void addActionForTree(QAction *a); void addFiles(); void readConfig(); void moveFilesToSeriespart(const QStringList &md5Sums, int newSeriesPart); private slots: void fileDoubleClicked(const QModelIndex &idx); void getMetadata(QSet ids); signals: void sizeChanged(qint64 newSize); void durationChanged(qint64 newDuration, bool maybeMore); private: QModelIndexList mapToSource(const QSortFilterProxyModel *proxy, const QModelIndexList idxs) const; ArchiveView *mArchiveView; ArchiveTree *mArchiveTree; ArchiveProxy *mArchiveProxy; QItemSelectionModel *mArchiveSelection; ArchiveFiles *mArchiveFiles; ArchiveFilesProxy *mArchiveFilesProxy; ArchiveModel *mArchiveModel; ArchiveFilesModel *mArchiveFilesModel; QItemSelectionModel *mFileSelection; QStandardItemModel *mActorModel; QStandardItemModel *mGenreModel; QTextEdit *mMetaEdit; QWidget *mParentWidget; QList mActionsForTree; QIcon mActorIcon; QIcon mGenreIcon; QIcon mMetaIcon; QIcon mFileIcon; }; #endif // ARCHIVECONTROLLER_H