File indexing completed on 2024-06-23 05:18:38
0001 /* 0002 SPDX-FileCopyrightText: 2014-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "statusbarlabeltoggledstate.h" 0008 #include "messagecomposer_debug.h" 0009 #include <QMouseEvent> 0010 using namespace MessageComposer; 0011 StatusBarLabelToggledState::StatusBarLabelToggledState(QWidget *parent) 0012 : QLabel(parent) 0013 { 0014 setTextFormat(Qt::PlainText); 0015 } 0016 0017 StatusBarLabelToggledState::~StatusBarLabelToggledState() = default; 0018 0019 void StatusBarLabelToggledState::setStateString(const QString &toggled, const QString &untoggled) 0020 { 0021 if (toggled.isEmpty() && untoggled.isEmpty()) { 0022 qCWarning(MESSAGECOMPOSER_LOG) << " State string is empty. Need to fix it"; 0023 } 0024 mToggled = toggled; 0025 mUnToggled = untoggled; 0026 updateLabel(); 0027 } 0028 0029 void StatusBarLabelToggledState::setToggleMode(bool state) 0030 { 0031 if (mToggleMode != state) { 0032 mToggleMode = state; 0033 Q_EMIT toggleModeChanged(mToggleMode); 0034 updateLabel(); 0035 } 0036 } 0037 0038 bool StatusBarLabelToggledState::toggleMode() const 0039 { 0040 return mToggleMode; 0041 } 0042 0043 void StatusBarLabelToggledState::updateLabel() 0044 { 0045 if (mToggleMode) { 0046 setText(mToggled); 0047 } else { 0048 setText(mUnToggled); 0049 } 0050 } 0051 0052 void StatusBarLabelToggledState::mousePressEvent(QMouseEvent *ev) 0053 { 0054 Q_UNUSED(ev) 0055 if (ev->button() == Qt::LeftButton) { 0056 setToggleMode(!mToggleMode); 0057 } 0058 } 0059 0060 #include "moc_statusbarlabeltoggledstate.cpp"