]> git.sur5r.net Git - minitube/blobdiff - src/standardfeedsview.cpp
New upstream version 3.9.1
[minitube] / src / standardfeedsview.cpp
index 3e83208640c18b54e8496a67838196fe4793fc9f..2fb697d9bbe3c72e044324bbeb455b348c9845cf 100644 (file)
@@ -26,10 +26,13 @@ $END_LICENSE */
 #include "ytregions.h"
 #include "ytstandardfeed.h"
 
+#include "ivvideolist.h"
+#include "videoapi.h"
+
+#include "ytjstrending.h"
+
 StandardFeedsView::StandardFeedsView(QWidget *parent) : View(parent), layout(0) {
-    QPalette p = palette();
-    p.setBrush(QPalette::Window, Qt::black);
-    setPalette(p);
+    setBackgroundRole(QPalette::Base);
     setAutoFillBackground(true);
 
     connect(MainWindow::instance()->getAction("worldwideRegion"), SIGNAL(triggered()),
@@ -41,16 +44,41 @@ StandardFeedsView::StandardFeedsView(QWidget *parent) : View(parent), layout(0)
 
 void StandardFeedsView::load() {
     setUpdatesEnabled(false);
-    YTCategories *youTubeCategories = new YTCategories(this);
-    connect(youTubeCategories, SIGNAL(categoriesLoaded(const QVector<YTCategory> &)),
-            SLOT(layoutCategories(const QVector<YTCategory> &)));
-    youTubeCategories->loadCategories();
-
     resetLayout();
 
-    addVideoSourceWidget(buildStandardFeed("most_popular", tr("Most Popular")));
-
     YTRegion region = YTRegions::currentRegion();
+
+    // TODO consolidate in YT
+    if (VideoAPI::impl() == VideoAPI::YT3) {
+        YTCategories *youTubeCategories = new YTCategories(this);
+        connect(youTubeCategories, SIGNAL(categoriesLoaded(const QVector<YTCategory> &)),
+                SLOT(layoutCategories(const QVector<YTCategory> &)));
+        youTubeCategories->loadCategories();
+        addVideoSourceWidget(buildStandardFeed("most_popular", tr("Most Popular")));
+    } else if (VideoAPI::impl() == VideoAPI::JS) {
+        const QMap<QString, QString> pages = {{"default", tr("Trending")},
+                                              {"music", tr("Music")},
+                                              {"movies", tr("Movies")},
+                                              {"gaming", tr("Gaming")}};
+        auto i = pages.constBegin();
+        while (i != pages.constEnd()) {
+            addVideoSourceWidget(
+                    new YTJSTrending(i.value(), {{"page", i.key()}, {"geoLocation", region.id}}));
+            ++i;
+        }
+
+        setUpdatesEnabled(true);
+    } else {
+        QString regionParam = "region=" + region.id;
+        addVideoSourceWidget(new IVVideoList("popular?" + regionParam, tr("Most Popular")));
+        addVideoSourceWidget(new IVVideoList("trending?" + regionParam, tr("Trending")));
+        addVideoSourceWidget(new IVVideoList("trending?type=music&" + regionParam, tr("Music")));
+        addVideoSourceWidget(new IVVideoList("trending?type=news&" + regionParam, tr("News")));
+        addVideoSourceWidget(new IVVideoList("trending?type=movies&" + regionParam, tr("Movies")));
+        addVideoSourceWidget(new IVVideoList("trending?type=gaming&" + regionParam, tr("Gaming")));
+        setUpdatesEnabled(true);
+    }
+
     QAction *regionAction = MainWindow::instance()->getRegionAction();
     regionAction->setText(region.name);
     regionAction->setIcon(YTRegions::iconForRegionId(region.id));
@@ -76,7 +104,7 @@ void StandardFeedsView::addVideoSourceWidget(VideoSource *videoSource) {
     connect(w, SIGNAL(unavailable(VideoSourceWidget *)),
             SLOT(removeVideoSourceWidget(VideoSourceWidget *)));
     int i = layout->count();
-    const int cols = 5;
+    const int cols = VideoAPI::impl() == VideoAPI::YT3 ? 5 : 2;
     layout->addWidget(w, i / cols, i % cols);
 }
 
@@ -95,7 +123,7 @@ void StandardFeedsView::removeVideoSourceWidget(VideoSourceWidget *videoSourceWi
     }
 
     const int itemCount = items.size();
-    const int cols = itemCount / 3;
+    const int cols = 2; // itemCount / 3;
     for (int i = itemCount - 1; i >= 0; i--) {
         QLayoutItem *item = items.at(i);
         int index = itemCount - 1 - i;
@@ -114,7 +142,7 @@ void StandardFeedsView::resetLayout() {
 
     layout = new QGridLayout(this);
     layout->setMargin(0);
-    layout->setSpacing(1);
+    layout->setSpacing(0);
 }
 
 YTStandardFeed *
@@ -134,16 +162,16 @@ void StandardFeedsView::appear() {
         load();
     }
     QAction *regionAction = MainWindow::instance()->getRegionAction();
-    MainWindow::instance()->showActionInStatusBar(regionAction, true);
+    MainWindow::instance()->showActionsInStatusBar({regionAction}, true);
 }
 
 void StandardFeedsView::disappear() {
     QAction *regionAction = MainWindow::instance()->getRegionAction();
-    MainWindow::instance()->showActionInStatusBar(regionAction, false);
+    MainWindow::instance()->showActionsInStatusBar({regionAction}, false);
 }
 
 void StandardFeedsView::selectWorldwideRegion() {
-    YTRegions::setRegion(YTRegions::worldwideRegion().id);
+    YTRegions::setRegion(YTRegions::defaultRegion().id);
     load();
 }