diff options
author | Roland Knall <rknall@gmail.com> | 2022-03-17 16:52:47 +0100 |
---|---|---|
committer | Roland Knall <r.knall@moba.cc> | 2022-03-17 16:52:53 +0100 |
commit | 9d113213851f1f9e52ff817a5e18c6948d69e867 (patch) | |
tree | cb6f65a840c96e986f2a1e156e9252938e8bfa60 /ui | |
parent | b82ef4ad04ce3057c6859cfac620034f6ec71430 (diff) |
Qt: Disable Sorting for the packet List
Allows the sorting to be disabled to avoid painful recalculations if the
sorting has been clicked on by accident.
Fixes #16786
Diffstat (limited to 'ui')
-rw-r--r-- | ui/qt/layout_preferences_frame.cpp | 10 | ||||
-rw-r--r-- | ui/qt/layout_preferences_frame.h | 2 | ||||
-rw-r--r-- | ui/qt/layout_preferences_frame.ui | 7 | ||||
-rw-r--r-- | ui/qt/packet_list.cpp | 3 |
4 files changed, 21 insertions, 1 deletions
diff --git a/ui/qt/layout_preferences_frame.cpp b/ui/qt/layout_preferences_frame.cpp index c0edcdcd64..34d6d2d866 100644 --- a/ui/qt/layout_preferences_frame.cpp +++ b/ui/qt/layout_preferences_frame.cpp @@ -48,6 +48,7 @@ LayoutPreferencesFrame::LayoutPreferencesFrame(QWidget *parent) : ui->packetListSeparatorCheckBox->setStyleSheet(indent_ss); ui->packetListHeaderShowColumnDefinition->setStyleSheet(indent_ss); ui->packetListHoverStyleCheckbox->setStyleSheet(indent_ss); + ui->packetListAllowSorting->setStyleSheet(indent_ss); ui->statusBarShowSelectedPacketCheckBox->setStyleSheet(indent_ss); ui->statusBarShowFileLoadTimeCheckBox->setStyleSheet(indent_ss); @@ -60,6 +61,9 @@ LayoutPreferencesFrame::LayoutPreferencesFrame(QWidget *parent) : pref_packet_list_hover_style_ = prefFromPrefPtr(&prefs.gui_qt_packet_list_hover_style); ui->packetListHoverStyleCheckbox->setChecked(prefs_get_bool_value(pref_packet_list_hover_style_, pref_stashed)); + pref_packet_list_sorting_ = prefFromPrefPtr(&prefs.gui_packet_list_sortable); + ui->packetListAllowSorting->setChecked(prefs_get_bool_value(pref_packet_list_sorting_, pref_stashed)); + pref_show_selected_packet_ = prefFromPrefPtr(&prefs.gui_qt_show_selected_packet); ui->statusBarShowSelectedPacketCheckBox->setChecked(prefs_get_bool_value(pref_show_selected_packet_, pref_stashed)); @@ -342,6 +346,7 @@ void LayoutPreferencesFrame::on_restoreButtonBox_clicked(QAbstractButton *) ui->packetListSeparatorCheckBox->setChecked(prefs_get_bool_value(pref_packet_list_separator_, pref_default)); ui->packetListHeaderShowColumnDefinition->setChecked(prefs_get_bool_value(pref_packet_header_column_definition_, pref_default)); ui->packetListHoverStyleCheckbox->setChecked(prefs_get_bool_value(pref_packet_list_hover_style_, pref_default)); + ui->packetListAllowSorting->setChecked(prefs_get_bool_value(pref_packet_list_sorting_, pref_default)); ui->statusBarShowSelectedPacketCheckBox->setChecked(prefs_get_bool_value(pref_show_selected_packet_, pref_default)); ui->statusBarShowFileLoadTimeCheckBox->setChecked(prefs_get_bool_value(pref_show_file_load_time_, pref_default)); } @@ -361,6 +366,11 @@ void LayoutPreferencesFrame::on_packetListHoverStyleCheckbox_toggled(bool checke prefs_set_bool_value(pref_packet_list_hover_style_, (gboolean) checked, pref_stashed); } +void LayoutPreferencesFrame::on_packetListAllowSorting_toggled(bool checked) +{ + prefs_set_bool_value(pref_packet_list_sorting_, (gboolean) checked, pref_stashed); +} + void LayoutPreferencesFrame::on_statusBarShowSelectedPacketCheckBox_toggled(bool checked) { prefs_set_bool_value(pref_show_selected_packet_, (gboolean) checked, pref_stashed); diff --git a/ui/qt/layout_preferences_frame.h b/ui/qt/layout_preferences_frame.h index d8297ef629..372caeae17 100644 --- a/ui/qt/layout_preferences_frame.h +++ b/ui/qt/layout_preferences_frame.h @@ -40,6 +40,7 @@ private: pref_t *pref_packet_list_separator_; pref_t *pref_packet_header_column_definition_; pref_t *pref_packet_list_hover_style_; + pref_t *pref_packet_list_sorting_; pref_t *pref_show_selected_packet_; pref_t *pref_show_file_load_time_; @@ -71,6 +72,7 @@ private slots: void on_packetListSeparatorCheckBox_toggled(bool checked); void on_packetListHeaderShowColumnDefinition_toggled(bool checked); void on_packetListHoverStyleCheckbox_toggled(bool checked); + void on_packetListAllowSorting_toggled(bool checked); void on_statusBarShowSelectedPacketCheckBox_toggled(bool checked); void on_statusBarShowFileLoadTimeCheckBox_toggled(bool checked); }; diff --git a/ui/qt/layout_preferences_frame.ui b/ui/qt/layout_preferences_frame.ui index 0120e2dd96..77a7edf62f 100644 --- a/ui/qt/layout_preferences_frame.ui +++ b/ui/qt/layout_preferences_frame.ui @@ -396,6 +396,13 @@ </widget> </item> <item> + <widget class="QCheckBox" name="packetListAllowSorting"> + <property name="text"> + <string>Allow the list to be sorted</string> + </property> + </widget> + </item> + <item> <widget class="QCheckBox" name="packetListHoverStyleCheckbox"> <property name="text"> <string>Enable mouse-over colorization</string> diff --git a/ui/qt/packet_list.cpp b/ui/qt/packet_list.cpp index 45157e7b9e..d19606c740 100644 --- a/ui/qt/packet_list.cpp +++ b/ui/qt/packet_list.cpp @@ -245,7 +245,7 @@ PacketList::PacketList(QWidget *parent) : { setItemsExpandable(false); setRootIsDecorated(false); - setSortingEnabled(true); + setSortingEnabled(prefs.gui_packet_list_sortable); setUniformRowHeights(true); setAccessibleName("Packet list"); @@ -284,6 +284,7 @@ PacketList::PacketList(QWidget *parent) : connect(packet_list_model_, SIGNAL(itemHeightChanged(const QModelIndex&)), this, SLOT(updateRowHeights(const QModelIndex&))); connect(wsApp, SIGNAL(addressResolutionChanged()), this, SLOT(redrawVisiblePacketsDontSelectCurrent())); connect(wsApp, SIGNAL(columnDataChanged()), this, SLOT(redrawVisiblePacketsDontSelectCurrent())); + connect(wsApp, &WiresharkApplication::preferencesChanged, this, [=]() { setSortingEnabled(prefs.gui_packet_list_sortable); }); connect(header(), SIGNAL(sectionResized(int,int,int)), this, SLOT(sectionResized(int,int,int))); |