29 const int sz = q->style()->pixelMetric(QStyle::PM_SmallIconSize,
Q_NULLPTR, q);
30 q->setIconSize(QSize(sz, sz));
34 connect(q, &QxNavBar::toolButtonStyleChanged,
m_accessPopup, &QxMenuAccessButton::setToolButtonStyle);
47 q->setAutoFillBackground(
false);
48 q->setAttribute(Qt::WA_NoSystemBackground);
49 q->setTabStyle(Qt::ToolButtonTextOnly);
112 QAction *lowAction =
event->action();
113 if (d->m_actionAccessPopup) {
114 if (event->type() == QEvent::ActionAdded) {
115 if (!d->m_removingAction) {
117 removeAction(d->m_actionAccessPopup);
119 QAction *checkAction = d->m_actionMap.value(lowAction);
120 if (lowAction != d->m_actionAccessPopup && !checkAction) {
121 int curIndex = d->m_tabs.indexOf(lowAction);
122 int cnt = d->m_tabs.count();
123 QAction *act =
new QAction(lowAction->text(),
this);
124 act->setCheckable(
true);
125 act->setChecked(lowAction->isVisible());
126 if (curIndex + 1 == cnt) {
127 d->m_actionList.append(act);
129 d->m_actionList.insert(curIndex, act);
131 d->m_customizeGroup->addAction(act);
132 d->m_actionMap[lowAction] = act;
134 }
else if (checkAction) {
135 checkAction->setChecked(lowAction->isVisible());
137 }
else if (event->type() == QEvent::ActionRemoved) {
138 if (lowAction == d->m_actionAccessPopup) {
139 d->m_removingAction =
true;
140 addAction(d->m_actionAccessPopup);
141 d->m_removingAction =
false;
143 QAction *act = d->m_actionMap.value(lowAction);
145 d->m_actionList.removeOne(act);
146 d->m_customizeGroup->removeAction(act);
147 d->m_actionMap.remove(lowAction);
151 }
else if (event->type() == QEvent::ActionChanged) {
152 if (lowAction == d->m_actionAccessPopup) {
153 d->m_accessPopup->setDefaultAction(d->m_actionAccessPopup);
154 }
else if (QAction *checkAction = d->m_actionMap.value(lowAction)) {
155 checkAction->setChecked(lowAction->isVisible());