aboutsummaryrefslogtreecommitdiffstats
path: root/ui/qt/voip_calls_dialog.cpp
diff options
context:
space:
mode:
authorRoland Knall <rknall@gmail.com>2019-08-02 20:39:13 +0200
committerRoland Knall <rknall@gmail.com>2019-08-02 19:14:55 +0000
commitc5b158bec173b0280943608591a5ffa81a180024 (patch)
tree85a326651ae3a9daa9b6afaa1f8ba0f77b823fda /ui/qt/voip_calls_dialog.cpp
parent6376a696756d75c3f66fb5ef81630bd42c7a1536 (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.cpp50
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);
}