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