1 /* 2 SPDX-FileCopyrightText: 2014 Weng Xuetian <wengxt@gmail.com> 3 4 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 5 */ 6 #ifndef ENGINEMANAGER_H 7 #define ENGINEMANAGER_H 8 #include <QByteArray> 9 #include <QList> 10 #include <QMap> 11 #include <QQueue> 12 #include <QString> 13 #include <QStringList> 14 #include <ibus.h> 15 16 class EngineManager 17 { 18 public: 19 EngineManager(); 20 virtual ~EngineManager(); 21 22 void setEngines(IBusEngineDesc **engines); engines()23 IBusEngineDesc **engines() 24 { 25 return m_engines; 26 } length()27 size_t length() 28 { 29 return m_length; 30 } 31 void setUseGlobalEngine(gboolean g_variant_get_boolean); 32 void setCurrentContext(const gchar *input_context_path); 33 QString currentEngine(); useGlobalEngine()34 bool useGlobalEngine() 35 { 36 return m_useGlobalEngine; 37 } 38 void setCurrentEngine(const char *name); 39 const char *navigate(IBusEngineDesc *engine, bool forward); 40 void moveToFirst(IBusEngineDesc *engine_desc); 41 QStringList engineOrder(); 42 void setOrder(const gchar **engine_names, size_t len); 43 size_t getIndexByName(const char *name); 44 45 private: 46 QQueue<QString> m_history; 47 QMap<QString, QString> m_engineMap; 48 QString m_currentContext; 49 IBusEngineDesc **m_engines; 50 size_t m_length; 51 bool m_useGlobalEngine; 52 void freeOldEngine(); 53 }; 54 55 #endif // PROPERTYMANAGER_H 56