]> git.sur5r.net Git - minitube/blob - src/MainWindow.h
Imported Upstream version 1.5
[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 "AboutView.h"
15 #include "downloadview.h"
16
17 class MainWindow : public QMainWindow {
18
19     Q_OBJECT
20
21 public:
22     MainWindow();
23     ~MainWindow();
24     Phonon::SeekSlider* getSeekSlider() { return seekSlider; }
25
26 public slots:
27     void showMedia(SearchParams *params);
28
29 protected:
30     void closeEvent(QCloseEvent *);
31     bool eventFilter(QObject *obj, QEvent *event);
32     void dragEnterEvent(QDragEnterEvent *event);
33     void dropEvent(QDropEvent *event);
34
35 private slots:
36     void fadeInWidget(QWidget *oldWidget, QWidget *newWidget);
37     void goBack();
38     void showSearch();
39     void visitSite();
40     void donate();
41     void about();
42     void quit();
43     void fullscreen();
44     void compactView(bool enable);
45     void stop();
46     void stateChanged(Phonon::State newState, Phonon::State oldState);
47     void searchFocus();
48     void tick(qint64 time);
49     void totalTimeChanged(qint64 time);
50     void setDefinitionMode(QString definitionName);
51     void toggleDefinitionMode();
52     void clearRecentKeywords();
53
54     // volume shortcuts
55     void volumeUp();
56     void volumeDown();
57     void volumeMute();
58     void volumeChanged(qreal newVolume);
59     void volumeMutedChanged(bool muted);
60
61     // fullscreen toolbar
62     void showFullscreenToolbar(bool show);
63     void showFullscreenPlaylist(bool show);
64
65     // void setAutoplay(bool enabled);
66     void updateDownloadMessage(QString);
67     void downloadsFinished();
68     void toggleDownloads(bool show);
69
70     void startToolbarSearch(QString query);
71
72 private:
73     void initPhonon();
74     void createActions();
75     void createMenus();
76     void createToolBars();
77     void createStatusBar();
78     void readSettings();
79     void writeSettings();
80     void showWidget(QWidget*);
81     static QString formatTime(qint64 time);
82
83     // view mechanism
84     QPointer<FaderWidget> faderWidget;
85     QStackedWidget *views;
86     QStack<QWidget*> *history;
87
88     // view widgets
89     SearchView *searchView;
90     MediaView *mediaView;
91     QWidget *aboutView;
92     QWidget *downloadView;
93
94     // actions
95     QAction *addGadgetAct;
96     QAction *backAct;
97     QAction *quitAct;
98     QAction *siteAct;
99     QAction *donateAct;
100     QAction *aboutAct;
101     QAction *searchFocusAct;
102
103     // media actions
104     QAction *skipAct;
105     QAction *pauseAct;
106     QAction *stopAct;
107     QAction *fullscreenAct;
108     QAction *compactViewAct;
109     QAction *webPageAct;
110     QAction *copyPageAct;
111     QAction *copyLinkAct;
112     QAction *volumeUpAct;
113     QAction *volumeDownAct;
114     QAction *volumeMuteAct;
115
116     // playlist actions
117     QAction *removeAct;
118     QAction *moveDownAct;
119     QAction *moveUpAct;
120     QAction *fetchMoreAct;
121     QAction *clearAct;
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     // QSlider *slider;
136     Phonon::VolumeSlider *volumeSlider;
137     Phonon::MediaObject *mediaObject;
138     Phonon::AudioOutput *audioOutput;
139     QLabel *currentTime;
140     QLabel *totalTime;
141
142     bool m_fullscreen;
143     bool m_maximized;
144
145 };
146
147 #endif