/* 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 SHEMOV_H #define SHEMOV_H #include #include class QTabWidget; class FilesystemWidget; class QLabel; class QSignalMapper; class QActionGroup; class ArchiveTreeView; class NewMovieWizard; class PicturesWidget; class SmTreeModel; class NewPicsDialog; class ArchiveView; class SheMov : public QMainWindow { Q_OBJECT public: SheMov(QWidget *parent = 0, Qt::WindowFlags flags = 0); enum TabNum { FileManager = 0, Archive = 1, Experimental = 2, Pictures = 3 }; virtual ~SheMov() {} protected: virtual void closeEvent(QCloseEvent *event); private slots: void updateSelectedCount(int count); void statusbarMessage(const QString &message); void configure(); void tabChanged(int newTab); void setFsFree(); void setSlide(bool toggled); void aboutShemov(); void showStatistics(); void newMovieWizard(); void newMovieWizardWithFiles(); void setSize(qint64 size); void setDuration(qint64 dur, bool maybeMore); void checkConsistency(); void toggleHover(QObject *object); void checkMount(bool mounted); void toggleFilterGroup(bool checked); void editMappings(QString table); void newPicsDialog(); void newPicsDialogWithFiles(); void rebuildFrameCache(); void analyzeActors(); void analyzeGenres(); void analyzeSeries(); void analyzeParts(); signals: void configChanged(); private: QAction *createSeparator(); QSignalMapper* createHeaderMapper(SmTreeModel *model, QActionGroup *group); void createStatusbar(); void createActions(); void createMenus(); void createOpenWithMenuFS(); void createOpenWithMenuAV(); void createToolBar(); void writeSettings(); void readSettings(); void createPalette(); //Statusbar Items QLabel *mSelectedDuration; QLabel *mSelectedItems; QLabel *mSlideLabel; QLabel *mSelectedSize; QLabel *mFsFree; //Actions QAction *mQuitA; QAction *mMarkFilesA; QAction *mToggleFavoriteA; QAction *mUnmarkFilesA; QAction *mCreateFolderA; QAction *mDeleteFilesA; QAction *mRefreshA; QAction *mCopyA; QAction *mCutA; QAction *mPasteA; QAction *mRenameA; QAction *mCdupA; QAction *mBackDirA; QAction *mMountDvdA; QAction *mConfigA; QAction *mAboutShemovA; QAction *mAboutQtA; QAction *mStatisticsA; QAction *mPlaySelectedFSA; QAction *mPlaySelectedAVA; QAction *mOpenWithMenuFSA; QAction *mOpenWithMenuAVA; QAction *mArchiveSelectedMovsA; QAction *mArchiveSelectedPicsA; QAction *mConsistencyA; QAction *mNewPicsA; QAction *mHoverDirectoriesA; QAction *mRebuildFrameCacheA; //TreeView Actions //Series Actions QAction *mDeleteFromSeriesA; QAction *mExpandAllSeriesA; QAction *mCollapseAllSeriesA; QAction *mExpandCurrentA; QAction *mNewMovieWizardA; QAction *mAddCoverA; QAction *mEditItemA; //TreeView View Actions QAction *mShowLocalA; QAction *mShowArchivedA; QAction *mShowNormalA; QAction *mShowBurnFilesA; QActionGroup *mShowTreeGroup; QAction *mHoverPicsA; QAction *mHoverArchiveA; QAction *mHoverMoviesA; QActionGroup *mHoverTreeGroup; QAction *mFilterBySeriesA; QAction *mFilterByActorA; QAction *mFilterByGenreA; QAction *mFilterByQualityA; QAction *mFilterByFilenameA; QAction *mFilterByDvdNoA; QAction *mFilterBySizeA; QActionGroup *mFilterGroup; QAction *mFilterFavoritesA; QAction *mEditGenresA; QAction *mEditActorsA; //TreeView FileWidget Actions QAction *mMoveToBurnA; QAction *mMoveToSeriesA; QAction *mMoveFilesA; QAction *mDeleteFilesFromTreeA; QAction *mFilePropertiesA; QAction *mCopyUnixFullPathA; QAction *mCopyUnixDirA; QAction *mCopyWindowsFullPathA; QAction *mCopyWindowsDirA; QAction *mSuggestFileA; QAction *mPlaySelectedArchiveFilesA; QAction *mMoveToArchiveA; //Filesystem View Actions QActionGroup *mFSHoverGroup; QActionGroup *mOpenWithGroupFS; QActionGroup *mOpenWithGroupAV; QActionGroup *mFilesTreeHeadersGroup; QActionGroup *mFileSysHeaderGroup; QActionGroup *mPicsTreeHeaderGroup; QActionGroup *mEditGroup; //PictureWidget Actions //PW = mPicWidget //PV = pictureViewer QAction *mPWDeletePicFromA; QAction *mPWEditPicMappingsA; QAction *mPWRefreshA; QAction *mPVToggleA; QAction *mPVAddA; QAction *mPVReplaceA; QAction *mPVSelectAllA; QAction *mPVSlideA; QAction *mPVShuffleA; QAction *mPVCopyToA; QAction *mPVShowNPDialogA; QAction *mPVAddToNPA; QActionGroup *mPicActionGroup; //EndActions //ArchiveView actions QAction *mArchiveViewRenameA; QAction *mArchiveViewActorsA; QAction *mArchiveViewGenresA; QAction *mArchiveViewPartnoA; QAction *mArchiveViewMetadataA; QActionGroup *mArchiveFilesAG; //ArchiveFiles actions QAction *mArchiveMenuA; QAction *mArchiveFilesPlayA; QAction *mArchiveFilesQualityA; QAction *mArchiveFilesDvdNoA; QAction *mArchiveFilesTypeA; QAction *mArchiveFilesFileNoA; //DB analyze actions QAction *mAnalyzeActorsA; QAction *mAnalyzeGenresA; QAction *mAnalyzeSeriesA; QAction *mAnalyzePartsA; QSignalMapper *mOpenWithMapperFS; QSignalMapper *mOpenWithMapperAV; QSignalMapper *mFilterMapper; QMenu *mEditFSMenu; QMenu *mEditAVMenu; QMenu *mEditPicMenu; QMenu *mArchiveEditMenu; QMenu *mOpenWithMenuFS; QMenu *mOpenWithMenuAV; QMenu *mTreeViewMenu; QMenu *mFSViewMenu; QMenu *mPicViewMenu; QMenu *mArchiveViewMenu; QMenu *mTreeHeaderMenu; QMenu *mTreeHoverMenu; QMenu *mTreeFilterMenu; QMenu *mFSHoverMenu; QAction *mEditFSMenuA; QAction *mEditAVMenuA; QAction *mEditPicMenuA; QAction *mViewFSMenuA; QAction *mViewAVMenuA; QAction *mViewPicMenuA; QAction *mArchiveViewMenuA; //widgets + dialogs QTabWidget *mTab; FilesystemWidget *mFSWidget; ArchiveTreeView *mATree; NewMovieWizard *mNewMovieWizard; NewPicsDialog *mNewPicsDialog; PicturesWidget *mPicWidget; ArchiveView *mArchive; }; #endif