#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()),
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));
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);
}
}
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;
layout = new QGridLayout(this);
layout->setMargin(0);
- layout->setSpacing(1);
+ layout->setSpacing(0);
}
YTStandardFeed *
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();
}