aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorRoland Knall <rknall@gmail.com>2022-03-17 16:52:47 +0100
committerRoland Knall <r.knall@moba.cc>2022-03-17 16:52:53 +0100
commit9d113213851f1f9e52ff817a5e18c6948d69e867 (patch)
treecb6f65a840c96e986f2a1e156e9252938e8bfa60 /ui
parentb82ef4ad04ce3057c6859cfac620034f6ec71430 (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.cpp10
-rw-r--r--ui/qt/layout_preferences_frame.h2
-rw-r--r--ui/qt/layout_preferences_frame.ui7
-rw-r--r--ui/qt/packet_list.cpp3
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)));