1 #include "toolbarmenu.h"
2 #include "mainwindow.h"
3 #include "sharetoolbar.h"
4 #include "videodefinition.h"
7 ToolbarMenu::ToolbarMenu(QWidget *parent) : QMenu(parent) {
8 MainWindow *w = MainWindow::instance();
10 QAction *buyAction = w->getAction("buy");
11 if (buyAction) addAction(buyAction);
13 addAction(w->getAction("stopafterthis"));
14 addAction(w->getAction("subscribeChannel"));
17 addAction(w->getAction("snapshot"));
19 addAction(w->getAction("findVideoParts"));
21 addAction(w->getAction("webpage"));
22 addAction(w->getAction("videolink"));
23 addAction(w->getAction("openInBrowser"));
24 addAction(w->getAction("download"));
26 QWidgetAction *widgetAction = new QWidgetAction(this);
27 ShareToolbar *shareToolbar = new ShareToolbar();
28 connect(this, &ToolbarMenu::leftMarginChanged, shareToolbar, &ShareToolbar::setLeftMargin);
29 widgetAction->setDefaultWidget(shareToolbar);
30 addAction(widgetAction);
33 addAction(w->getAction("compactView"));
34 addAction(w->getAction("ontop"));
37 QToolBar *definitionToolbar = new QToolBar();
38 definitionToolbar->setStyleSheet("QToolButton { padding: 0}");
39 definitionToolbar->setToolButtonStyle(Qt::ToolButtonTextOnly);
40 definitionToolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
41 QActionGroup *definitionGroup = new QActionGroup(this);
42 const VideoDefinition &preferredDefinition = YT3::instance().maxVideoDefinition();
44 for (auto defName : VideoDefinition::getDefinitionNames()) {
45 QAction *a = new QAction(defName);
46 a->setCheckable(true);
47 a->setChecked(preferredDefinition.getName() == defName);
48 connect(a, &QAction::triggered, this, [this, defName] {
49 MainWindow::instance()->setDefinitionMode(defName);
52 definitionGroup->addAction(a);
53 definitionToolbar->addAction(a);
55 QWidget *w = definitionToolbar->widgetForAction(a);
56 w->setProperty("first", true);
60 QWidgetAction *definitionAction = new QWidgetAction(this);
61 definitionAction->setDefaultWidget(definitionToolbar);
62 addAction(definitionAction);
65 addAction(w->getAction("clearRecentKeywords"));
68 addAction(w->getAction("toggleMenu"));
70 addMenu(w->getMenu("help"));
74 void ToolbarMenu::showEvent(QShowEvent *e) {
76 QAction *a = MainWindow::instance()->getAction("stopafterthis");
77 QStyleOptionMenuItem option;
78 initStyleOption(&option, a);
79 int leftMargin = option.maxIconWidth;
83 setStyleSheet("QToolBar > QToolButton[first] {margin-left:" + QString::number(leftMargin) +
85 emit leftMarginChanged(leftMargin);