]> git.sur5r.net Git - minitube/blobdiff - src/toolbarmenu.cpp
New upstream version 3.8
[minitube] / src / toolbarmenu.cpp
index e03dbacd28338e5d6e7c24b59490f127beede1ef..edd2f5a115377c26155504f91850e28893560537 100644 (file)
@@ -1,10 +1,17 @@
 #include "toolbarmenu.h"
 #include "mainwindow.h"
 #include "sharetoolbar.h"
+#include "videodefinition.h"
+#include "yt3.h"
 
 ToolbarMenu::ToolbarMenu(QWidget *parent) : QMenu(parent) {
     MainWindow *w = MainWindow::instance();
+#ifdef APP_ACTIVATION
+    QAction *buyAction = w->getAction("buy");
+    if (buyAction) addAction(buyAction);
+#endif
     addAction(w->getAction("stopafterthis"));
+    addAction(w->getAction("subscribeChannel"));
     addSeparator();
 #ifdef APP_SNAPSHOT
     addAction(w->getAction("snapshot"));
@@ -22,16 +29,46 @@ ToolbarMenu::ToolbarMenu(QWidget *parent) : QMenu(parent) {
     widgetAction->setDefaultWidget(shareToolbar);
     addAction(widgetAction);
     addSeparator();
+
     addAction(w->getAction("compactView"));
     addAction(w->getAction("ontop"));
     addSeparator();
+
+    QToolBar *definitionToolbar = new QToolBar();
+    definitionToolbar->setStyleSheet("QToolButton { padding: 0}");
+    definitionToolbar->setToolButtonStyle(Qt::ToolButtonTextOnly);
+    definitionToolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+    QActionGroup *definitionGroup = new QActionGroup(this);
+    const VideoDefinition &preferredDefinition = YT3::instance().maxVideoDefinition();
+    int counter = 0;
+    for (auto defName : VideoDefinition::getDefinitionNames()) {
+        QAction *a = new QAction(defName);
+        a->setCheckable(true);
+        a->setChecked(preferredDefinition.getName() == defName);
+        connect(a, &QAction::triggered, this, [this, defName] {
+            MainWindow::instance()->setDefinitionMode(defName);
+            close();
+        });
+        definitionGroup->addAction(a);
+        definitionToolbar->addAction(a);
+        if (counter == 0) {
+            QWidget *w = definitionToolbar->widgetForAction(a);
+            w->setProperty("first", true);
+            counter++;
+        }
+    }
+    QWidgetAction *definitionAction = new QWidgetAction(this);
+    definitionAction->setDefaultWidget(definitionToolbar);
+    addAction(definitionAction);
+    addSeparator();
+
     addAction(w->getAction("clearRecentKeywords"));
 #ifndef APP_MAC
     addSeparator();
     addAction(w->getAction("toggleMenu"));
-#endif
     addSeparator();
     addMenu(w->getMenu("help"));
+#endif
 }
 
 void ToolbarMenu::showEvent(QShowEvent *e) {
@@ -40,9 +77,10 @@ void ToolbarMenu::showEvent(QShowEvent *e) {
     QStyleOptionMenuItem option;
     initStyleOption(&option, a);
     int leftMargin = option.maxIconWidth;
-#ifndef APP_MAC
-    // On Win & Linux the value is wrong
+#ifdef APP_WIN
     leftMargin *= 1.5;
 #endif
+    setStyleSheet("QToolBar > QToolButton[first] {margin-left:" + QString::number(leftMargin) +
+                  "px}");
     emit leftMarginChanged(leftMargin);
 }