QToolButton: Replace macro based connections
Use QObjectPrivate::connect() instead of SLOT/SIGNAL based connection. Remove _q_ prefix and private slot declaration. Change-Id: I4f91d6f7155d7578c5d2d31a18865a00ebb8d13b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: David Faure <david.faure@kdab.com>bb10
parent
9ef16d9471
commit
3308ce3fd3
|
|
@ -39,14 +39,14 @@ class QToolButtonPrivate : public QAbstractButtonPrivate
|
|||
public:
|
||||
void init();
|
||||
#if QT_CONFIG(menu)
|
||||
void _q_buttonPressed();
|
||||
void _q_buttonReleased();
|
||||
void onButtonPressed();
|
||||
void onButtonReleased();
|
||||
void popupTimerDone();
|
||||
void _q_updateButtonDown();
|
||||
void _q_menuTriggered(QAction *);
|
||||
void updateButtonDown();
|
||||
void onMenuTriggered(QAction *);
|
||||
#endif
|
||||
bool updateHoverControl(const QPoint &pos);
|
||||
void _q_actionTriggered();
|
||||
void onActionTriggered();
|
||||
QStyle::SubControl newHoverControl(const QPoint &pos);
|
||||
QStyle::SubControl hoverControl;
|
||||
QRect hoverRect;
|
||||
|
|
@ -187,8 +187,10 @@ void QToolButtonPrivate::init()
|
|||
QSizePolicy::ToolButton));
|
||||
|
||||
#if QT_CONFIG(menu)
|
||||
QObject::connect(q, SIGNAL(pressed()), q, SLOT(_q_buttonPressed()));
|
||||
QObject::connect(q, SIGNAL(released()), q, SLOT(_q_buttonReleased()));
|
||||
QObjectPrivate::connect(q, &QAbstractButton::pressed,
|
||||
this, &QToolButtonPrivate::onButtonPressed);
|
||||
QObjectPrivate::connect(q, &QAbstractButton::released,
|
||||
this, &QToolButtonPrivate::onButtonReleased);
|
||||
#endif
|
||||
|
||||
setLayoutItemMargins(QStyle::SE_ToolButtonLayoutItem);
|
||||
|
|
@ -435,7 +437,8 @@ void QToolButton::actionEvent(QActionEvent *event)
|
|||
setDefaultAction(action); // update button state
|
||||
break;
|
||||
case QEvent::ActionAdded:
|
||||
connect(action, SIGNAL(triggered()), this, SLOT(_q_actionTriggered()));
|
||||
QObjectPrivate::connect(action, &QAction::triggered, d,
|
||||
&QToolButtonPrivate::onActionTriggered);
|
||||
break;
|
||||
case QEvent::ActionRemoved:
|
||||
if (d->defaultAction == action)
|
||||
|
|
@ -480,7 +483,7 @@ bool QToolButtonPrivate::updateHoverControl(const QPoint &pos)
|
|||
return !doesHover;
|
||||
}
|
||||
|
||||
void QToolButtonPrivate::_q_actionTriggered()
|
||||
void QToolButtonPrivate::onActionTriggered()
|
||||
{
|
||||
Q_Q(QToolButton);
|
||||
if (QAction *action = qobject_cast<QAction *>(q->sender()))
|
||||
|
|
@ -667,7 +670,7 @@ void QToolButton::showMenu()
|
|||
d->popupTimerDone();
|
||||
}
|
||||
|
||||
void QToolButtonPrivate::_q_buttonPressed()
|
||||
void QToolButtonPrivate::onButtonPressed()
|
||||
{
|
||||
Q_Q(QToolButton);
|
||||
if (!hasMenu())
|
||||
|
|
@ -680,7 +683,7 @@ void QToolButtonPrivate::_q_buttonPressed()
|
|||
q->showMenu();
|
||||
}
|
||||
|
||||
void QToolButtonPrivate::_q_buttonReleased()
|
||||
void QToolButtonPrivate::onButtonReleased()
|
||||
{
|
||||
popupTimer.stop();
|
||||
}
|
||||
|
|
@ -757,9 +760,12 @@ void QToolButtonPrivate::popupTimerDone()
|
|||
#endif
|
||||
QPointer<QToolButton> that = q;
|
||||
actualMenu->setNoReplayFor(q);
|
||||
if (!mustDeleteActualMenu) //only if action are not in this widget
|
||||
QObject::connect(actualMenu, SIGNAL(triggered(QAction*)), q, SLOT(_q_menuTriggered(QAction*)));
|
||||
QObject::connect(actualMenu, SIGNAL(aboutToHide()), q, SLOT(_q_updateButtonDown()));
|
||||
if (!mustDeleteActualMenu) { //only if action are not in this widget
|
||||
QObjectPrivate::connect(actualMenu, &QMenu::triggered,
|
||||
this, &QToolButtonPrivate::onMenuTriggered);
|
||||
}
|
||||
QObjectPrivate::connect(actualMenu, &QMenu::aboutToHide,
|
||||
this, &QToolButtonPrivate::updateButtonDown);
|
||||
actualMenu->d_func()->causedPopup.widget = q;
|
||||
actualMenu->d_func()->causedPopup.action = defaultAction;
|
||||
actionsCopy = q->actions(); //(the list of action may be modified in slots)
|
||||
|
|
@ -773,11 +779,14 @@ void QToolButtonPrivate::popupTimerDone()
|
|||
if (!that)
|
||||
return;
|
||||
|
||||
QObject::disconnect(actualMenu, SIGNAL(aboutToHide()), q, SLOT(_q_updateButtonDown()));
|
||||
if (mustDeleteActualMenu)
|
||||
QObjectPrivate::disconnect(actualMenu, &QMenu::aboutToHide,
|
||||
this, &QToolButtonPrivate::updateButtonDown);
|
||||
if (mustDeleteActualMenu) {
|
||||
delete actualMenu;
|
||||
else
|
||||
QObject::disconnect(actualMenu, SIGNAL(triggered(QAction*)), q, SLOT(_q_menuTriggered(QAction*)));
|
||||
} else {
|
||||
QObjectPrivate::disconnect(actualMenu, &QMenu::triggered,
|
||||
this, &QToolButtonPrivate::onMenuTriggered);
|
||||
}
|
||||
|
||||
actionsCopy.clear();
|
||||
|
||||
|
|
@ -785,7 +794,7 @@ void QToolButtonPrivate::popupTimerDone()
|
|||
q->setAutoRepeat(true);
|
||||
}
|
||||
|
||||
void QToolButtonPrivate::_q_updateButtonDown()
|
||||
void QToolButtonPrivate::updateButtonDown()
|
||||
{
|
||||
Q_Q(QToolButton);
|
||||
menuButtonDown = false;
|
||||
|
|
@ -795,7 +804,7 @@ void QToolButtonPrivate::_q_updateButtonDown()
|
|||
q->repaint();
|
||||
}
|
||||
|
||||
void QToolButtonPrivate::_q_menuTriggered(QAction *action)
|
||||
void QToolButtonPrivate::onMenuTriggered(QAction *action)
|
||||
{
|
||||
Q_Q(QToolButton);
|
||||
if (action && !actionsCopy.contains(action))
|
||||
|
|
|
|||
|
|
@ -89,14 +89,6 @@ protected:
|
|||
private:
|
||||
Q_DISABLE_COPY(QToolButton)
|
||||
Q_DECLARE_PRIVATE(QToolButton)
|
||||
#if QT_CONFIG(menu)
|
||||
Q_PRIVATE_SLOT(d_func(), void _q_buttonPressed())
|
||||
Q_PRIVATE_SLOT(d_func(), void _q_buttonReleased())
|
||||
Q_PRIVATE_SLOT(d_func(), void _q_updateButtonDown())
|
||||
Q_PRIVATE_SLOT(d_func(), void _q_menuTriggered(QAction*))
|
||||
#endif
|
||||
Q_PRIVATE_SLOT(d_func(), void _q_actionTriggered())
|
||||
|
||||
};
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
|
|
|||
Loading…
Reference in New Issue