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"