]> git.sur5r.net Git - minitube/blob - src/MainWindow.h
Fixed pause action status tip
[minitube] / src / MainWindow.h
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QtGui>
5 #include "faderwidget/FaderWidget.h"
6 #include "searchlineedit.h"
7 #include <phonon/audiooutput.h>
8 #include <phonon/volumeslider.h>
9 #include <phonon/mediaobject.h>
10 #include <phonon/seekslider.h>
11 #include "View.h"
12 #include "SearchView.h"
13 #include "MediaView.h"
14 #include "SettingsView.h"
15 #include "AboutView.h"
16
17 // #include <QProgressDialog>
18
19 class MainWindow : public QMainWindow {
20
21     Q_OBJECT
22
23 public:
24     MainWindow();
25     ~MainWindow();
26
27 protected:
28     void closeEvent(QCloseEvent *);
29
30     /*
31     struct DownloadResource
32     {
33         QProgressDialog* dialog;
34         QFile* file;
35     };*/
36
37 private slots:
38     void fadeInWidget(QWidget *oldWidget, QWidget *newWidget);
39     void goBack();
40     void showSettings();
41     void showSearch();
42     void showMedia(QString query);
43     void visitSite();
44     void donate();
45     void about();
46     void quit();
47     void fullscreen();
48     void compactView(bool enable);
49     void stop();
50     void stateChanged(Phonon::State newState, Phonon::State oldState);
51     void searchFocus();
52     void tick(qint64 time);
53     void totalTimeChanged(qint64 time);
54
55     // volume shortcuts
56     void volumeUp();
57     void volumeDown();
58     void volumeMute();
59     void volumeChanged(qreal newVolume);
60     void volumeMutedChanged(bool muted);
61
62     /*
63     // download related stuff
64     void abortDownload();
65     void download();
66     void download(const QUrl& url, const DownloadResource& res);
67     void replyReadyRead();
68     void replyDownloadProgress(qint64 bytesReceived, qint64 bytesTotal);
69     void replyError(QNetworkReply::NetworkError code);
70     void replyFinished();
71     void replyMetaDataChanged();
72     */
73
74 private:
75     void initPhonon();
76     void createActions();
77     void createMenus();
78     void createToolBars();
79     void createStatusBar();
80     void readSettings();
81     void writeSettings();
82     void showWidget(QWidget*);
83
84     // view mechanism
85     QPointer<FaderWidget> faderWidget;
86     QStackedWidget *views;
87     QStack<QWidget*> *history;
88
89     // view widgets
90     QWidget *searchView;
91     MediaView *mediaView;
92     QWidget *settingsView;
93     QWidget *aboutView;
94
95     // actions
96     QAction *addGadgetAct;
97     QAction *settingsAct;
98     QAction *backAct;
99     QAction *quitAct;
100     QAction *siteAct;
101     QAction *donateAct;
102     QAction *aboutAct;
103     QAction *searchFocusAct;
104
105     // media actions
106     QAction *skipAct;
107     QAction *pauseAct;
108     QAction *stopAct;
109     QAction *fullscreenAct;
110     QAction *compactViewAct;
111     QAction *webPageAct;
112     QAction *downloadAct;
113     QAction *volumeUpAct;
114     QAction *volumeDownAct;
115     QAction *volumeMuteAct;
116
117     // playlist actions
118     QAction *removeAct;
119     QAction *moveDownAct;
120     QAction *moveUpAct;
121     QAction *fetchMoreAct;
122
123     // menus
124     QMenu *fileMenu;
125     QMenu *viewMenu;
126     QMenu *playlistMenu;
127     QMenu *helpMenu;
128
129     // toolbar
130     QToolBar *mainToolBar;
131     SearchLineEdit *toolbarSearch;
132
133     // phonon
134     Phonon::SeekSlider *seekSlider;
135     Phonon::VolumeSlider *volumeSlider;
136     Phonon::MediaObject *mediaObject;
137     Phonon::AudioOutput *audioOutput;
138     QLabel *currentTime;
139     QLabel *totalTime;
140
141     bool m_fullscreen;
142     bool m_maximized;
143
144     // QMap<QNetworkReply*, DownloadResource> m_downloads;
145 };
146
147 #endif