wireshark/ui/qt/layout_preferences_frame.cpp
Michal Labedzki 1e487664bc Qt: Add option to back white line separator for packet list items
This uses one line (on bottom) of items and makes it white.
Seen in Wireshark on some configurations of GTK 2 on Linux,
so backports it to Qt for people who like it.

In my opinion it helps if you use packet list background colors
for frames and you have a lot of following frames with
the same background color.

Bug: 10954
Change-Id: Id8f58520d7224db4eb8181bcc04febd7416a8578
Reviewed-on: https://code.wireshark.org/review/7293
Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
2015-07-20 21:21:28 +00:00

309 lines
10 KiB
C++

/* layout_preferences_frame.cpp
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "layout_preferences_frame.h"
#include <ui_layout_preferences_frame.h>
#include <QAbstractButton>
#include <QToolButton>
#include <QRadioButton>
#include <QDebug>
#include <epan/prefs-int.h>
LayoutPreferencesFrame::LayoutPreferencesFrame(QWidget *parent) :
QFrame(parent),
ui(new Ui::LayoutPreferencesFrame)
{
ui->setupUi(this);
pref_layout_type_ = prefFromPrefPtr(&prefs.gui_layout_type);
pref_layout_content_1_ = prefFromPrefPtr(&prefs.gui_layout_content_1);
pref_layout_content_2_ = prefFromPrefPtr(&prefs.gui_layout_content_2);
pref_layout_content_3_ = prefFromPrefPtr(&prefs.gui_layout_content_3);
QString image_pad_ss = "QToolButton { padding: 0.3em; }";
ui->layout1ToolButton->setStyleSheet(image_pad_ss);
ui->layout2ToolButton->setStyleSheet(image_pad_ss);
ui->layout3ToolButton->setStyleSheet(image_pad_ss);
ui->layout4ToolButton->setStyleSheet(image_pad_ss);
ui->layout5ToolButton->setStyleSheet(image_pad_ss);
ui->layout6ToolButton->setStyleSheet(image_pad_ss);
pref_packet_list_separator_ = prefFromPrefPtr(&prefs.gui_qt_packet_list_separator);
ui->packetListSeparatorCheckBox->setChecked(pref_packet_list_separator_->stashed_val.boolval);
}
LayoutPreferencesFrame::~LayoutPreferencesFrame()
{
delete ui;
}
void LayoutPreferencesFrame::showEvent(QShowEvent *)
{
updateWidgets();
}
void LayoutPreferencesFrame::updateWidgets()
{
switch (pref_layout_type_->stashed_val.uint) {
case layout_type_5:
ui->layout5ToolButton->setChecked(true);
break;
case layout_type_2:
ui->layout2ToolButton->setChecked(true);
break;
case layout_type_1:
ui->layout1ToolButton->setChecked(true);
break;
case layout_type_4:
ui->layout4ToolButton->setChecked(true);
break;
case layout_type_3:
ui->layout3ToolButton->setChecked(true);
break;
case layout_type_6:
ui->layout6ToolButton->setChecked(true);
break;
}
switch (pref_layout_content_1_->stashed_val.enumval) {
case layout_pane_content_plist:
ui->pane1PacketListRadioButton->setChecked(true);
break;
case layout_pane_content_pdetails:
ui->pane1PacketDetailsRadioButton->setChecked(true);
break;
case layout_pane_content_pbytes:
ui->pane1PacketBytesRadioButton->setChecked(true);
break;
case layout_pane_content_none:
ui->pane1NoneRadioButton->setChecked(true);
break;
}
switch (pref_layout_content_2_->stashed_val.enumval) {
case layout_pane_content_plist:
ui->pane2PacketListRadioButton->setChecked(true);
break;
case layout_pane_content_pdetails:
ui->pane2PacketDetailsRadioButton->setChecked(true);
break;
case layout_pane_content_pbytes:
ui->pane2PacketBytesRadioButton->setChecked(true);
break;
case layout_pane_content_none:
ui->pane2NoneRadioButton->setChecked(true);
break;
}
switch (pref_layout_content_3_->stashed_val.enumval) {
case layout_pane_content_plist:
ui->pane3PacketListRadioButton->setChecked(true);
break;
case layout_pane_content_pdetails:
ui->pane3PacketDetailsRadioButton->setChecked(true);
break;
case layout_pane_content_pbytes:
ui->pane3PacketBytesRadioButton->setChecked(true);
break;
case layout_pane_content_none:
ui->pane3NoneRadioButton->setChecked(true);
break;
}
}
void LayoutPreferencesFrame::on_layout5ToolButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_type_->stashed_val.uint = layout_type_5;
}
void LayoutPreferencesFrame::on_layout2ToolButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_type_->stashed_val.uint = layout_type_2;
}
void LayoutPreferencesFrame::on_layout1ToolButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_type_->stashed_val.uint = layout_type_1;
}
void LayoutPreferencesFrame::on_layout4ToolButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_type_->stashed_val.uint = layout_type_4;
}
void LayoutPreferencesFrame::on_layout3ToolButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_type_->stashed_val.uint = layout_type_3;
}
void LayoutPreferencesFrame::on_layout6ToolButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_type_->stashed_val.uint = layout_type_6;
}
void LayoutPreferencesFrame::on_pane1PacketListRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_1_->stashed_val.enumval = layout_pane_content_plist;
if (ui->pane2PacketListRadioButton->isChecked())
ui->pane2NoneRadioButton->click();
if (ui->pane3PacketListRadioButton->isChecked())
ui->pane3NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane1PacketDetailsRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_1_->stashed_val.enumval = layout_pane_content_pdetails;
if (ui->pane2PacketDetailsRadioButton->isChecked())
ui->pane2NoneRadioButton->click();
if (ui->pane3PacketDetailsRadioButton->isChecked())
ui->pane3NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane1PacketBytesRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_1_->stashed_val.enumval = layout_pane_content_pbytes;
if (ui->pane2PacketBytesRadioButton->isChecked())
ui->pane2NoneRadioButton->click();
if (ui->pane3PacketBytesRadioButton->isChecked())
ui->pane3NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane1NoneRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_1_->stashed_val.enumval = layout_pane_content_none;
}
void LayoutPreferencesFrame::on_pane2PacketListRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_2_->stashed_val.enumval = layout_pane_content_plist;
if (ui->pane1PacketListRadioButton->isChecked())
ui->pane1NoneRadioButton->click();
if (ui->pane3PacketListRadioButton->isChecked())
ui->pane3NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane2PacketDetailsRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_2_->stashed_val.enumval = layout_pane_content_pdetails;
if (ui->pane1PacketDetailsRadioButton->isChecked())
ui->pane1NoneRadioButton->click();
if (ui->pane3PacketDetailsRadioButton->isChecked())
ui->pane3NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane2PacketBytesRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_2_->stashed_val.enumval = layout_pane_content_pbytes;
if (ui->pane1PacketBytesRadioButton->isChecked())
ui->pane1NoneRadioButton->click();
if (ui->pane3PacketBytesRadioButton->isChecked())
ui->pane3NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane2NoneRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_2_->stashed_val.enumval = layout_pane_content_none;
}
void LayoutPreferencesFrame::on_pane3PacketListRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_3_->stashed_val.enumval = layout_pane_content_plist;
if (ui->pane1PacketListRadioButton->isChecked())
ui->pane1NoneRadioButton->click();
if (ui->pane2PacketListRadioButton->isChecked())
ui->pane2NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane3PacketDetailsRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_3_->stashed_val.enumval = layout_pane_content_pdetails;
if (ui->pane1PacketDetailsRadioButton->isChecked())
ui->pane1NoneRadioButton->click();
if (ui->pane2PacketDetailsRadioButton->isChecked())
ui->pane2NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane3PacketBytesRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_3_->stashed_val.enumval = layout_pane_content_pbytes;
if (ui->pane1PacketBytesRadioButton->isChecked())
ui->pane1NoneRadioButton->click();
if (ui->pane2PacketBytesRadioButton->isChecked())
ui->pane2NoneRadioButton->click();
}
void LayoutPreferencesFrame::on_pane3NoneRadioButton_toggled(bool checked)
{
if (!checked) return;
pref_layout_content_3_->stashed_val.enumval = layout_pane_content_none;
}
void LayoutPreferencesFrame::on_restoreButtonBox_clicked(QAbstractButton *)
{
pref_layout_type_->stashed_val.uint = pref_layout_type_->default_val.uint;
pref_layout_content_1_->stashed_val.enumval = pref_layout_content_1_->default_val.enumval;
updateWidgets();
pref_layout_content_2_->stashed_val.enumval = pref_layout_content_2_->default_val.enumval;
updateWidgets();
pref_layout_content_3_->stashed_val.enumval = pref_layout_content_3_->default_val.enumval;
updateWidgets();
ui->packetListSeparatorCheckBox->setChecked(pref_packet_list_separator_->default_val.boolval);
}
void LayoutPreferencesFrame::on_packetListSeparatorCheckBox_toggled(bool checked)
{
pref_packet_list_separator_->stashed_val.boolval = (gboolean) checked;
}
/*
* Editor modelines
*
* Local Variables:
* c-basic-offset: 4
* tab-width: 8
* indent-tabs-mode: nil
* End:
*
* ex: set shiftwidth=4 tabstop=8 expandtab:
* :indentSize=4:tabSize=8:noTabs=true:
*/