@@ -49,18 +49,20 @@ static Q_LOGGING_CATEGORY(log, "App.MainWindow")
4949static Q_LOGGING_CATEGORY(logRecord, " App.MainWindow.Record" )
5050
5151MainWindow::MainWindow(QWidget *parent)
52- : QMainWindow(parent),
53- m_pActionOperateMenu(nullptr ),
54- m_pDockListRecent(nullptr ),
55- m_pDockActive(nullptr ),
56- m_pFrmActive(nullptr ),
57- m_pSignalStatus(nullptr ),
58- ui(new Ui::MainWindow),
59- m_pView(nullptr ),
60- m_pFullScreenToolBar(nullptr ),
61- m_pRecentMenu(nullptr ),
62- m_pDockFavorite(nullptr ),
63- m_pFavoriteView(nullptr )
52+ : QMainWindow(parent)
53+ , m_pActionOperateMenu(nullptr )
54+ , m_pTBOperate(nullptr )
55+ , m_pActionTBOperate(nullptr )
56+ , m_pDockListRecent(nullptr )
57+ , m_pDockActive(nullptr )
58+ , m_pFrmActive(nullptr )
59+ , m_pSignalStatus(nullptr )
60+ , ui(new Ui::MainWindow)
61+ , m_pView(nullptr )
62+ , m_pFullScreenToolBar(nullptr )
63+ , m_pRecentMenu(nullptr )
64+ , m_pDockFavorite(nullptr )
65+ , m_pFavoriteView(nullptr )
6466{
6567 bool check = false ;
6668
@@ -88,7 +90,7 @@ MainWindow::MainWindow(QWidget *parent)
8890 pRecentAction->setStatusTip (pRecentAction->text ());
8991 QToolButton* tbRecent = new QToolButton (ui->toolBar );
9092 tbRecent->setFocusPolicy (Qt::NoFocus);
91- tbRecent->setPopupMode (QToolButton::MenuButtonPopup );
93+ tbRecent->setPopupMode (QToolButton::InstantPopup );
9294 tbRecent->setMenu (m_pRecentMenu);
9395 tbRecent->setIcon (pRecentAction->icon ());
9496 tbRecent->setText (pRecentAction->text ());
@@ -103,7 +105,7 @@ MainWindow::MainWindow(QWidget *parent)
103105
104106 QToolButton* tbStart = new QToolButton (ui->toolBar );
105107 tbStart->setFocusPolicy (Qt::NoFocus);
106- tbStart->setPopupMode (QToolButton::MenuButtonPopup );
108+ tbStart->setPopupMode (QToolButton::InstantPopup );
107109 // tbStart->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
108110 tbStart->setMenu (ui->menuStart );
109111 tbStart->setIcon (QIcon::fromTheme (" media-playback-start" ));
@@ -540,9 +542,9 @@ void MainWindow::slotLoadOperateMenu()
540542
541543 if (m_pActionOperateMenu) {
542544 ui->menuTools ->removeAction (m_pActionOperateMenu);
543- ui->toolBar ->removeAction (m_pActionOperateMenu);
544545 m_pActionOperateMenu = nullptr ;
545546 }
547+ ui->toolBar ->removeAction (m_pActionTBOperate);
546548
547549 if (!m_pView)
548550 return ;
@@ -558,8 +560,22 @@ void MainWindow::slotLoadOperateMenu()
558560 qDebug (log) << " Load plugin menu" ;
559561 auto m = op->GetMenu (ui->menuTools );
560562 if (!m) return ;
563+ // Menu tool bar
561564 m_pActionOperateMenu = ui->menuTools ->addMenu (m);
562- ui->toolBar ->insertAction (ui->actionFull_screen_F , m_pActionOperateMenu);
565+ // ToolBar
566+ if (!m_pTBOperate)
567+ m_pTBOperate = new QToolButton (ui->toolBar );
568+ if (m_pTBOperate) {
569+ m_pTBOperate->setFocusPolicy (Qt::NoFocus);
570+ m_pTBOperate->setPopupMode (QToolButton::InstantPopup);
571+ m_pTBOperate->setMenu (m);
572+ m_pTBOperate->setIcon (m->icon ());
573+ m_pTBOperate->setText (m->title ());
574+ m_pTBOperate->setToolTip (m->toolTip ());
575+ m_pTBOperate->setStatusTip (m->statusTip ());
576+ m_pTBOperate->show ();
577+ m_pActionTBOperate = ui->toolBar ->insertWidget (ui->actionFull_screen_F , m_pTBOperate);
578+ }
563579 emit sigOperateMenuChanged (m_pActionOperateMenu);
564580 }
565581 }
0 commit comments