#ifdef Q_WS_X11
#include "gnomeglobalshortcutbackend.h"
#endif
-#ifdef APP_MAC
-// #include "local/mac/mac_startup.h"
+#ifdef APP_MAC_STORE
+#include "local/mac/mac_startup.h"
#endif
#include "downloadmanager.h"
+#include "youtubesuggest.h"
MainWindow::MainWindow() :
aboutView(0),
// views
searchView = new SearchView(this);
- connect(searchView, SIGNAL(search(QString)), this, SLOT(showMedia(QString)));
+ connect(searchView, SIGNAL(search(SearchParams*)), this, SLOT(showMedia(SearchParams*)));
views->addWidget(searchView);
mediaView = new MediaView(this);
toolbarSearch = new SearchLineEdit(this);
toolbarSearch->setMinimumWidth(toolbarSearch->fontInfo().pixelSize()*15);
- connect(toolbarSearch, SIGNAL(search(const QString&)), searchView, SLOT(watch(const QString&)));
+ toolbarSearch->setSuggester(new YouTubeSuggest(this));
+ connect(toolbarSearch, SIGNAL(search(const QString&)), this, SLOT(startToolbarSearch(const QString&)));
// build ui
createActions();
}
bool MainWindow::eventFilter(QObject *obj, QEvent *event) {
+ if (event->type() == QEvent::MouseMove && this->m_fullscreen) {
+ QMouseEvent *mouseEvent = static_cast<QMouseEvent*> (event);
+ int x = mouseEvent->pos().x();
+ int y = mouseEvent->pos().y();
+
+ if (y < 0 && (obj == this->mainToolBar || !(y <= 10-this->mainToolBar->height() && y >= 0-this->mainToolBar->height() )))
+ this->mainToolBar->setVisible(false);
+ if (x < 0)
+ this->mediaView->setPlaylistVisible(false);
+ }
+
if (event->type() == QEvent::ToolTip) {
// kill tooltips
return true;
- } else {
- // standard event processing
- return QObject::eventFilter(obj, event);
}
+ // standard event processing
+ return QObject::eventFilter(obj, event);
}
void MainWindow::createActions() {
actions->insert("moveDown", moveDownAct);
connect(moveDownAct, SIGNAL(triggered()), mediaView, SLOT(moveDownSelected()));
- clearAct = new QAction(tr("&Clear recent keywords"), this);
+ clearAct = new QAction(tr("&Clear recent searches"), this);
clearAct->setMenuRole(QAction::ApplicationSpecificRole);
clearAct->setShortcuts(QList<QKeySequence>()
<< QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Delete)
helpMenu = menuBar()->addMenu(tr("&Help"));
helpMenu->addAction(siteAct);
+#if !defined(APP_MAC) && !defined(APP_WIN)
helpMenu->addAction(donateAct);
+#endif
helpMenu->addAction(aboutAct);
}
mainToolBar = new QToolBar(this);
#if QT_VERSION < 0x040600 | defined(APP_MAC)
mainToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly);
+#elif defined(APP_WIN)
+ mainToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
+ mainToolBar->setStyleSheet(
+ "QToolBar {"
+ "background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #fafcfd, stop:.5 #e6f0fa, stop:.51 #dde9f7, stop:1 #dde9f7);"
+ "border: 0;"
+ "border-bottom: 1px solid #a0afc3;"
+ "}");
#else
mainToolBar->setToolButtonStyle(Qt::ToolButtonFollowStyle);
#endif
mainToolBar->setFloatable(false);
mainToolBar->setMovable(false);
-#ifdef APP_MAC
+#if defined(APP_MAC) | defined(APP_WIN)
mainToolBar->setIconSize(QSize(32, 32));
#endif
mainToolBar->addWidget(new Spacer());
seekSlider = new Phonon::SeekSlider(this);
-#ifdef Q_WS_X11
- seekSlider->setDisabled(true);
-#endif
seekSlider->setIconVisible(false);
seekSlider->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
mainToolBar->addWidget(seekSlider);
- mainToolBar->addWidget(new Spacer());
-
/*
+ mainToolBar->addWidget(new Spacer());
slider = new QSlider(this);
slider->setOrientation(Qt::Horizontal);
slider->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
// remove ugly borders on OSX
// also remove excessive spacing
- statusBar()->setStyleSheet("::item{border:0 solid} QToolBar {padding:0;spacing:0;margin:0}");
+ statusBar()->setStyleSheet("::item{border:0 solid} QToolBar {padding:0;spacing:0;margin:0;border:0}");
QToolBar *toolBar = new QToolBar(this);
toolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
restoreGeometry(settings.value("geometry").toByteArray());
#ifdef APP_MAC
if (!isMaximized())
+#ifdef QT_MAC_USE_COCOA
move(x(), y() + 10);
+#else
+ move(x(), y() + mainToolBar->height() + 8);
+#endif
#endif
setDefinitionMode(settings.value("definition", VideoDefinition::getDefinitionNames().first()).toString());
audioOutput->setVolume(settings.value("volume", 1).toDouble());
QWidget *oldWidget = views->currentWidget();
views->setCurrentWidget(widget);
-#ifdef APP_MAC
+#if defined(APP_MAC) || defined(APP_WIN)
// crossfade only on OSX
// where we can be sure of video performance
fadeInWidget(oldWidget, widget);
totalTime->clear();
}
-void MainWindow::showMedia(QString query) {
- SearchParams *searchParams = new SearchParams();
- searchParams->setKeywords(query);
+void MainWindow::showMedia(SearchParams *searchParams) {
mediaView->search(searchParams);
showWidget(mediaView);
}
void MainWindow::clearRecentKeywords() {
QSettings settings;
settings.remove("recentKeywords");
+ settings.remove("recentChannels");
searchView->updateRecentKeywords();
+ searchView->updateRecentChannels();
statusBar()->showMessage(tr("Your privacy is now safe"));
}
if (show) showWidget(downloadView);
else goBack();
}
+
+void MainWindow::startToolbarSearch(QString query) {
+
+ query = query.trimmed();
+
+ // check for empty query
+ if (query.length() == 0) {
+ return;
+ }
+
+ SearchParams *searchParams = new SearchParams();
+ searchParams->setKeywords(query);
+
+ // go!
+ showMedia(searchParams);
+}