File indexing completed on 2024-04-28 05:45:14

0001 /*
0002     This file is part of the KDE project
0003     SPDX-FileCopyrightText: 2022 Felix Ernst <felixernst@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #include "actiontexthelper.h"
0009 
0010 using namespace SelectionMode;
0011 
0012 ActionTextHelper::ActionTextHelper(QObject *parent)
0013     : QObject(parent)
0014 {
0015 }
0016 
0017 void ActionTextHelper::registerTextWhenNothingIsSelected(QAction *action, QString registeredText)
0018 {
0019     Q_CHECK_PTR(action);
0020     m_registeredActionTextChanges.emplace_back(action, registeredText, TextWhenNothingIsSelected);
0021 }
0022 
0023 void ActionTextHelper::textsWhenNothingIsSelectedEnabled(bool enabled)
0024 {
0025     for (auto i = m_registeredActionTextChanges.begin(); i != m_registeredActionTextChanges.end(); ++i) {
0026         while (!i->action) {
0027             i = m_registeredActionTextChanges.erase(i);
0028             if (i == m_registeredActionTextChanges.end()) {
0029                 break;
0030             }
0031         }
0032 
0033         if (enabled && i->textStateOfRegisteredText == TextWhenNothingIsSelected) {
0034             QString textWhenSomethingIsSelected = i->action->text();
0035             i->action->setText(i->registeredText);
0036             i->registeredText = textWhenSomethingIsSelected;
0037             i->textStateOfRegisteredText = TextWhenSomethingIsSelected;
0038         } else if (!enabled && i->textStateOfRegisteredText == TextWhenSomethingIsSelected) {
0039             QString textWhenNothingIsSelected = i->action->text();
0040             i->action->setText(i->registeredText);
0041             i->registeredText = textWhenNothingIsSelected;
0042             i->textStateOfRegisteredText = TextWhenNothingIsSelected;
0043         }
0044     }
0045 }