fix warning

This commit is contained in:
Martin Rotter 2022-04-09 10:11:40 +02:00
parent 62bda35fc8
commit a38d3fb9af
2 changed files with 147 additions and 142 deletions

View File

@ -22,10 +22,10 @@
#include <cmath>
MessagesModel::MessagesModel(QObject* parent)
: QSqlQueryModel(parent), m_view(nullptr), m_cache(new MessagesModelCache(this)), m_messageHighlighter(MessageHighlighter::NoHighlighting),
m_customDateFormat(QString()), m_customTimeFormat(QString()), m_newerArticlesRelativeTime(-1),
m_selectedItem(nullptr), m_displayFeedIcons(false),
m_multilineListItems(qApp->settings()->value(GROUP(Messages), SETTING(Messages::MultilineArticleList)).toBool()) {
: QSqlQueryModel(parent), m_view(nullptr), m_cache(new MessagesModelCache(this)),
m_messageHighlighter(MessageHighlighter::NoHighlighting), m_customDateFormat(QString()),
m_customTimeFormat(QString()), m_newerArticlesRelativeTime(-1), m_selectedItem(nullptr), m_displayFeedIcons(false),
m_multilineListItems(qApp->settings()->value(GROUP(Messages), SETTING(Messages::MultilineArticleList)).toBool()) {
setupFonts();
setupIcons();
setupHeaderData();
@ -107,8 +107,7 @@ void MessagesModel::repopulate() {
fetchMore();
}
qDebugNN << LOGSEC_MESSAGEMODEL
<< "Repopulated model, SQL statement is now:\n"
qDebugNN << LOGSEC_MESSAGEMODEL << "Repopulated model, SQL statement is now:\n"
<< QUOTE_W_SPACE_DOT(selectStatement());
}
@ -121,7 +120,9 @@ bool MessagesModel::setData(const QModelIndex& index, const QVariant& value, int
void MessagesModel::setupFonts() {
QFont fon;
fon.fromString(qApp->settings()->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString()).toString());
fon.fromString(qApp->settings()
->value(GROUP(Messages), Messages::ListFont, Application::font("MessagesView").toString())
.toString());
m_normalFont = fon;
m_boldFont = m_normalFont;
@ -141,13 +142,11 @@ void MessagesModel::loadMessages(RootItem* item) {
else {
if (!item->getParentServiceRoot()->loadMessagesForItem(item, this)) {
setFilter(QSL(DEFAULT_SQL_MESSAGES_FILTER));
qCriticalNN << LOGSEC_MESSAGEMODEL
<< "Loading of messages from item '"
<< item->title() << "' failed.";
qApp->showGuiMessage(Notification::Event::GeneralEvent, {
tr("Loading of articles from item '%1' failed").arg(item->title()),
tr("Loading of articles failed, maybe messages could not be downloaded."),
QSystemTrayIcon::MessageIcon::Critical });
qCriticalNN << LOGSEC_MESSAGEMODEL << "Loading of messages from item '" << item->title() << "' failed.";
qApp->showGuiMessage(Notification::Event::GeneralEvent,
{tr("Loading of articles from item '%1' failed").arg(item->title()),
tr("Loading of articles failed, maybe messages could not be downloaded."),
QSystemTrayIcon::MessageIcon::Critical});
}
}
@ -205,8 +204,8 @@ void MessagesModel::updateDateFormat() {
m_customTimeFormat = QString();
}
m_newerArticlesRelativeTime = qApp->settings()->value(GROUP(Messages),
SETTING(Messages::RelativeTimeForNewerArticles)).toInt();
m_newerArticlesRelativeTime =
qApp->settings()->value(GROUP(Messages), SETTING(Messages::RelativeTimeForNewerArticles)).toInt();
}
void MessagesModel::updateFeedIconsDisplay() {
@ -261,25 +260,14 @@ void MessagesModel::setupHeaderData() {
/*: Tooltip for indication of presence of enclosures.*/ tr("Has enclosures");
m_tooltipData
<< tr("ID of the article.")
<< tr("Is article read?")
<< tr("Is article important?")
<< tr("Is article deleted?")
<< tr("Is article permanently deleted from recycle bin?")
<< tr("ID of feed which this article belongs to.")
<< tr("Title of the article.")
<< tr("Url of the article.")
<< tr("Author of the article.")
<< tr("Creation date of the article.")
<< tr("Contents of the article.")
<< tr("List of attachments.")
<< tr("Score of the article.")
<< tr("Account ID of the article.")
<< tr("Custom ID of the article.")
<< tr("Custom hash of the article.")
<< tr("Custom ID of feed of the article.")
<< tr("Indication of enclosures presence within the article.");
m_tooltipData << tr("ID of the article.") << tr("Is article read?") << tr("Is article important?")
<< tr("Is article deleted?") << tr("Is article permanently deleted from recycle bin?")
<< tr("ID of feed which this article belongs to.") << tr("Title of the article.")
<< tr("Url of the article.") << tr("Author of the article.") << tr("Creation date of the article.")
<< tr("Contents of the article.") << tr("List of attachments.") << tr("Score of the article.")
<< tr("Account ID of the article.") << tr("Custom ID of the article.")
<< tr("Custom hash of the article.") << tr("Custom ID of feed of the article.")
<< tr("Indication of enclosures presence within the article.");
}
Qt::ItemFlags MessagesModel::flags(const QModelIndex& index) const {
@ -288,7 +276,8 @@ Qt::ItemFlags MessagesModel::flags(const QModelIndex& index) const {
}
QList<Message> MessagesModel::messagesAt(const QList<int>& row_indices) const {
QList<Message> msgs; msgs.reserve(row_indices.size());
QList<Message> msgs;
msgs.reserve(row_indices.size());
for (int idx : row_indices) {
msgs << messageAt(idx);
@ -309,8 +298,8 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
int index_column = idx.column();
if (index_column == MSG_DB_DCREATED_INDEX) {
QDateTime dt = TextFactory::parseDateTime(QSqlQueryModel::data(idx,
Qt::ItemDataRole::EditRole).value<qint64>()).toLocalTime();
QDateTime dt = TextFactory::parseDateTime(QSqlQueryModel::data(idx, Qt::ItemDataRole::EditRole).value<qint64>())
.toLocalTime();
if (dt.date() == QDate::currentDate() && !m_customTimeFormat.isEmpty()) {
return dt.toString(m_customTimeFormat);
@ -369,10 +358,8 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
return author_name.isEmpty() ? QSL("-") : author_name;
}
else if (index_column != MSG_DB_IMPORTANT_INDEX &&
index_column != MSG_DB_READ_INDEX &&
index_column != MSG_DB_HAS_ENCLOSURES &&
index_column != MSG_DB_SCORE_INDEX) {
else if (index_column != MSG_DB_IMPORTANT_INDEX && index_column != MSG_DB_READ_INDEX &&
index_column != MSG_DB_HAS_ENCLOSURES && index_column != MSG_DB_SCORE_INDEX) {
return QSqlQueryModel::data(idx, role);
}
else {
@ -382,13 +369,11 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
case LOWER_TITLE_ROLE:
return m_cache->containsData(idx.row())
? m_cache->data(idx).toString().toLower()
: QSqlQueryModel::data(idx, Qt::ItemDataRole::EditRole).toString().toLower();
? m_cache->data(idx).toString().toLower()
: QSqlQueryModel::data(idx, Qt::ItemDataRole::EditRole).toString().toLower();
case Qt::ItemDataRole::EditRole:
return m_cache->containsData(idx.row())
? m_cache->data(idx)
: QSqlQueryModel::data(idx, role);
return m_cache->containsData(idx.row()) ? m_cache->data(idx) : QSqlQueryModel::data(idx, role);
case Qt::ItemDataRole::ToolTipRole: {
if (!qApp->settings()->value(GROUP(Feeds), SETTING(Feeds::EnableTooltipsFeedsMessages)).toBool()) {
@ -399,14 +384,14 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
return data(idx, Qt::ItemDataRole::EditRole);
}
else if (idx.column() == MSG_DB_URL_INDEX) {
return TextFactory::shorten(data(idx, Qt::ItemDataRole::DisplayRole).toString(),
TEXT_TOOLTIP_LIMIT);
return TextFactory::shorten(data(idx, Qt::ItemDataRole::DisplayRole).toString(), TEXT_TOOLTIP_LIMIT);
}
else if (idx.column() == MSG_DB_DCREATED_INDEX) {
return qApp->localization()->loadedLocale().toString(
QDateTime::fromMSecsSinceEpoch(data(idx,
Qt::ItemDataRole::EditRole).value<qint64>()).toLocalTime(),
QLocale::FormatType::LongFormat);
return qApp->localization()
->loadedLocale()
.toString(QDateTime::fromMSecsSinceEpoch(data(idx, Qt::ItemDataRole::EditRole).value<qint64>())
.toLocalTime(),
QLocale::FormatType::LongFormat);
}
else {
return data(idx, Qt::ItemDataRole::DisplayRole);
@ -446,24 +431,26 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
switch (m_messageHighlighter) {
case MessageHighlighter::HighlightImportant: {
QModelIndex idx_important = index(idx.row(), MSG_DB_IMPORTANT_INDEX);
QVariant dta = m_cache->containsData(idx_important.row()) ? m_cache->data(idx_important) : QSqlQueryModel::data(idx_important);
QVariant dta = m_cache->containsData(idx_important.row()) ? m_cache->data(idx_important)
: QSqlQueryModel::data(idx_important);
return dta.toInt() == 1
? qApp->skins()->currentSkin().colorForModel(role == Qt::ItemDataRole::ForegroundRole
? SkinEnums::PaletteColors::FgInteresting
: SkinEnums::PaletteColors::FgSelectedInteresting)
: QVariant();
? qApp->skins()->currentSkin().colorForModel(role == Qt::ItemDataRole::ForegroundRole
? SkinEnums::PaletteColors::FgInteresting
: SkinEnums::PaletteColors::FgSelectedInteresting)
: QVariant();
}
case MessageHighlighter::HighlightUnread: {
QModelIndex idx_read = index(idx.row(), MSG_DB_READ_INDEX);
QVariant dta = m_cache->containsData(idx_read.row()) ? m_cache->data(idx_read) : QSqlQueryModel::data(idx_read);
QVariant dta =
m_cache->containsData(idx_read.row()) ? m_cache->data(idx_read) : QSqlQueryModel::data(idx_read);
return dta.toInt() == 0
? qApp->skins()->currentSkin().colorForModel(role == Qt::ItemDataRole::ForegroundRole
? SkinEnums::PaletteColors::FgInteresting
: SkinEnums::PaletteColors::FgSelectedInteresting)
: QVariant();
? qApp->skins()->currentSkin().colorForModel(role == Qt::ItemDataRole::ForegroundRole
? SkinEnums::PaletteColors::FgInteresting
: SkinEnums::PaletteColors::FgSelectedInteresting)
: QVariant();
}
case MessageHighlighter::NoHighlighting:
@ -472,9 +459,7 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
}
case Qt::ItemDataRole::SizeHintRole: {
if (!m_multilineListItems ||
m_view == nullptr ||
m_view->isColumnHidden(idx.column()) ||
if (!m_multilineListItems || m_view == nullptr || m_view->isColumnHidden(idx.column()) ||
idx.column() != MSG_DB_TITLE_INDEX) {
return {};
}
@ -487,11 +472,11 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
}
QFontMetrics fm(data(idx, Qt::ItemDataRole::FontRole).value<QFont>());
auto rct = fm.boundingRect(QRect(QPoint(0, 0), QPoint(wd - 5, 100000)),
Qt::TextFlag::TextWordWrap |
Qt::AlignmentFlag::AlignLeft |
Qt::AlignmentFlag::AlignVCenter,
str).size();
auto rct =
fm.boundingRect(QRect(QPoint(0, 0), QPoint(wd - 5, 100000)),
Qt::TextFlag::TextWordWrap | Qt::AlignmentFlag::AlignLeft | Qt::AlignmentFlag::AlignVCenter,
str)
.size();
return rct;
}
@ -503,9 +488,8 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
if (index_column == MSG_DB_READ_INDEX) {
if (m_displayFeedIcons && m_selectedItem != nullptr) {
QModelIndex idx_feedid = index(idx.row(), MSG_DB_FEED_CUSTOM_ID_INDEX);
QVariant dta = m_cache->containsData(idx_feedid.row())
? m_cache->data(idx_feedid)
: QSqlQueryModel::data(idx_feedid);
QVariant dta =
m_cache->containsData(idx_feedid.row()) ? m_cache->data(idx_feedid) : QSqlQueryModel::data(idx_feedid);
QString feed_custom_id = dta.toString();
auto acc = m_selectedItem->getParentServiceRoot()->feedIconForMessage(feed_custom_id);
@ -518,14 +502,16 @@ QVariant MessagesModel::data(const QModelIndex& idx, int role) const {
}
else {
QModelIndex idx_read = index(idx.row(), MSG_DB_READ_INDEX);
QVariant dta = m_cache->containsData(idx_read.row()) ? m_cache->data(idx_read) : QSqlQueryModel::data(idx_read);
QVariant dta =
m_cache->containsData(idx_read.row()) ? m_cache->data(idx_read) : QSqlQueryModel::data(idx_read);
return dta.toInt() == 1 ? m_readIcon : m_unreadIcon;
}
}
else if (index_column == MSG_DB_IMPORTANT_INDEX) {
QModelIndex idx_important = index(idx.row(), MSG_DB_IMPORTANT_INDEX);
QVariant dta = m_cache->containsData(idx_important.row()) ? m_cache->data(idx_important) : QSqlQueryModel::data(idx_important);
QVariant dta = m_cache->containsData(idx_important.row()) ? m_cache->data(idx_important)
: QSqlQueryModel::data(idx_important);
return dta.toInt() == 1 ? m_favoriteIcon : QVariant();
}
@ -560,7 +546,9 @@ bool MessagesModel::setMessageRead(int row_index, RootItem::ReadStatus read) {
Message message = messageAt(row_index);
if (!m_selectedItem->getParentServiceRoot()->onBeforeSetMessagesRead(m_selectedItem, QList<Message>() << message, read)) {
if (!m_selectedItem->getParentServiceRoot()->onBeforeSetMessagesRead(m_selectedItem,
QList<Message>() << message,
read)) {
// Cannot change read status of the item. Abort.
return false;
}
@ -575,7 +563,9 @@ bool MessagesModel::setMessageRead(int row_index, RootItem::ReadStatus read) {
}
if (DatabaseQueries::markMessagesReadUnread(m_db, QStringList() << QString::number(message.m_id), read)) {
return m_selectedItem->getParentServiceRoot()->onAfterSetMessagesRead(m_selectedItem, QList<Message>() << message, read);
return m_selectedItem->getParentServiceRoot()->onAfterSetMessagesRead(m_selectedItem,
QList<Message>() << message,
read);
}
else {
return false;
@ -602,15 +592,15 @@ bool MessagesModel::setMessageReadById(int id, RootItem::ReadStatus read) {
bool MessagesModel::switchMessageImportance(int row_index) {
const QModelIndex target_index = index(row_index, MSG_DB_IMPORTANT_INDEX);
const RootItem::Importance current_importance = (RootItem::Importance) data(target_index, Qt::EditRole).toInt();
const RootItem::Importance current_importance = (RootItem::Importance)data(target_index, Qt::EditRole).toInt();
const RootItem::Importance next_importance = current_importance == RootItem::Importance::Important
? RootItem::Importance::NotImportant
: RootItem::Importance::Important;
? RootItem::Importance::NotImportant
: RootItem::Importance::Important;
const Message message = messageAt(row_index);
const QPair<Message, RootItem::Importance> pair(message, next_importance);
if (!m_selectedItem->getParentServiceRoot()->onBeforeSwitchMessageImportance(m_selectedItem,
QList<QPair<Message, RootItem::Importance>>() << pair)) {
if (!m_selectedItem->getParentServiceRoot()
->onBeforeSwitchMessageImportance(m_selectedItem, QList<QPair<Message, RootItem::Importance>>() << pair)) {
return false;
}
@ -625,10 +615,12 @@ bool MessagesModel::switchMessageImportance(int row_index) {
// Commit changes.
if (DatabaseQueries::markMessageImportant(m_db, message.m_id, next_importance)) {
emit dataChanged(index(row_index, 0), index(row_index, MSG_DB_FEED_CUSTOM_ID_INDEX), QVector<int>() << Qt::FontRole);
emit dataChanged(index(row_index, 0),
index(row_index, MSG_DB_FEED_CUSTOM_ID_INDEX),
QVector<int>() << Qt::FontRole);
return m_selectedItem->getParentServiceRoot()->onAfterSwitchMessageImportance(m_selectedItem,
QList<QPair<Message, RootItem::Importance>>() << pair);
return m_selectedItem->getParentServiceRoot()
->onAfterSwitchMessageImportance(m_selectedItem, QList<QPair<Message, RootItem::Importance>>() << pair);
}
else {
return false;
@ -636,8 +628,10 @@ bool MessagesModel::switchMessageImportance(int row_index) {
}
bool MessagesModel::switchBatchMessageImportance(const QModelIndexList& messages) {
QStringList message_ids; message_ids.reserve(messages.size());
QList<QPair<Message, RootItem::Importance>> message_states; message_states.reserve(messages.size());
QStringList message_ids;
message_ids.reserve(messages.size());
QList<QPair<Message, RootItem::Importance>> message_states;
message_states.reserve(messages.size());
// Obtain IDs of all desired messages.
for (const QModelIndex& message : messages) {
@ -645,15 +639,16 @@ bool MessagesModel::switchBatchMessageImportance(const QModelIndexList& messages
RootItem::Importance message_importance = messageImportance((message.row()));
message_states.append(QPair<Message, RootItem::Importance>(msg, message_importance == RootItem::Importance::Important
? RootItem::Importance::NotImportant
: RootItem::Importance::Important));
message_states.append(QPair<Message, RootItem::Importance>(msg,
message_importance == RootItem::Importance::Important
? RootItem::Importance::NotImportant
: RootItem::Importance::Important));
message_ids.append(QString::number(msg.m_id));
QModelIndex idx_msg_imp = index(message.row(), MSG_DB_IMPORTANT_INDEX);
setData(idx_msg_imp, message_importance == RootItem::Importance::Important
? int(RootItem::Importance::NotImportant)
: int(RootItem::Importance::Important));
setData(idx_msg_imp,
message_importance == RootItem::Importance::Important ? int(RootItem::Importance::NotImportant)
: int(RootItem::Importance::Important));
}
reloadWholeLayout();
@ -671,8 +666,10 @@ bool MessagesModel::switchBatchMessageImportance(const QModelIndexList& messages
}
bool MessagesModel::setBatchMessagesDeleted(const QModelIndexList& messages) {
QStringList message_ids; message_ids.reserve(messages.size());
QList<Message> msgs; msgs.reserve(messages.size());
QStringList message_ids;
message_ids.reserve(messages.size());
QList<Message> msgs;
msgs.reserve(messages.size());
// Obtain IDs of all desired messages.
for (const QModelIndex& message : messages) {
@ -713,8 +710,10 @@ bool MessagesModel::setBatchMessagesDeleted(const QModelIndexList& messages) {
}
bool MessagesModel::setBatchMessagesRead(const QModelIndexList& messages, RootItem::ReadStatus read) {
QStringList message_ids; message_ids.reserve(messages.size());
QList<Message> msgs; msgs.reserve(messages.size());
QStringList message_ids;
message_ids.reserve(messages.size());
QList<Message> msgs;
msgs.reserve(messages.size());
// Obtain IDs of all desired messages.
for (const QModelIndex& message : messages) {
@ -740,8 +739,10 @@ bool MessagesModel::setBatchMessagesRead(const QModelIndexList& messages, RootIt
}
bool MessagesModel::setBatchMessagesRestored(const QModelIndexList& messages) {
QStringList message_ids; message_ids.reserve(messages.size());
QList<Message> msgs; msgs.reserve(messages.size());
QStringList message_ids;
message_ids.reserve(messages.size());
QList<Message> msgs;
msgs.reserve(messages.size());
// Obtain IDs of all desired messages.
for (const QModelIndex& message : messages) {
@ -775,9 +776,7 @@ QVariant MessagesModel::headerData(int section, Qt::Orientation orientation, int
// Display textual headers for all columns except "read" and
// "important" and "has enclosures" columns.
if (section != MSG_DB_READ_INDEX &&
section != MSG_DB_IMPORTANT_INDEX &&
section != MSG_DB_SCORE_INDEX &&
if (section != MSG_DB_READ_INDEX && section != MSG_DB_IMPORTANT_INDEX && section != MSG_DB_SCORE_INDEX &&
section != MSG_DB_HAS_ENCLOSURES) {
return m_headerData.at(section);
}

View File

@ -28,24 +28,27 @@
void MessagePreviewer::createConnections() {
installEventFilter(this);
connect(m_actionMarkRead = m_toolBar->addAction(qApp->icons()->fromTheme(QSL("mail-mark-read")), tr("Mark article read")),
connect(m_actionMarkRead =
m_toolBar->addAction(qApp->icons()->fromTheme(QSL("mail-mark-read")), tr("Mark article read")),
&QAction::triggered,
this,
&MessagePreviewer::markMessageAsRead);
connect(m_actionMarkUnread = m_toolBar->addAction(qApp->icons()->fromTheme(QSL("mail-mark-unread")), tr("Mark article unread")),
connect(m_actionMarkUnread =
m_toolBar->addAction(qApp->icons()->fromTheme(QSL("mail-mark-unread")), tr("Mark article unread")),
&QAction::triggered,
this,
&MessagePreviewer::markMessageAsUnread);
connect(m_actionSwitchImportance = m_toolBar->addAction(qApp->icons()->fromTheme(QSL("mail-mark-important")), tr("Switch article importance")),
connect(m_actionSwitchImportance =
m_toolBar->addAction(qApp->icons()->fromTheme(QSL("mail-mark-important")), tr("Switch article importance")),
&QAction::triggered,
this,
&MessagePreviewer::switchMessageImportance);
}
MessagePreviewer::MessagePreviewer(QWidget* parent)
: QWidget(parent), m_mainLayout(new QGridLayout(this)), m_viewerLayout(new QStackedLayout(this)),
m_toolBar(new QToolBar(this)), m_msgBrowser(new WebBrowser(nullptr, this)), m_separator(nullptr),
m_btnLabels(QList<QPair<LabelButton*, QAction*>>()) {
: QWidget(parent), m_mainLayout(new QGridLayout(this)), m_viewerLayout(new QStackedLayout()),
m_toolBar(new QToolBar(this)), m_msgBrowser(new WebBrowser(nullptr, this)), m_separator(nullptr),
m_btnLabels(QList<QPair<LabelButton*, QAction*>>()) {
m_toolBar->setOrientation(Qt::Orientation::Vertical);
@ -126,10 +129,11 @@ void MessagePreviewer::loadMessage(const Message& message, RootItem* root) {
if (!same_message) {
const QString msg_feed_id = message.m_feedId;
const auto* feed = root->getParentServiceRoot()->getItemFromSubTree(
[msg_feed_id](const RootItem* it) {
return it->kind() == RootItem::Kind::Feed && it->customId() == msg_feed_id;
})->toFeed();
const auto* feed = root->getParentServiceRoot()
->getItemFromSubTree([msg_feed_id](const RootItem* it) {
return it->kind() == RootItem::Kind::Feed && it->customId() == msg_feed_id;
})
->toFeed();
if (feed != nullptr && feed->openArticlesDirectly() && !m_message.m_url.isEmpty()) {
ensureDefaultBrowserVisible();
@ -159,7 +163,7 @@ void MessagePreviewer::loadMessage(const Message& message, RootItem* root) {
else {
ensureDefaultBrowserVisible();
m_msgBrowser->loadMessages({ message }, m_root);
m_msgBrowser->loadMessages({message}, m_root);
}
}
}
@ -191,16 +195,14 @@ void MessagePreviewer::markMessageAsUnread() {
void MessagePreviewer::markMessageAsReadUnread(RootItem::ReadStatus read) {
if (!m_root.isNull()) {
if (m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(),
QList<Message>() << m_message,
read)) {
DatabaseQueries::markMessagesReadUnread(qApp->database()->driver()->connection(objectName(),
DatabaseDriver::DesiredStorageType::FromSettings),
if (m_root->getParentServiceRoot()->onBeforeSetMessagesRead(m_root.data(), QList<Message>() << m_message, read)) {
DatabaseQueries::markMessagesReadUnread(qApp->database()
->driver()
->connection(objectName(),
DatabaseDriver::DesiredStorageType::FromSettings),
QStringList() << QString::number(m_message.m_id),
read);
m_root->getParentServiceRoot()->onAfterSetMessagesRead(m_root.data(),
QList<Message>() << m_message,
read);
m_root->getParentServiceRoot()->onAfterSetMessagesRead(m_root.data(), QList<Message>() << m_message, read);
m_message.m_isRead = read == RootItem::ReadStatus::Read;
emit markMessageRead(m_message.m_id, read);
@ -211,24 +213,27 @@ void MessagePreviewer::markMessageAsReadUnread(RootItem::ReadStatus read) {
void MessagePreviewer::switchMessageImportance(bool checked) {
if (!m_root.isNull()) {
if (m_root->getParentServiceRoot()->onBeforeSwitchMessageImportance(m_root.data(),
QList<ImportanceChange>()
<< ImportanceChange(m_message,
m_message.
m_isImportant
? RootItem::Importance::NotImportant
: RootItem::Importance::Important))) {
DatabaseQueries::switchMessagesImportance(qApp->database()->driver()->connection(objectName(), DatabaseDriver::DesiredStorageType::FromSettings),
if (m_root->getParentServiceRoot()
->onBeforeSwitchMessageImportance(m_root.data(),
QList<ImportanceChange>()
<< ImportanceChange(m_message,
m_message.m_isImportant
? RootItem::Importance::NotImportant
: RootItem::Importance::Important))) {
DatabaseQueries::switchMessagesImportance(qApp->database()
->driver()
->connection(objectName(),
DatabaseDriver::DesiredStorageType::FromSettings),
QStringList() << QString::number(m_message.m_id));
m_root->getParentServiceRoot()->onAfterSwitchMessageImportance(m_root.data(),
QList<ImportanceChange>()
<< ImportanceChange(m_message,
m_message.m_isImportant
? RootItem::Importance::NotImportant
: RootItem::Importance::Important));
emit markMessageImportant(m_message.m_id, checked
? RootItem::Importance::Important
: RootItem::Importance::NotImportant);
m_root->getParentServiceRoot()
->onAfterSwitchMessageImportance(m_root.data(),
QList<ImportanceChange>()
<< ImportanceChange(m_message,
m_message.m_isImportant
? RootItem::Importance::NotImportant
: RootItem::Importance::Important));
emit markMessageImportant(m_message.m_id,
checked ? RootItem::Importance::Important : RootItem::Importance::NotImportant);
m_message.m_isImportant = checked;
}
@ -271,8 +276,9 @@ void MessagePreviewer::updateLabels(bool only_clear) {
btn_label->setIcon(Label::generateIcon(label->color()));
btn_label->setAutoRaise(false);
btn_label->setText(QSL(" ") + label->title());
btn_label->setToolButtonStyle(Qt::ToolButtonStyle(qApp->settings()->value(GROUP(GUI),
SETTING(GUI::ToolbarStyle)).toInt()));
btn_label->setToolButtonStyle(Qt::ToolButtonStyle(qApp->settings()
->value(GROUP(GUI), SETTING(GUI::ToolbarStyle))
.toInt()));
btn_label->setToolTip(label->title());
btn_label->setChecked(DatabaseQueries::isLabelAssignedToMessage(database, label, m_message));
@ -280,7 +286,7 @@ void MessagePreviewer::updateLabels(bool only_clear) {
connect(btn_label, &QToolButton::toggled, this, &MessagePreviewer::switchLabel);
m_btnLabels.append({ btn_label, act_label });
m_btnLabels.append({btn_label, act_label});
}
}
}