Issue #15 [GUI] Use filter to avoid sending ignored messages over dbus

This commit is contained in:
Mat Sutcliffe
2020-04-30 19:29:44 +01:00
parent 86dd91a064
commit d1e177a4ba
7 changed files with 58 additions and 0 deletions

View File

@@ -63,6 +63,11 @@ namespace BlackGui
{
ui->comp_StatusMessages->appendStatusMessagesToList(messages);
});
connect(ui->comp_StatusMessages, &CStatusMessagesDetail::filterChanged, this, [this](const CVariant &filter)
{
clearMessages();
m_history.setFilter(filter.to<CLogPattern>());
});
m_history.setFilter(CLogPattern().withSeverityAtOrAbove(CStatusMessage::SeverityInfo));
m_history.initialize(sApp->getDataLinkDBus());
}

View File

@@ -8,10 +8,13 @@
#include "statusmessagesdetail.h"
#include "ui_statusmessagesdetail.h"
#include "blackgui/filters/statusmessagefilterbar.h"
#include "blackgui/filters/statusmessagefilterdialog.h"
using namespace BlackMisc;
using namespace BlackGui::Menus;
using namespace BlackGui::Views;
using namespace BlackGui::Filters;
namespace BlackGui
{
@@ -29,6 +32,11 @@ namespace BlackGui
ui->tvp_StatusMessages->setCustomMenu(new CMessageMenu(this));
ui->tvp_StatusMessages->menuAddItems(CStatusMessageView::MenuSave);
this->showFilterBar(); // default
connect(ui->filter_LogMessages, &CStatusMessageFilterBar::changeFilter, this, [this](bool enable)
{
emit filterChanged(enable ? ui->filter_LogMessages->createModelFilter()->getAsValueObject() : CVariant{});
});
}
CStatusMessagesDetail::~CStatusMessagesDetail()
@@ -57,6 +65,11 @@ namespace BlackGui
{
ui->tvp_StatusMessages->addFilterDialog();
ui->filter_LogMessages->hide();
connect(ui->tvp_StatusMessages->getFilterDialog(), &QDialog::accepted, [this]
{
emit filterChanged(ui->tvp_StatusMessages->getFilterDialog()->createModelFilter()->getAsValueObject());
});
}
void CStatusMessagesDetail::showFilterBar()

View File

@@ -78,6 +78,9 @@ namespace BlackGui
//! \copydoc BlackGui::Views::CStatusMessageView::modelDataChangedDigest
void modelDataChangedDigest(int count, bool withFilter);
//! The user changed their message filter
void filterChanged(const BlackMisc::CVariant &filter);
private:
QScopedPointer<Ui::CStatusMessagesDetail> ui;
int m_maxLogMessages = -1;