diff options
Diffstat (limited to 'ui/qt/main_window_slots.cpp')
-rw-r--r-- | ui/qt/main_window_slots.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp index 20d8db22e0..26e0353ae2 100644 --- a/ui/qt/main_window_slots.cpp +++ b/ui/qt/main_window_slots.cpp @@ -2765,8 +2765,25 @@ void MainWindow::on_actionAnalyzeDisplayFilterMacros_triggered() void MainWindow::on_actionAnalyzeCreateAColumn_triggered() { if (capture_file_.capFile() != 0 && capture_file_.capFile()->finfo_selected != 0) { - insertColumn(QString(capture_file_.capFile()->finfo_selected->hfinfo->name), - QString(capture_file_.capFile()->finfo_selected->hfinfo->abbrev)); + header_field_info *hfinfo = capture_file_.capFile()->finfo_selected->hfinfo; + int col = column_prefs_has_custom(hfinfo->abbrev); + if (col == -1) { + insertColumn(hfinfo->name, hfinfo->abbrev); + } else { + QString status; + if (QString(hfinfo->name) == get_column_title(col)) { + status = tr("The \"%1\" column already exists.").arg(hfinfo->name); + } else { + status = tr("The \"%1\" column already exists as \"%2\".").arg(hfinfo->name).arg(get_column_title(col)); + } + wsApp->pushStatus(WiresharkApplication::TemporaryStatus, status); + + if (!get_column_visible(col)) { + packet_list_->setColumnHidden(col, false); + set_column_visible(col, TRUE); + prefs_main_write(); + } + } } } |