本文整理汇总了C++中NotificationSettings::highlightList方法的典型用法代码示例。如果您正苦于以下问题:C++ NotificationSettings::highlightList方法的具体用法?C++ NotificationSettings::highlightList怎么用?C++ NotificationSettings::highlightList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NotificationSettings
的用法示例。
在下文中一共展示了NotificationSettings::highlightList方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: importRules
void CoreHighlightSettingsPage::importRules()
{
NotificationSettings notificationSettings;
const auto localHighlightList = notificationSettings.highlightList();
// Re-use translations of "Legacy/Local Highlights" as this is a word-for-word reference,
// forcing all spaces to non-breaking
QString localHighlightsName;
if (Quassel::runMode() == Quassel::Monolithic) {
localHighlightsName = tr("Legacy Highlights").replace(" ", " ");
} else {
localHighlightsName = tr("Local Highlights").replace(" ", " ");
}
if (localHighlightList.count() == 0) {
// No highlight rules exist to import, do nothing
QMessageBox::information(this,
tr("No highlights to import"),
tr("No highlight rules in <i>%1</i>."
).arg(localHighlightsName));
return;
}
int ret = QMessageBox::question(this,
tr("Import highlights?"),
tr("Import all highlight rules from <i>%1</i>?"
).arg(localHighlightsName),
QMessageBox::Yes|QMessageBox::No,
QMessageBox::No);
if (ret != QMessageBox::Yes) {
// Only two options, Yes or No, return if not Yes
return;
}
auto clonedManager = HighlightRuleManager();
clonedManager.fromVariantMap(Client::highlightRuleManager()->toVariantMap());
for (const auto &variant : notificationSettings.highlightList()) {
auto highlightRule = variant.toMap();
clonedManager.addHighlightRule(
clonedManager.nextId(),
highlightRule["Name"].toString(),
highlightRule["RegEx"].toBool(),
highlightRule["CS"].toBool(),
highlightRule["Enable"].toBool(),
false,
"",
highlightRule["Channel"].toString()
);
}
Client::highlightRuleManager()->requestUpdate(clonedManager.toVariantMap());
setChangedState(false);
load();
// Give a heads-up that all succeeded
QMessageBox::information(this,
tr("Imported highlights"),
tr("%1 highlight rules successfully imported."
).arg(QString::number(localHighlightList.count())));
}
示例2: 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
//.........这里部分代码省略.........