summaryrefslogtreecommitdiff
path: root/ui/qt/packet_list.cpp
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2015-10-27 15:04:44 -0700
committerGerald Combs <gerald@wireshark.org>2015-10-27 23:28:56 +0000
commit9f8d00c1741604ae6ad53e2f27e2686e1df10cc3 (patch)
tree6401987ba4b1c827fe69cefe5139bb572745bae0 /ui/qt/packet_list.cpp
parentd43047f2e0efdecb0b0aa4a394e04d790b6b3d6a (diff)
downloadwireshark-9f8d00c1741604ae6ad53e2f27e2686e1df10cc3.tar.gz
Add preferences for related packets and the scroll bar minimap.
Add gui.packet_list_show_related and gui.packet_list_show_minimap. Show_related enables and disables the related packet delegate. Show_minimap enables and disables the minimap. Start calling it the "intelligent scroll bar" since that's the best suggestion for a name I've seen so far. Leave them out of the Appearance preference pane for now. Change-Id: I5869c446fda5c8e62d6b1e49a74d63ba3b117b0f Reviewed-on: https://code.wireshark.org/review/11332 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>
Diffstat (limited to 'ui/qt/packet_list.cpp')
-rw-r--r--ui/qt/packet_list.cpp43
1 files changed, 33 insertions, 10 deletions
diff --git a/ui/qt/packet_list.cpp b/ui/qt/packet_list.cpp
index 304a2dff85..d3dfc48e2b 100644
--- a/ui/qt/packet_list.cpp
+++ b/ui/qt/packet_list.cpp
@@ -244,6 +244,7 @@ PacketList::PacketList(QWidget *parent) :
cap_file_(NULL),
decode_as_(NULL),
ctx_column_(-1),
+ overlay_timer_id_(0),
create_near_overlay_(true),
create_far_overlay_(true),
capture_in_progress_(false),
@@ -258,11 +259,9 @@ PacketList::PacketList(QWidget *parent) :
setSortingEnabled(true);
setUniformRowHeights(true);
setAccessibleName("Packet list");
- setItemDelegateForColumn(0, &related_packet_delegate_);
overlay_sb_ = new OverlayScrollBar(Qt::Vertical, this);
setVerticalScrollBar(overlay_sb_);
- overlay_timer_id_ = startTimer(overlay_update_interval_);
packet_list_model_ = new PacketListModel(this, cap_file_);
setModel(packet_list_model_);
@@ -691,11 +690,31 @@ void PacketList::applyRecentColumnWidths()
column_state_ = header()->saveState();
}
-// This sets the mode for the entire view. If we want to make this setting
-// per-column we'll either have to generalize RelatedPacketDelegate so that
-// we can set it for entire rows or create another delegate.
-void PacketList::elideModeChanged()
+void PacketList::preferencesChanged()
{
+ // Related packet delegate
+ if (prefs.gui_packet_list_show_related) {
+ setItemDelegateForColumn(0, &related_packet_delegate_);
+ } else {
+ setItemDelegateForColumn(0, 0);
+ }
+
+ // Intelligent scroll bar (minimap)
+ if (prefs.gui_packet_list_show_minimap) {
+ if (overlay_timer_id_ == 0) {
+ overlay_timer_id_ = startTimer(overlay_update_interval_);
+ }
+ } else {
+ if (overlay_timer_id_ != 0) {
+ killTimer(overlay_timer_id_);
+ overlay_timer_id_ = 0;
+ }
+ }
+
+ // Elide mode.
+ // This sets the mode for the entire view. If we want to make this setting
+ // per-column we'll either have to generalize RelatedPacketDelegate so that
+ // we can set it for entire rows or create another delegate.
Qt::TextElideMode elide_mode = Qt::ElideRight;
switch (prefs.gui_packet_list_elide_mode) {
case ELIDE_LEFT:
@@ -1325,12 +1344,14 @@ void PacketList::vScrollBarActionTriggered(int)
const int height_multiplier_ = 7;
void PacketList::drawNearOverlay()
{
- if (!cap_file_ || cap_file_->state != FILE_READ_DONE) return;
-
if (create_near_overlay_) {
create_near_overlay_ = false;
}
+ if (!cap_file_ || cap_file_->state != FILE_READ_DONE) return;
+
+ if (!prefs.gui_packet_list_show_minimap) return;
+
qreal dp_ratio = 1.0;
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
dp_ratio = overlay_sb_->devicePixelRatio();
@@ -1411,12 +1432,14 @@ void PacketList::drawNearOverlay()
void PacketList::drawFarOverlay()
{
- if (!cap_file_ || cap_file_->state != FILE_READ_DONE) return;
-
if (create_far_overlay_) {
create_far_overlay_ = false;
}
+ if (!cap_file_ || cap_file_->state != FILE_READ_DONE) return;
+
+ if (!prefs.gui_packet_list_show_minimap) return;
+
qreal dp_ratio = 1.0;
#if QT_VERSION >= QT_VERSION_CHECK(5, 1, 0)
dp_ratio = overlay_sb_->devicePixelRatio();