aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Knall <rknall@gmail.com>2019-10-07 11:28:19 +0200
committerAnders Broman <a.broman58@gmail.com>2019-10-08 10:32:11 +0000
commitc1ed77a36f6946549db936c35c31118fc0f79b3d (patch)
tree847ef49a836e6b0de75da0f7bb0c933d610b7822
parentb6f78f45b52d6c136d26427fe89d059c145c1f92 (diff)
Qt: Simplify Wireshark Dialog class
Simplify class handling and clear up some names Change-Id: I8a3dd80c0b4dd97aee6164d94ca9cf60068f427b Reviewed-on: https://code.wireshark.org/review/34730 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
-rw-r--r--ui/qt/wireshark_dialog.cpp48
-rw-r--r--ui/qt/wireshark_dialog.h15
2 files changed, 22 insertions, 41 deletions
diff --git a/ui/qt/wireshark_dialog.cpp b/ui/qt/wireshark_dialog.cpp
index 5f3a95cea3..f545f3e72c 100644
--- a/ui/qt/wireshark_dialog.cpp
+++ b/ui/qt/wireshark_dialog.cpp
@@ -37,7 +37,7 @@ WiresharkDialog::WiresharkDialog(QWidget &parent, CaptureFile &capture_file) :
dialog_closed_(false)
{
setWindowIcon(wsApp->normalIcon());
- setWindowTitleFromSubtitle();
+ setWindowSubtitle(QString());
connect(&cap_file_, SIGNAL(captureEvent(CaptureEvent)),
this, SLOT(captureEvent(CaptureEvent)));
@@ -46,35 +46,20 @@ WiresharkDialog::WiresharkDialog(QWidget &parent, CaptureFile &capture_file) :
void WiresharkDialog::accept()
{
QDialog::accept();
-
- // Cancel any taps in progress?
- // cap_file_.setCaptureStopFlag();
- removeTapListeners();
- dialog_closed_ = true;
- tryDeleteLater();
+ dialogCleanup(true);
}
// XXX Should we do this in WiresharkDialog?
void WiresharkDialog::reject()
{
QDialog::reject();
-
- // Cancel any taps in progress?
- // cap_file_.setCaptureStopFlag();
- removeTapListeners();
- dialog_closed_ = true;
- tryDeleteLater();
+ dialogCleanup(true);
}
-
void WiresharkDialog::setWindowSubtitle(const QString &subtitle)
{
subtitle_ = subtitle;
- setWindowTitleFromSubtitle();
-}
-void WiresharkDialog::setWindowTitleFromSubtitle()
-{
QString title = wsApp->windowTitleString(QStringList() << subtitle_ << cap_file_.fileTitle());
QDialog::setWindowTitle(title);
}
@@ -90,8 +75,16 @@ void WiresharkDialog::setWindowTitleFromSubtitle()
// effectively says "don't do that." However, we don't really have a choice
// if we want to have a usable application that retaps packets.
-void WiresharkDialog::tryDeleteLater()
+void WiresharkDialog::dialogCleanup(bool closeDialog)
{
+ if ( closeDialog )
+ {
+ // Cancel any taps in progress?
+ // cap_file_.setCaptureStopFlag();
+ removeTapListeners();
+ dialog_closed_ = true;
+ }
+
if (retap_depth_ < 1 && dialog_closed_) {
disconnect();
deleteLater();
@@ -100,7 +93,7 @@ void WiresharkDialog::tryDeleteLater()
void WiresharkDialog::updateWidgets()
{
- setWindowTitleFromSubtitle();
+ setWindowSubtitle(subtitle_);
}
bool WiresharkDialog::registerTapListener(const char *tap_name, void *tap_data, const char *filter, guint flags, void (*tap_reset)(void *), tap_packet_status (*tap_packet)(void *, struct _packet_info *, struct epan_dissect *, const void *), void (*tap_draw)(void *))
@@ -142,7 +135,8 @@ void WiresharkDialog::captureEvent(CaptureEvent e)
captureFileClosing();
break;
case CaptureEvent::Closed:
- captureFileClosed();
+ captureFileClosing();
+ file_closed_ = true;
break;
default:
break;
@@ -162,7 +156,7 @@ void WiresharkDialog::beginRetapPackets()
void WiresharkDialog::endRetapPackets()
{
retap_depth_--;
- tryDeleteLater();
+ dialogCleanup();
}
void WiresharkDialog::removeTapListeners()
@@ -181,16 +175,6 @@ void WiresharkDialog::captureFileClosing()
updateWidgets();
}
-void WiresharkDialog::captureFileClosed()
-{
- if (file_closed_)
- return;
-
- removeTapListeners();
- updateWidgets();
- file_closed_ = true;
-}
-
/*
* Editor modelines
*
diff --git a/ui/qt/wireshark_dialog.h b/ui/qt/wireshark_dialog.h
index a91e6c5659..fc6ef54d1d 100644
--- a/ui/qt/wireshark_dialog.h
+++ b/ui/qt/wireshark_dialog.h
@@ -39,6 +39,11 @@ public:
// XXX Unlike the entire QWidget API, parent is mandatory here.
explicit WiresharkDialog(QWidget &parent, CaptureFile &capture_file);
+protected:
+ virtual void keyPressEvent(QKeyEvent *event) { QDialog::keyPressEvent(event); }
+ virtual void accept();
+ virtual void reject();
+
/**
* @brief Mark the start of a code block that retaps packets. If the user
* closes the dialog while tapping, the dialog will not be destroyed until
@@ -60,11 +65,6 @@ public:
*/
virtual void endRetapPackets();
-protected:
- virtual void keyPressEvent(QKeyEvent *event) { QDialog::keyPressEvent(event); }
- virtual void accept();
- virtual void reject();
-
/**
* @brief Set the window subtitle, e.g. "Foo Timeouts". The subtitle and
* file name will be added to the dialog window title.
@@ -121,15 +121,12 @@ protected:
* file_closed_.
*/
virtual void captureFileClosing();
- virtual void captureFileClosed();
protected slots:
void captureEvent(CaptureEvent);
private:
- void setWindowTitleFromSubtitle();
-
- void tryDeleteLater();
+ void dialogCleanup(bool closeDialog = false);
QString subtitle_;
QList<void *> tap_listeners_;