]> git.sur5r.net Git - minitube/blobdiff - src/mainwindow.cpp
Upload 3.9.3-2 to unstable
[minitube] / src / mainwindow.cpp
index 9523ff976bd7cd737f5052e487c4e76cce91d403..e4f09c6ba5dd724b4e4f03a7cea932a8f59d977f 100644 (file)
@@ -79,8 +79,8 @@ $END_LICENSE */
 #include "ytregions.h"
 
 #include "invidious.h"
+#include "js.h"
 #include "videoapi.h"
-#include "ytjs.h"
 
 #ifdef MEDIA_QTAV
 #include "mediaqtav.h"
@@ -93,6 +93,8 @@ $END_LICENSE */
 #include "updater.h"
 #endif
 
+#include "subscriptionimportview.h"
+
 namespace {
 MainWindow *mainWindowInstance;
 }
@@ -169,10 +171,16 @@ MainWindow::MainWindow()
     } else if (VideoAPI::impl() == VideoAPI::YT3) {
         YT3::instance().initApiKeys();
     } else if (VideoAPI::impl() == VideoAPI::JS) {
-        YTJS::instance();
+        JS::instance().initialize(QUrl(QLatin1String(Constants::WEBSITE) + "-ws/bundle3.js"));
+        // JS::instance().initialize(QUrl("http://localhost:8000/bundle-test.js"));
         Invidious::instance().initServers();
     }
 
+    connect(JsFunctions::instance(), &JsFunctions::ready, this, [] {
+        auto ua = JsFunctions::instance()->string("userAgent()").toUtf8();
+        JS::instance().getNamFactory().setRequestHeaders({{"User-Agent", ua}});
+    });
+
     QTimer::singleShot(100, this, &MainWindow::lazyInit);
 }
 
@@ -192,7 +200,8 @@ void MainWindow::lazyInit() {
             searchParams->setKeywords(query);
             showMedia(searchParams);
         }
-    }
+    } else
+        showMessage(tr("Make yourself comfortable"));
 
     // Global shortcuts
     GlobalShortcuts &shortcuts = GlobalShortcuts::instance();
@@ -220,8 +229,6 @@ void MainWindow::lazyInit() {
     fullscreenTimer->setSingleShot(true);
     connect(fullscreenTimer, SIGNAL(timeout()), SLOT(hideFullscreenUI()));
 
-    JsFunctions::instance();
-
     // Hack to give focus to searchlineedit
     View *view = qobject_cast<View *>(views->currentWidget());
     if (view == homeView) {
@@ -642,7 +649,7 @@ void MainWindow::createActions() {
     action->setEnabled(false);
     actionMap.insert("refineSearch", action);
 
-    action = new QAction(YTRegions::worldwideRegion().name, this);
+    action = new QAction(YTRegions::defaultRegion().name, this);
     actionMap.insert("worldwideRegion", action);
 
     action = new QAction(YTRegions::localRegion().name, this);
@@ -683,6 +690,17 @@ void MainWindow::createActions() {
     connect(action, SIGNAL(triggered()), SLOT(toggleToolbarMenu()));
     actionMap.insert("toolbarMenu", action);
 
+    action = new QAction(tr("Import Subscriptions..."), this);
+    action->setMenuRole(QAction::ApplicationSpecificRole);
+    connect(action, &QAction::triggered, this, [this] {
+        if (!subscriptionImportView) {
+            subscriptionImportView = new SubscriptionImportView(this);
+            views->addWidget(subscriptionImportView);
+        }
+        showView(subscriptionImportView);
+    });
+    actionMap.insert("importSubscriptions", action);
+
 #ifdef APP_MAC_STORE
     action = new QAction(tr("&Love %1? Rate it!").arg(Constants::NAME), this);
     actionMap.insert("appStore", action);
@@ -1064,16 +1082,20 @@ void MainWindow::showView(View *view, bool transition) {
     // call hide method on the current view
     View *oldView = qobject_cast<View *>(views->currentWidget());
     if (oldView) {
+        oldView->willDisappear();
         oldView->disappear();
         oldView->setEnabled(false);
         oldView->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
     } else
         qDebug() << "Cannot cast old view";
 
+    view->willAppear();
     view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
     view->setEnabled(true);
     views->setCurrentWidget(view);
     view->appear();
+    view->didAppear();
+    if (oldView) oldView->didDisappear();
 
     QString title = view->getTitle();
     if (title.isEmpty())