/************************************************************************ ** ** @file vtoolbuttonpopup.cpp ** @author Roman Telezhynskyi ** @date 8 7, 2023 ** ** @brief ** @copyright ** This source code is part of the Valentina project, a pattern making ** program, whose allow create and modeling patterns of clothing. ** Copyright (C) 2023 Valentina project ** All Rights Reserved. ** ** Valentina is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** Valentina is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Valentina. If not, see . ** *************************************************************************/ #include "vtoolbuttonpopup.h" #include #include //--------------------------------------------------------------------------------------------------------------------- VToolButtonPopup::VToolButtonPopup(QWidget *parent) : QToolButton(parent) { setPopupMode(QToolButton::MenuButtonPopup); QObject::connect(this, &QToolButton::triggered, this, [this](QAction *action) { setDefaultAction(action); }); } //--------------------------------------------------------------------------------------------------------------------- void VToolButtonPopup::SetToolGroupTooltip(const QString &toolGroupTooltip) { m_toolGroupTooltip = toolGroupTooltip; CorrectToolTip(); } //--------------------------------------------------------------------------------------------------------------------- auto VToolButtonPopup::event(QEvent *event) -> bool { if (event->type() == QEvent::ToolTipChange && !handlingToolTipChange) { handlingToolTipChange = true; CorrectToolTip(); handlingToolTipChange = false; } return QToolButton::event(event); } //--------------------------------------------------------------------------------------------------------------------- void VToolButtonPopup::CorrectToolTip() { if (!m_toolGroupTooltip.isEmpty()) { setToolTip(QStringLiteral("%1:
%2").arg(m_toolGroupTooltip, toolTip())); } }