Add an elide mode preference for the Qt packet list.

Change-Id: I081cc1e9b2a0eea7f0a3ef1157561c50beb4c4db
Reviewed-on: https://code.wireshark.org/review/9902
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Gerald Combs <gerald@wireshark.org>
This commit is contained in:
Gerald Combs 2015-08-06 12:31:21 -07:00
parent fda29e1c95
commit 9fd3bcc25e
5 changed files with 48 additions and 0 deletions

View File

@ -194,6 +194,14 @@ static const gchar *capture_cols[5] = {
"Possible values: INTERFACE, LINK, PMODE, SNAPLEN, FILTER\n"
#endif
static const enum_val_t gui_packet_list_elide_mode[] = {
{"LEFT", "LEFT", ELIDE_LEFT},
{"RIGHT", "RIGHT", ELIDE_RIGHT},
{"MIDDLE", "MIDDLE", ELIDE_MIDDLE},
{"NONE", "NONE", ELIDE_NONE},
{NULL, NULL, -1}
};
/*
* List of all modules with preference settings.
*/
@ -2347,6 +2355,11 @@ prefs_register_modules(void)
"Enable Packet Editor (Experimental)",
&prefs.gui_packet_editor);
prefs_register_enum_preference(gui_module, "packet_list_elide_mode",
"Elide mode",
"The position of \"...\" in packet list text.",
(gint*)(void*)(&prefs.gui_packet_list_elide_mode), gui_packet_list_elide_mode, FALSE);
/* Console
* These are preferences that can be read/written using the
* preference module API. These preferences still use their own
@ -2980,6 +2993,7 @@ pre_init_prefs(void)
prefs.gui_layout_content_2 = layout_pane_content_pdetails;
prefs.gui_layout_content_3 = layout_pane_content_pbytes;
prefs.gui_packet_editor = FALSE;
prefs.gui_packet_list_elide_mode = ELIDE_RIGHT;
prefs.gui_qt_packet_list_separator = FALSE;

View File

@ -126,6 +126,14 @@ typedef enum {
pref_current
} pref_source_t;
typedef enum {
ELIDE_LEFT,
ELIDE_RIGHT,
ELIDE_MIDDLE,
ELIDE_NONE
} elide_mode_e;
/*
* Update channel.
*/
@ -214,6 +222,7 @@ typedef struct _e_prefs {
gboolean unknown_colorfilters; /* unknown or obsolete color filter(s) */
gboolean gui_qt_packet_list_separator;
gboolean gui_packet_editor; /* Enable Packet Editor */
elide_mode_e gui_packet_list_elide_mode;
gboolean st_enable_burstinfo;
gboolean st_burst_showcount;
gint st_burst_resolution;

View File

@ -414,6 +414,8 @@ MainWindow::MainWindow(QWidget *parent) :
packet_list_, SLOT(applyRecentColumnWidths()));
connect(wsApp, SIGNAL(columnsChanged()),
packet_list_, SLOT(columnsChanged()));
connect(wsApp, SIGNAL(preferencesChanged()),
packet_list_, SLOT(elideModeChanged()));
connect(wsApp, SIGNAL(recentFilesRead()),
this, SLOT(applyRecentPaneGeometry()));
connect(wsApp, SIGNAL(packetDissectionChanged()),

View File

@ -678,6 +678,28 @@ 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()
{
Qt::TextElideMode elide_mode = Qt::ElideRight;
switch (prefs.gui_packet_list_elide_mode) {
case ELIDE_LEFT:
elide_mode = Qt::ElideLeft;
break;
case ELIDE_MIDDLE:
elide_mode = Qt::ElideMiddle;
break;
case ELIDE_NONE:
elide_mode = Qt::ElideNone;
break;
default:
break;
}
setTextElideMode(elide_mode);
}
void PacketList::recolorPackets()
{
packet_list_model_->resetColorized();

View File

@ -149,6 +149,7 @@ public slots:
void redrawVisiblePackets();
void columnsChanged();
void applyRecentColumnWidths();
void elideModeChanged();
private slots:
void showHeaderMenu(QPoint pos);