diff options
author | Tobias Markmann <tm@ayena.de> | 2017-01-31 14:57:22 (GMT) |
---|---|---|
committer | Edwin Mons <edwin.mons@isode.com> | 2017-02-27 14:07:13 (GMT) |
commit | fc8f5b31c22ed7af4f0e2473f269601a87a0438c (patch) | |
tree | 0c59a9debf72247c7409947a3a4cccb6c616dd06 /Swift/Controllers/SettingConstants.h | |
parent | abd81d4a3cf08ffaa1e5265d204cdd80c8c0583b (diff) | |
download | swift-fc8f5b31c22ed7af4f0e2473f269601a87a0438c.zip swift-fc8f5b31c22ed7af4f0e2473f269601a87a0438c.tar.bz2 |
Redesign highlight logic and processing
The new highlight logic follows a simpler model. It supports:
* highlighting of whole words in a message
* highlighting messages by sender name
* highlighting if the user’s name is mentioned
Possible actions for these highlights are text colouring,
sound playback of WAV files, and system notifications.
In addition the user can decide to receive sound and system
notification on general incoming direct and group messages.
Redesigned the highlight configuration UI dialog for this new
model.
ChatMessageParser class now deals with all parsing and marking
up the chat message with the matching HighlightActions.
Highlighter class has been extended to deal with all sound
and system notification highlights that should be emitted by
a specified chat message.
Moved some tests over to gtest in the process.
Test-Information:
Tested UI on macOS 10.12.3 with Qt 5.7.1. Manually tested
that correct system notification are emitted on mentions,
keyword highlights and general messages.
Added new unit tests to cover new highlighting behaviour.
Change-Id: I1c89e29d81022174187fb44af0d384036ec51594
Diffstat (limited to 'Swift/Controllers/SettingConstants.h')
-rw-r--r-- | Swift/Controllers/SettingConstants.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Swift/Controllers/SettingConstants.h b/Swift/Controllers/SettingConstants.h index 3f15c44..fec2d27 100644 --- a/Swift/Controllers/SettingConstants.h +++ b/Swift/Controllers/SettingConstants.h @@ -1,90 +1,97 @@ /* - * Copyright (c) 2012-2016 Isode Limited. + * Copyright (c) 2012-2017 Isode Limited. * All rights reserved. * See the COPYING file for more information. */ #pragma once #include <Swift/Controllers/Settings/SettingsProvider.h> namespace Swift { /** * This class contains the major setting keys for Swift. */ class SettingConstants { public: /** * The #IDLE_GOES_OFFLINE setting specifies whether to close the XMPP connection when * the user went idle. * * True for automatic close of the XMPP connection and false for only changing the presence on idle. */ static const SettingsProvider::Setting<bool> IDLE_GOES_OFFLINE; /** * The #IDLE_TIMEOUT setting specifieds the seconds the user has to be inactive at the * desktop so the user is regarded as idle. */ static const SettingsProvider::Setting<int> IDLE_TIMEOUT; static const SettingsProvider::Setting<bool> SHOW_NOTIFICATIONS; /** * The #REQUEST_DELIVERYRECEIPTS settings specifies whether to request delivery receipts * for messages to contacts that support message receipts. */ static const SettingsProvider::Setting<bool> REQUEST_DELIVERYRECEIPTS; static const SettingsProvider::Setting<bool> FORGET_PASSWORDS; static const SettingsProvider::Setting<bool> REMEMBER_RECENT_CHATS; static const SettingsProvider::Setting<std::string> LAST_LOGIN_JID; static const SettingsProvider::Setting<bool> LOGIN_AUTOMATICALLY; /** * The #SHOW_OFFLINE setting specifies whether or not to show offline contacts in the * roster. * * If set true Swift will show offline contacts; else not. */ static const SettingsProvider::Setting<bool> SHOW_OFFLINE; /** * The #EXPANDED_ROSTER_GROUPS setting specifies the list of groups that are expanded * in the roster UI. * * Its value is a string with group names seperated by newlines. */ static const SettingsProvider::Setting<std::string> EXPANDED_ROSTER_GROUPS; static const SettingsProvider::Setting<bool> PLAY_SOUNDS; /** * The #HIGHLIGHT_RULES setting specifies the highlight rules and the associated actions. * * Its value is a Boost serialized representation. */ static const SettingsProvider::Setting<std::string> HIGHLIGHT_RULES; /** + * The #HIGHLIGHT_RULES_V2 setting specifies the second version of highlight configuration + * rules, incompatible to old highlight rules. + * + * Its value is a Boost serialized representation. + */ + static const SettingsProvider::Setting<std::string> HIGHLIGHT_RULES_V2; + /** * The #INVITE_AUTO_ACCEPT_MODE setting specifies how to handle invites to chat rooms. * * Supported values are: * - "no" : It is up to the user whether to accept the invitation and enter a room or not. * - "presence" : The invitation is automatically accepted if it is from a contact that is * already allowed to see the user's presence status. * - "domain" : The invitation is automatically accepted if it is from a contact that is * already allowed to see the user's presence status or from a contact of user's domain. */ static const SettingsProvider::Setting<std::string> INVITE_AUTO_ACCEPT_MODE; /** * The #DISCONNECT_ON_CARD_REMOVAL setting * specifies whether or not to sign out the user when * the smartcard is removed. * * If set true Swift will sign out the user when the * smart card is removed; else not. */ static const SettingsProvider::Setting<bool> DISCONNECT_ON_CARD_REMOVAL; /** * The #SINGLE_SIGN_ON setting * specifies whether to log in using Single Sign On. * This is currently supported on Windows. * * If set true Swift will use GSSAPI authentication to * log in the user; else not. */ static const SettingsProvider::Setting<bool> SINGLE_SIGN_ON; }; } |