File indexing completed on 2024-11-10 06:37:48
0001 /* 0002 SPDX-FileCopyrightText: 2003 Jason Keirstead <jason@keirstead.org> 0003 SPDX-FileCopyrightText: 2003-2006 Michel Hermier <michel.hermier@gmail.com> 0004 SPDX-FileCopyrightText: 2007 Nick Shaforostoff <shafff@ukr.net> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 #ifndef KCODECACTION_H 0009 #define KCODECACTION_H 0010 0011 #include <kconfigwidgets_export.h> 0012 0013 #include <KSelectAction> 0014 #include <memory> 0015 0016 /** 0017 * @class KCodecAction kcodecaction.h KCodecAction 0018 * 0019 * @short Action for selecting one of several text codecs.. 0020 * 0021 * This action shows up a submenu with a list of the available codecs on the system. 0022 */ 0023 class KCONFIGWIDGETS_EXPORT KCodecAction : public KSelectAction 0024 { 0025 Q_OBJECT 0026 0027 Q_PROPERTY(QString codecName READ currentCodecName WRITE setCurrentCodec) 0028 0029 public: 0030 explicit KCodecAction(QObject *parent, bool showAutoOptions = false); 0031 0032 KCodecAction(const QString &text, QObject *parent, bool showAutoOptions = false); 0033 0034 KCodecAction(const QIcon &icon, const QString &text, QObject *parent, bool showAutoOptions = false); 0035 0036 ~KCodecAction() override; 0037 0038 public: 0039 QString currentCodecName() const; 0040 bool setCurrentCodec(const QString &codecName); 0041 0042 Q_SIGNALS: 0043 /** 0044 * Emitted when a codec was selected 0045 * 0046 * @param name the name of the selected encoding. 0047 * 0048 * Note that textTriggered(const QString &) is emitted too (as defined in KSelectAction). 0049 * 0050 * @since 5.103 0051 */ 0052 void codecNameTriggered(const QByteArray &name); 0053 0054 /** 0055 * Emitted when the 'Default' codec action is triggered. 0056 */ 0057 void defaultItemTriggered(); 0058 0059 protected Q_SLOTS: 0060 void slotActionTriggered(QAction *) override; 0061 0062 protected: 0063 using KSelectAction::actionTriggered; 0064 0065 private: 0066 friend class KCodecActionPrivate; 0067 std::unique_ptr<class KCodecActionPrivate> const d; 0068 }; 0069 0070 #endif