diff --git a/ui/logray/logray_main_window.cpp b/ui/logray/logray_main_window.cpp index 8a3b38b0b3..8b739c0f96 100644 --- a/ui/logray/logray_main_window.cpp +++ b/ui/logray/logray_main_window.cpp @@ -327,8 +327,6 @@ LograyMainWindow::LograyMainWindow(QWidget *parent) : , capture_options_dialog_(NULL) , info_data_() #endif - , display_filter_dlg_(NULL) - , capture_filter_dlg_(NULL) #if defined(Q_OS_MAC) , dock_menu_(NULL) #endif @@ -706,8 +704,6 @@ LograyMainWindow::~LograyMainWindow() // freed by its parent. Free then here explicitly to avoid leak and numerous // Valgrind complaints. delete file_set_dialog_; - delete capture_filter_dlg_; - delete display_filter_dlg_; #ifdef HAVE_LIBPCAP delete capture_options_dialog_; #endif diff --git a/ui/logray/logray_main_window.h b/ui/logray/logray_main_window.h index 280154600b..92112579df 100644 --- a/ui/logray/logray_main_window.h +++ b/ui/logray/logray_main_window.h @@ -180,8 +180,6 @@ private: CaptureOptionsDialog *capture_options_dialog_; info_data_t info_data_; #endif - FilterDialog *display_filter_dlg_; - FilterDialog *capture_filter_dlg_; #if defined(Q_OS_MAC) QMenu *dock_menu_; diff --git a/ui/logray/logray_main_window_slots.cpp b/ui/logray/logray_main_window_slots.cpp index badbf53fff..d8465aca6d 100644 --- a/ui/logray/logray_main_window_slots.cpp +++ b/ui/logray/logray_main_window_slots.cpp @@ -2733,12 +2733,10 @@ void LograyMainWindow::connectCaptureMenuActions() }); connect(main_ui_->actionCaptureCaptureFilters, &QAction::triggered, this, [this]() { - if (!capture_filter_dlg_) { - capture_filter_dlg_ = new FilterDialog(this, FilterDialog::CaptureFilter); - } - capture_filter_dlg_->show(); - capture_filter_dlg_->raise(); - capture_filter_dlg_->activateWindow(); + FilterDialog *capture_filter_dlg = new FilterDialog(window(), FilterDialog::CaptureFilter); + capture_filter_dlg->setWindowModality(Qt::ApplicationModal); + capture_filter_dlg->setAttribute(Qt::WA_DeleteOnClose); + capture_filter_dlg->show(); }); #ifdef HAVE_LIBPCAP @@ -2882,12 +2880,10 @@ void LograyMainWindow::matchFieldFilter(FilterAction::Action action, FilterActio void LograyMainWindow::on_actionAnalyzeDisplayFilters_triggered() { - if (!display_filter_dlg_) { - display_filter_dlg_ = new FilterDialog(this, FilterDialog::DisplayFilter); - } - display_filter_dlg_->show(); - display_filter_dlg_->raise(); - display_filter_dlg_->activateWindow(); + FilterDialog *display_filter_dlg = new FilterDialog(window(), FilterDialog::DisplayFilter); + display_filter_dlg->setWindowModality(Qt::ApplicationModal); + display_filter_dlg->setAttribute(Qt::WA_DeleteOnClose); + display_filter_dlg->show(); } struct epan_uat; diff --git a/ui/qt/wireshark_main_window.cpp b/ui/qt/wireshark_main_window.cpp index 0f2632b525..186fed40f2 100644 --- a/ui/qt/wireshark_main_window.cpp +++ b/ui/qt/wireshark_main_window.cpp @@ -329,8 +329,6 @@ WiresharkMainWindow::WiresharkMainWindow(QWidget *parent) : , capture_options_dialog_(NULL) , info_data_() #endif - , display_filter_dlg_(NULL) - , capture_filter_dlg_(NULL) #if defined(Q_OS_MAC) , dock_menu_(NULL) #endif @@ -759,8 +757,6 @@ WiresharkMainWindow::~WiresharkMainWindow() // freed by its parent. Free then here explicitly to avoid leak and numerous // Valgrind complaints. delete file_set_dialog_; - delete capture_filter_dlg_; - delete display_filter_dlg_; #ifdef HAVE_LIBPCAP delete capture_options_dialog_; #endif diff --git a/ui/qt/wireshark_main_window.h b/ui/qt/wireshark_main_window.h index c455345416..2ea1afe3dd 100644 --- a/ui/qt/wireshark_main_window.h +++ b/ui/qt/wireshark_main_window.h @@ -189,8 +189,6 @@ private: CaptureOptionsDialog *capture_options_dialog_; info_data_t info_data_; #endif - FilterDialog *display_filter_dlg_; - FilterDialog *capture_filter_dlg_; #if defined(Q_OS_MAC) QMenu *dock_menu_; diff --git a/ui/qt/wireshark_main_window_slots.cpp b/ui/qt/wireshark_main_window_slots.cpp index 6a3b4e2edb..15d5d12f9c 100644 --- a/ui/qt/wireshark_main_window_slots.cpp +++ b/ui/qt/wireshark_main_window_slots.cpp @@ -2905,12 +2905,10 @@ void WiresharkMainWindow::connectCaptureMenuActions() }); connect(main_ui_->actionCaptureCaptureFilters, &QAction::triggered, this, [this]() { - if (!capture_filter_dlg_) { - capture_filter_dlg_ = new FilterDialog(this, FilterDialog::CaptureFilter); - } - capture_filter_dlg_->show(); - capture_filter_dlg_->raise(); - capture_filter_dlg_->activateWindow(); + FilterDialog *capture_filter_dlg = new FilterDialog(window(), FilterDialog::CaptureFilter); + capture_filter_dlg->setWindowModality(Qt::ApplicationModal); + capture_filter_dlg->setAttribute(Qt::WA_DeleteOnClose); + capture_filter_dlg->show(); }); #ifdef HAVE_LIBPCAP @@ -3054,12 +3052,10 @@ void WiresharkMainWindow::matchFieldFilter(FilterAction::Action action, FilterAc void WiresharkMainWindow::on_actionAnalyzeDisplayFilters_triggered() { - if (!display_filter_dlg_) { - display_filter_dlg_ = new FilterDialog(this, FilterDialog::DisplayFilter); - } - display_filter_dlg_->show(); - display_filter_dlg_->raise(); - display_filter_dlg_->activateWindow(); + FilterDialog *display_filter_dlg = new FilterDialog(window(), FilterDialog::DisplayFilter); + display_filter_dlg->setWindowModality(Qt::ApplicationModal); + display_filter_dlg->setAttribute(Qt::WA_DeleteOnClose); + display_filter_dlg->show(); } struct epan_uat;