File indexing completed on 2023-11-26 08:17:54

0001 /*
0002 
0003  * SPDX-FileCopyrightText: 2016 Riccardo Iaconelli <riccardo@kde.org>
0004  * SPDX-FileCopyrightText: 2020-2023 Laurent Montel <montel@kde.org>
0005  *
0006  * SPDX-License-Identifier: LGPL-2.0-or-later
0007  *
0008  */
0009 
0010 #pragma once
0011 
0012 #include "libruqolacore_export.h"
0013 #include <QObject>
0014 #include <config-ruqola.h>
0015 
0016 class RocketChatAccount;
0017 class AccountManager;
0018 namespace TextAutoCorrection
0019 {
0020 class AutoCorrection;
0021 }
0022 namespace TextAutoCorrectionCore
0023 {
0024 class AutoCorrection;
0025 }
0026 class CustomEmojiIconManager;
0027 class LIBRUQOLACORE_EXPORT Ruqola : public QObject
0028 {
0029     Q_OBJECT
0030 public:
0031     ~Ruqola() override;
0032     /**
0033      * @brief Singleton provider
0034      *
0035      * @return Returns the singleton object
0036      */
0037     static Ruqola *self();
0038 
0039     static void destroy();
0040     RocketChatAccount *rocketChatAccount() const;
0041 
0042     AccountManager *accountManager() const;
0043 
0044     explicit Ruqola(QObject *parent = nullptr);
0045 
0046     void setCurrentAccount(const QString &accountName);
0047 
0048     void openMessageUrl(const QString &url);
0049 #if HAVE_TEXT_AUTOCORRECTION
0050     TextAutoCorrection::AutoCorrection *autoCorrection() const;
0051 #endif
0052 #if HAVE_TEXT_AUTOCORRECTION_WIDGETS
0053     TextAutoCorrectionCore::AutoCorrection *autoCorrection() const;
0054 #endif
0055 
0056     CustomEmojiIconManager *customEmojiIconManager() const;
0057 
0058     [[nodiscard]] bool debug() const;
0059 
0060 Q_SIGNALS:
0061     void translatorMenuChanged();
0062 
0063 private:
0064     Q_DISABLE_COPY(Ruqola)
0065     AccountManager *mAccountManager = nullptr;
0066 #if HAVE_TEXT_AUTOCORRECTION
0067     TextAutoCorrection::AutoCorrection *const mAutoCorrection = nullptr;
0068 #endif
0069 #if HAVE_TEXT_AUTOCORRECTION_WIDGETS
0070     TextAutoCorrectionCore::AutoCorrection *const mAutoCorrection = nullptr;
0071 #endif
0072 
0073     CustomEmojiIconManager *const mCustomEmojiIconManager;
0074     bool mDebug = false;
0075 };