]> git.sur5r.net Git - minitube/blob - src/MainWindow.h
autocompleter refinements
[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 class MainWindow : public QMainWindow {
18
19     Q_OBJECT
20
21 public:
22     MainWindow();
23     ~MainWindow();
24
25 protected:
26     void closeEvent(QCloseEvent *);
27
28 private slots:
29     void fadeInWidget(QWidget *oldWidget, QWidget *newWidget);
30     void goBack();
31     void showSettings();
32     void showSearch();
33     void showMedia(QString query);
34     void visitSite();
35     void donate();
36     void about();
37     void quit();
38     void fullscreen();
39          void compactView(bool enable);
40     void stop();
41     void stateChanged(Phonon::State newState, Phonon::State oldState);
42     void searchFocus();
43     void tick(qint64 time);
44     void totalTimeChanged(qint64 time);
45
46 private:
47     void initPhonon();
48     void createActions();
49     void createMenus();
50     void createToolBars();
51     void createStatusBar();
52     void readSettings();
53     void writeSettings();
54     void showWidget(QWidget*);
55
56     // view mechanism
57     QPointer<FaderWidget> faderWidget;
58     QStackedWidget *views;
59     QStack<QWidget*> *history;
60
61     // view widgets
62     QWidget *searchView;
63     MediaView *mediaView;
64     QWidget *settingsView;
65     QWidget *aboutView;
66
67     // actions
68     QAction *addGadgetAct;
69     QAction *settingsAct;
70     QAction *backAct;
71     QAction *quitAct;
72     QAction *siteAct;
73     QAction *donateAct;
74     QAction *aboutAct;
75     QAction *searchFocusAct;
76
77     // media actions
78     QAction *skipAct;
79     QAction *pauseAct;
80     QAction *stopAct;
81     QAction *fullscreenAct;
82          QAction *compactViewAct;
83     QAction *webPageAct;
84     QAction *downloadAct;
85
86     // playlist actions
87     QAction *removeAct;
88     QAction *moveDownAct;
89     QAction *moveUpAct;
90     QAction *fetchMoreAct;
91
92     // menus
93     QMenu *fileMenu;
94     QMenu *viewMenu;
95     QMenu *playlistMenu;
96     QMenu *helpMenu;
97
98     // toolbar
99     QToolBar *mainToolBar;
100     SearchLineEdit *toolbarSearch;
101
102     // phonon
103     Phonon::SeekSlider *seekSlider;
104     Phonon::VolumeSlider *volumeSlider;
105     Phonon::MediaObject *mediaObject;
106     Phonon::AudioOutput *audioOutput;
107     QLabel *currentTime;
108     QLabel *totalTime;
109
110     bool m_fullscreen;
111     bool m_maximized;
112 };
113
114 #endif