summaryrefslogtreecommitdiffstats
path: root/shemov.h
blob: 7504cfe2fb0affcd3956c41b2b544c3305c1ec6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
  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 <QMainWindow>
#include <QList>
#include <QThread>

class QTabWidget;
class FilesystemWidget;
class QAction;
class QLabel;
class QItemSelection;
class QSignalMapper;
class QMenu;
class QActionGroup;
class ArchiveTreeView;
class NewMovieWizard;

class SheMov : public QMainWindow {
	Q_OBJECT
	public:
		SheMov(QWidget *parent = 0, Qt::WindowFlags flags = 0);
		~SheMov() {};

	protected:
		virtual void closeEvent(QCloseEvent *event);

	private slots:
		void updateSelectionCount(const QItemSelection &sel, const QItemSelection &prev);
		void statusbarMessage(const QString &message);
		void setTemplate(const QString &newTemplate);
		void configure();
		void tabChanged(int newTab);
		void setFsFree();
		void aboutShemov();
		void showStatistics();
		void newMovieWizard();
		void newMovieWizardWithFiles();
		void setSize(qint64 size);
		void checkConsistency();

	signals:
		void configChanged();

	private:
		void createStatusbar();
		void createActions();
		void createMenus();
		void createOpenWithMenuFS();
		void createOpenWithMenuAV();
		void writeSettings();
		void readSettings();

		//Statusbar Items
		QLabel *mSelectedItems;
		QLabel *mTemplate;
		QLabel *mSelectedSize;
		QLabel *mFsFree;

		//Actions
		QAction *mQuitA;
		QAction *mMarkFilesA;
		QAction *mUnmarkFilesA;
		QAction *mCreateFolderA;
		QAction *mDeleteFilesA;
		QAction *mRefreshA;
		QAction *mCopyA;
		QAction *mMoveA;
		QAction *mRenameA;
		QAction *mCdupA;
		QAction *mRenameCoverFA;
		QAction *mRenameCoverBA;
		QAction *mRenameCoverCA;
		QAction *mTemplateA;
		QAction *mConfigA;
		QAction *mAboutShemovA;
		QAction *mAboutQtA;
		QAction *mStatisticsA;
		QAction *mPlaySelectedFSA;
		QAction *mPlaySelectedAVA;
		QAction *mOpenWithMenuFSA;
		QAction *mOpenWithMenuAVA;
		QAction *mRenameMenuA;
		QAction *mArchiveSelectedA;
		QAction *mConsistencyA;

		//TreeView Actions
		//Series Actions
		QAction *mNewSeriesA;
		QAction *mDeleteFromSeriesA;
		QAction *mExpandAllSeriesA;
		QAction *mCollapseAllSeriesA;
		QAction *mExpandCurrentA;
		QAction *mNewMovieWizardA;
		QAction *mAddCoverA;
		QAction *mEditItemA;

		//TreeView View Actions
		QAction *mShowLocalA;
		QAction *mShowArchivedA;
		QAction *mShowNormalA;
		QActionGroup *mViewTreeGroup;

		//TreeView FileWidget Actions
		QAction *mMoveToBurnA;
		QAction *mMoveFilesA;
		QAction *mSetDvdNoA;
		QAction *mSetQualityA;
		QAction *mSetPartNoA;
		QAction *mDeleteFilesFromTreeA;
		QAction *mFilePropertiesA;

		QActionGroup *mOpenWithGroupFS;
		QActionGroup *mOpenWithGroupAV;
		QActionGroup *mCleanupGroup;
		//EndActions
		
		QSignalMapper *mRenameMapper;
		QSignalMapper *mOpenWithMapperFS;
		QSignalMapper *mOpenWithMapperAV;
		QSignalMapper *mCleanupMapper;

		QMenu *mEditFSMenu;
		QMenu *mOpenWithMenuFS;
		QMenu *mOpenWithMenuAV;
		QMenu *mRenameMenu;
		QMenu *mTreeViewMenu;
		QAction *mEditFSMenuA;

		//widgets + dialogs
		QTabWidget *mTab;
		FilesystemWidget *mFSWidget;
		ArchiveTreeView *mATree;
		NewMovieWizard *mNewMovieWizard;
};
#endif