本文整理汇总了C++中NotificationSettings::setHighlightList方法的典型用法代码示例。如果您正苦于以下问题:C++ NotificationSettings::setHighlightList方法的具体用法?C++ NotificationSettings::setHighlightList怎么用?C++ NotificationSettings::setHighlightList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NotificationSettings
的用法示例。
在下文中一共展示了NotificationSettings::setHighlightList方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: applySettingsMigration
bool QtUiApplication::applySettingsMigration(QtUiSettings settings, const uint newVersion)
{
switch (newVersion) {
// Version 0 and 1 aren't valid upgrade paths - one represents no version, the other is the
// oldest version. Ignore those, start from 2 and higher.
// Each missed version will be called in sequence. E.g. to upgrade from '1' to '3', this
// function will be called with '2', then '3'.
// Use explicit scope via { ... } to avoid cross-initialization
//
// In most cases, the goal is to preserve the older default values for keys that haven't been
// saved. Exceptions will be noted below.
// NOTE: If you add new upgrade logic here, you MUST ALSO increase VERSION_MINOR_CURRENT in
// migrateSettings()! Otherwise, your upgrade logic won't ever be called.
case 9:
{
// New default changes: show highest sender prefix mode, if available
// --------
// ChatView settings
ChatViewSettings chatViewSettings;
const QString senderPrefixModeId = "SenderPrefixMode";
if (!chatViewSettings.valueExists(senderPrefixModeId)) {
// New default is HighestMode, preserve previous behavior by setting to NoModes
chatViewSettings.setValue(senderPrefixModeId,
static_cast<int>(UiStyle::SenderPrefixMode::NoModes));
}
// --------
// Migration complete!
return true;
}
case 8:
{
// New default changes: RegEx checkbox now toggles Channel regular expressions, too
//
// This only affects local highlights. Core-side highlights weren't released in stable when
// this change was made, so no need to migrate those.
// --------
// NotificationSettings
NotificationSettings notificationSettings;
// Check each highlight rule for a "Channel" field. If one exists, convert to RegEx mode.
// This might be more efficient with std::transform() or such. It /is/ only run once...
auto highlightList = notificationSettings.highlightList();
bool changesMade = false;
for (int index = 0; index < highlightList.count(); ++index)
{
// Load the highlight rule...
auto highlightRule = highlightList[index].toMap();
// Check if "Channel" has anything set and RegEx is disabled
if (!highlightRule["Channel"].toString().isEmpty()
&& highlightRule["RegEx"].toBool() == false) {
// We have a rule to convert
// Mark as a regular expression, allowing the Channel filtering to work the same as
// before the upgrade
highlightRule["RegEx"] = true;
// Convert the main rule to regular expression, mirroring the conversion to wildcard
// format from QtUiMessageProcessor::checkForHighlight()
highlightRule["Name"] =
"(^|\\W)" + QRegExp::escape(highlightRule["Name"].toString()) + "(\\W|$)";
// Save the rule back
highlightList[index] = highlightRule;
changesMade = true;
}
}
// Save the modified rules if any changes were made
if (changesMade) {
notificationSettings.setHighlightList(highlightList);
}
// --------
// Migration complete!
return true;
}
case 7:
{
// New default changes: UseProxy is no longer used in CoreAccountSettings
CoreAccountSettings s;
for (auto &&accountId : s.knownAccounts()) {
auto map = s.retrieveAccountData(accountId);
if (!map.value("UseProxy", false).toBool()) {
map["ProxyType"] = static_cast<int>(QNetworkProxy::ProxyType::NoProxy);
}
map.remove("UseProxy");
s.storeAccountData(accountId, map);
}
// Migration complete!
return true;
}
case 6:
{
// New default changes: sender colors switched around to Tango-ish theme
//.........这里部分代码省略.........