diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2017-09-02 20:35:54 +0200 |
---|---|---|
committer | Stig Bjørlykke <stig@bjorlykke.org> | 2017-09-03 20:43:17 +0000 |
commit | 209a78ea822cce413ba5dfd31469ddd2ff6c9d65 (patch) | |
tree | 91eebf63ec3b8d917e0655646d89e79b09e3c80f /ui/qt/interface_toolbar.cpp | |
parent | a338f87f33559bb9c915a97b614987736d07ff8f (diff) |
Qt: Interface Toolbar log dialog for each control
Have separate log dialogs for each control logger button.
Bug: 14033
Change-Id: Iaabcbe38da196ebed1302f66b77864f880121856
Reviewed-on: https://code.wireshark.org/review/23364
Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
Diffstat (limited to 'ui/qt/interface_toolbar.cpp')
-rw-r--r-- | ui/qt/interface_toolbar.cpp | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/ui/qt/interface_toolbar.cpp b/ui/qt/interface_toolbar.cpp index f5a3f6a95b..3ee5691665 100644 --- a/ui/qt/interface_toolbar.cpp +++ b/ui/qt/interface_toolbar.cpp @@ -76,7 +76,6 @@ InterfaceToolbar::InterfaceToolbar(QWidget *parent, const iface_toolbar *toolbar QString ifname((gchar *)walker->data); interface_[ifname].reader_thread = NULL; interface_[ifname].out_fd = -1; - interface_[ifname].log_dialog = NULL; } initializeControls(toolbar); @@ -100,9 +99,12 @@ InterfaceToolbar::~InterfaceToolbar() { foreach (QString ifname, interface_.keys()) { - if (interface_[ifname].log_dialog) + foreach (int num, control_widget_.keys()) { - interface_[ifname].log_dialog->close(); + if (interface_[ifname].log_dialog.contains(num)) + { + interface_[ifname].log_dialog[num]->close(); + } } } @@ -488,19 +490,19 @@ void InterfaceToolbar::setInterfaceValue(QString ifname, QWidget *widget, int nu { if (command == commandControlSet) { - if (interface_[ifname].log_dialog) + if (interface_[ifname].log_dialog.contains(num)) { - interface_[ifname].log_dialog->clearText(); + interface_[ifname].log_dialog[num]->clearText(); } interface_[ifname].log_text.clear(); } if (command == commandControlSet || command == commandControlAdd) { - if (interface_[ifname].log_dialog) + if (interface_[ifname].log_dialog.contains(num)) { - interface_[ifname].log_dialog->appendText(payload); + interface_[ifname].log_dialog[num]->appendText(payload); } - interface_[ifname].log_text.append(payload); + interface_[ifname].log_text[num].append(payload); } } else if (widget->property(interface_role_property).toInt() == INTERFACE_ROLE_CONTROL) @@ -671,20 +673,21 @@ void InterfaceToolbar::onLineEditChanged() void InterfaceToolbar::onLogButtonPressed() { const QString &ifname = ui->interfacesComboBox->currentText(); + QPushButton *button = static_cast<QPushButton *>(sender()); + int num = control_widget_.key(button); - if (!interface_[ifname].log_dialog) + if (!interface_[ifname].log_dialog.contains(num)) { - QPushButton *button = static_cast<QPushButton *>(sender()); - interface_[ifname].log_dialog = new FunnelTextDialog(ifname + " " + button->text()); - connect(interface_[ifname].log_dialog, SIGNAL(accepted()), this, SLOT(closeLog())); - connect(interface_[ifname].log_dialog, SIGNAL(rejected()), this, SLOT(closeLog())); + interface_[ifname].log_dialog[num] = new FunnelTextDialog(ifname + " " + button->text()); + connect(interface_[ifname].log_dialog[num], SIGNAL(accepted()), this, SLOT(closeLog())); + connect(interface_[ifname].log_dialog[num], SIGNAL(rejected()), this, SLOT(closeLog())); - interface_[ifname].log_dialog->setText(interface_[ifname].log_text); + interface_[ifname].log_dialog[num]->setText(interface_[ifname].log_text[num]); } - interface_[ifname].log_dialog->show(); - interface_[ifname].log_dialog->raise(); - interface_[ifname].log_dialog->activateWindow(); + interface_[ifname].log_dialog[num]->show(); + interface_[ifname].log_dialog[num]->raise(); + interface_[ifname].log_dialog[num]->activateWindow(); } void InterfaceToolbar::onHelpButtonPressed() @@ -703,9 +706,12 @@ void InterfaceToolbar::closeLog() foreach (QString ifname, interface_.keys()) { - if (interface_[ifname].log_dialog == log_dialog) + foreach (int num, control_widget_.keys()) { - interface_[ifname].log_dialog = NULL; + if (interface_[ifname].log_dialog.value(num) == log_dialog) + { + interface_[ifname].log_dialog.remove(num); + } } } } @@ -877,11 +883,11 @@ void InterfaceToolbar::onRestoreButtonPressed() break; case INTERFACE_ROLE_LOGGER: - if (interface_[ifname].log_dialog) + if (interface_[ifname].log_dialog.contains(num)) { - interface_[ifname].log_dialog->clearText(); + interface_[ifname].log_dialog[num]->clearText(); } - interface_[ifname].log_text.clear(); + interface_[ifname].log_text[num].clear(); break; default: |