/* This file is part of KDDockWidgets. SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB, a KDAB Group company Author: Sérgio Martins SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only Contact KDAB at for commercial licensing options. */ #include "Action_p.h" #include "core/Action_p.h" #include "core/Logging_p.h" #include "core/Utils_p.h" using namespace KDDockWidgets::QtWidgets; Action::Action(Core::DockWidget *dw, const char *debugName) : Core::Action(dw, debugName) { setCheckable(true); connect(this, &QAction::toggled, this, [this](bool checked) { if (m_lastCheckedState != checked) { m_lastCheckedState = checked; if (!signalsBlocked()) { blockSignals(true); // user might call the QAction directly, so protect here as well safeEmitSignal(d->toggled, checked); blockSignals(false); } } }); } Action::~Action() = default; void Action::setIcon(const KDDockWidgets::Icon &icon) { QAction::setIcon(icon); } KDDockWidgets::Icon Action::icon() const { return QAction::icon(); } void Action::setText(const QString &text) { QAction::setText(text); } void Action::setToolTip(const QString &text) { QAction::setToolTip(text); } QString Action::toolTip() const { return QAction::toolTip(); } void Action::setEnabled(bool enabled) { QAction::setEnabled(enabled); } bool Action::isEnabled() const { return QAction::isEnabled(); } bool Action::isChecked() const { return QAction::isChecked(); } void Action::setChecked(bool checked) { QAction::setChecked(checked); } bool Action::blockSignals(bool b) { return QAction::blockSignals(b); } #ifdef DOCKS_DEVELOPER_MODE void Action::trigger() { QAction::trigger(); } #endif