Qt: Credentials move tap to dialog

Move Taps to the dialog and implement a reset method

Change-Id: I8324170a207bc9a9c6fef25bd7457757931a93c8
Reviewed-on: https://code.wireshark.org/review/33830
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
This commit is contained in:
Roland Knall 2019-07-03 17:00:16 +02:00
parent 97d47139bc
commit d0228f2915
4 changed files with 37 additions and 19 deletions

View File

@ -53,10 +53,10 @@ CredentialsDialog::CredentialsDialog(QWidget &parent, CaptureFile &cf, PacketLis
ui->setupUi(this);
packet_list_ = packet_list;
CredentialsModel* model = new CredentialsModel(this, cf);
model_ = new CredentialsModel(this, cf);
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(this);
proxyModel->setSourceModel(model);
proxyModel->setSourceModel(model_);
ui->auths->setModel(proxyModel);
setWindowSubtitle(tr("Credentials"));
@ -73,6 +73,8 @@ CredentialsDialog::CredentialsDialog(QWidget &parent, CaptureFile &cf, PacketLis
ui->auths->sortByColumn(CredentialsModel::COL_NUM, Qt::AscendingOrder);
connect(ui->auths, SIGNAL(clicked(const QModelIndex&)), this, SLOT(actionGoToPacket(const QModelIndex&)));
registerTapListener("credentials", this, "", 0, tapReset, tapPacket, Q_NULLPTR);
}
CredentialsDialog::~CredentialsDialog()
@ -80,6 +82,19 @@ CredentialsDialog::~CredentialsDialog()
delete ui;
}
void CredentialsDialog::tapReset(void *tapdata)
{
CredentialsDialog * d = (CredentialsDialog*) tapdata;
d->model_->clear();
}
tap_packet_status CredentialsDialog::tapPacket(void *tapdata, _packet_info *, epan_dissect *, const void *data)
{
CredentialsDialog * d = (CredentialsDialog*) tapdata;
d->model_->addRecord((tap_credential_t*)data);
return TAP_PACKET_REDRAW;
}
void CredentialsDialog::actionGoToPacket(const QModelIndex& idx)
{
if (!idx.isValid())

View File

@ -19,6 +19,8 @@
#include "packet_list.h"
#include <ui/tap-credentials.h>
class CredentialsModel;
namespace Ui {
class CredentialsDialog;
}
@ -37,6 +39,10 @@ private slots:
private:
Ui::CredentialsDialog *ui;
PacketList *packet_list_;
CredentialsModel * model_;
static void tapReset(void *tapdata);
static tap_packet_status tapPacket(void *tapdata, struct _packet_info *pinfo, struct epan_dissect *edt, const void *data);
};
#endif // CREDENTIALS_DIALOG_H

View File

@ -18,15 +18,6 @@
CredentialsModel::CredentialsModel(QObject *parent, CaptureFile& cf)
:QAbstractListModel(parent)
{
GString* error_string = register_tap_listener("credentials", this, NULL, TL_REQUIRES_NOTHING,
NULL, credentialsPacket, NULL, NULL);
if (error_string) {
g_log(LOG_DOMAIN_MAIN, G_LOG_LEVEL_ERROR, "Error registering credentials tap: %s", error_string->str);
return;
}
cf_retap_packets(cf.capFile());
remove_tap_listener(this);
}
int CredentialsModel::rowCount(const QModelIndex &) const
@ -108,16 +99,19 @@ QVariant CredentialsModel::data(const QModelIndex &index, int role) const
}
tap_packet_status CredentialsModel::credentialsPacket(void *p, packet_info *, epan_dissect_t *, const void *pri)
{
CredentialsModel* model = (CredentialsModel*)p;
model->addRecord((tap_credential_t*)pri);
return TAP_PACKET_REDRAW;
}
void CredentialsModel::addRecord(tap_credential_t* auth)
{
emit beginInsertRows(QModelIndex(), rowCount(), rowCount() + 1);
credentials_.append(auth);
emit endInsertRows();
}
void CredentialsModel::clear()
{
emit beginRemoveRows(QModelIndex(), 0, rowCount());
credentials_.clear();
emit endInsertRows();
}
QVariant CredentialsModel::headerData(int section, Qt::Orientation orientation, int role) const

View File

@ -27,6 +27,9 @@ public:
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
void addRecord(tap_credential_t* rec);
void clear();
enum {
COL_NUM,
COL_PROTO,
@ -37,10 +40,10 @@ public:
enum {
ColumnHFID = Qt::UserRole + 1
};
private:
QList<tap_credential_t*> credentials_;
static tap_packet_status credentialsPacket(void *p, packet_info *, epan_dissect_t *, const void *pri);
void addRecord(tap_credential_t* rec);
};
/*