/* 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 NewMovieWizard; class PicturesWidget; class SmTreeModel; class NewPicsDialog; class ArchiveView; class ArchiveBrowser; class SearchDialog; class RandomTab; class SheMov : public QMainWindow { Q_OBJECT public: SheMov(QWidget *parent = 0, Qt::WindowFlags flags = 0); enum TabNum { FileManager = 0, Movies = 1, Pictures = 2, ArchiveBrowserTab = 3, RandomDisp = 4 }; 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 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 newPicsDialog(); void newPicsDialogWithFiles(); void newPicsDialogWithDir(); void searchResult(int seriesPartId); void gotoArchive(); 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 createToolBar(); void writeSettings(); void readSettings(); void createPalette(); //Statusbar Items QLabel *mSelectedDuration; QLabel *mSelectedItems; QLabel *mSelectedSize; QLabel *mFsFree; //Actions QAction *mQuitA; QAction *mMarkFilesA; QAction *mUnmarkFilesA; QAction *mCreateFolderA; QAction *mDeleteFilesA; QAction *mRefreshA; QAction *mCopyA; QAction *mCutA; QAction *mPasteA; QAction *mRenameA; QAction *mCdupA; QAction *mBackDirA; QAction *mGotoArchiveA; QAction *mMountDvdA; QAction *mConfigA; QAction *mAboutShemovA; QAction *mAboutQtA; QAction *mStatisticsA; QAction *mPlaySelectedFSA; QAction *mPlaySelectedFSTimesA; QAction *mPlaySelectedInfTimesA; QAction *mOpenWithMenuFSA; QAction *mPlaySelectedTimesMenuFSA; QAction *mArchiveSelectedMovsA; QAction *mArchiveSelectedPicsA; QAction *mArchivePicsInDirA; QAction *mConsistencyA; QAction *mNewPicsA; QAction *mNewMovieWizardA; QAction *mMoveToArchiveA; QAction *mFSViewPropertiesA; QAction *mFSPreviewA; QAction *mFSResizeA; QAction *mUnpackA; QAction *mSearchDialogA; //Filesystem View Actions QActionGroup *mOpenWithGroupFS; QActionGroup *mOpenWithGroupAV; QActionGroup *mFileSysHeaderGroup; QActionGroup *mPicsTreeHeaderGroup; //PictureWidget Actions //PW = mPicWidget //PV = pictureViewer QAction *mPWDeletePicFromA; QAction *mPWEditPicMappingsA; QAction *mPWRefreshA; QAction *mPVToggleA; QAction *mPVAddA; QAction *mPVMarkA; QAction *mPVDeleteA; QAction *mPVClearMarksA; QAction *mPVReplaceA; QAction *mPVSelectAllA; QAction *mPVCopyToA; QAction *mPVShowNPDialogA; QAction *mPVAddToNPA; QAction *mPVSlideDlgA; QActionGroup *mPicActionGroup; //EndActions //ArchiveView actions QAction *mArchiveViewRenameA; QAction *mArchiveViewActorsA; QAction *mArchiveViewGenresA; QAction *mArchiveViewPartnoA; QAction *mArchiveViewMetadataA; QAction *mArchiveViewRefreshA; QAction *mArchiveViewMarkFavA; QAction *mArchiveViewAddCoversA; QAction *mArchiveViewExpandAllA; QAction *mArchiveViewCollapseAllA; QAction *mArchiveViewDeleteA; QAction *mArchiveViewNewPartA; QActionGroup *mArchiveFilesAG; //ArchiveBrowser QAction *mArchiveBrowserViewMenuA; QAction *mArchiveBrowserMoveToBurnA; QAction *mArchiveBrowserMoveToUSBA; QAction *mArchiveBrowserRefreshA; QAction *mArchiveBrowserPlaySelectedA; QAction *mArchiveBrowserExpandAllA; QAction *mArchiveBrowserCollapseAllA; QActionGroup *mArchiveBrowserAG; //ArchiveFiles actions QAction *mArchiveMenuA; QAction *mArchiveFilesPlayA; QAction *mArchiveFilesQualityA; QAction *mArchiveFilesDvdNoA; QAction *mArchiveFilesTypeA; QAction *mArchiveFilesFileNoA; QAction *mArchiveFilesPropertiesA; QAction *mArchiveFilesPreviewA; QAction *mArchiveRemoveFilesA; //DB analyze actions QAction *mAnalyzeActorsA; QAction *mAnalyzeGenresA; QAction *mAnalyzeSeriesA; QAction *mAnalyzePartsA; QSignalMapper *mOpenWithMapperFS; QSignalMapper *mOpenTimesFSMapper; QActionGroup *mOpenTimesFSAG; QMenu *mEditFSMenu; QMenu *mEditAVMenu; QMenu *mEditPicMenu; QMenu *mArchiveEditMenu; QMenu *mOpenWithMenuFS; QMenu *mPlaySelectedTimesMenuFS; QMenu *mFSViewMenu; QMenu *mPicViewMenu; QMenu *mArchiveViewMenu; QMenu *mArchiveBrowserViewMenu; QMenu *mRandomEditMenu; QAction *mEditFSMenuA; QAction *mEditPicMenuA; QAction *mViewFSMenuA; QAction *mViewPicMenuA; QAction *mArchiveViewMenuA; QAction *mRandomEditMenuA; //widgets + dialogs QTabWidget *mTab; FilesystemWidget *mFSWidget; NewMovieWizard *mNewMovieWizard; NewPicsDialog *mNewPicsDialog; SearchDialog *mSearchDialog; PicturesWidget *mPicWidget; ArchiveView *mArchive; ArchiveBrowser *mArchiveBrowser; RandomTab *mRandomTab; }; #endif