summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--image/dfilter_apply_disabled.pngbin181 -> 0 bytes
-rw-r--r--image/dfilter_apply_hover.pngbin182 -> 0 bytes
-rw-r--r--image/dfilter_apply_normal.pngbin182 -> 0 bytes
-rw-r--r--image/dfilter_apply_pressed.pngbin182 -> 0 bytes
-rw-r--r--image/dfilter_bookmark_disabled.pngbin420 -> 0 bytes
-rw-r--r--image/dfilter_bookmark_hover.pngbin384 -> 0 bytes
-rw-r--r--image/dfilter_bookmark_normal.pngbin384 -> 0 bytes
-rw-r--r--image/dfilter_bookmark_pressed.pngbin384 -> 0 bytes
-rw-r--r--image/dfilter_dropdown.pngbin123 -> 0 bytes
-rw-r--r--image/dfilter_erase_active.pngbin174 -> 0 bytes
-rw-r--r--image/dfilter_erase_normal.pngbin184 -> 0 bytes
-rw-r--r--image/dfilter_erase_selected.pngbin174 -> 0 bytes
-rw-r--r--image/dfilter_refresh_active.pngbin267 -> 0 bytes
-rw-r--r--image/dfilter_refresh_normal.pngbin262 -> 0 bytes
-rw-r--r--image/display_filter.qrc18
-rw-r--r--image/toolbar.qrc26
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.active.pngbin0 -> 254 bytes
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.active.svg109
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.active@2x.pngbin0 -> 403 bytes
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.pngbin0 -> 238 bytes
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.selected.pngbin0 -> 258 bytes
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.selected.svg109
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.selected@2x.pngbin0 -> 400 bytes
-rw-r--r--image/toolbar/14x14/x-filter-bookmark.svg109
-rw-r--r--image/toolbar/14x14/x-filter-bookmark@2x.pngbin0 -> 392 bytes
-rw-r--r--image/toolbar/14x14/x-filter-clear.active.pngbin0 -> 285 bytes
-rw-r--r--image/toolbar/14x14/x-filter-clear.active.svg126
-rw-r--r--image/toolbar/14x14/x-filter-clear.active@2x.pngbin0 -> 504 bytes
-rw-r--r--image/toolbar/14x14/x-filter-clear.pngbin0 -> 277 bytes
-rw-r--r--image/toolbar/14x14/x-filter-clear.selected.pngbin0 -> 287 bytes
-rw-r--r--image/toolbar/14x14/x-filter-clear.selected.svg126
-rw-r--r--image/toolbar/14x14/x-filter-clear.selected@2x.pngbin0 -> 508 bytes
-rw-r--r--image/toolbar/14x14/x-filter-clear.svg125
-rw-r--r--image/toolbar/14x14/x-filter-clear@2x.pngbin0 -> 480 bytes
-rw-r--r--image/toolbar/14x14/x-filter-dropdown.pngbin0 -> 120 bytes
-rw-r--r--image/toolbar/14x14/x-filter-dropdown.svg107
-rw-r--r--image/toolbar/14x14/x-filter-dropdown@2x.pngbin0 -> 146 bytes
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.active.pngbin0 -> 241 bytes
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.active.svg109
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.active@2x.pngbin0 -> 406 bytes
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.pngbin0 -> 237 bytes
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.selected.pngbin0 -> 236 bytes
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.selected.svg109
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.selected@2x.pngbin0 -> 417 bytes
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark.svg109
-rw-r--r--image/toolbar/14x14/x-filter-matching-bookmark@2x.pngbin0 -> 385 bytes
-rw-r--r--image/toolbar/24x14/x-filter-apply.active.pngbin0 -> 388 bytes
-rw-r--r--image/toolbar/24x14/x-filter-apply.active.svg128
-rw-r--r--image/toolbar/24x14/x-filter-apply.active@2x.pngbin0 -> 632 bytes
-rw-r--r--image/toolbar/24x14/x-filter-apply.pngbin0 -> 365 bytes
-rw-r--r--image/toolbar/24x14/x-filter-apply.selected.pngbin0 -> 395 bytes
-rw-r--r--image/toolbar/24x14/x-filter-apply.selected.svg128
-rw-r--r--image/toolbar/24x14/x-filter-apply.selected@2x.pngbin0 -> 647 bytes
-rw-r--r--image/toolbar/24x14/x-filter-apply.svg128
-rw-r--r--image/toolbar/24x14/x-filter-apply@2x.pngbin0 -> 583 bytes
-rwxr-xr-ximage/toolbar/svg-to-png.sh34
-rw-r--r--image/toolbar/svg/x-filter-apply.svg133
-rw-r--r--image/toolbar/svg/x-filter-bookmark.svg77
-rw-r--r--image/toolbar/svg/x-filter-clear.svg77
-rw-r--r--ui/qt/CMakeLists.txt1
-rw-r--r--ui/qt/Makefile.common1
-rw-r--r--ui/qt/Wireshark.pro1
-rw-r--r--ui/qt/capture_filter_combo.cpp2
-rw-r--r--ui/qt/display_filter_16.svg901
-rw-r--r--ui/qt/display_filter_combo.cpp2
-rw-r--r--ui/qt/display_filter_edit.cpp283
-rw-r--r--ui/qt/display_filter_edit.h19
-rw-r--r--ui/qt/filter_dialog.cpp11
-rw-r--r--ui/qt/filter_dialog.h4
-rw-r--r--ui/qt/main_window.cpp3
-rw-r--r--ui/qt/main_window.h1
-rw-r--r--ui/qt/main_window_slots.cpp27
-rw-r--r--ui/qt/preferences_dialog.ui2
-rw-r--r--ui/qt/stock_icon.cpp22
-rw-r--r--ui/qt/stock_icon.h2
-rw-r--r--ui/qt/wireshark_application.cpp1
77 files changed, 2107 insertions, 1064 deletions
diff --git a/Makefile.am b/Makefile.am
index 8cf9179e8f..5c6435dbc9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -909,7 +909,6 @@ EXTRA_DIST = \
image/dfilter_erase_selected.png \
image/dfilter_refresh_active.png \
image/dfilter_refresh_normal.png \
- image/display_filter.qrc \
image/dumpcap.rc.in \
image/editcap.rc.in \
image/expert_chat.png \
diff --git a/image/dfilter_apply_disabled.png b/image/dfilter_apply_disabled.png
deleted file mode 100644
index d6d6b55cff..0000000000
--- a/image/dfilter_apply_disabled.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_apply_hover.png b/image/dfilter_apply_hover.png
deleted file mode 100644
index f1fea1a0f0..0000000000
--- a/image/dfilter_apply_hover.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_apply_normal.png b/image/dfilter_apply_normal.png
deleted file mode 100644
index c6d405b98e..0000000000
--- a/image/dfilter_apply_normal.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_apply_pressed.png b/image/dfilter_apply_pressed.png
deleted file mode 100644
index a1e83b8711..0000000000
--- a/image/dfilter_apply_pressed.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_bookmark_disabled.png b/image/dfilter_bookmark_disabled.png
deleted file mode 100644
index d9ff66921d..0000000000
--- a/image/dfilter_bookmark_disabled.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_bookmark_hover.png b/image/dfilter_bookmark_hover.png
deleted file mode 100644
index 83dab989ab..0000000000
--- a/image/dfilter_bookmark_hover.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_bookmark_normal.png b/image/dfilter_bookmark_normal.png
deleted file mode 100644
index a9381bc48a..0000000000
--- a/image/dfilter_bookmark_normal.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_bookmark_pressed.png b/image/dfilter_bookmark_pressed.png
deleted file mode 100644
index d46624b011..0000000000
--- a/image/dfilter_bookmark_pressed.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_dropdown.png b/image/dfilter_dropdown.png
deleted file mode 100644
index d392524448..0000000000
--- a/image/dfilter_dropdown.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_erase_active.png b/image/dfilter_erase_active.png
deleted file mode 100644
index e5b9a4b577..0000000000
--- a/image/dfilter_erase_active.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_erase_normal.png b/image/dfilter_erase_normal.png
deleted file mode 100644
index 4b0e187758..0000000000
--- a/image/dfilter_erase_normal.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_erase_selected.png b/image/dfilter_erase_selected.png
deleted file mode 100644
index 6824b69297..0000000000
--- a/image/dfilter_erase_selected.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_refresh_active.png b/image/dfilter_refresh_active.png
deleted file mode 100644
index 21cd0f5690..0000000000
--- a/image/dfilter_refresh_active.png
+++ /dev/null
Binary files differ
diff --git a/image/dfilter_refresh_normal.png b/image/dfilter_refresh_normal.png
deleted file mode 100644
index 21a6275fe3..0000000000
--- a/image/dfilter_refresh_normal.png
+++ /dev/null
Binary files differ
diff --git a/image/display_filter.qrc b/image/display_filter.qrc
deleted file mode 100644
index ffd78c802f..0000000000
--- a/image/display_filter.qrc
+++ /dev/null
@@ -1,18 +0,0 @@
-<RCC>
- <qresource prefix="/dfilter">
- <file>dfilter_dropdown.png</file>
- <file>dfilter_erase_active.png</file>
- <file>dfilter_erase_normal.png</file>
- <file>dfilter_erase_selected.png</file>
- <file>dfilter_refresh_active.png</file>
- <file>dfilter_refresh_normal.png</file>
- <file>dfilter_bookmark_normal.png</file>
- <file>dfilter_bookmark_hover.png</file>
- <file>dfilter_bookmark_pressed.png</file>
- <file>dfilter_apply_hover.png</file>
- <file>dfilter_apply_normal.png</file>
- <file>dfilter_apply_pressed.png</file>
- <file>dfilter_apply_disabled.png</file>
- <file>dfilter_bookmark_disabled.png</file>
- </qresource>
-</RCC>
diff --git a/image/toolbar.qrc b/image/toolbar.qrc
index dc72c68dc4..f4b9ec7208 100644
--- a/image/toolbar.qrc
+++ b/image/toolbar.qrc
@@ -11,6 +11,26 @@
<qresource prefix="/icons">
<file>toolbar/12x12/media-playback-start.png</file>
<file>toolbar/12x12/media-playback-start@2x.png</file>
+ <file>toolbar/14x14/x-filter-clear.png</file>
+ <file>toolbar/14x14/x-filter-clear@2x.png</file>
+ <file>toolbar/14x14/x-filter-clear.active.png</file>
+ <file>toolbar/14x14/x-filter-clear.active@2x.png</file>
+ <file>toolbar/14x14/x-filter-clear.selected.png</file>
+ <file>toolbar/14x14/x-filter-clear.selected@2x.png</file>
+ <file>toolbar/14x14/x-filter-bookmark.png</file>
+ <file>toolbar/14x14/x-filter-bookmark@2x.png</file>
+ <file>toolbar/14x14/x-filter-bookmark.active.png</file>
+ <file>toolbar/14x14/x-filter-bookmark.active@2x.png</file>
+ <file>toolbar/14x14/x-filter-bookmark.selected.png</file>
+ <file>toolbar/14x14/x-filter-bookmark.selected@2x.png</file>
+ <file>toolbar/14x14/x-filter-dropdown.png</file>
+ <file>toolbar/14x14/x-filter-dropdown@2x.png</file>
+ <file>toolbar/14x14/x-filter-matching-bookmark.png</file>
+ <file>toolbar/14x14/x-filter-matching-bookmark@2x.png</file>
+ <file>toolbar/14x14/x-filter-matching-bookmark.active.png</file>
+ <file>toolbar/14x14/x-filter-matching-bookmark.active@2x.png</file>
+ <file>toolbar/14x14/x-filter-matching-bookmark.selected.png</file>
+ <file>toolbar/14x14/x-filter-matching-bookmark.selected@2x.png</file>
<file>toolbar/16x16/edit-find.png</file>
<file>toolbar/16x16/edit-find@2x.png</file>
<file>toolbar/16x16/go-first.png</file>
@@ -51,6 +71,12 @@
<file>toolbar/16x16/zoom-original@2x.png</file>
<file>toolbar/16x16/zoom-out.png</file>
<file>toolbar/16x16/zoom-out@2x.png</file>
+ <file>toolbar/24x14/x-filter-apply.png</file>
+ <file>toolbar/24x14/x-filter-apply@2x.png</file>
+ <file>toolbar/24x14/x-filter-apply.active.png</file>
+ <file>toolbar/24x14/x-filter-apply.active@2x.png</file>
+ <file>toolbar/24x14/x-filter-apply.selected.png</file>
+ <file>toolbar/24x14/x-filter-apply.selected@2x.png</file>
<file>toolbar/24x24/edit-find.png</file>
<file>toolbar/24x24/edit-find@2x.png</file>
<file>toolbar/24x24/go-first.png</file>
diff --git a/image/toolbar/14x14/x-filter-bookmark.active.png b/image/toolbar/14x14/x-filter-bookmark.active.png
new file mode 100644
index 0000000000..a9bf35a7dd
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.active.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-bookmark.active.svg b/image/toolbar/14x14/x-filter-bookmark.active.svg
new file mode 100644
index 0000000000..59336bb970
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.active.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-bookmark.active.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient5566"
+ x1="17.5"
+ y1="1038.3622"
+ x2="20"
+ y2="1044.8622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12,0)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="10.77284"
+ inkscape:cy="7.0248958"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="369"
+ inkscape:window-y="214"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:#3465a4;fill-rule:evenodd;stroke:#3465a4;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 10,1039.3622 0,12.0001 -3,-3.4286 -3,3.4286 0,-12.0001 z"
+ id="path4953"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 4,1038.3613 c -0.552262,10e-5 -0.999945,0.4477 -1,1 l 0,12 c -6.63e-4,0.9232 1.143171,1.3543 1.751953,0.6602 L 7,1049.4512 l 2.248047,2.5703 c 0.608782,0.6941 1.752616,0.263 1.751953,-0.6602 l 0,-12 c -5.5e-5,-0.5523 -0.447738,-0.9999 -1,-1 z"
+ id="path5548"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-bookmark.active@2x.png b/image/toolbar/14x14/x-filter-bookmark.active@2x.png
new file mode 100644
index 0000000000..1988700e55
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.active@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-bookmark.png b/image/toolbar/14x14/x-filter-bookmark.png
new file mode 100644
index 0000000000..fbeeb3466d
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-bookmark.selected.png b/image/toolbar/14x14/x-filter-bookmark.selected.png
new file mode 100644
index 0000000000..0bb4dcd817
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.selected.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-bookmark.selected.svg b/image/toolbar/14x14/x-filter-bookmark.selected.svg
new file mode 100644
index 0000000000..3690c887a3
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.selected.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-bookmark.selected.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient5566"
+ x1="17.5"
+ y1="1038.3622"
+ x2="20"
+ y2="1044.8622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12,0)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="10.77284"
+ inkscape:cy="7.0248958"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="369"
+ inkscape:window-y="214"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:#204a87;fill-rule:evenodd;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m 10,1039.3622 0,12.0001 -3,-3.4286 -3,3.4286 0,-12.0001 z"
+ id="path4953"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 4,1038.3613 c -0.552262,10e-5 -0.999945,0.4477 -1,1 l 0,12 c -6.63e-4,0.9232 1.143171,1.3543 1.751953,0.6602 L 7,1049.4512 l 2.248047,2.5703 c 0.608782,0.6941 1.752616,0.263 1.751953,-0.6602 l 0,-12 c -5.5e-5,-0.5523 -0.447738,-0.9999 -1,-1 z"
+ id="path5548"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-bookmark.selected@2x.png b/image/toolbar/14x14/x-filter-bookmark.selected@2x.png
new file mode 100644
index 0000000000..ae64fd7a86
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.selected@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-bookmark.svg b/image/toolbar/14x14/x-filter-bookmark.svg
new file mode 100644
index 0000000000..1945279613
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-bookmark.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient5566"
+ x1="17.5"
+ y1="1038.3622"
+ x2="20"
+ y2="1044.8622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12,0)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="3.9658628"
+ inkscape:cy="6.6686077"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="369"
+ inkscape:window-y="214"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:#729fcf;fill-rule:evenodd;stroke:#729fcf;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 10,1039.3622 0,12.0001 -3,-3.4286 -3,3.4286 0,-12.0001 z"
+ id="path4953"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 4,1038.3613 c -0.552262,10e-5 -0.999945,0.4477 -1,1 l 0,12 c -6.63e-4,0.9232 1.143171,1.3543 1.751953,0.6602 L 7,1049.4512 l 2.248047,2.5703 c 0.608782,0.6941 1.752616,0.263 1.751953,-0.6602 l 0,-12 c -5.5e-5,-0.5523 -0.447738,-0.9999 -1,-1 z"
+ id="path5548"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-bookmark@2x.png b/image/toolbar/14x14/x-filter-bookmark@2x.png
new file mode 100644
index 0000000000..1ca597cdfc
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-bookmark@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-clear.active.png b/image/toolbar/14x14/x-filter-clear.active.png
new file mode 100644
index 0000000000..2c0ed113db
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.active.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-clear.active.svg b/image/toolbar/14x14/x-filter-clear.active.svg
new file mode 100644
index 0000000000..3450bcf533
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.active.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-clear.active.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient4196"
+ x1="5"
+ y1="0"
+ x2="7.5"
+ y2="5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1038.3622)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="1.6067954"
+ inkscape:cy="5.163458"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="266"
+ inkscape:window-y="147"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#cc0000;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 12 C 0 13.108 0.892 14 2 14 L 12 14 C 13.108 14 14 13.108 14 12 L 14 2 C 14 0.892 13.108 0 12 0 L 2 0 z M 3 2 L 7 6 L 11 2 L 12 3 L 8 7 L 12 11.001953 L 11 12 L 7 8 L 3 12 L 2 11.001953 L 6 7 L 2 3 L 3 2 z "
+ transform="translate(0,1038.3622)"
+ id="rect4168" />
+ <rect
+ ry="2"
+ rx="2"
+ y="1038.3622"
+ x="-16"
+ height="14"
+ width="14"
+ id="rect4176"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#888a85;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4178"
+ d="m -13.500077,1040.8622 c 9.000155,9.0001 9.000155,9.0001 9.000155,9.0001"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.41400003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.41400003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m -4.499922,1040.8622 c -9.000155,9.0001 -9.000155,9.0001 -9.000155,9.0001"
+ id="path4180"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4188"
+ d="m 2,1038.3622 c -1.108,0 -2,0.892 -2,2 l 0,10 c 0,1.108 0.892,2 2,2 l 10,0 c 1.108,0 2,-0.892 2,-2 l 0,-10 c 0,-1.108 -0.892,-2 -2,-2 l -10,0 z m 1,2 4,4 4,-4 1,1 -4,4 4,4.002 -1,0.998 -4,-4 -4,4 -1,-0.998 4,-4.002 -4,-4 1,-1 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4196);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-clear.active@2x.png b/image/toolbar/14x14/x-filter-clear.active@2x.png
new file mode 100644
index 0000000000..8b36013925
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.active@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-clear.png b/image/toolbar/14x14/x-filter-clear.png
new file mode 100644
index 0000000000..85ea100b0b
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-clear.selected.png b/image/toolbar/14x14/x-filter-clear.selected.png
new file mode 100644
index 0000000000..d94d4f99db
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.selected.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-clear.selected.svg b/image/toolbar/14x14/x-filter-clear.selected.svg
new file mode 100644
index 0000000000..ea77368620
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.selected.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-clear.selected.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient4196"
+ x1="5"
+ y1="0"
+ x2="7.5"
+ y2="5"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1038.3622)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="1.6067954"
+ inkscape:cy="5.163458"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="266"
+ inkscape:window-y="147"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#a40000;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 12 C 0 13.108 0.892 14 2 14 L 12 14 C 13.108 14 14 13.108 14 12 L 14 2 C 14 0.892 13.108 0 12 0 L 2 0 z M 3 2 L 7 6 L 11 2 L 12 3 L 8 7 L 12 11.001953 L 11 12 L 7 8 L 3 12 L 2 11.001953 L 6 7 L 2 3 L 3 2 z "
+ transform="translate(0,1038.3622)"
+ id="rect4168" />
+ <rect
+ ry="2"
+ rx="2"
+ y="1038.3622"
+ x="-16"
+ height="14"
+ width="14"
+ id="rect4176"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#888a85;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4178"
+ d="m -13.500077,1040.8622 c 9.000155,9.0001 9.000155,9.0001 9.000155,9.0001"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.41400003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.41400003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m -4.499922,1040.8622 c -9.000155,9.0001 -9.000155,9.0001 -9.000155,9.0001"
+ id="path4180"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4188"
+ d="m 2,1038.3622 c -1.108,0 -2,0.892 -2,2 l 0,10 c 0,1.108 0.892,2 2,2 l 10,0 c 1.108,0 2,-0.892 2,-2 l 0,-10 c 0,-1.108 -0.892,-2 -2,-2 l -10,0 z m 1,2 4,4 4,-4 1,1 -4,4 4,4.002 -1,0.998 -4,-4 -4,4 -1,-0.998 4,-4.002 -4,-4 1,-1 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4196);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-clear.selected@2x.png b/image/toolbar/14x14/x-filter-clear.selected@2x.png
new file mode 100644
index 0000000000..2e56edb081
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.selected@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-clear.svg b/image/toolbar/14x14/x-filter-clear.svg
new file mode 100644
index 0000000000..01e74d9c56
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear.svg
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-clear.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient4196"
+ x1="5"
+ y1="0"
+ x2="7.5"
+ y2="5"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="1.6067954"
+ inkscape:cy="5.163458"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="266"
+ inkscape:window-y="147"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#888a85;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 12 C 0 13.108 0.892 14 2 14 L 12 14 C 13.108 14 14 13.108 14 12 L 14 2 C 14 0.892 13.108 0 12 0 L 2 0 z M 3 2 L 7 6 L 11 2 L 12 3 L 8 7 L 12 11.001953 L 11 12 L 7 8 L 3 12 L 2 11.001953 L 6 7 L 2 3 L 3 2 z "
+ transform="translate(0,1038.3622)"
+ id="rect4168" />
+ <rect
+ ry="2"
+ rx="2"
+ y="1038.3622"
+ x="-16"
+ height="14"
+ width="14"
+ id="rect4176"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#888a85;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ inkscape:connector-curvature="0"
+ id="path4178"
+ d="m -13.500077,1040.8622 c 9.000155,9.0001 9.000155,9.0001 9.000155,9.0001"
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.41400003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.41400003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="m -4.499922,1040.8622 c -9.000155,9.0001 -9.000155,9.0001 -9.000155,9.0001"
+ id="path4180"
+ inkscape:connector-curvature="0" />
+ <path
+ id="path4188"
+ transform="translate(0,1038.3622)"
+ d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 12 C 0 13.108 0.892 14 2 14 L 12 14 C 13.108 14 14 13.108 14 12 L 14 2 C 14 0.892 13.108 0 12 0 L 2 0 z M 3 2 L 7 6 L 11 2 L 12 3 L 8 7 L 12 11.001953 L 11 12 L 7 8 L 3 12 L 2 11.001953 L 6 7 L 2 3 L 3 2 z "
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4196);fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate;fill-opacity:1" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-clear@2x.png b/image/toolbar/14x14/x-filter-clear@2x.png
new file mode 100644
index 0000000000..492948c900
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-clear@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-dropdown.png b/image/toolbar/14x14/x-filter-dropdown.png
new file mode 100644
index 0000000000..a994dccf52
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-dropdown.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-dropdown.svg b/image/toolbar/14x14/x-filter-dropdown.svg
new file mode 100644
index 0000000000..6346f18c3f
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-dropdown.svg
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-dropdown.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="0.61165353"
+ inkscape:cy="4.8071699"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="266"
+ inkscape:window-y="147"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ sodipodi:type="star"
+ style="fill:#555753;stroke:none"
+ id="path3912"
+ sodipodi:sides="3"
+ sodipodi:cx="116"
+ sodipodi:cy="6.0121169"
+ sodipodi:r1="0.22362253"
+ sodipodi:r2="0.97227186"
+ sodipodi:arg1="1.5707963"
+ sodipodi:arg2="2.6179939"
+ inkscape:flatsided="true"
+ inkscape:rounded="-3.469447e-18"
+ inkscape:randomized="0"
+ d="m 116,6.2357394 -0.19366,-0.3354338 0.38732,0 z"
+ transform="matrix(18.072651,0,0,10.43425,-2089.4275,982.04694)"
+ inkscape:transform-center-y="2.5363326"
+ inkscape:transform-center-x="0.018274753"
+ inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_dropdown.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-dropdown@2x.png b/image/toolbar/14x14/x-filter-dropdown@2x.png
new file mode 100644
index 0000000000..162e4c817e
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-dropdown@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.active.png b/image/toolbar/14x14/x-filter-matching-bookmark.active.png
new file mode 100644
index 0000000000..f4b3ef9560
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.active.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.active.svg b/image/toolbar/14x14/x-filter-matching-bookmark.active.svg
new file mode 100644
index 0000000000..1bcef4e69c
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.active.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-matching-bookmark.active.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient5566"
+ x1="17.5"
+ y1="1038.3622"
+ x2="20"
+ y2="1044.8622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12,0)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="3.9658628"
+ inkscape:cy="6.6686077"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="309"
+ inkscape:window-y="145"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:#c4a000;fill-rule:evenodd;stroke:#c4a000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 10,1039.3622 0,12.0001 -3,-3.4286 -3,3.4286 0,-12.0001 z"
+ id="path4953"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 4,1038.3613 c -0.552262,10e-5 -0.999945,0.4477 -1,1 l 0,12 c -6.63e-4,0.9232 1.143171,1.3543 1.751953,0.6602 L 7,1049.4512 l 2.248047,2.5703 c 0.608782,0.6941 1.752616,0.263 1.751953,-0.6602 l 0,-12 c -5.5e-5,-0.5523 -0.447738,-0.9999 -1,-1 z"
+ id="path5548"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.active@2x.png b/image/toolbar/14x14/x-filter-matching-bookmark.active@2x.png
new file mode 100644
index 0000000000..cf58e3866a
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.active@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.png b/image/toolbar/14x14/x-filter-matching-bookmark.png
new file mode 100644
index 0000000000..1b055d7d49
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.selected.png b/image/toolbar/14x14/x-filter-matching-bookmark.selected.png
new file mode 100644
index 0000000000..90a2cfabeb
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.selected.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.selected.svg b/image/toolbar/14x14/x-filter-matching-bookmark.selected.svg
new file mode 100644
index 0000000000..59a43a01df
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.selected.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-matching-bookmark.selected.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient5566"
+ x1="17.5"
+ y1="1038.3622"
+ x2="20"
+ y2="1044.8622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12,0)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="3.9658628"
+ inkscape:cy="6.6686077"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="452"
+ inkscape:window-y="269"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:#725000;fill-rule:evenodd;stroke:#725000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 10,1039.3622 0,12.0001 -3,-3.4286 -3,3.4286 0,-12.0001 z"
+ id="path4953"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 4,1038.3613 c -0.552262,10e-5 -0.999945,0.4477 -1,1 l 0,12 c -6.63e-4,0.9232 1.143171,1.3543 1.751953,0.6602 L 7,1049.4512 l 2.248047,2.5703 c 0.608782,0.6941 1.752616,0.263 1.751953,-0.6602 l 0,-12 c -5.5e-5,-0.5523 -0.447738,-0.9999 -1,-1 z"
+ id="path5548"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.selected@2x.png b/image/toolbar/14x14/x-filter-matching-bookmark.selected@2x.png
new file mode 100644
index 0000000000..209b1fa037
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.selected@2x.png
Binary files differ
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark.svg b/image/toolbar/14x14/x-filter-matching-bookmark.svg
new file mode 100644
index 0000000000..774970abeb
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark.svg
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="14"
+ height="14"
+ viewBox="0 0 14 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-matching-bookmark.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient5566"
+ x1="17.5"
+ y1="1038.3622"
+ x2="20"
+ y2="1044.8622"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(-12,0)" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="3.9658628"
+ inkscape:cy="6.6686077"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="369"
+ inkscape:window-y="214"
+ inkscape:window-maximized="0"
+ inkscape:object-nodes="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136"
+ spacingx="0.5"
+ spacingy="0.5" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <path
+ style="fill:#edd400;fill-rule:evenodd;stroke:#edd400;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 10,1039.3622 0,12.0001 -3,-3.4286 -3,3.4286 0,-12.0001 z"
+ id="path4953"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccc" />
+ <path
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient5566);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 4,1038.3613 c -0.552262,10e-5 -0.999945,0.4477 -1,1 l 0,12 c -6.63e-4,0.9232 1.143171,1.3543 1.751953,0.6602 L 7,1049.4512 l 2.248047,2.5703 c 0.608782,0.6941 1.752616,0.263 1.751953,-0.6602 l 0,-12 c -5.5e-5,-0.5523 -0.447738,-0.9999 -1,-1 z"
+ id="path5548"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccccccccc" />
+ </g>
+</svg>
diff --git a/image/toolbar/14x14/x-filter-matching-bookmark@2x.png b/image/toolbar/14x14/x-filter-matching-bookmark@2x.png
new file mode 100644
index 0000000000..2e5b6ead57
--- /dev/null
+++ b/image/toolbar/14x14/x-filter-matching-bookmark@2x.png
Binary files differ
diff --git a/image/toolbar/24x14/x-filter-apply.active.png b/image/toolbar/24x14/x-filter-apply.active.png
new file mode 100644
index 0000000000..4deb9125fc
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.active.png
Binary files differ
diff --git a/image/toolbar/24x14/x-filter-apply.active.svg b/image/toolbar/24x14/x-filter-apply.active.svg
new file mode 100644
index 0000000000..ad0b22fa68
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.active.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="14"
+ viewBox="0 0 24 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-apply.active.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4514"
+ id="linearGradient4165"
+ x1="8"
+ y1="0"
+ x2="15"
+ y2="14"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1038.3622)" />
+ <linearGradient
+ id="linearGradient4514">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="7.2735624"
+ inkscape:cy="7.0248958"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="233"
+ inkscape:window-y="101"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ ry="2"
+ rx="2"
+ y="1038.3622"
+ x="-26"
+ height="14"
+ width="24"
+ id="rect4179"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#3465a4;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <rect
+ ry="1"
+ rx="1"
+ y="1043.3622"
+ x="-22"
+ height="4"
+ width="14"
+ id="rect4181"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4183"
+ d="m -11,1042.362 0,6.0003 4.0000669,-3.0001 z"
+ style="fill:#eeeeec;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#3465a4;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 12 C 0 13.108 0.892 14 2 14 L 22 14 C 23.108 14 24 13.108 24 12 L 24 2 C 24 0.892 23.108 0 22 0 L 2 0 z M 15.042969 3 A 1.0000999 1.0000999 0 0 1 15.599609 3.2011719 L 19.599609 6.2011719 A 1.0000999 1.0000999 0 0 1 19.599609 7.8007812 L 15.599609 10.800781 A 1.0000999 1.0000999 0 0 1 14 10 L 14 9 L 5 9 C 4.446 9 4 8.554 4 8 L 4 6 C 4 5.446 4.446 5 5 5 L 14 5 L 14 4 A 1.0000999 1.0000999 0 0 1 14.943359 3.0019531 A 1.0000999 1.0000999 0 0 1 15.042969 3 z "
+ transform="translate(0,1038.3622)"
+ id="rect4147" />
+ <path
+ id="path4157"
+ d="m 2,1038.3622 c -1.108,0 -2,0.892 -2,2 l 0,10 c 0,1.108 0.892,2 2,2 l 20,0 c 1.108,0 2,-0.892 2,-2 l 0,-10 c 0,-1.108 -0.892,-2 -2,-2 l -20,0 z m 13.042969,3 a 1.0000999,1.0000999 0 0 1 0.55664,0.2012 l 4,3 a 1.0000999,1.0000999 0 0 1 0,1.5996 l -4,3 A 1.0000999,1.0000999 0 0 1 14,1048.3622 l 0,-1 -9,0 c -0.554,0 -1,-0.446 -1,-1 l 0,-2 c 0,-0.554 0.446,-1 1,-1 l 9,0 0,-1 a 1.0000999,1.0000999 0 0 1 0.943359,-0.998 1.0000999,1.0000999 0 0 1 0.09961,0 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4165);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/image/toolbar/24x14/x-filter-apply.active@2x.png b/image/toolbar/24x14/x-filter-apply.active@2x.png
new file mode 100644
index 0000000000..778e9d4d32
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.active@2x.png
Binary files differ
diff --git a/image/toolbar/24x14/x-filter-apply.png b/image/toolbar/24x14/x-filter-apply.png
new file mode 100644
index 0000000000..04b64eb352
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.png
Binary files differ
diff --git a/image/toolbar/24x14/x-filter-apply.selected.png b/image/toolbar/24x14/x-filter-apply.selected.png
new file mode 100644
index 0000000000..49885c132b
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.selected.png
Binary files differ
diff --git a/image/toolbar/24x14/x-filter-apply.selected.svg b/image/toolbar/24x14/x-filter-apply.selected.svg
new file mode 100644
index 0000000000..d1489ddaf3
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.selected.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="14"
+ viewBox="0 0 24 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-apply.selected.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4514"
+ id="linearGradient4165"
+ x1="8"
+ y1="0"
+ x2="15"
+ y2="14"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1038.3622)" />
+ <linearGradient
+ id="linearGradient4514">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="7.2735624"
+ inkscape:cy="7.0248958"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="233"
+ inkscape:window-y="101"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ ry="2"
+ rx="2"
+ y="1038.3622"
+ x="-26"
+ height="14"
+ width="24"
+ id="rect4179"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#3465a4;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <rect
+ ry="1"
+ rx="1"
+ y="1043.3622"
+ x="-22"
+ height="4"
+ width="14"
+ id="rect4181"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4183"
+ d="m -11,1042.362 0,6.0003 4.0000669,-3.0001 z"
+ style="fill:#eeeeec;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#204a87;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 12 C 0 13.108 0.892 14 2 14 L 22 14 C 23.108 14 24 13.108 24 12 L 24 2 C 24 0.892 23.108 0 22 0 L 2 0 z M 15.042969 3 A 1.0000999 1.0000999 0 0 1 15.599609 3.2011719 L 19.599609 6.2011719 A 1.0000999 1.0000999 0 0 1 19.599609 7.8007812 L 15.599609 10.800781 A 1.0000999 1.0000999 0 0 1 14 10 L 14 9 L 5 9 C 4.446 9 4 8.554 4 8 L 4 6 C 4 5.446 4.446 5 5 5 L 14 5 L 14 4 A 1.0000999 1.0000999 0 0 1 14.943359 3.0019531 A 1.0000999 1.0000999 0 0 1 15.042969 3 z "
+ transform="translate(0,1038.3622)"
+ id="rect4147" />
+ <path
+ id="path4157"
+ d="m 2,1038.3622 c -1.108,0 -2,0.892 -2,2 l 0,10 c 0,1.108 0.892,2 2,2 l 20,0 c 1.108,0 2,-0.892 2,-2 l 0,-10 c 0,-1.108 -0.892,-2 -2,-2 l -20,0 z m 13.042969,3 a 1.0000999,1.0000999 0 0 1 0.55664,0.2012 l 4,3 a 1.0000999,1.0000999 0 0 1 0,1.5996 l -4,3 A 1.0000999,1.0000999 0 0 1 14,1048.3622 l 0,-1 -9,0 c -0.554,0 -1,-0.446 -1,-1 l 0,-2 c 0,-0.554 0.446,-1 1,-1 l 9,0 0,-1 a 1.0000999,1.0000999 0 0 1 0.943359,-0.998 1.0000999,1.0000999 0 0 1 0.09961,0 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4165);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/image/toolbar/24x14/x-filter-apply.selected@2x.png b/image/toolbar/24x14/x-filter-apply.selected@2x.png
new file mode 100644
index 0000000000..225e529e7f
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.selected@2x.png
Binary files differ
diff --git a/image/toolbar/24x14/x-filter-apply.svg b/image/toolbar/24x14/x-filter-apply.svg
new file mode 100644
index 0000000000..d795e46c03
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply.svg
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="14"
+ viewBox="0 0 24 14"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-apply.svg"
+ inkscape:export-filename="/Users/gerald/Development/wireshark/image/x-filter-apply.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#Wireshark_highlight"
+ id="linearGradient4165"
+ x1="8"
+ y1="0"
+ x2="15"
+ y2="14"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="translate(0,1038.3622)" />
+ <linearGradient
+ id="Wireshark_highlight">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop4516" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop4518" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="26.663818"
+ inkscape:cx="6.45922"
+ inkscape:cy="7.3249278"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ showguides="true"
+ inkscape:guide-bbox="true"
+ inkscape:window-width="1401"
+ inkscape:window-height="817"
+ inkscape:window-x="233"
+ inkscape:window-y="101"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4136" />
+ <sodipodi:guide
+ position="7,8"
+ orientation="0,1"
+ id="guide4140" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1038.3622)">
+ <rect
+ ry="2"
+ rx="2"
+ y="1038.3622"
+ x="-26"
+ height="14"
+ width="24"
+ id="rect4179"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#3465a4;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <rect
+ ry="1"
+ rx="1"
+ y="1043.3622"
+ x="-22"
+ height="4"
+ width="14"
+ id="rect4181"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#eeeeec;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path4183"
+ d="m -11,1042.362 0,6.0003 4.0000669,-3.0001 z"
+ style="fill:#eeeeec;fill-rule:evenodd;stroke:#eeeeec;stroke-width:1.99999988;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#729fcf;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate;fill-opacity:1"
+ d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 12 C 0 13.108 0.892 14 2 14 L 22 14 C 23.108 14 24 13.108 24 12 L 24 2 C 24 0.892 23.108 0 22 0 L 2 0 z M 15.042969 3 A 1.0000999 1.0000999 0 0 1 15.599609 3.2011719 L 19.599609 6.2011719 A 1.0000999 1.0000999 0 0 1 19.599609 7.8007812 L 15.599609 10.800781 A 1.0000999 1.0000999 0 0 1 14 10 L 14 9 L 5 9 C 4.446 9 4 8.554 4 8 L 4 6 C 4 5.446 4.446 5 5 5 L 14 5 L 14 4 A 1.0000999 1.0000999 0 0 1 14.943359 3.0019531 A 1.0000999 1.0000999 0 0 1 15.042969 3 z "
+ id="rect4147"
+ transform="translate(0,1038.3622)" />
+ <path
+ id="path4157"
+ d="m 2,1038.3622 c -1.108,0 -2,0.892 -2,2 l 0,10 c 0,1.108 0.892,2 2,2 l 20,0 c 1.108,0 2,-0.892 2,-2 l 0,-10 c 0,-1.108 -0.892,-2 -2,-2 l -20,0 z m 13.042969,3 a 1.0000999,1.0000999 0 0 1 0.55664,0.2012 l 4,3 a 1.0000999,1.0000999 0 0 1 0,1.5996 l -4,3 A 1.0000999,1.0000999 0 0 1 14,1048.3622 l 0,-1 -9,0 c -0.554,0 -1,-0.446 -1,-1 l 0,-2 c 0,-0.554 0.446,-1 1,-1 l 9,0 0,-1 a 1.0000999,1.0000999 0 0 1 0.943359,-0.998 1.0000999,1.0000999 0 0 1 0.09961,0 z"
+ style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#linearGradient4165);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/image/toolbar/24x14/x-filter-apply@2x.png b/image/toolbar/24x14/x-filter-apply@2x.png
new file mode 100644
index 0000000000..6ad482cc44
--- /dev/null
+++ b/image/toolbar/24x14/x-filter-apply@2x.png
Binary files differ
diff --git a/image/toolbar/svg-to-png.sh b/image/toolbar/svg-to-png.sh
index 6796aad8d7..cf78ac9587 100755
--- a/image/toolbar/svg-to-png.sh
+++ b/image/toolbar/svg-to-png.sh
@@ -62,6 +62,19 @@ ICONS="
x-capture-start
x-capture-stop
x-colorize-packets
+ x-filter-apply
+ x-filter-apply.active
+ x-filter-apply.selected
+ x-filter-bookmark
+ x-filter-bookmark.active
+ x-filter-bookmark.selected
+ x-filter-clear
+ x-filter-clear.active
+ x-filter-clear.selected
+ x-filter-dropdown
+ x-filter-matching-bookmark
+ x-filter-matching-bookmark.active
+ x-filter-matching-bookmark.selected
x-resize-columns
x-stay-last
zoom-in
@@ -71,15 +84,18 @@ ICONS="
QRC_FILES=""
-# XXX Add support for 16 pixel icons.
-for SIZE in 12 16 24 ; do
- SIZE_DIR=${SIZE}x${SIZE}
+for SIZE in 12x12 14x14 16x16 24x14 24x14 ; do
+ WIDTH=${SIZE/x*/}
+ HEIGHT=${SIZE/*x/}
+ SIZE_DIR=${SIZE}
- TWO_X_SIZE=`expr $SIZE \* 2`
- ONE_X_ARGS="--export-width=${SIZE} --export-height=${SIZE}"
- TWO_X_ARGS="--export-width=${TWO_X_SIZE} --export-height=${TWO_X_SIZE}"
+ TWO_X_WIDTH=`expr $WIDTH \* 2`
+ TWO_X_HEIGHT=`expr $HEIGHT \* 2`
+ ONE_X_ARGS="--export-width=${WIDTH} --export-height=${HEIGHT}"
+ TWO_X_ARGS="--export-width=${TWO_X_WIDTH} --export-height=${TWO_X_HEIGHT}"
- cd $SIZE_DIR
+ echo "Converting $SIZE_DIR"
+ cd $SIZE_DIR || exit 1
for ICON in $ICONS ; do
set_source_svgs $ICON
@@ -94,12 +110,12 @@ for SIZE in 12 16 24 ; do
if [ $ONE_X_SVG -nt $ONE_X_PNG ] ; then
inkscape $COMMON_ARGS $ONE_X_ARGS \
- --file=$ONE_X_SVG --export-png=$ONE_X_PNG || exit 1
+ --file="$PWD/$ONE_X_SVG" --export-png="$PWD/$ONE_X_PNG" || exit 1
fi
if [ $TWO_X_SVG -nt $TWO_X_PNG ] ; then
inkscape $COMMON_ARGS $TWO_X_ARGS \
- --file=$TWO_X_SVG --export-png=$TWO_X_PNG || exit 1
+ --file="$PWD/$TWO_X_SVG" --export-png="$PWD/$TWO_X_PNG" || exit 1
fi
QRC_FILES="${QRC_FILES} ${SIZE_DIR}/${ONE_X_PNG} ${SIZE_DIR}/${TWO_X_PNG}"
diff --git a/image/toolbar/svg/x-filter-apply.svg b/image/toolbar/svg/x-filter-apply.svg
new file mode 100644
index 0000000000..defbcf4153
--- /dev/null
+++ b/image/toolbar/svg/x-filter-apply.svg
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="32"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.91 r13725"
+ sodipodi:docname="x-filter-apply.svg"
+ inkscape:export-filename="/Users/gcombs/Development/wireshark/image/x-filter-apply@2x.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ <linearGradient
+ id="linearGradient5075">
+ <stop
+ style="stop-color:#fffdff;stop-opacity:0.15753424;"
+ offset="0"
+ id="stop5077" />
+ <stop
+ style="stop-color:#ffffff;stop-opacity:0;"
+ offset="1"
+ id="stop5079" />
+ </linearGradient>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="12.300712"
+ inkscape:cx="23.003821"
+ inkscape:cy="16"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1299"
+ inkscape:window-height="782"
+ inkscape:window-x="85"
+ inkscape:window-y="746"
+ inkscape:window-maximized="0"
+ showguides="true"
+ inkscape:guide-bbox="true">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2983"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="13,22"
+ id="guide4514" />
+ <sodipodi:guide
+ orientation="0,1"
+ position="9,12"
+ id="guide4516" />
+ <sodipodi:guide
+ orientation="1,0"
+ position="42,12"
+ id="guide4518" />
+ <sodipodi:guide
+ position="6,18"
+ orientation="1,0"
+ id="guide4739" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1020.3622)">
+ <path
+ style="opacity:1;fill:#3465a4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+ d="M 8 0 C 3.568 0 0 3.568 0 8 L 0 24 C 0 28.432 3.568 32 8 32 L 40 32 C 44.432 32 48 28.432 48 24 L 48 8 C 48 3.568 44.432 0 40 0 L 8 0 z M 32.984375 5.0019531 C 33.254691 4.9972531 33.515381 5.1022686 33.707031 5.2929688 L 43.707031 15.292969 C 44.097424 15.683469 44.097424 16.316531 43.707031 16.707031 L 33.707031 26.707031 C 33.077013 27.336631 32.000288 26.8907 32 26 L 32 20 L 8 20 C 6.892 20 6 19.108 6 18 L 6 14 C 6 12.892 6.892 12 8 12 L 32 12 L 32 6 C 32.001078 5.4546 32.439002 5.0119531 32.984375 5.0019531 z "
+ transform="translate(0,1020.3622)"
+ id="rect6175" />
+ <rect
+ ry="8"
+ rx="8"
+ y="1020.3622"
+ x="-54"
+ height="32.000019"
+ width="48"
+ id="rect6183"
+ style="opacity:1;fill:#3465a4;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <rect
+ ry="2"
+ rx="2"
+ y="1032.3622"
+ x="-48"
+ height="8"
+ width="28"
+ id="rect6185"
+ style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ <path
+ sodipodi:nodetypes="cccc"
+ inkscape:connector-curvature="0"
+ id="path6187"
+ d="m -12,1036.3622 -10,-10 0,20 z"
+ style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+ </g>
+</svg>
diff --git a/image/toolbar/svg/x-filter-bookmark.svg b/image/toolbar/svg/x-filter-bookmark.svg
new file mode 100644
index 0000000000..9f4fb36d32
--- /dev/null
+++ b/image/toolbar/svg/x-filter-bookmark.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="24"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ sodipodi:docname="x-filter-bookmark.svg">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="24.166667"
+ inkscape:cx="11.4"
+ inkscape:cy="12"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1108"
+ inkscape:window-height="757"
+ inkscape:window-x="245"
+ inkscape:window-y="766"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2983"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1028.3622)">
+ <path
+ style="fill:#888a85;stroke:#888a85;stroke-width:1.4376204;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 2.7188102,1031.081 c 0,18.5624 0,18.5624 0,18.5624 l 6.8522067,-5.3035 5.7101731,5.3035 0,-18.5624 z"
+ id="path2985"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/image/toolbar/svg/x-filter-clear.svg b/image/toolbar/svg/x-filter-clear.svg
new file mode 100644
index 0000000000..9f4fb36d32
--- /dev/null
+++ b/image/toolbar/svg/x-filter-clear.svg
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="24"
+ height="24"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.2 r9819"
+ sodipodi:docname="x-filter-bookmark.svg">
+ <defs
+ id="defs4">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 526.18109 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+ id="perspective10" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="24.166667"
+ inkscape:cx="11.4"
+ inkscape:cy="12"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:window-width="1108"
+ inkscape:window-height="757"
+ inkscape:window-x="245"
+ inkscape:window-y="766"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ type="xygrid"
+ id="grid2983"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,-1028.3622)">
+ <path
+ style="fill:#888a85;stroke:#888a85;stroke-width:1.4376204;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ d="m 2.7188102,1031.081 c 0,18.5624 0,18.5624 0,18.5624 l 6.8522067,-5.3035 5.7101731,5.3035 0,-18.5624 z"
+ id="path2985"
+ inkscape:connector-curvature="0" />
+ </g>
+</svg>
diff --git a/ui/qt/CMakeLists.txt b/ui/qt/CMakeLists.txt
index b396262dc3..2f52a35f66 100644
--- a/ui/qt/CMakeLists.txt
+++ b/ui/qt/CMakeLists.txt
@@ -393,7 +393,6 @@ endif()
set(WIRESHARK_QT_QRC
../../image/about.qrc
- ../../image/display_filter.qrc
../../image/languages/languages.qrc
../../image/layout.qrc
../../image/status.qrc
diff --git a/ui/qt/Makefile.common b/ui/qt/Makefile.common
index df7a11e72b..161bf17715 100644
--- a/ui/qt/Makefile.common
+++ b/ui/qt/Makefile.common
@@ -344,7 +344,6 @@ MOC_SRC = $(MOC_HDRS:.h=.moc.cpp)
# Should QRC_FILES or QRC_SRC depend on QRC_IMAGES?
QRC_FILES = \
../../image/about.qrc \
- ../../image/display_filter.qrc \
../../image/languages/languages.qrc \
../../image/layout.qrc \
../../image/status.qrc \
diff --git a/ui/qt/Wireshark.pro b/ui/qt/Wireshark.pro
index fc870daddb..6e23f2afda 100644
--- a/ui/qt/Wireshark.pro
+++ b/ui/qt/Wireshark.pro
@@ -556,7 +556,6 @@ win32 {
RESOURCES += \
../../image/about.qrc \
- ../../image/display_filter.qrc \
../../image/languages/languages.qrc \
../../image/layout.qrc \
../../image/status.qrc \
diff --git a/ui/qt/capture_filter_combo.cpp b/ui/qt/capture_filter_combo.cpp
index 9bc21a9471..23b29d3eeb 100644
--- a/ui/qt/capture_filter_combo.cpp
+++ b/ui/qt/capture_filter_combo.cpp
@@ -66,7 +66,7 @@ CaptureFilterCombo::CaptureFilterCombo(QWidget *parent) :
" }"
"QComboBox::down-arrow {"
- " image: url(:/dfilter/dfilter_dropdown.png);"
+ " image: url(:/icons/toolbar/14x14/x-filter-dropdown.png);"
" }"
"QComboBox::down-arrow:on { /* shift the arrow when popup is open */"
diff --git a/ui/qt/display_filter_16.svg b/ui/qt/display_filter_16.svg
deleted file mode 100644
index 3cb039d32b..0000000000
--- a/ui/qt/display_filter_16.svg
+++ /dev/null
@@ -1,901 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="256"
- height="16"
- id="svg2"
- version="1.1"
- inkscape:version="0.48.2 r9819"
- sodipodi:docname="display_filter_16.svg"
- inkscape:export-filename="/Users/gerald/Development/wxshark/image/toolbar/capture_start_24.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="4.3710938"
- inkscape:cx="92.435027"
- inkscape:cy="10.723041"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="true"
- inkscape:window-width="1280"
- inkscape:window-height="787"
- inkscape:window-x="-5"
- inkscape:window-y="865"
- inkscape:window-maximized="0"
- objecttolerance="2"
- guidetolerance="5"
- gridtolerance="4">
- <inkscape:grid
- type="xygrid"
- id="grid2812"
- empspacing="4"
- visible="true"
- enabled="true"
- snapvisiblegridlinesonly="true"
- spacingx="4px"
- spacingy="4px"
- color="#7fffff"
- opacity="0.49803922"
- empcolor="#007fff"
- empopacity="0.49803922" />
- </sodipodi:namedview>
- <defs
- id="defs4">
- <marker
- inkscape:stockid="TriangleInS"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="TriangleInS"
- style="overflow:visible">
- <path
- id="path4487"
- d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
- transform="scale(-0.2)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInM"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="TriangleInM"
- style="overflow:visible">
- <path
- id="path4484"
- d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
- transform="scale(-0.4)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Send"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow1Send"
- style="overflow:visible;">
- <path
- id="path4362"
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
- transform="scale(0.2) rotate(180) translate(6,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow2Send"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow2Send"
- style="overflow:visible;">
- <path
- id="path4380"
- style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
- d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
- transform="scale(0.3) rotate(180) translate(-2.3,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow2Mstart"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow2Mstart"
- style="overflow:visible">
- <path
- id="path4371"
- style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
- d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
- transform="scale(0.6) translate(0,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow2Lstart"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow2Lstart"
- style="overflow:visible">
- <path
- id="path4365"
- style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round"
- d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
- transform="scale(1.1) translate(1,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Lend"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow1Lend"
- style="overflow:visible;">
- <path
- id="path4350"
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
- transform="scale(0.8) rotate(180) translate(12.5,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Lstart"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow1Lstart"
- style="overflow:visible">
- <path
- id="path4347"
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
- transform="scale(0.8) translate(12.5,0)" />
- </marker>
- <linearGradient
- id="linearGradient3855">
- <stop
- style="stop-color:#ffffff;stop-opacity:0.77083331;"
- offset="0"
- id="stop3857" />
- <stop
- style="stop-color:#ffffff;stop-opacity:0;"
- offset="1"
- id="stop3859" />
- </linearGradient>
- <linearGradient
- id="linearGradient3622">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop3624" />
- <stop
- style="stop-color:#999999;stop-opacity:1;"
- offset="1"
- id="stop3626" />
- </linearGradient>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3622"
- id="radialGradient3617"
- cx="11.478261"
- cy="10.956548"
- fx="11.478261"
- fy="10.956548"
- r="9.391304"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.5,4.4485238e-8,-4.4485238e-8,1.5,-5.1521738,-5.1521876)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3861"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,5.8229123,4.7348906)" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3878"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,5.8229123,4.7348906)"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3881"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,29.822912,1033.0971)"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3888"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,29.822912,1033.0971)"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3891"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,29.822912,1033.0971)"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3622"
- id="radialGradient3893"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(1.5,4.4485238e-8,-4.4485238e-8,1.5,-5.1521738,-5.1521876)"
- cx="11.478261"
- cy="10.956548"
- fx="11.478261"
- fy="10.956548"
- r="9.391304" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3895"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,5.8229123,4.7348906)"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3898"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,5.8229123,1033.0971)"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12" />
- <radialGradient
- inkscape:collect="always"
- xlink:href="#linearGradient3855"
- id="radialGradient3906"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0.39585463,0.00788241,-0.00767096,0.38523527,53.822912,1033.0971)"
- cx="10.383852"
- cy="7.6142039"
- fx="10.383852"
- fy="7.6142039"
- r="12" />
- <marker
- inkscape:stockid="TriangleInSx"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="TriangleInSx"
- style="overflow:visible">
- <path
- id="path2902"
- d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
- style="marker-start:none;stroke:#555753;stroke-width:1.0pt;fill:#555753;fill-rule:evenodd"
- transform="scale(-0.2)" />
- </marker>
- <marker
- inkscape:stockid="TriangleInSxF"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="TriangleInSxF"
- style="overflow:visible">
- <path
- id="path3031"
- d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z "
- style="fill-rule:evenodd;marker-start:none;stroke:#0066cc;stroke-width:1.0pt;fill:#0066cc"
- transform="scale(-0.2)" />
- </marker>
- </defs>
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(0,-1036.3622)">
- <flowRoot
- xml:space="preserve"
- id="flowRoot2835"
- style="font-size:1.5px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- transform="matrix(1.0165643,0,0,1.0165643,0.3185175,1020.5936)"><flowRegion
- id="flowRegion2837"><rect
- id="rect2839"
- width="36"
- height="6"
- x="-11.868164"
- y="32.4095"
- style="font-size:1.5px;text-align:center;text-anchor:middle" /></flowRegion><flowPara
- id="flowPara3648">Clear Edit</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot3619"
- style="font-size:1.5px;font-style:normal;font-weight:normal;text-align:start;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- transform="translate(23.868164,983.9527)"><flowRegion
- id="flowRegion3621"><rect
- id="rect3623"
- width="36"
- height="6"
- x="-11.868164"
- y="32.4095"
- style="font-size:1.5px;text-align:start;text-anchor:start" /></flowRegion><flowPara
- id="flowPara3627">To export: Select an entire 16x16 square,</flowPara><flowPara
- id="flowPara3631">including its invisible border.</flowPara></flowRoot> <g
- id="g3196"
- style="stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_erase_normal.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- inkscape:connector-curvature="0"
- id="path3192"
- d="m 2.5,1038.8622 c 11,11 11,11 11,11"
- style="fill:none;stroke:#555753;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
- <path
- style="fill:none;stroke:#555753;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
- d="m 13.5,1038.8622 c -11,11 -11,11 -11,11"
- id="path3194"
- inkscape:connector-curvature="0" />
- </g>
- <flowRoot
- transform="matrix(1.0165643,0,0,1.0165643,114.21945,1021.2438)"
- style="font-size:1.5px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- id="flowRoot3968"
- xml:space="preserve"><flowRegion
- id="flowRegion3970"><rect
- style="font-size:1.5px;text-align:center;text-anchor:middle"
- y="32.4095"
- x="-11.868164"
- height="6"
- width="36"
- id="rect3972" /></flowRegion><flowPara
- id="flowPara3974">Refresh</flowPara></flowRoot> <path
- sodipodi:type="arc"
- style="fill:none;stroke:#555753;stroke-width:2.42877483;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-mid:none;marker-end:url(#TriangleInSx)"
- id="path3976"
- sodipodi:cx="39.89164"
- sodipodi:cy="8.8390093"
- sodipodi:rx="4.8761611"
- sodipodi:ry="4.8390093"
- d="M 44.767801,8.8390093 A 4.8761611,4.8390093 0 1 1 39.89164,4"
- transform="matrix(0.82031745,0,0,0.82661548,87.276192,1037.0557)"
- sodipodi:start="0"
- sodipodi:end="4.712389"
- sodipodi:open="true"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_refresh_normal.png"
- inkscape:export-xdpi="16.560936"
- inkscape:export-ydpi="16.560936" />
- <g
- style="stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke:#ff3300"
- id="g3978"
- transform="translate(16,0)"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_erase_active.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- style="fill:none;stroke:#ff3300;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 2.5,1038.8622 c 11,11 11,11 11,11"
- id="path3980"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path3982"
- d="m 13.5,1038.8622 c -11,11 -11,11 -11,11"
- style="fill:none;stroke:#ff3300;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </g>
- <path
- sodipodi:open="true"
- sodipodi:end="4.712389"
- sodipodi:start="0"
- transform="matrix(0.82031745,0,0,0.82661548,103.27619,1037.0557)"
- d="M 44.767801,8.8390093 A 4.8761611,4.8390093 0 1 1 39.89164,4"
- sodipodi:ry="4.8390093"
- sodipodi:rx="4.8761611"
- sodipodi:cy="8.8390093"
- sodipodi:cx="39.89164"
- id="path2989"
- style="fill:none;stroke:#0066cc;stroke-width:2.42877483;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-mid:none;marker-end:url(#TriangleInSxF)"
- sodipodi:type="arc"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_refresh_active.png"
- inkscape:export-xdpi="16.560936"
- inkscape:export-ydpi="16.560936" />
- <rect
- style="fill:none;stroke:none;stroke-width:2;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="rect3048"
- width="16"
- height="16"
- x="0"
- y="0"
- transform="translate(0,1036.3622)"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_erase_normal.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- y="1036.3622"
- x="16"
- height="16"
- width="16"
- id="rect3050"
- style="fill:none;stroke:none"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_erase_active.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- style="fill:none;stroke:none"
- id="rect3052"
- width="16"
- height="16"
- x="112"
- y="1036.3622"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_refresh_active.png"
- inkscape:export-xdpi="16.560936"
- inkscape:export-ydpi="16.560936" />
- <rect
- y="1036.3622"
- x="128"
- height="16"
- width="16"
- id="rect3054"
- style="fill:none;stroke:none"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_refresh_active.png"
- inkscape:export-xdpi="16.560936"
- inkscape:export-ydpi="16.560936" />
- <rect
- style="fill:none;stroke:none"
- id="rect3056"
- width="16"
- height="16"
- x="48"
- y="1036.3622"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_apply_normal.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- y="1036.3622"
- x="64"
- height="16"
- width="16"
- id="rect3058"
- style="fill:none;stroke:none"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_apply_active.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot3060"
- style="font-size:1.5px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- transform="matrix(1.0165643,0,0,1.0165643,50.219446,1021.2438)"><flowRegion
- id="flowRegion3062"><rect
- id="rect3064"
- width="36"
- height="6"
- x="-11.868164"
- y="32.4095"
- style="font-size:1.5px;text-align:center;text-anchor:middle" /></flowRegion><flowPara
- id="flowPara3066">Apply</flowPara></flowRoot> <g
- id="g3902"
- style="stroke:#555753"
- transform="translate(-16,0)"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_apply_normal.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- inkscape:connector-curvature="0"
- id="path3068"
- d="m 66,1044.4492 c 10.17421,0 10.17421,0 10.17421,0"
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 75,1041.8621 c 2.5,2.5 2.5,2.5 2.5,2.5"
- id="path3898"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path3900"
- d="m 74.999996,1046.8622 c 2.5,-2.5 2.5,-2.5 2.5,-2.5"
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </g>
- <g
- id="g3907"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_apply_active.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <path
- style="fill:none;stroke:#0066cc;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 66,1044.4492 c 10.17421,0 10.17421,0 10.17421,0"
- id="path3909"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path3911"
- d="m 75,1041.8621 c 2.5,2.5 2.5,2.5 2.5,2.5"
- style="fill:none;stroke:#0066cc;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:none;stroke:#0066cc;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 74.999996,1046.8622 c 2.5,-2.5 2.5,-2.5 2.5,-2.5"
- id="path3913"
- inkscape:connector-curvature="0" />
- </g>
- <path
- sodipodi:type="star"
- style="fill:none;stroke:#555753;stroke-width:0.72866327;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path3069"
- sodipodi:sides="5"
- sodipodi:cx="104"
- sodipodi:cy="8"
- sodipodi:r1="4.9833269"
- sodipodi:r2="2.2424972"
- sodipodi:arg1="-1.5707963"
- sodipodi:arg2="-0.9424778"
- inkscape:flatsided="false"
- inkscape:rounded="-3.469447e-18"
- inkscape:randomized="0"
- d="m 104,3.0166731 1.31811,3.1691085 3.42132,0.2742858 -2.60669,2.2329023 0.79639,3.3386263 L 104,10.242497 l -2.92913,1.789099 0.79639,-3.3386262 -2.606685,-2.2329026 3.421315,-0.2742855 z"
- transform="matrix(1.3714742,0,0,1.3732785,25.366679,1034.1395)"
- inkscape:transform-center-y="-0.65350952"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_favorite.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_favorite.png"
- style="fill:none;stroke:none"
- id="rect3899"
- width="16"
- height="16"
- x="160"
- y="1036.3622" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot3901"
- style="font-size:1.5px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- transform="matrix(1.0165643,0,0,1.0165643,160.21945,1021.2438)"><flowRegion
- id="flowRegion3903"><rect
- id="rect3905"
- width="36"
- height="6"
- x="-11.868164"
- y="32.4095"
- style="font-size:1.5px;text-align:center;text-anchor:middle" /></flowRegion><flowPara
- id="flowPara3907">Favorites /</flowPara><flowPara
- id="flowPara3909">Manage filters</flowPara></flowRoot> <path
- sodipodi:type="star"
- style="fill:#555753;stroke:none"
- id="path3912"
- sodipodi:sides="3"
- sodipodi:cx="116"
- sodipodi:cy="6.0121169"
- sodipodi:r1="0.22362253"
- sodipodi:r2="0.97227186"
- sodipodi:arg1="1.5707963"
- sodipodi:arg2="2.6179939"
- inkscape:flatsided="true"
- inkscape:rounded="-3.469447e-18"
- inkscape:randomized="0"
- d="m 116,6.2357394 -0.19366,-0.3354338 0.38732,0 z"
- transform="matrix(18.072651,0,0,10.43425,-1864.4275,981.79694)"
- inkscape:transform-center-y="2.5363326"
- inkscape:transform-center-x="0.018274753"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_dropdown.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- y="1036.3622"
- x="224"
- height="16"
- width="16"
- id="rect3914"
- style="fill:none;stroke:none"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_dropdown.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <flowRoot
- xml:space="preserve"
- id="flowRoot3916"
- style="font-size:1.5px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
- transform="matrix(1.0165643,0,0,1.0165643,226.21945,1021.2438)"><flowRegion
- id="flowRegion3918"><rect
- id="rect3920"
- width="36"
- height="6"
- x="-11.868164"
- y="32.4095"
- style="font-size:1.5px;text-align:center;text-anchor:middle" /></flowRegion><flowPara
- id="flowPara3922">Combo Dropdown</flowPara><flowPara
- id="flowPara3924">Arrow</flowPara></flowRoot> <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_erase_selected.png"
- transform="translate(32,0)"
- id="g3079"
- style="stroke:#990000;stroke-width:2;stroke-miterlimit:4;stroke-dasharray:none">
- <path
- inkscape:connector-curvature="0"
- id="path3081"
- d="m 2.5,1038.8622 c 11,11 11,11 11,11"
- style="fill:none;stroke:#990000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:none;stroke:#990000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 13.5,1038.8622 c -11,11 -11,11 -11,11"
- id="path3083"
- inkscape:connector-curvature="0" />
- </g>
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_erase_selected.png"
- style="fill:none;stroke:none"
- id="rect3085"
- width="16"
- height="16"
- x="32"
- y="1036.3622" />
- <path
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_bookmark_pressed.png"
- inkscape:transform-center-y="-0.65350952"
- transform="matrix(1.3714742,0,0,1.3732785,57.366679,1034.1395)"
- d="m 104,3.0166731 1.31811,3.1691085 3.42132,0.2742858 -2.60669,2.2329023 0.79639,3.3386263 L 104,10.242497 l -2.92913,1.789099 0.79639,-3.3386262 -2.606685,-2.2329026 3.421315,-0.2742855 z"
- inkscape:randomized="0"
- inkscape:rounded="-3.469447e-18"
- inkscape:flatsided="false"
- sodipodi:arg2="-0.9424778"
- sodipodi:arg1="-1.5707963"
- sodipodi:r2="2.2424972"
- sodipodi:r1="4.9833269"
- sodipodi:cy="8"
- sodipodi:cx="104"
- sodipodi:sides="5"
- id="path3337"
- style="fill:none;stroke:#fce94f;stroke-width:0.72866327;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="star" />
- <rect
- y="1036.3622"
- x="192"
- height="16"
- width="16"
- id="rect3339"
- style="fill:none;stroke:none"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_bookmark_pressed.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <path
- sodipodi:type="star"
- style="fill:none;stroke:#c4a000;stroke-width:0.72866327;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- id="path3085"
- sodipodi:sides="5"
- sodipodi:cx="104"
- sodipodi:cy="8"
- sodipodi:r1="4.9833269"
- sodipodi:r2="2.2424972"
- sodipodi:arg1="-1.5707963"
- sodipodi:arg2="-0.9424778"
- inkscape:flatsided="false"
- inkscape:rounded="-3.469447e-18"
- inkscape:randomized="0"
- d="m 104,3.0166731 1.31811,3.1691085 3.42132,0.2742858 -2.60669,2.2329023 0.79639,3.3386263 L 104,10.242497 l -2.92913,1.789099 0.79639,-3.3386262 -2.606685,-2.2329026 3.421315,-0.2742855 z"
- transform="matrix(1.3714742,0,0,1.3732785,41.366679,1034.1395)"
- inkscape:transform-center-y="-0.65350952"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_bookmark_hover.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90" />
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_bookmark_hover.png"
- style="fill:none;stroke:none"
- id="rect3087"
- width="16"
- height="16"
- x="176"
- y="1036.3622" />
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_apply_pressed.png"
- style="fill:none;stroke:none"
- id="rect3088"
- width="16"
- height="16"
- x="80"
- y="1036.3622" />
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_apply_pressed.png"
- id="g3090"
- transform="translate(16,0)"
- style="fill:#0083d7;stroke:#0099ff">
- <path
- inkscape:connector-curvature="0"
- id="path3092"
- d="m 66,1044.4492 c 10.17421,0 10.17421,0 10.17421,0"
- style="fill:#0083d7;stroke:#0099ff;stroke-width:1.99999988000000006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:#0083d7;stroke:#0099ff;stroke-width:1.99999988000000006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 75,1041.8621 c 2.5,2.5 2.5,2.5 2.5,2.5"
- id="path3094"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path3096"
- d="m 74.999996,1046.8622 c 2.5,-2.5 2.5,-2.5 2.5,-2.5"
- style="fill:#0083d7;stroke:#0099ff;stroke-width:1.99999988000000006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </g>
- <path
- inkscape:export-ydpi="16.560936"
- inkscape:export-xdpi="16.560936"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_refresh_active.png"
- sodipodi:type="arc"
- style="fill:none;stroke:#0099ff;stroke-width:2.42877483;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-mid:none;marker-end:url(#TriangleInSxF)"
- id="path3098"
- sodipodi:cx="39.89164"
- sodipodi:cy="8.8390093"
- sodipodi:rx="4.8761611"
- sodipodi:ry="4.8390093"
- d="M 44.767801,8.8390093 A 4.8761611,4.8390093 0 1 1 39.89164,4"
- transform="matrix(0.82031745,0,0,0.82661548,119.27619,1037.0557)"
- sodipodi:start="0"
- sodipodi:end="4.712389"
- sodipodi:open="true" />
- <rect
- inkscape:export-ydpi="16.560936"
- inkscape:export-xdpi="16.560936"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_refresh_active.png"
- style="fill:none;stroke:none"
- id="rect3100"
- width="16"
- height="16"
- x="144"
- y="1036.3622" />
- <path
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/image/dfilter_bookmark_disabled.png"
- inkscape:transform-center-y="-0.65350952"
- transform="matrix(1.3714742,0,0,1.3732785,73.366679,1034.1395)"
- d="m 104,3.0166731 1.31811,3.1691085 3.42132,0.2742858 -2.60669,2.2329023 0.79639,3.3386263 L 104,10.242497 l -2.92913,1.789099 0.79639,-3.3386262 -2.606685,-2.2329026 3.421315,-0.2742855 z"
- inkscape:randomized="0"
- inkscape:rounded="-3.469447e-18"
- inkscape:flatsided="false"
- sodipodi:arg2="-0.9424778"
- sodipodi:arg1="-1.5707963"
- sodipodi:r2="2.2424972"
- sodipodi:r1="4.9833269"
- sodipodi:cy="8"
- sodipodi:cx="104"
- sodipodi:sides="5"
- id="path3314"
- style="fill:none;stroke:#babdb6;stroke-width:0.72866326999999997;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- sodipodi:type="star" />
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/qt/dfilter_apply_normal.png"
- transform="translate(-16,0)"
- style="stroke:#555753"
- id="g3316">
- <path
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 66,1044.4492 c 10.17421,0 10.17421,0 10.17421,0"
- id="path3318"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path3320"
- d="m 75,1041.8621 c 2.5,2.5 2.5,2.5 2.5,2.5"
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 74.999996,1046.8622 c 2.5,-2.5 2.5,-2.5 2.5,-2.5"
- id="path3322"
- inkscape:connector-curvature="0" />
- </g>
- <rect
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/image/dfilter_apply_disabled.png"
- y="1036.3622"
- x="96"
- height="16"
- width="16"
- id="rect3324"
- style="fill:none;stroke:none" />
- <g
- inkscape:export-ydpi="90"
- inkscape:export-xdpi="90"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/image/dfilter_apply_disabled.png"
- style="stroke:#555753"
- id="g3326"
- transform="translate(32,0)">
- <path
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 66,1044.4492 c 10.17421,0 10.17421,0 10.17421,0"
- id="path3328"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path3330"
- d="m 75,1041.8621 c 2.5,2.5 2.5,2.5 2.5,2.5"
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:none;stroke:#555753;stroke-width:1.99999988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 74.999996,1046.8622 c 2.5,-2.5 2.5,-2.5 2.5,-2.5"
- id="path3332"
- inkscape:connector-curvature="0" />
- </g>
- <g
- id="g3334"
- style="stroke:#babdb6"
- inkscape:export-filename="/Users/gcombs/Development/qtshark/image/dfilter_apply_disabled.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90"
- transform="translate(32,0)">
- <path
- inkscape:connector-curvature="0"
- id="path3336"
- d="m 66,1044.4492 c 10.17421,0 10.17421,0 10.17421,0"
- style="fill:none;stroke:#babdb6;stroke-width:1.99999988000000006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- <path
- style="fill:none;stroke:#babdb6;stroke-width:1.99999988000000006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
- d="m 75,1041.8621 c 2.5,2.5 2.5,2.5 2.5,2.5"
- id="path3338"
- inkscape:connector-curvature="0" />
- <path
- inkscape:connector-curvature="0"
- id="path3340"
- d="m 74.999996,1046.8622 c 2.5,-2.5 2.5,-2.5 2.5,-2.5"
- style="fill:none;stroke:#babdb6;stroke-width:1.99999988000000006;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
- </g>
- </g>
-</svg>
diff --git a/ui/qt/display_filter_combo.cpp b/ui/qt/display_filter_combo.cpp
index 205781f168..2481c208a8 100644
--- a/ui/qt/display_filter_combo.cpp
+++ b/ui/qt/display_filter_combo.cpp
@@ -67,7 +67,7 @@ DisplayFilterCombo::DisplayFilterCombo(QWidget *parent) :
" }"
"QComboBox::down-arrow {"
- " image: url(:/dfilter/dfilter_dropdown.png);"
+ " image: url(:/icons/toolbar/14x14/x-filter-dropdown.png);"
" }"
"QComboBox::down-arrow:on { /* shift the arrow when popup is open */"
diff --git a/ui/qt/display_filter_edit.cpp b/ui/qt/display_filter_edit.cpp
index 620599e306..ba2d08c1e3 100644
--- a/ui/qt/display_filter_edit.cpp
+++ b/ui/qt/display_filter_edit.cpp
@@ -30,12 +30,18 @@
#include "ui/utf8_entities.h"
#include "display_filter_edit.h"
+#include "filter_dialog.h"
+#include "stock_icon.h"
#include "syntax_line_edit.h"
+#include <QAction>
#include <QAbstractItemView>
#include <QComboBox>
#include <QCompleter>
#include <QEvent>
+#include <QIcon>
+#include <QPixmap>
+#include <QMenu>
#include <QPainter>
#include <QStringListModel>
#include <QStyleOptionFrame>
@@ -44,14 +50,72 @@
#include "ui/utf8_entities.h"
// To do:
-// - Implement the bookmark button.
-// - Add @2x icons or find a nice set of license-compatible glyph icons and use them instead.
+// - Get rid of shortcuts and replace them with "n most recently applied filters"?
// - We need simplified (button- and dropdown-free) versions for use in dialogs and field-only checking.
-// - Move bookmark and apply buttons to the toolbar a la Firefox, Chrome & Safari?
-// - Use native buttons on OS X?
// - Add a separator or otherwise distinguish between recent items and fields
// in the completion dropdown.
+// We want nice icons that render correctly, and that are responsive
+// when the user hovers and clicks them.
+// Using setIcon renders correctly on normal and retina displays. It is
+// not completely responsive, particularly on OS X.
+// Calling setStyleSheet is responsive, but does not render correctly on
+// retina displays: https://bugreports.qt.io/browse/QTBUG-36825
+// Subclass QToolButton, which lets us catch events and set icons as needed.
+
+class StockIconToolButton : public QToolButton
+{
+public:
+ explicit StockIconToolButton(QWidget * parent = 0, QString stock_icon_name = QString()) :
+ QToolButton(parent)
+ {
+ if (!stock_icon_name.isEmpty()) {
+ setStockIcon(stock_icon_name);
+ }
+ }
+
+ void setIconMode(QIcon::Mode mode = QIcon::Normal) {
+ QIcon mode_icon;
+ QList<QIcon::State> states = QList<QIcon::State>() << QIcon::Off << QIcon::On;
+ foreach (QIcon::State state, states) {
+ foreach (QSize size, base_icon_.availableSizes(mode, state)) {
+ mode_icon.addPixmap(base_icon_.pixmap(size, mode, state), mode, state);
+ }
+ }
+ setIcon(mode_icon);
+ }
+
+ void setStockIcon(QString icon_name) {
+ base_icon_ = StockIcon(icon_name);
+ setIconMode();
+ }
+
+protected:
+ virtual void enterEvent(QEvent *evt) {
+ if (isEnabled()) {
+ setIconMode(QIcon::Active);
+ }
+ QToolButton::enterEvent(evt);
+ }
+ virtual void leaveEvent(QEvent *evt) {
+ setIconMode();
+ QToolButton::leaveEvent(evt);
+ }
+ virtual void mousePressEvent(QMouseEvent *evt) {
+ if (isEnabled()) {
+ setIconMode(QIcon::Selected);
+ }
+ QToolButton::mousePressEvent(evt);
+ }
+ virtual void mouseReleaseEvent(QMouseEvent *evt) {
+ setIconMode();
+ QToolButton::mouseReleaseEvent(evt);
+ }
+
+private:
+ QIcon base_icon_;
+};
+
#if defined(Q_OS_MAC) && 0
// http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSImage_Class/Reference/Reference.html
// http://www.virtualbox.org/svn/vbox/trunk/src/VBox/Frontends/VirtualBox/src/platform/darwin/UICocoaSpecialControls.mm
@@ -120,98 +184,63 @@ DisplayFilterEdit::DisplayFilterEdit(QWidget *parent, bool plain) :
#endif
// DFCombo
- // Bookmark (star)
+ // Bookmark
// DispalyFilterEdit
// Clear button
- // Apply (right arrow) + Cancel (x) + Reload (arrowed circle)
+ // Apply (right arrow)
// Combo drop-down
if (!plain_) {
- bookmark_button_ = new QToolButton(this);
- bookmark_button_->setEnabled(false);
+ bookmark_button_ = new StockIconToolButton(this, "x-filter-bookmark");
bookmark_button_->setCursor(Qt::ArrowCursor);
- bookmark_button_->setStyleSheet(QString(
- "QToolButton { /* all types of tool button */"
- " border 0 0 0 0;"
-#ifdef Q_OS_MAC
- " border-right: %1px solid gray;"
-#else
- " border-right: %1px solid palette(shadow);"
-#endif
- " border-top-left-radius: 3px;"
- " border-bottom-left-radius: 3px;"
- " padding-left: 1px;"
- " image: url(:/dfilter/dfilter_bookmark_normal.png) center;"
- "}"
-
- "QToolButton:hover {"
- " image: url(:/dfilter/dfilter_bookmark_hover.png) center;"
- "}"
- "QToolButton:pressed {"
- " image: url(:/dfilter/dfilter_bookmark_pressed.png) center;"
- "}"
- "QToolButton:disabled {"
- " image: url(:/dfilter/dfilter_bookmark_disabled.png) center;"
+ bookmark_button_->setMenu(new QMenu());
+ bookmark_button_->setPopupMode(QToolButton::InstantPopup);
+ bookmark_button_->setToolTip(tr("Manage saved bookmarks."));
+ bookmark_button_->setIconSize(QSize(14, 14));
+ bookmark_button_->setAutoRaise(true);
+ bookmark_button_->setStyleSheet(
+ "QToolButton {"
+ " border: none;"
+ " background: transparent;" // Disables platform style on Windows.
+ " padding: 0 0 0 0;"
"}"
- ).arg(plain_ ? 0 : 1)
+ "QToolButton::menu-indicator { image: none; }"
);
-#ifndef QT_NO_TOOLTIP
- bookmark_button_->setToolTip(tr("Bookmark this filter string"));
-#endif // QT_NO_TOOLTIP
- connect(bookmark_button_, SIGNAL(clicked()), this, SLOT(bookmarkClicked()));
}
if (!plain_) {
- clear_button_ = new QToolButton(this);
+ clear_button_ = new StockIconToolButton(this, "x-filter-clear");
clear_button_->setCursor(Qt::ArrowCursor);
+ clear_button_->setToolTip(tr("Clear the filter string and update the display."));
+ clear_button_->setIconSize(QSize(14, 14));
+ clear_button_->setAutoRaise(true);
clear_button_->setStyleSheet(
"QToolButton {"
- " image: url(:/dfilter/dfilter_erase_normal.png) center;"
" border: none;"
- " width: 16px;"
- "}"
- "QToolButton:hover {"
- " image: url(:/dfilter/dfilter_erase_active.png) center;"
- "}"
- "QToolButton:pressed {"
- " image: url(:/dfilter/dfilter_erase_selected.png) center;"
+ " background: transparent;" // Disables platform style on Windows.
+ " padding: 0 0 0 0;"
+ " margin-left: 1px;"
"}"
);
-#ifndef QT_NO_TOOLTIP
- clear_button_->setToolTip(tr("Clear the filter string and update the display"));
-#endif // QT_NO_TOOLTIP
- clear_button_->hide();
connect(clear_button_, SIGNAL(clicked()), this, SLOT(clearFilter()));
}
connect(this, SIGNAL(textChanged(const QString&)), this, SLOT(checkFilter(const QString&)));
if (!plain_) {
- apply_button_ = new QToolButton(this);
+ apply_button_ = new StockIconToolButton(this, "x-filter-apply");
apply_button_->setCursor(Qt::ArrowCursor);
apply_button_->setEnabled(false);
+ apply_button_->setToolTip(tr("Apply this filter string to the display."));
+ apply_button_->setIconSize(QSize(24, 14));
+ apply_button_->setAutoRaise(true);
apply_button_->setStyleSheet(
- "QToolButton { /* all types of tool button */"
- " border 0 0 0 0;"
- " border-top-right-radius: 3px;"
- " border-bottom-right-radius: 3px;"
- " padding-right: 1px;"
- " image: url(:/dfilter/dfilter_apply_normal.png) center;"
- "}"
-
- "QToolButton:hover {"
- " image: url(:/dfilter/dfilter_apply_hover.png) center;"
- "}"
- "QToolButton:pressed {"
- " image: url(:/dfilter/dfilter_apply_pressed.png) center;"
- "}"
- "QToolButton:disabled {"
- " image: url(:/dfilter/dfilter_apply_disabled.png) center;"
+ "QToolButton {"
+ " border: none;"
+ " background: transparent;" // Disables platform style on Windows.
+ " padding: 0 0 0 0;"
"}"
);
-#ifndef QT_NO_TOOLTIP
- apply_button_->setToolTip(tr("Apply this filter string to the display"));
-#endif // QT_NO_TOOLTIP
connect(apply_button_, SIGNAL(clicked()), this, SLOT(applyDisplayFilter()));
connect(this, SIGNAL(returnPressed()), this, SLOT(applyDisplayFilter()));
}
@@ -240,12 +269,28 @@ DisplayFilterEdit::DisplayFilterEdit(QWidget *parent, bool plain) :
.arg(bksz.width())
.arg(cbsz.width() + apsz.width() + frameWidth + 1)
);
+ checkFilter();
}
-#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
void DisplayFilterEdit::paintEvent(QPaintEvent *evt) {
SyntaxLineEdit::paintEvent(evt);
+ if (bookmark_button_) {
+ // Draw the right border by hand. We could try to do this in the
+ // style sheet but it's a pain.
+#ifdef Q_OS_MAC
+ QColor divider_color = Qt::gray;
+#else
+ QColor divider_color = palette().shadow().color();
+#endif
+ QPainter painter(this);
+ painter.setPen(divider_color);
+ QRect cr = contentsRect();
+ QSize bksz = bookmark_button_->size();
+ painter.drawLine(bksz.width(), cr.top(), bksz.width(), cr.bottom());
+ }
+
+#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
// http://wiki.forum.nokia.com/index.php/Custom_QLineEdit
if (text().isEmpty() && ! this->hasFocus()) {
QPainter p(this);
@@ -267,8 +312,8 @@ void DisplayFilterEdit::paintEvent(QPaintEvent *evt) {
}
// else check filter syntax and set the background accordingly
// XXX - Should we add little warning/error icons as well?
-}
#endif // QT < 4.7
+}
void DisplayFilterEdit::resizeEvent(QResizeEvent *)
{
@@ -286,14 +331,17 @@ void DisplayFilterEdit::resizeEvent(QResizeEvent *)
if (clear_button_) {
clear_button_->move(contentsRect().right() - frameWidth - cbsz.width() - apsz.width(),
contentsRect().top());
+ clear_button_->setMinimumHeight(contentsRect().height());
clear_button_->setMaximumHeight(contentsRect().height());
}
if (apply_button_) {
apply_button_->move(contentsRect().right() - frameWidth - apsz.width(),
contentsRect().top());
+ apply_button_->setMinimumHeight(contentsRect().height());
apply_button_->setMaximumHeight(contentsRect().height());
}
if (bookmark_button_) {
+ bookmark_button_->setMinimumHeight(contentsRect().height());
bookmark_button_->setMaximumHeight(contentsRect().height());
}
}
@@ -312,14 +360,14 @@ bool DisplayFilterEdit::checkFilter()
return syntaxState() != Invalid;
}
-void DisplayFilterEdit::checkFilter(const QString& text)
+void DisplayFilterEdit::checkFilter(const QString& filter_text)
{
if (clear_button_) {
- clear_button_->setVisible(!text.isEmpty());
+ clear_button_->setVisible(!filter_text.isEmpty());
}
popFilterSyntaxStatus();
- checkDisplayFilter(text);
+ checkDisplayFilter(filter_text);
switch (syntaxState()) {
case Deprecated:
@@ -345,7 +393,51 @@ void DisplayFilterEdit::checkFilter(const QString& text)
}
if (bookmark_button_) {
- bookmark_button_->setEnabled(syntaxState() == Valid || syntaxState() == Deprecated);
+ bool enable_save_action = false;
+ bool match = false;
+ QMenu *bb_menu = bookmark_button_->menu();
+
+ bb_menu->clear();
+ QAction *save_action = bb_menu->addAction(tr("Save this filter"));
+ connect(save_action, SIGNAL(triggered(bool)), this, SLOT(saveFilter()));
+ QAction *manage_action = bb_menu->addAction(tr("Manage Display Filters"));
+ connect(manage_action, SIGNAL(triggered(bool)), this, SLOT(showFilters()));
+
+ QAction *first_filter = NULL;
+ for (GList *df_item = get_filter_list_first(DFILTER_LIST); df_item; df_item = g_list_next(df_item)) {
+ if (!df_item->data) continue;
+ filter_def *df_def = (filter_def *) df_item->data;
+ if (!df_def->name || !df_def->strval) continue;
+
+ int one_em = bb_menu->fontMetrics().height();
+ QString prep_text = QString("%1: %2").arg(df_def->name).arg(df_def->strval);
+ prep_text = bb_menu->fontMetrics().elidedText(prep_text, Qt::ElideRight, one_em * 40);
+
+ QAction *prep_action = bb_menu->addAction(prep_text);
+ prep_action->setData(df_def->strval);
+ connect(prep_action, SIGNAL(triggered(bool)), this, SLOT(prepareFilter()));
+ if (!first_filter) first_filter = prep_action;
+
+ if (filter_text.compare(df_def->strval) == 0) {
+ match = true;
+ }
+ }
+ if (first_filter) bb_menu->insertSeparator(first_filter);
+
+ if (match) {
+ bookmark_button_->setStockIcon("x-filter-matching-bookmark");
+ QAction *remove_action = new QAction(tr("Remove this filter"), bb_menu);
+ bb_menu->insertAction(manage_action, remove_action);
+ remove_action->setData(filter_text);
+ connect(remove_action, SIGNAL(triggered(bool)), this, SLOT(removeFilter()));
+ } else {
+ bookmark_button_->setStockIcon("x-filter-bookmark");
+ }
+
+ if (!match && (syntaxState() == Valid || syntaxState() == Deprecated) && !filter_text.isEmpty()) {
+ enable_save_action = true;
+ }
+ save_action->setEnabled(enable_save_action);
}
if (apply_button_) {
apply_button_->setEnabled(syntaxState() != Invalid);
@@ -443,11 +535,6 @@ void DisplayFilterEdit::buildCompletionList(const QString &field_word)
completer()->setCompletionPrefix(field_word);
}
-void DisplayFilterEdit::bookmarkClicked()
-{
- emit addBookmark(text());
-}
-
void DisplayFilterEdit::clearFilter()
{
clear();
@@ -495,6 +582,44 @@ void DisplayFilterEdit::changeEvent(QEvent* event)
SyntaxLineEdit::changeEvent(event);
}
+void DisplayFilterEdit::saveFilter()
+{
+ FilterDialog display_filter_dlg(window(), FilterDialog::DisplayFilter, text());
+ display_filter_dlg.exec();
+}
+
+void DisplayFilterEdit::removeFilter()
+{
+ QAction *ra = qobject_cast<QAction*>(sender());
+ if (!ra || ra->data().toString().isEmpty()) return;
+
+ QString remove_filter = ra->data().toString();
+
+ for (GList *df_item = get_filter_list_first(DFILTER_LIST); df_item; df_item = g_list_next(df_item)) {
+ if (!df_item->data) continue;
+ filter_def *df_def = (filter_def *) df_item->data;
+ if (!df_def->name || !df_def->strval) continue;
+
+ if (remove_filter.compare(df_def->strval) == 0) {
+ remove_from_filter_list(DFILTER_LIST, df_item);
+ }
+ }
+}
+
+void DisplayFilterEdit::showFilters()
+{
+ FilterDialog display_filter_dlg(window(), FilterDialog::DisplayFilter);
+ display_filter_dlg.exec();
+}
+
+void DisplayFilterEdit::prepareFilter()
+{
+ QAction *pa = qobject_cast<QAction*>(sender());
+ if (!pa || pa->data().toString().isEmpty()) return;
+
+ setText(pa->data().toString());
+}
+
/*
* Editor modelines
*
diff --git a/ui/qt/display_filter_edit.h b/ui/qt/display_filter_edit.h
index 2a6821552d..125b47f1bc 100644
--- a/ui/qt/display_filter_edit.h
+++ b/ui/qt/display_filter_edit.h
@@ -25,7 +25,7 @@
#include "syntax_line_edit.h"
class QEvent;
-class QToolButton;
+class StockIconToolButton;
class DisplayFilterEdit : public SyntaxLineEdit
{
@@ -34,9 +34,7 @@ public:
explicit DisplayFilterEdit(QWidget *parent = 0, bool plain = true);
protected:
-#if QT_VERSION < QT_VERSION_CHECK(4, 7, 0)
void paintEvent(QPaintEvent *evt);
-#endif
void resizeEvent(QResizeEvent *);
void keyPressEvent(QKeyEvent *event) { completionKeyPressEvent(event); }
void focusInEvent(QFocusEvent *event) { completionFocusInEvent(event); }
@@ -48,17 +46,21 @@ public slots:
void displayFilterSuccess(bool success);
private slots:
- void checkFilter(const QString &text);
- void bookmarkClicked();
+ void checkFilter(const QString &filter_text);
void clearFilter();
void changeEvent(QEvent* event);
+ void saveFilter();
+ void removeFilter();
+ void showFilters();
+ void prepareFilter();
+
private:
bool plain_;
QString placeholder_text_;
- QToolButton *bookmark_button_;
- QToolButton *clear_button_;
- QToolButton *apply_button_;
+ StockIconToolButton *bookmark_button_;
+ StockIconToolButton *clear_button_;
+ StockIconToolButton *apply_button_;
void buildCompletionList(const QString& field_word);
@@ -67,7 +69,6 @@ signals:
void popFilterSyntaxStatus();
void pushFilterSyntaxWarning(const QString&);
void filterPackets(QString& new_filter, bool force);
- void addBookmark(QString filter);
};
#endif // DISPLAYFILTEREDIT_H
diff --git a/ui/qt/filter_dialog.cpp b/ui/qt/filter_dialog.cpp
index 4902579879..938303d5ce 100644
--- a/ui/qt/filter_dialog.cpp
+++ b/ui/qt/filter_dialog.cpp
@@ -51,12 +51,13 @@ enum {
filter_col_
};
-FilterDialog::FilterDialog(QWidget *parent, FilterType filter_type) :
+FilterDialog::FilterDialog(QWidget *parent, FilterType filter_type, const QString new_filter) :
QDialog(parent),
ui(new Ui::FilterDialog),
filter_type_(filter_type),
// syntax_worker_(NULL),
- filter_tree_delegate_(new FilterTreeDelegate(this, filter_type))
+ filter_tree_delegate_(new FilterTreeDelegate(this, filter_type)),
+ new_filter_(new_filter)
{
ui->setupUi(this);
setWindowIcon(wsApp->normalIcon());
@@ -86,7 +87,6 @@ FilterDialog::FilterDialog(QWidget *parent, FilterType filter_type) :
}
ui->filterTreeWidget->setItemDelegateForColumn(filter_col_, filter_tree_delegate_);
-
}
FilterDialog::~FilterDialog()
@@ -112,6 +112,11 @@ void FilterDialog::showEvent(QShowEvent *event)
addFilter(fl_data->name, fl_data->strval);
}
+ if (!new_filter_.isEmpty()) {
+ addFilter(tr("New filter"), new_filter_, true);
+ new_filter_.clear();
+ }
+
ui->filterTreeWidget->resizeColumnToContents(name_col_);
ui->filterTreeWidget->resizeColumnToContents(filter_col_);
diff --git a/ui/qt/filter_dialog.h b/ui/qt/filter_dialog.h
index 21a7d049d6..b7b525c3f0 100644
--- a/ui/qt/filter_dialog.h
+++ b/ui/qt/filter_dialog.h
@@ -37,7 +37,7 @@ class FilterDialog : public QDialog
public:
enum FilterType { CaptureFilter, DisplayFilter };
- explicit FilterDialog(QWidget *parent = 0, FilterType filter_type = CaptureFilter);
+ explicit FilterDialog(QWidget *parent = 0, FilterType filter_type = CaptureFilter, const QString new_filter = QString());
~FilterDialog();
protected:
@@ -49,10 +49,10 @@ private:
enum FilterType filter_type_;
// CaptureFilterSyntaxWorker *syntax_worker_;
FilterTreeDelegate *filter_tree_delegate_;
+ QString new_filter_;
void addFilter(QString name, QString filter, bool start_editing = false);
-
private slots:
void updateWidgets();
// void setFilterSyntaxState(QString filter, bool valid, QString err_msg);
diff --git a/ui/qt/main_window.cpp b/ui/qt/main_window.cpp
index 873b6fb993..dd1af34907 100644
--- a/ui/qt/main_window.cpp
+++ b/ui/qt/main_window.cpp
@@ -266,7 +266,8 @@ MainWindow::MainWindow(QWidget *parent) :
connect(df_edit, SIGNAL(pushFilterSyntaxWarning(const QString&)),
main_ui_->statusBar, SLOT(pushTemporaryStatus(const QString&)));
connect(df_edit, SIGNAL(filterPackets(QString&,bool)), this, SLOT(filterPackets(QString&,bool)));
- connect(df_edit, SIGNAL(addBookmark(QString)), this, SLOT(addDisplayFilterButton(QString)));
+ connect(wsApp, SIGNAL(preferencesChanged()), df_edit, SLOT(checkFilter()));
+
connect(df_edit, SIGNAL(textChanged(QString)), funnel_statistics_, SLOT(displayFilterTextChanged(QString)));
connect(funnel_statistics_, SIGNAL(setDisplayFilter(QString)), df_edit, SLOT(setText(QString)));
connect(funnel_statistics_, SIGNAL(applyDisplayFilter()), df_combo_box_, SLOT(applyDisplayFilter()));
diff --git a/ui/qt/main_window.h b/ui/qt/main_window.h
index 6b6a8c93dd..6129880c73 100644
--- a/ui/qt/main_window.h
+++ b/ui/qt/main_window.h
@@ -278,7 +278,6 @@ private slots:
void setFeaturesEnabled(bool enabled = true);
void on_actionDisplayFilterExpression_triggered();
- void addDisplayFilterButton(QString df_text);
void displayFilterButtonClicked();
// Handle FilterAction signals
diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp
index ef2840e483..d3594d4d8c 100644
--- a/ui/qt/main_window_slots.cpp
+++ b/ui/qt/main_window_slots.cpp
@@ -1481,33 +1481,6 @@ void MainWindow::on_actionDisplayFilterExpression_triggered()
// On Qt4 + OS X with unifiedTitleAndToolBarOnMac set it's possible to make
// the main window obnoxiously wide.
-// We might want to do something different here. We should probably merge
-// the dfilter and gui.filter_expressions code first.
-void MainWindow::addDisplayFilterButton(QString df_text)
-{
- struct filter_expression *cur_fe = *pfilter_expression_head;
- struct filter_expression *fe = g_new0(struct filter_expression, 1);
-
- QFontMetrics fm = main_ui_->displayFilterToolBar->fontMetrics();
- QString label = fm.elidedText(df_text, Qt::ElideMiddle, fm.height() * 15);
-
- fe->enabled = TRUE;
- fe->label = qstring_strdup(label);
- fe->expression = qstring_strdup(df_text);
-
- if (!cur_fe) {
- *pfilter_expression_head = fe;
- } else {
- while (cur_fe->next) {
- cur_fe = cur_fe->next;
- }
- cur_fe->next = fe;
- }
-
- prefs_main_write();
- filterExpressionsChanged();
-}
-
void MainWindow::displayFilterButtonClicked()
{
QAction *dfb_action = qobject_cast<QAction*>(sender());
diff --git a/ui/qt/preferences_dialog.ui b/ui/qt/preferences_dialog.ui
index 69d59d7808..72e645ca0b 100644
--- a/ui/qt/preferences_dialog.ui
+++ b/ui/qt/preferences_dialog.ui
@@ -61,7 +61,7 @@
</item>
<item>
<property name="text">
- <string>Filter Bookmarks</string>
+ <string>Filter Expressions</string>
</property>
</item>
<item>
diff --git a/ui/qt/stock_icon.cpp b/ui/qt/stock_icon.cpp
index b13d908634..c29fdfac47 100644
--- a/ui/qt/stock_icon.cpp
+++ b/ui/qt/stock_icon.cpp
@@ -59,10 +59,10 @@
QString path_pfx_ = ":/icons/toolbar/";
-StockIcon::StockIcon(const char *icon_name) :
+StockIcon::StockIcon(const QString icon_name) :
QIcon()
{
- if (strcmp(icon_name, "document-open") == 0) {
+ if (icon_name.compare("document-open") == 0) {
QIcon dir_icon = fromTheme(icon_name, wsApp->style()->standardIcon(QStyle::SP_DirIcon));
#if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)
swap(dir_icon);
@@ -77,15 +77,27 @@ StockIcon::StockIcon(const char *icon_name) :
#endif
return;
} else {
- QStringList types = QStringList() << "12x12" << "16x16" << "24x24";
+ QStringList types = QStringList() << "12x12" << "14x14" << "16x16" << "24x14" << "24x24";
foreach (QString type, types) {
QString icon_path = path_pfx_ + QString("%1/%2.png").arg(type).arg(icon_name);
if (QFile::exists(icon_path)) {
addFile(icon_path);
}
- // Along with each name check for "<name>.on" to use for the on (checked) state.
- // XXX Add checks for each combination of QIcon::Mode + QIcon::State
+ // Along with each name check for "<name>.active" and
+ // "<name>.selected" for the Active and Selected modes, and
+ // "<name>.on" to use for the on (checked) state.
+ // XXX Allow more (or all) combinations.
+ QString icon_path_active = path_pfx_ + QString("%1/%2.active.png").arg(type).arg(icon_name);
+ if (QFile::exists(icon_path_active)) {
+ addFile(icon_path_active, QSize(), QIcon::Active, QIcon::On);
+ }
+
+ QString icon_path_selected = path_pfx_ + QString("%1/%2.selected.png").arg(type).arg(icon_name);
+ if (QFile::exists(icon_path_selected)) {
+ addFile(icon_path_selected, QSize(), QIcon::Selected, QIcon::On);
+ }
+
QString icon_path_on = path_pfx_ + QString("%1/%2.on.png").arg(type).arg(icon_name);
if (QFile::exists(icon_path_on)) {
addFile(icon_path_on, QSize(), QIcon::Normal, QIcon::On);
diff --git a/ui/qt/stock_icon.h b/ui/qt/stock_icon.h
index cd6e60f39d..0700bbe60f 100644
--- a/ui/qt/stock_icon.h
+++ b/ui/qt/stock_icon.h
@@ -38,7 +38,7 @@
class StockIcon : public QIcon
{
public:
- explicit StockIcon(const char *icon_name);
+ explicit StockIcon(const QString icon_name);
static QIcon colorIcon(const QRgb bg_color, const QRgb fg_color, const QString glyph = QString());
};
diff --git a/ui/qt/wireshark_application.cpp b/ui/qt/wireshark_application.cpp
index 50fe3fff0b..2625950f9b 100644
--- a/ui/qt/wireshark_application.cpp
+++ b/ui/qt/wireshark_application.cpp
@@ -484,7 +484,6 @@ WiresharkApplication::WiresharkApplication(int &argc, char **argv) :
setApplicationName("Wireshark");
Q_INIT_RESOURCE(about);
- Q_INIT_RESOURCE(display_filter);
Q_INIT_RESOURCE(i18n);
Q_INIT_RESOURCE(layout);
Q_INIT_RESOURCE(status);