]> git.sur5r.net Git - minitube/blobdiff - src/searchview.cpp
Merge tag 'upstream/2.4'
[minitube] / src / searchview.cpp
index 6cbaa1d005dbbde8766aafc7f5e83699b1c012be..a0037a3d48a0b71690ed0bd59a9e6d073a49d5b5 100644 (file)
@@ -91,7 +91,7 @@ SearchView::SearchView(QWidget *parent) : QWidget(parent) {
                             #if defined(APP_UBUNTU) || defined(APP_WIN)
                                 "normal"
                             #else
-                                "bold"
+                                "normal"
                             #endif
                                 "' ")
                        .arg(Constants::WEBSITE, Constants::NAME)
@@ -133,11 +133,12 @@ SearchView::SearchView(QWidget *parent) : QWidget(parent) {
     searchLayout->setAlignment(Qt::AlignVCenter);
 
     queryEdit = new SearchLineEdit(this);
+#ifndef APP_MAC
     queryEdit->setFont(biggerFont);
-    queryEdit->setMinimumWidth(queryEdit->fontInfo().pixelSize()*15);
+#endif
     connect(queryEdit, SIGNAL(search(const QString&)), SLOT(watch(const QString&)));
-    connect(queryEdit, SIGNAL(textChanged(const QString &)), SLOT(textChanged(const QString &)));
-    connect(queryEdit, SIGNAL(suggestionAccepted(const QString&)), SLOT(watch(const QString&)));
+    connect(queryEdit, SIGNAL(textEdited(const QString &)), SLOT(textChanged(const QString &)));
+    connect(queryEdit, SIGNAL(suggestionAccepted(Suggestion*)), SLOT(suggestionAccepted(Suggestion*)));
 
     youtubeSuggest = new YTSuggester(this);
     channelSuggest = new ChannelSuggest(this);
@@ -197,11 +198,14 @@ SearchView::SearchView(QWidget *parent) : QWidget(parent) {
 }
 
 void SearchView::appear() {
+    setUpdatesEnabled(false);
     updateRecentKeywords();
     updateRecentChannels();
     queryEdit->selectAll();
     queryEdit->enableSuggest();
-    QTimer::singleShot(0, queryEdit, SLOT(setFocus()));
+    if (!queryEdit->hasFocus())
+        QTimer::singleShot(10, queryEdit, SLOT(setFocus()));
+    setUpdatesEnabled(true);
 }
 
 void SearchView::updateRecentKeywords() {
@@ -316,7 +320,8 @@ void SearchView::watch(QString query) {
     else {
         // remove spaces from channel name
         query = query.simplified();
-        searchParams->setAuthor(query);
+        query = query.remove(' ');
+        searchParams->setChannelId(query);
         searchParams->setSortBy(SearchParams::SortByNewest);
     }
 
@@ -324,21 +329,19 @@ void SearchView::watch(QString query) {
     emit search(searchParams);
 }
 
-void SearchView::watchChannel(QString channel) {
-
-    channel = channel.simplified();
-
-    // check for empty query
-    if (channel.length() == 0) {
+void SearchView::watchChannel(const QString &channelId) {
+    if (channelId.length() == 0) {
         queryEdit->setFocus(Qt::OtherFocusReason);
         return;
     }
 
-    // remove spaces from channel name
-    channel = channel.remove(" ");
+    QString id = channelId;
+
+    // Fix old settings
+    if (!id.startsWith("UC")) id = "UC" + id;
 
     SearchParams *searchParams = new SearchParams();
-    searchParams->setAuthor(channel);
+    searchParams->setChannelId(id);
     searchParams->setSortBy(SearchParams::SortByNewest);
 
     // go!
@@ -386,7 +389,7 @@ void SearchView::paintEvent(QPaintEvent *event) {
     QPainter p(this);
     style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
 #endif
-    // PainterUtils::topShadow(this);
+    PainterUtils::topShadow(this);
 }
 
 void SearchView::searchTypeChanged(int index) {
@@ -398,3 +401,9 @@ void SearchView::searchTypeChanged(int index) {
     queryEdit->selectAll();
     queryEdit->setFocus();
 }
+
+void SearchView::suggestionAccepted(Suggestion *suggestion) {
+    if (suggestion->type == QLatin1String("channel")) {
+        watchChannel(suggestion->userData);
+    } else watch(suggestion->value);
+}