diff options
author | Gerald Combs <gerald@wireshark.org> | 2015-10-27 15:04:44 -0700 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2015-10-27 23:28:56 +0000 |
commit | 9f8d00c1741604ae6ad53e2f27e2686e1df10cc3 (patch) | |
tree | 6401987ba4b1c827fe69cefe5139bb572745bae0 /ui/qt/packet_list.cpp | |
parent | d43047f2e0efdecb0b0aa4a394e04d790b6b3d6a (diff) | |
download | wireshark-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.cpp | 43 |
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(); |