#ifndef MAINWINDOW_H
#define MAINWINDOW_H
-#include <QtGui>
-#if QT_VERSION >= 0x050000
#include <QtWidgets>
-#endif
#ifdef APP_PHONON
#include <phonon/audiooutput.h>
#include <phonon/volumeslider.h>
class HomeView;
class MediaView;
class DownloadView;
+
class SearchLineEdit;
class UpdateChecker;
class SearchParams;
class VideoSource;
class Suggestion;
+class ToolbarMenu;
class MainWindow : public QMainWindow {
Phonon::AudioOutput* getAudioOutput() { return audioOutput; }
Phonon::VolumeSlider *getVolumeSlider() { return volumeSlider; }
#endif
- QLabel *getCurrentTimeLabel() { return currentTime; }
+ QLabel *getCurrentTimeLabel() { return currentTimeLabel; }
void readSettings();
void writeSettings();
static void printHelp();
+ QStackedWidget *getViews() { return views; }
MediaView* getMediaView() { return mediaView; }
- QToolButton* getRegionButton() { return regionButton; }
+ HomeView* getHomeView() { return homeView; }
QAction* getRegionAction() { return regionAction; }
SearchLineEdit *getToolbarSearch() { return toolbarSearch; }
+ QAction *getAction(const char *name);
+ void addNamedAction(const QByteArray &name, QAction *action);
+
+ QMenu *getMenu(const char *name);
+
void showActionInStatusBar(QAction*, bool show);
void setStatusBarVisibility(bool show);
void adjustStatusBarVisibility();
+ void hideToolbar();
+ void showToolbar();
+
+#ifdef APP_ACTIVATION
+ void showActivationView();
+#endif
+
public slots:
- void showHome(bool transition = true);
+ void showHome();
void showMedia(SearchParams *params);
void showMedia(VideoSource *videoSource);
void showRegionsView();
void quit();
void suggestionAccepted(Suggestion *suggestion);
void search(const QString &query);
+ bool canGoBack() { return history.size() > 1; }
void goBack();
void showMessage(const QString &message);
-#ifdef APP_ACTIVATION
- void showActivationView(bool transition = true);
- void showActivationDialog();
- void buy();
- void hideBuyAction();
-#endif
+ void hideMessage();
bool isReallyFullScreen();
- bool isCompact() { return m_compact; }
+ bool isCompact() { return compactModeActive; }
+ void missingKeyWarning();
+ void visitSite();
signals:
void currentTimeChanged(const QString &s);
+ void viewChanged();
protected:
void changeEvent(QEvent *e);
void dropEvent(QDropEvent *e);
void resizeEvent(QResizeEvent *e);
void moveEvent(QMoveEvent *e);
+ void leaveEvent(QEvent *e);
+ void enterEvent(QEvent *e);
private slots:
void lazyInit();
void checkForUpdate();
void gotNewVersion(const QString &version);
- void visitSite();
void donate();
void reportIssue();
void about();
- void fullscreen();
+ void toggleFullscreen();
void updateUIForFullscreen();
void compactView(bool enable);
void stop();
void toggleDefinitionMode();
void clearRecentKeywords();
- // volume shortcuts
void volumeUp();
void volumeDown();
void volumeMute();
- void volumeChanged(qreal newVolume);
void volumeMutedChanged(bool muted);
- // fullscreen toolbar
- void showFullscreenToolbar(bool show);
- void showFullscreenPlaylist(bool show);
-
- void setManualPlay(bool enabled);
void updateDownloadMessage(const QString &);
void downloadsFinished();
void toggleDownloads(bool show);
+ void setManualPlay(bool enabled);
void floatOnTop(bool, bool showAction = true);
- void adjustWindowSizeChanged(bool enabled);
-
void showStopAfterThisInStatusBar(bool show);
+ void hideFullscreenUI();
- void hideMouse();
+ void toggleMenuVisibility();
+ void toggleMenuVisibilityWithMessage();
+ void toggleToolbarMenu();
#ifdef APP_MAC_STORE
void rateOnAppStore();
UpdateChecker *updateChecker;
+ QHash<QByteArray, QAction*> actionMap;
+ QHash<QByteArray, QMenu*> menuMap;
+
// view mechanism
QStackedWidget *views;
QStack<QWidget*> history;
- QList<QAction*> viewActions;
+ // QVector<QAction*> viewActions;
// view widgets
HomeView *homeView;
QToolBar *mainToolBar;
SearchLineEdit *toolbarSearch;
QToolBar *statusToolBar;
- QToolButton *regionButton;
QAction *regionAction;
// phonon
Phonon::MediaObject *mediaObject;
Phonon::AudioOutput *audioOutput;
#endif
- QLabel *currentTime;
- // QLabel *totalTime;
-
- bool fullscreenFlag;
- bool m_maximized;
- QTimer *mouseTimer;
- bool m_compact;
+ QLabel *currentTimeLabel;
+
+ bool fullScreenActive;
+ bool maximizedBeforeFullScreen;
+ bool menuVisibleBeforeFullScreen;
+ QTimer *fullscreenTimer;
+ bool compactModeActive;
+ bool menuVisibleBeforeCompactMode;
bool initialized;
QLabel *messageLabel;
QTimer *messageTimer;
+ ToolbarMenu *toolbarMenu;
+ QToolButton *toolbarMenuButton;
};
#endif