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

0001 /*
0002 
0003  * SPDX-FileCopyrightText: 2016 Riccardo Iaconelli <riccardo@kde.org>
0004  *
0005  * SPDX-License-Identifier: LGPL-2.0-or-later
0006  *
0007  */
0008 
0009 #include "ruqola.h"
0010 #include "accountmanager.h"
0011 #include "customemojiiconmanager.h"
0012 #include "managerdatapaths.h"
0013 #include "rocketchataccount.h"
0014 
0015 #include <KSharedConfig>
0016 
0017 #if HAVE_TEXT_AUTOCORRECTION
0018 #include "textautocorrection/autocorrection.h"
0019 #include "textautocorrection/textautocorrectionsettings.h"
0020 #endif
0021 #if HAVE_TEXT_AUTOCORRECTION_WIDGETS
0022 #include "textautocorrectioncore/textautocorrectionsettings.h"
0023 #include <TextAutoCorrectionCore/AutoCorrection>
0024 #endif
0025 
0026 static Ruqola *s_self = nullptr;
0027 
0028 Ruqola::Ruqola(QObject *parent)
0029     : QObject(parent)
0030 #if HAVE_TEXT_AUTOCORRECTION
0031     , mAutoCorrection(new TextAutoCorrection::AutoCorrection())
0032 #endif
0033 #if HAVE_TEXT_AUTOCORRECTION_WIDGETS
0034     , mAutoCorrection(new TextAutoCorrectionCore::AutoCorrection())
0035 #endif
0036     , mCustomEmojiIconManager(new CustomEmojiIconManager(this))
0037 {
0038     mDebug = !qEnvironmentVariableIsEmpty("RUQOLA_DEBUGGING");
0039     // Initialize paths
0040     (void)ManagerDataPaths::self();
0041     mAccountManager = new AccountManager(this);
0042 
0043 #if HAVE_TEXT_AUTOCORRECTION
0044     TextAutoCorrection::TextAutoCorrectionSettings::self()->setSharedConfig(KSharedConfig::openConfig());
0045     TextAutoCorrection::TextAutoCorrectionSettings::self()->load();
0046     mAutoCorrection->readConfig();
0047 #endif
0048 #if HAVE_TEXT_AUTOCORRECTION_WIDGETS
0049     TextAutoCorrectionCore::TextAutoCorrectionSettings::self()->setSharedConfig(KSharedConfig::openConfig());
0050     TextAutoCorrectionCore::TextAutoCorrectionSettings::self()->load();
0051     mAutoCorrection->readConfig();
0052 #endif
0053 }
0054 
0055 Ruqola::~Ruqola()
0056 {
0057 #if HAVE_TEXT_AUTOCORRECTION
0058     delete mAutoCorrection;
0059 #endif
0060 #if HAVE_TEXT_AUTOCORRECTION_WIDGETS
0061     delete mAutoCorrection;
0062 #endif
0063 }
0064 
0065 Ruqola *Ruqola::self()
0066 {
0067     if (!s_self) {
0068         s_self = new Ruqola;
0069     }
0070     return s_self;
0071 }
0072 
0073 void Ruqola::destroy()
0074 {
0075     delete s_self;
0076     s_self = nullptr;
0077 }
0078 
0079 void Ruqola::openMessageUrl(const QString &url)
0080 {
0081     mAccountManager->openMessageUrl(url);
0082 }
0083 
0084 #if HAVE_TEXT_AUTOCORRECTION
0085 TextAutoCorrection::AutoCorrection *Ruqola::autoCorrection() const
0086 {
0087     return mAutoCorrection;
0088 }
0089 #endif
0090 
0091 #if HAVE_TEXT_AUTOCORRECTION_WIDGETS
0092 TextAutoCorrectionCore::AutoCorrection *Ruqola::autoCorrection() const
0093 {
0094     return mAutoCorrection;
0095 }
0096 #endif
0097 
0098 CustomEmojiIconManager *Ruqola::customEmojiIconManager() const
0099 {
0100     return mCustomEmojiIconManager;
0101 }
0102 
0103 bool Ruqola::debug() const
0104 {
0105     return mDebug;
0106 }
0107 
0108 void Ruqola::setCurrentAccount(const QString &accountName)
0109 {
0110     mAccountManager->setCurrentAccount(accountName);
0111 }
0112 
0113 AccountManager *Ruqola::accountManager() const
0114 {
0115     return mAccountManager;
0116 }
0117 
0118 RocketChatAccount *Ruqola::rocketChatAccount() const
0119 {
0120     return mAccountManager->account();
0121 }
0122 
0123 #include "moc_ruqola.cpp"