Qt: Auto apply "Limit to display filter"

If a display filter had been applied during the opening
of the conversation or endpoint dialog, automatically check
the entry for "Limit to display filter" to ensure that
the filtered result is being shown, as expected by the user.
This commit is contained in:
Roland Knall 2022-06-07 14:38:58 +02:00 committed by Roland Knall
parent 0b6bb6949e
commit 4b9d152767
4 changed files with 15 additions and 0 deletions

View File

@ -234,6 +234,13 @@ void CaptureFile::stopLoading()
setCaptureStopFlag(true);
}
QString CaptureFile::displayFilter() const
{
if (isValid())
return QString(cap_file_->dfilter);
return QString();
}
capture_file *CaptureFile::globalCapFile()
{
return &cfile;

View File

@ -117,6 +117,10 @@ public:
*/
void reload();
/** Return any set display filter
*/
QString displayFilter() const;
// XXX This shouldn't be needed.
static capture_file *globalCapFile();

View File

@ -95,6 +95,8 @@ ConversationDialog::ConversationDialog(QWidget &parent, CaptureFile &cf, int cli
trafficTab()->setProtocolInfo(tr("Conversation"), cli_proto_id, &(recent.conversation_tabs), &createModel);
trafficTab()->setDelegate(CONV_COLUMN_START, &createDelegate);
trafficTab()->setDelegate(CONV_COLUMN_DURATION, &createDelegate);
trafficTab()->setFilter(cf.displayFilter());
displayFilterCheckBox()->setChecked(true);
connect(trafficTab(), &TrafficTab::filterAction, this, &ConversationDialog::filterAction);
connect(trafficTab()->tabBar(), &QTabBar::currentChanged, this, &ConversationDialog::tabChanged);
connect(trafficTab(), &TrafficTab::tabDataChanged, this, &ConversationDialog::tabChanged);

View File

@ -67,6 +67,8 @@ EndpointDialog::EndpointDialog(QWidget &parent, CaptureFile &cf, int cli_proto_i
TrafficTableDialog(parent, cf, filter, table_name_)
{
trafficTab()->setProtocolInfo(tr("Endpoints"), cli_proto_id, &(recent.endpoint_tabs), &createModel);
trafficTab()->setFilter(cf.displayFilter());
displayFilterCheckBox()->setChecked(true);
connect(trafficTab(), &TrafficTab::filterAction, this, &EndpointDialog::filterAction);
connect(trafficTab(), &TrafficTab::tabDataChanged, this, &EndpointDialog::tabChanged);
connect(trafficTab(), &TrafficTab::currentChanged, this, &EndpointDialog::tabChanged);