diff options
author | Roland Knall <rknall@gmail.com> | 2019-08-02 20:39:13 +0200 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2019-08-02 19:14:55 +0000 |
commit | c5b158bec173b0280943608591a5ffa81a180024 (patch) | |
tree | 85a326651ae3a9daa9b6afaa1f8ba0f77b823fda /ui/qt/voip_calls_dialog.cpp | |
parent | 6376a696756d75c3f66fb5ef81630bd42c7a1536 (diff) |
Qt: Rework VOIP Dialog context menu
Rework the context menu to have same functions behave the same
way and just create the menu while it is needed. Also, add switch
for setting the time of day to the context menu
Change-Id: Id813ff39431f6fad15887856f246d03f209e438d
Reviewed-on: https://code.wireshark.org/review/34165
Petri-Dish: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Roland Knall <rknall@gmail.com>
Diffstat (limited to 'ui/qt/voip_calls_dialog.cpp')
-rw-r--r-- | ui/qt/voip_calls_dialog.cpp | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/ui/qt/voip_calls_dialog.cpp b/ui/qt/voip_calls_dialog.cpp index c72200949b..4da971d24f 100644 --- a/ui/qt/voip_calls_dialog.cpp +++ b/ui/qt/voip_calls_dialog.cpp @@ -63,24 +63,19 @@ VoipCallsDialog::VoipCallsDialog(QWidget &parent, CaptureFile &cf, bool all_flow ui->callTreeView->sortByColumn(VoipCallsInfoModel::StartTime, Qt::AscendingOrder); setWindowSubtitle(all_flows ? tr("SIP Flows") : tr("VoIP Calls")); - ctx_menu_.addAction(ui->actionSelect_All); - ctx_menu_.addSeparator(); - ctx_menu_.addAction(ui->actionCopyAsCsv); - ctx_menu_.addAction(ui->actionCopyAsYaml); - prepare_button_ = ui->buttonBox->addButton(tr("Prepare Filter"), QDialogButtonBox::ApplyRole); sequence_button_ = ui->buttonBox->addButton(tr("Flow Sequence"), QDialogButtonBox::ApplyRole); player_button_ = RtpPlayerDialog::addPlayerButton(ui->buttonBox); + connect ( ui->todCheckBox, &QAbstractButton::toggled, this, &VoipCallsDialog::switchTimeOfDay); + copy_button_ = ui->buttonBox->addButton(tr("Copy"), QDialogButtonBox::ApplyRole); QMenu *copy_menu = new QMenu(copy_button_); QAction *ca; ca = copy_menu->addAction(tr("as CSV")); - ca->setToolTip(ui->actionCopyAsCsv->toolTip()); - connect(ca, SIGNAL(triggered()), this, SLOT(on_actionCopyAsCsv_triggered())); + connect(ca, SIGNAL(triggered()), this, SLOT(copyAsCSV())); ca = copy_menu->addAction(tr("as YAML")); - ca->setToolTip(ui->actionCopyAsYaml->toolTip()); - connect(ca, SIGNAL(triggered()), this, SLOT(on_actionCopyAsYaml_triggered())); + connect(ca, SIGNAL(triggered()), this, SLOT(copyAsYAML())); copy_button_->setMenu(copy_menu); memset (&tapinfo_, 0, sizeof(tapinfo_)); @@ -133,7 +128,26 @@ void VoipCallsDialog::captureFileClosing() void VoipCallsDialog::contextMenuEvent(QContextMenuEvent *event) { - ctx_menu_.exec(event->globalPos()); + bool selected = ui->callTreeView->selectionModel()->hasSelection(); + + if ( ! selected ) + return; + + QMenu popupMenu; + + QAction * action = popupMenu.addAction(tr("Select &All"), this, SLOT(selectAll())); + action->setToolTip(tr("Select all calls")); + popupMenu.addSeparator(); + action = popupMenu.addAction(tr("Display time as time of day"), this, SLOT(switchTimeOfDay())); + action->setCheckable(true); + action->setChecked(call_infos_model_->timeOfDay()); + popupMenu.addSeparator(); + action = popupMenu.addAction(tr("Copy as CSV"), this, SLOT(copyAsCSV())); + action->setToolTip(tr("Copy stream list as CSV.")); + action = popupMenu.addAction(tr("Copy as YAML"), this, SLOT(copyAsYAML())); + action->setToolTip(tr("Copy stream list as YAML.")); + + popupMenu.exec(event->globalPos()); } void VoipCallsDialog::changeEvent(QEvent *event) @@ -220,9 +234,6 @@ void VoipCallsDialog::updateWidgets() have_ga_items = true; } - foreach (QMenu *submenu, ctx_menu_.findChildren<QMenu*>()) { - submenu->setEnabled(selected); - } prepare_button_->setEnabled(selected && have_ga_items); sequence_button_->setEnabled(selected && have_ga_items); #if defined(QT_MULTIMEDIA_LIB) @@ -438,12 +449,12 @@ void VoipCallsDialog::on_callTreeView_activated(const QModelIndex &index) emit goToPacket(call_info->start_fd->num); } -void VoipCallsDialog::on_actionSelect_All_triggered() +void VoipCallsDialog::selectAll() { ui->callTreeView->selectAll(); } -void VoipCallsDialog::on_actionCopyAsCsv_triggered() +void VoipCallsDialog::copyAsCSV() { QString csv; QTextStream stream(&csv, QIODevice::Text); @@ -459,7 +470,7 @@ void VoipCallsDialog::on_actionCopyAsCsv_triggered() wsApp->clipboard()->setText(stream.readAll()); } -void VoipCallsDialog::on_actionCopyAsYaml_triggered() +void VoipCallsDialog::copyAsYAML() { QString yaml; QTextStream stream(&yaml, QIODevice::Text); @@ -489,9 +500,12 @@ void VoipCallsDialog::on_buttonBox_helpRequested() wsApp->helpTopicAction(HELP_TELEPHONY_VOIP_CALLS_DIALOG); } -void VoipCallsDialog::on_todCheckBox_stateChanged(int state) +void VoipCallsDialog::switchTimeOfDay() { - call_infos_model_->setTimeOfDay(state == Qt::Checked); + bool checked = ! call_infos_model_->timeOfDay(); + + ui->todCheckBox->setChecked(checked); + call_infos_model_->setTimeOfDay(checked); ui->callTreeView->resizeColumnToContents(VoipCallsInfoModel::StartTime); ui->callTreeView->resizeColumnToContents(VoipCallsInfoModel::StopTime); } |