File indexing completed on 2024-05-12 04:44:34

0001 // SPDX-FileCopyrightText: Lukas Sommer <sommerluk@gmail.com>
0002 // SPDX-License-Identifier: BSD-2-Clause OR MIT
0003 
0004 #ifndef LANGUAGECHANGEEVENTFILTER_H
0005 #define LANGUAGECHANGEEVENTFILTER_H
0006 
0007 #include <qglobal.h>
0008 #include <qobject.h>
0009 class QEvent;
0010 
0011 #if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
0012 #include <qtmetamacros.h>
0013 #else
0014 #include <qobjectdefs.h>
0015 #include <qstring.h>
0016 #endif
0017 
0018 namespace PerceptualColor
0019 {
0020 /** @internal
0021  *
0022  * @brief An event filter that discards <tt>QEvent::LanguageChange</tt>
0023  * events.
0024  *
0025  * All other events are kept.
0026  *
0027  * To use it, create an instance of this class. Then, call
0028  * <tt>QObject::installEventFilter()</tt> on the object for which
0029  * you want to filter the events. */
0030 class LanguageChangeEventFilter : public QObject
0031 {
0032     Q_OBJECT
0033 
0034 public:
0035     explicit LanguageChangeEventFilter(QObject *parent = nullptr);
0036     virtual ~LanguageChangeEventFilter() override;
0037     [[nodiscard]] virtual bool eventFilter(QObject *watched, QEvent *event) override;
0038 
0039 private:
0040     Q_DISABLE_COPY(LanguageChangeEventFilter)
0041 
0042     /** @internal @brief Only for unit tests. */
0043     friend class TestLanguageChangeEventFilter;
0044 };
0045 
0046 } // namespace PerceptualColor
0047 
0048 #endif // LANGUAGECHANGEEVENTFILTER_H