gxsforums: make possibility to see posts from banned persons

This commit is contained in:
chelovechishko 2020-07-02 03:20:09 +09:00
parent 4a4adc354f
commit bbcb605974
2 changed files with 35 additions and 6 deletions

View File

@ -796,6 +796,11 @@ void GxsForumThreadWidget::headerContextMenuRequested(const QPoint &pos)
// author->setData(RsGxsForumModel::COLUMN_THREAD_AUTHOR);
// connect(author, SIGNAL(toggled(bool)), this, SLOT(changeHeaderColumnVisibility(bool)));
QAction* show_text_from_banned = header_context_menu->addAction(QIcon(), tr("Show text from banned persons"));
show_text_from_banned->setCheckable(true);
show_text_from_banned->setChecked(mDisplayBannedText);
connect(show_text_from_banned, SIGNAL(toggled(bool)), this, SLOT(showBannedText(bool)));
header_context_menu->exec(mapToGlobal(pos));
delete(header_context_menu);
}
@ -808,6 +813,13 @@ void GxsForumThreadWidget::changeHeaderColumnVisibility(bool visibility) {
ui->threadTreeWidget->setColumnHidden(the_action->data().toInt(), !visibility);
}
void GxsForumThreadWidget::showBannedText(bool display) {
mDisplayBannedText = display;
if (!mThreadId.isNull()) {
updateMessageData(mThreadId);
}
}
#ifdef TODO
bool GxsForumThreadWidget::eventFilter(QObject *obj, QEvent *event)
{
@ -1239,13 +1251,28 @@ void GxsForumThreadWidget::insertMessageData(const RsGxsForumMsg &msg)
ui->by_label->show();
ui->threadTreeWidget->setFocus();
QString banned_text_info = "";
if(redacted) {
QString extraTxt = tr( "<p><font color=\"#ff0000\"><b>The author of this message (with ID %1) is banned.</b>").arg(QString::fromStdString(msg.mMeta.mAuthorId.toStdString())) ;
extraTxt += tr( "<UL><li><b><font color=\"#ff0000\">Messages from this author are not forwarded. </font></b></li>") ;
extraTxt += tr( "<li><b><font color=\"#ff0000\">Messages from this author are replaced by this text. </font></b></li></ul>") ;
extraTxt += tr( "<p><b><font color=\"#ff0000\">You can force the visibility and forwarding of messages by setting a different opinion for that Id in People's tab.</font></b></p>") ;
ui->downloadButton->setDisabled(true);
if (!mDisplayBannedText) {
QString extraTxt = tr( "<p><font color=\"#ff0000\"><b>The author of this message (with ID %1) is banned.</b>").arg(QString::fromStdString(msg.mMeta.mAuthorId.toStdString())) ;
extraTxt += tr( "<UL><li><b><font color=\"#ff0000\">Messages from this author are not forwarded. </font></b></li>") ;
extraTxt += tr( "<li><b><font color=\"#ff0000\">Messages from this author are replaced by this text. </font></b></li></ul>") ;
extraTxt += tr( "<p><b><font color=\"#ff0000\">You can force the visibility and forwarding of messages by setting a different opinion for that Id in People's tab.</font></b></p>") ;
ui->postText->setHtml(extraTxt) ;
return;
}
else {
RsIdentityDetails details;
rsIdentity->getIdDetails(msg.mMeta.mAuthorId, details);
QString name = GxsIdDetails::getName(details);
banned_text_info += "<p><font color=\"#e00000\"><b>" + tr( "The author of this message (with ID %1) is banned. And named by name ( %2 )").arg(QString::fromStdString(msg.mMeta.mAuthorId.toStdString()), name) + "</b>";
banned_text_info += "<ul><li><b><font color=\"#e00000\">" + tr( "Messages from this author are not forwarded.") + "</font></b></li></ul>";
banned_text_info += "<p><b><font color=\"#e00000\">" + tr( "You can force the visibility and forwarding of messages by setting a different opinion for that Id in People's tab.") + "</font></b></p><hr>";
}
ui->postText->setHtml(extraTxt) ;
} else {
uint32_t flags = RSHTML_FORMATTEXT_EMBED_LINKS;
if(Settings->getForumLoadEmoticons())
@ -1258,7 +1285,7 @@ void GxsForumThreadWidget::insertMessageData(const RsGxsForumMsg &msg)
int desiredMinimumFontSize = Settings->valueFromGroup("Forum",
"MinimumFontSize", 10).toInt();
QString extraTxt = RsHtml().formatText(ui->postText->document(),
QString extraTxt = banned_text_info + RsHtml().formatText(ui->postText->document(),
QString::fromUtf8(msg.mMsg.c_str()), flags
, backgroundColor, desiredContrast, desiredMinimumFontSize
);

View File

@ -153,6 +153,7 @@ private slots:
void expandSubtree();
#endif
void changeHeaderColumnVisibility(bool visibility);
void showBannedText(bool display);
private:
void insertMessageData(const RsGxsForumMsg &msg);
bool getCurrentPost(ForumModelPostEntry& fmpe) const ;
@ -201,6 +202,7 @@ private:
GxsForumsFillThread *mFillThread;
unsigned int mUnreadCount;
unsigned int mNewCount;
bool mDisplayBannedText;
/* Color definitions (for standard see qss.default) */
QColor mTextColorRead;