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();
9 addAction(w->getAction("stopafterthis"));
12 addAction(w->getAction("snapshot"));
14 addAction(w->getAction("findVideoParts"));
16 addAction(w->getAction("webpage"));
17 addAction(w->getAction("videolink"));
18 addAction(w->getAction("openInBrowser"));
19 addAction(w->getAction("download"));
21 QWidgetAction *widgetAction = new QWidgetAction(this);
22 ShareToolbar *shareToolbar = new ShareToolbar();
23 connect(this, &ToolbarMenu::leftMarginChanged, shareToolbar, &ShareToolbar::setLeftMargin);
24 widgetAction->setDefaultWidget(shareToolbar);
25 addAction(widgetAction);
28 addAction(w->getAction("compactView"));
29 addAction(w->getAction("ontop"));
32 QToolBar *definitionToolbar = new QToolBar();
33 definitionToolbar->setStyleSheet("QToolButton { padding: 0}");
34 definitionToolbar->setToolButtonStyle(Qt::ToolButtonTextOnly);
35 definitionToolbar->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
36 QActionGroup *definitionGroup = new QActionGroup(this);
37 const VideoDefinition &preferredDefinition = YT3::instance().maxVideoDefinition();
39 for (auto defName : VideoDefinition::getDefinitionNames()) {
40 QAction *a = new QAction(defName);
41 a->setCheckable(true);
42 a->setChecked(preferredDefinition.getName() == defName);
43 connect(a, &QAction::triggered, this, [this, defName] {
44 MainWindow::instance()->setDefinitionMode(defName);
47 definitionGroup->addAction(a);
48 definitionToolbar->addAction(a);
50 QWidget *w = definitionToolbar->widgetForAction(a);
51 w->setProperty("first", true);
55 QWidgetAction *definitionAction = new QWidgetAction(this);
56 definitionAction->setDefaultWidget(definitionToolbar);
57 addAction(definitionAction);
60 addAction(w->getAction("clearRecentKeywords"));
63 addAction(w->getAction("toggleMenu"));
65 addMenu(w->getMenu("help"));
69 void ToolbarMenu::showEvent(QShowEvent *e) {
71 QAction *a = MainWindow::instance()->getAction("stopafterthis");
72 QStyleOptionMenuItem option;
73 initStyleOption(&option, a);
74 int leftMargin = option.maxIconWidth;
78 setStyleSheet("QToolBar > QToolButton[first] {margin-left:" + QString::number(leftMargin) +
80 emit leftMarginChanged(leftMargin);