File indexing completed on 2024-05-12 16:25:55
0001 /* 0002 SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "ownuserpreferences.h" 0008 0009 #include <QJsonArray> 0010 #include <QJsonObject> 0011 0012 OwnUserPreferences::OwnUserPreferences() = default; 0013 0014 OwnUserPreferences::~OwnUserPreferences() = default; 0015 0016 void OwnUserPreferences::parsePreferences(const QJsonObject &replyObject) 0017 { 0018 // qDebug() << " replyObject " << replyObject; 0019 const QJsonArray highlightsArray = replyObject.value(QLatin1String("highlights")).toArray(); 0020 QStringList lstHighlightsWord; 0021 const int highlightsWordArrayCount = highlightsArray.count(); 0022 lstHighlightsWord.reserve(highlightsWordArrayCount); 0023 for (int i = 0; i < highlightsWordArrayCount; ++i) { 0024 lstHighlightsWord << highlightsArray.at(i).toString(); 0025 } 0026 setHighlightWords(lstHighlightsWord); 0027 setEmailNotificationMode(replyObject.value(QLatin1String("emailNotificationMode")).toString()); 0028 setDesktopNotifications(replyObject.value(QLatin1String("desktopNotifications")).toString()); 0029 setPushNotifications(replyObject.value(QLatin1String("pushNotifications")).toString()); 0030 setConvertAsciiEmoji(replyObject.value(QLatin1String("convertAsciiEmoji")).toBool(true)); 0031 setUseEmojis(replyObject.value(QLatin1String("useEmojis")).toBool(true)); 0032 setHideRoles(replyObject.value(QLatin1String("hideRoles")).toBool(false)); 0033 setDisplayAvatars(replyObject.value(QLatin1String("displayAvatars")).toBool(true)); 0034 setIdleTimeLimit(replyObject.value(QLatin1String("idleTimeLimit")).toInt(-1)); 0035 setEnableAutoAway(replyObject.value(QLatin1String("enableAutoAway")).toBool(false)); 0036 setShowUnread(replyObject.value(QLatin1String("sidebarShowUnread")).toBool(false)); 0037 const QString sidebarSortBy = replyObject.value(QLatin1String("sidebarSortby")).toString(); 0038 if (sidebarSortBy == QLatin1String("activity")) { 0039 setRoomListSortOrder(OwnUserPreferences::RoomListSortOrder::ByLastMessage); 0040 } else if (sidebarSortBy == QLatin1String("alphabetical")) { 0041 setRoomListSortOrder(OwnUserPreferences::RoomListSortOrder::Alphabetically); 0042 } 0043 setShowRoomAvatar(replyObject.value(QLatin1String("sidebarDisplayAvatar")).toBool(false)); 0044 setShowFavorite(replyObject.value(QLatin1String("sidebarShowFavorites")).toBool(false)); 0045 setReceiveLoginDetectionEmail(replyObject.value(QLatin1String("receiveLoginDetectionEmail")).toBool(true)); 0046 0047 qDebug() << " replyObject " << replyObject; 0048 } 0049 0050 bool OwnUserPreferences::operator==(const OwnUserPreferences &other) const 0051 { 0052 return mHighlightWords == other.highlightWords() && mEmailNotificationMode == other.emailNotificationMode() 0053 && mDesktopNotifications == other.desktopNotifications() && mUseEmojis == other.useEmojis() && mConvertAsciiEmoji == other.convertAsciiEmoji() 0054 && mHideRoles == other.hideRoles() && mDisplayAvatars == other.displayAvatars() && mIdleTimeLimit == other.idleTimeLimit() 0055 && mEnableAutoAway == other.enableAutoAway() && mPushNotifications == other.pushNotifications() && mShowUnread == other.showUnread() 0056 && mShowRoomAvatar == other.showRoomAvatar() && mShowFavorite == other.showFavorite() && mRoomListSortOrder == other.roomListSortOrder() 0057 && mReceiveLoginDetectionEmail == other.receiveLoginDetectionEmail(); 0058 } 0059 0060 QStringList OwnUserPreferences::highlightWords() const 0061 { 0062 return mHighlightWords; 0063 } 0064 0065 void OwnUserPreferences::updateHighlightWords(const QJsonArray &highlightsArray) 0066 { 0067 QStringList lstHighlightsWord; 0068 const int highlightsWordArrayCount = highlightsArray.count(); 0069 lstHighlightsWord.reserve(highlightsWordArrayCount); 0070 for (int i = 0; i < highlightsWordArrayCount; ++i) { 0071 lstHighlightsWord << highlightsArray.at(i).toString(); 0072 } 0073 setHighlightWords(lstHighlightsWord); 0074 } 0075 0076 void OwnUserPreferences::setHighlightWords(const QStringList &highlightWords) 0077 { 0078 mHighlightWords = highlightWords; 0079 } 0080 0081 QString OwnUserPreferences::emailNotificationMode() const 0082 { 0083 return mEmailNotificationMode; 0084 } 0085 0086 void OwnUserPreferences::setEmailNotificationMode(const QString &emailNotificationMode) 0087 { 0088 mEmailNotificationMode = emailNotificationMode; 0089 } 0090 0091 QString OwnUserPreferences::desktopNotifications() const 0092 { 0093 return mDesktopNotifications; 0094 } 0095 0096 void OwnUserPreferences::setDesktopNotifications(const QString &desktopNotifications) 0097 { 0098 mDesktopNotifications = desktopNotifications; 0099 } 0100 0101 void OwnUserPreferences::setPushNotifications(const QString &pushNotifications) 0102 { 0103 mPushNotifications = pushNotifications; 0104 } 0105 0106 QString OwnUserPreferences::pushNotifications() const 0107 { 0108 return mPushNotifications; 0109 } 0110 0111 bool OwnUserPreferences::showUnread() const 0112 { 0113 return mShowUnread; 0114 } 0115 0116 void OwnUserPreferences::setShowUnread(bool newShowUnread) 0117 { 0118 mShowUnread = newShowUnread; 0119 } 0120 0121 OwnUserPreferences::RoomListSortOrder OwnUserPreferences::roomListSortOrder() const 0122 { 0123 return mRoomListSortOrder; 0124 } 0125 0126 void OwnUserPreferences::setRoomListSortOrder(OwnUserPreferences::RoomListSortOrder roomListSortOrder) 0127 { 0128 mRoomListSortOrder = roomListSortOrder; 0129 } 0130 0131 bool OwnUserPreferences::showRoomAvatar() const 0132 { 0133 return mShowRoomAvatar; 0134 } 0135 0136 void OwnUserPreferences::setShowRoomAvatar(bool newShowRoomAvatar) 0137 { 0138 mShowRoomAvatar = newShowRoomAvatar; 0139 } 0140 0141 bool OwnUserPreferences::showFavorite() const 0142 { 0143 return mShowFavorite; 0144 } 0145 0146 void OwnUserPreferences::setShowFavorite(bool newShowFavorite) 0147 { 0148 mShowFavorite = newShowFavorite; 0149 } 0150 0151 bool OwnUserPreferences::receiveLoginDetectionEmail() const 0152 { 0153 return mReceiveLoginDetectionEmail; 0154 } 0155 0156 void OwnUserPreferences::setReceiveLoginDetectionEmail(bool newReceiveLoginDetectionEmail) 0157 { 0158 mReceiveLoginDetectionEmail = newReceiveLoginDetectionEmail; 0159 } 0160 0161 bool OwnUserPreferences::convertAsciiEmoji() const 0162 { 0163 return mConvertAsciiEmoji; 0164 } 0165 0166 void OwnUserPreferences::setConvertAsciiEmoji(bool convertAsciiEmoji) 0167 { 0168 mConvertAsciiEmoji = convertAsciiEmoji; 0169 } 0170 0171 bool OwnUserPreferences::useEmojis() const 0172 { 0173 return mUseEmojis; 0174 } 0175 0176 void OwnUserPreferences::setUseEmojis(bool useEmojis) 0177 { 0178 mUseEmojis = useEmojis; 0179 } 0180 0181 bool OwnUserPreferences::hideRoles() const 0182 { 0183 return mHideRoles; 0184 } 0185 0186 void OwnUserPreferences::setHideRoles(bool hideRoles) 0187 { 0188 mHideRoles = hideRoles; 0189 } 0190 0191 bool OwnUserPreferences::displayAvatars() const 0192 { 0193 return mDisplayAvatars; 0194 } 0195 0196 void OwnUserPreferences::setDisplayAvatars(bool hideAvatars) 0197 { 0198 mDisplayAvatars = hideAvatars; 0199 } 0200 0201 int OwnUserPreferences::idleTimeLimit() const 0202 { 0203 return mIdleTimeLimit; 0204 } 0205 0206 void OwnUserPreferences::setIdleTimeLimit(int newIdleTimeLimit) 0207 { 0208 mIdleTimeLimit = newIdleTimeLimit; 0209 } 0210 0211 bool OwnUserPreferences::enableAutoAway() const 0212 { 0213 return mEnableAutoAway; 0214 } 0215 0216 void OwnUserPreferences::setEnableAutoAway(bool newEnableAutoAway) 0217 { 0218 mEnableAutoAway = newEnableAutoAway; 0219 } 0220 0221 QDebug operator<<(QDebug d, const OwnUserPreferences &t) 0222 { 0223 d << "mHighlightWords " << t.highlightWords(); 0224 d << "mEmailNotificationMode " << t.emailNotificationMode(); 0225 d << "mDesktopNotifications " << t.desktopNotifications(); 0226 d << "mUseEmojis " << t.useEmojis(); 0227 d << "mConvertAsciiEmoji " << t.convertAsciiEmoji(); 0228 d << "mHideRoles " << t.hideRoles(); 0229 d << "mDisplayAvatars " << t.displayAvatars(); 0230 d << "mIdleTimeLimit " << t.idleTimeLimit(); 0231 d << "mEnableAutoAway " << t.enableAutoAway(); 0232 d << "mPushNotifications " << t.pushNotifications(); 0233 d << "mShowUnread " << t.showUnread(); 0234 d << "mRoomListSortOrder " << t.roomListSortOrder(); 0235 d << "mShowRoomAvatar " << t.showRoomAvatar(); 0236 d << "mShowFavorite " << t.showFavorite(); 0237 d << "mReceiveLoginDetectionEmail " << t.receiveLoginDetectionEmail(); 0238 return d; 0239 } 0240 0241 #include "moc_ownuserpreferences.cpp"