feat: Add New Search Widget, use in the log

fixes: #8332
replaces: #9354
This commit is contained in:
sithlord48
2026-01-17 16:13:47 -05:00
committed by Chris Rizzitello
parent bb88bd8695
commit d193af8cc8
37 changed files with 503 additions and 5 deletions

View File

@ -5,11 +5,14 @@
<file>icons/deskflow-dark/actions/16/document-edit.svg</file>
<file>icons/deskflow-dark/actions/16/document-open.svg</file>
<file>icons/deskflow-dark/actions/16/document-save-as.svg</file>
<file>icons/deskflow-dark/actions/16/go-down.svg</file>
<file>icons/deskflow-dark/actions/16/go-up.svg</file>
<file>icons/deskflow-dark/actions/16/help-about.svg</file>
<file>icons/deskflow-dark/actions/16/network-connect.svg</file>
<file>icons/deskflow-dark/actions/16/network-disconnect.svg</file>
<file>icons/deskflow-dark/actions/16/process-stop.svg</file>
<file>icons/deskflow-dark/actions/16/system-run.svg</file>
<file>icons/deskflow-dark/actions/16/system-search.svg</file>
<file>icons/deskflow-dark/actions/16/tools-report-bug.svg</file>
<file>icons/deskflow-dark/actions/16/view-close.svg</file>
<file>icons/deskflow-dark/actions/16/view-refresh.svg</file>
@ -21,11 +24,14 @@
<file>icons/deskflow-dark/actions/22/document-open.svg</file>
<file>icons/deskflow-dark/actions/22/document-save-as.svg</file>
<file>icons/deskflow-dark/actions/22/fingerprint.svg</file>
<file>icons/deskflow-dark/actions/22/go-down.svg</file>
<file>icons/deskflow-dark/actions/22/go-up.svg</file>
<file>icons/deskflow-dark/actions/22/help-about.svg</file>
<file>icons/deskflow-dark/actions/22/network-connect.svg</file>
<file>icons/deskflow-dark/actions/22/network-disconnect.svg</file>
<file>icons/deskflow-dark/actions/22/process-stop.svg</file>
<file>icons/deskflow-dark/actions/22/system-run.svg</file>
<file>icons/deskflow-dark/actions/22/system-search.svg</file>
<file>icons/deskflow-dark/actions/22/tools-report-bug.svg</file>
<file>icons/deskflow-dark/actions/22/view-close.svg</file>
<file>icons/deskflow-dark/actions/22/view-refresh.svg</file>
@ -36,6 +42,8 @@
<file>icons/deskflow-dark/actions/24/document-edit.svg</file>
<file>icons/deskflow-dark/actions/24/document-open.svg</file>
<file>icons/deskflow-dark/actions/24/document-save-as.svg</file>
<file>icons/deskflow-dark/actions/24/go-down.svg</file>
<file>icons/deskflow-dark/actions/24/go-up.svg</file>
<file>icons/deskflow-dark/actions/24/edit-clear-all.svg</file>
<file>icons/deskflow-dark/actions/24/fingerprint.svg</file>
<file>icons/deskflow-dark/actions/24/help-about.svg</file>
@ -43,6 +51,7 @@
<file>icons/deskflow-dark/actions/24/network-disconnect.svg</file>
<file>icons/deskflow-dark/actions/24/process-stop.svg</file>
<file>icons/deskflow-dark/actions/24/system-run.svg</file>
<file>icons/deskflow-dark/actions/24/system-search.svg</file>
<file>icons/deskflow-dark/actions/24/tools-report-bug.svg</file>
<file>icons/deskflow-dark/actions/24/view-close.svg</file>
<file>icons/deskflow-dark/actions/24/view-refresh.svg</file>
@ -55,8 +64,11 @@
<file>icons/deskflow-dark/actions/32/dialog-ok-apply.svg</file>
<file>icons/deskflow-dark/actions/32/document-open.svg</file>
<file>icons/deskflow-dark/actions/32/document-save-as.svg</file>
<file>icons/deskflow-dark/actions/32/go-down.svg</file>
<file>icons/deskflow-dark/actions/32/go-up.svg</file>
<file>icons/deskflow-dark/actions/32/help-about.svg</file>
<file>icons/deskflow-dark/actions/32/view-refresh.svg</file>
<file>icons/deskflow-dark/actions/32/system-search.svg</file>
<file>icons/deskflow-dark/apps/64/org.deskflow.deskflow.svg</file>
<file>icons/deskflow-dark/apps/64/org.deskflow.deskflow-symbolic.svg</file>
<file>icons/deskflow-dark/devices/64/video-display.svg</file>
@ -77,11 +89,14 @@
<file>icons/deskflow-light/actions/16/document-edit.svg</file>
<file>icons/deskflow-light/actions/16/document-open.svg</file>
<file>icons/deskflow-light/actions/16/document-save-as.svg</file>
<file>icons/deskflow-light/actions/16/go-down.svg</file>
<file>icons/deskflow-light/actions/16/go-up.svg</file>
<file>icons/deskflow-light/actions/16/help-about.svg</file>
<file>icons/deskflow-light/actions/16/network-connect.svg</file>
<file>icons/deskflow-light/actions/16/network-disconnect.svg</file>
<file>icons/deskflow-light/actions/16/process-stop.svg</file>
<file>icons/deskflow-light/actions/16/system-run.svg</file>
<file>icons/deskflow-light/actions/16/system-search.svg</file>
<file>icons/deskflow-light/actions/16/tools-report-bug.svg</file>
<file>icons/deskflow-light/actions/16/view-close.svg</file>
<file>icons/deskflow-light/actions/16/view-refresh.svg</file>
@ -94,11 +109,14 @@
<file>icons/deskflow-light/actions/22/document-open.svg</file>
<file>icons/deskflow-light/actions/22/document-save-as.svg</file>
<file>icons/deskflow-light/actions/22/fingerprint.svg</file>
<file>icons/deskflow-light/actions/22/go-down.svg</file>
<file>icons/deskflow-light/actions/22/go-up.svg</file>
<file>icons/deskflow-light/actions/22/network-connect.svg</file>
<file>icons/deskflow-light/actions/22/network-disconnect.svg</file>
<file>icons/deskflow-light/actions/22/help-about.svg</file>
<file>icons/deskflow-light/actions/22/process-stop.svg</file>
<file>icons/deskflow-light/actions/22/system-run.svg</file>
<file>icons/deskflow-light/actions/22/system-search.svg</file>
<file>icons/deskflow-light/actions/22/tools-report-bug.svg</file>
<file>icons/deskflow-light/actions/22/view-close.svg</file>
<file>icons/deskflow-light/actions/22/view-refresh.svg</file>
@ -111,11 +129,14 @@
<file>icons/deskflow-light/actions/24/document-edit.svg</file>
<file>icons/deskflow-light/actions/24/document-open.svg</file>
<file>icons/deskflow-light/actions/24/document-save-as.svg</file>
<file>icons/deskflow-light/actions/24/go-down.svg</file>
<file>icons/deskflow-light/actions/24/go-up.svg</file>
<file>icons/deskflow-light/actions/24/help-about.svg</file>
<file>icons/deskflow-light/actions/24/network-connect.svg</file>
<file>icons/deskflow-light/actions/24/network-disconnect.svg</file>
<file>icons/deskflow-light/actions/24/process-stop.svg</file>
<file>icons/deskflow-light/actions/24/system-run.svg</file>
<file>icons/deskflow-light/actions/24/system-search.svg</file>
<file>icons/deskflow-light/actions/24/tools-report-bug.svg</file>
<file>icons/deskflow-light/actions/24/view-close.svg</file>
<file>icons/deskflow-light/actions/24/view-refresh.svg</file>
@ -128,8 +149,11 @@
<file>icons/deskflow-light/actions/32/dialog-ok-apply.svg</file>
<file>icons/deskflow-light/actions/32/document-open.svg</file>
<file>icons/deskflow-light/actions/32/document-save-as.svg</file>
<file>icons/deskflow-light/actions/32/go-down.svg</file>
<file>icons/deskflow-light/actions/32/go-up.svg</file>
<file>icons/deskflow-light/actions/32/help-about.svg</file>
<file>icons/deskflow-light/actions/32/view-refresh.svg</file>
<file>icons/deskflow-light/actions/32/system-search.svg</file>
<file>icons/deskflow-light/apps/64/org.deskflow.deskflow.svg</file>
<file>icons/deskflow-light/apps/64/org.deskflow.deskflow-symbolic.svg</file>
<file>icons/deskflow-light/devices/64/video-display.svg</file>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
<path d="M8 11.707l-6-6L2.707 5 8 10.293 13.293 5l.707.707-6 6z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 323 B

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
<path d="M8 4.293l-6 6 .707.707L8 5.707 13.293 11l.707-.707-6-6z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 324 B

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
</defs>
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 6.5 2 C 4.007 2 2 4.01 2 6.5 C 2 8.993 4.01 11 6.5 11 C 7.5636432 11 8.5263409 10.618801 9.2949219 10.005859 L 13.292969 14.003906 L 14 13.296875 L 10.001953 9.2988281 C 10.617604 8.529048 11 7.565338 11 6.5 C 11 4.007 8.99 2 6.5 2 z M 6.5 3 C 8.439 3 10 4.561 10 6.5 C 10 8.439 8.439 10 6.5 10 C 4.561 10 3 8.439 3 6.5 C 3 4.561 4.561 3 6.5 3 z " class="ColorScheme-Text"/>
</svg>

After

Width:  |  Height:  |  Size: 680 B

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
</defs>
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="m3.707031 7l-.707031.707031 6.125 6.125 1.875 1.875 1.875-1.875 6.125-6.125-.707031-.707031-6.125 6.125-1.167969 1.167969-1.167969-1.167969-6.125-6.125" class="ColorScheme-Text"/>
</svg>

After

Width:  |  Height:  |  Size: 485 B

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
<path d="M3.707 15L3 14.293l6.125-6.125L11 6.293l1.875 1.875L19 14.293l-.707.707-6.125-6.125L11 7.707 9.832 8.875 3.707 15" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 382 B

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
</defs>
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 9 3 C 5.6759952 3 3 5.6759952 3 9 C 3 12.324005 5.6759952 15 9 15 C 10.481205 15 11.830584 14.465318 12.875 13.582031 L 18.292969 19 L 19 18.292969 L 13.582031 12.875 C 14.465318 11.830584 15 10.481205 15 9 C 15 5.6759952 12.324005 3 9 3 z M 9 4 C 11.770005 4 14 6.2299952 14 9 C 14 11.770005 11.770005 14 9 14 C 6.2299952 14 4 11.770005 4 9 C 4 6.2299952 6.2299952 4 9 4 z " class="ColorScheme-Text"/>
</svg>

After

Width:  |  Height:  |  Size: 710 B

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
</defs>
<g transform="translate(1,1)">
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="m3.707031 7l-.707031.707031 6.125 6.125 1.875 1.875 1.875-1.875 6.125-6.125-.707031-.707031-6.125 6.125-1.167969 1.167969-1.167969-1.167969-6.125-6.125" class="ColorScheme-Text"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 549 B

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
<g transform="translate(1,1)">
<path d="M3.707 15L3 14.293l6.125-6.125L11 6.293l1.875 1.875L19 14.293l-.707.707-6.125-6.125L11 7.707 9.832 8.875 3.707 15" class="ColorScheme-Text" fill="currentColor"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 443 B

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
</defs>
<g transform="translate(1,1)">
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 9 3 C 5.6759952 3 3 5.6759952 3 9 C 3 12.324005 5.6759952 15 9 15 C 10.481205 15 11.830584 14.465318 12.875 13.582031 L 18.292969 19 L 19 18.292969 L 13.582031 12.875 C 14.465318 11.830584 15 10.481205 15 9 C 15 5.6759952 12.324005 3 9 3 z M 9 4 C 11.770005 4 14 6.2299952 14 9 C 14 11.770005 11.770005 14 9 14 C 6.2299952 14 4 11.770005 4 9 C 4 6.2299952 6.2299952 4 9 4 z " class="ColorScheme-Text"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 774 B

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
<path d="M16 23.707l-14-14L2.707 9 16 22.293 29.293 9l.707.707z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 323 B

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
<path d="M16 8.293l-14 14 .707.707L16 9.707 29.293 23l.707-.707z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 324 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" width="32" height="32">
<style type="text/css" id="current-color-scheme">.ColorScheme-Text { color: #fcfcfc; } </style>
<g id="system-search" transform="translate(0 -32) translate(-22,32)">
<path id="path66" class="ColorScheme-Text" d="m35 4a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 5.994141-2.298828l8.298828 8.298828 0.707031-0.707031-8.300781-8.300782a9 9 0 0 0 2.300781-5.992187 9 9 0 0 0-9-9zm0 1a8 8 0 0 1 8 8 8 8 0 0 1-8 8 8 8 0 0 1-8-8 8 8 0 0 1 8-8z" fill="currentColor"/>
<path id="path68" d="m22 0v32h32v-32z" fill="none"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 965 B

View File

@ -0,0 +1,10 @@
<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<style
type="text/css"
id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<path d="M8 11.707l-6-6L2.707 5 8 10.293 13.293 5l.707.707-6 6z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 332 B

View File

@ -0,0 +1,10 @@
<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<style
type="text/css"
id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<path d="M8 4.293l-6 6 .707.707L8 5.707 13.293 11l.707-.707-6-6z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 333 B

View File

@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<path style="fill:currentColor;fill-opacity:1;stroke:none"
d="M 6.5 2 C 4.007 2 2 4.01 2 6.5 C 2 8.993 4.01 11 6.5 11 C 7.5636432 11 8.5263409 10.618801 9.2949219 10.005859 L 13.292969 14.003906 L 14 13.296875 L 10.001953 9.2988281 C 10.617604 8.529048 11 7.565338 11 6.5 C 11 4.007 8.99 2 6.5 2 z M 6.5 3 C 8.439 3 10 4.561 10 6.5 C 10 8.439 8.439 10 6.5 10 C 4.561 10 3 8.439 3 6.5 C 3 4.561 4.561 3 6.5 3 z "
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 684 B

View File

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<path
style="fill:currentColor;fill-opacity:1;stroke:none"
d="m3.707031 7l-.707031.707031 6.125 6.125 1.875 1.875 1.875-1.875 6.125-6.125-.707031-.707031-6.125 6.125-1.167969 1.167969-1.167969-1.167969-6.125-6.125"
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 488 B

View File

@ -0,0 +1,10 @@
<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg">
<style
type="text/css"
id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<path d="M3.707 15L3 14.293l6.125-6.125L11 6.293l1.875 1.875L19 14.293l-.707.707-6.125-6.125L11 7.707 9.832 8.875 3.707 15" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 391 B

View File

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 22 22">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<path
style="fill:currentColor;fill-opacity:1;stroke:none"
d="M 9 3 C 5.6759952 3 3 5.6759952 3 9 C 3 12.324005 5.6759952 15 9 15 C 10.481205 15 11.830584 14.465318 12.875 13.582031 L 18.292969 19 L 19 18.292969 L 13.582031 12.875 C 14.465318 11.830584 15 10.481205 15 9 C 15 5.6759952 12.324005 3 9 3 z M 9 4 C 11.770005 4 14 6.2299952 14 9 C 14 11.770005 11.770005 14 9 14 C 6.2299952 14 4 11.770005 4 9 C 4 6.2299952 6.2299952 4 9 4 z "
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 716 B

View File

@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<g transform="translate(1,1)">
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="m3.707031 7l-.707031.707031 6.125 6.125 1.875 1.875 1.875-1.875 6.125-6.125-.707031-.707031-6.125 6.125-1.167969 1.167969-1.167969-1.167969-6.125-6.125" class="ColorScheme-Text"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 536 B

View File

@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<g transform="translate(1,1)">
<path d="M3.707 15L3 14.293l6.125-6.125L11 6.293l1.875 1.875L19 14.293l-.707.707-6.125-6.125L11 7.707 9.832 8.875 3.707 15" class="ColorScheme-Text" fill="currentColor"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 436 B

View File

@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<g transform="translate(1,1)">
<path style="fill:currentColor;fill-opacity:1;stroke:none" d="M 9 3 C 5.6759952 3 3 5.6759952 3 9 C 3 12.324005 5.6759952 15 9 15 C 10.481205 15 11.830584 14.465318 12.875 13.582031 L 18.292969 19 L 19 18.292969 L 13.582031 12.875 C 14.465318 11.830584 15 10.481205 15 9 C 15 5.6759952 12.324005 3 9 3 z M 9 4 C 11.770005 4 14 6.2299952 14 9 C 14 11.770005 11.770005 14 9 14 C 6.2299952 14 4 11.770005 4 9 C 4 6.2299952 6.2299952 4 9 4 z " class="ColorScheme-Text"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 761 B

View File

@ -0,0 +1,10 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<style
type="text/css"
id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<path d="M16 23.707l-14-14L2.707 9 16 22.293 29.293 9l.707.707z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 332 B

View File

@ -0,0 +1,10 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
<style
type="text/css"
id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<path d="M16 8.293l-14 14 .707.707L16 9.707 29.293 23l.707-.707z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 333 B

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" width="32" height="32">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<g id="system-search" transform="translate(0 -32) translate(-22,32)">
<path id="path66" class="ColorScheme-Text" d="m35 4a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 5.994141-2.298828l8.298828 8.298828 0.707031-0.707031-8.300781-8.300782a9 9 0 0 0 2.300781-5.992187 9 9 0 0 0-9-9zm0 1a8 8 0 0 1 8 8 8 8 0 0 1-8 8 8 8 0 0 1-8-8 8 8 0 0 1 8-8z" fill="currentColor"/>
<path id="path68" d="m22 0v32h32v-32z" fill="none"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 997 B

View File

@ -116,6 +116,8 @@ add_library(${target} STATIC
widgets/NewScreenWidget.h
widgets/ScreenSetupView.cpp
widgets/ScreenSetupView.h
widgets/SearchWidget.h
widgets/SearchWidget.cpp
widgets/TrashScreenWidget.cpp
widgets/TrashScreenWidget.h
)

View File

@ -1,11 +1,12 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-FileCopyrightText: (C) 2025 - 2026 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#include "LogDock.h"
#include "LogWidget.h"
#include "SearchWidget.h"
#include <QEvent>
#include <QHBoxLayout>
@ -18,8 +19,12 @@ LogDock::LogDock(QWidget *parent)
m_textLog{new LogWidget(this)},
m_btnClose{new QPushButton(this)},
m_btnFloat{new QPushButton(this)},
m_lblTitle{new QLabel(tr("Log"), this)}
m_lblTitle{new QLabel(tr("Log"), this)},
m_searchWidget{new SearchWidget(this)}
{
connect(m_searchWidget, &SearchWidget::findNext, m_textLog, &LogWidget::findNext);
connect(m_searchWidget, &SearchWidget::findPrevious, m_textLog, &LogWidget::findPrevious);
const auto iconSize = QSize(fontMetrics().height() - 2, fontMetrics().height() - 2);
const auto maxBtnSize = QSize(fontMetrics().height() + 2, fontMetrics().height() + 2);
@ -44,6 +49,7 @@ LogDock::LogDock(QWidget *parent)
auto titleLayout = new QHBoxLayout(titleWidget);
titleLayout->addWidget(m_lblTitle, Qt::AlignLeft | Qt::AlignVCenter);
titleLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed));
titleLayout->addWidget(m_searchWidget, Qt::AlignRight | Qt::AlignVCenter);
titleLayout->addWidget(m_btnFloat, Qt::AlignRight | Qt::AlignVCenter);
titleLayout->addWidget(m_btnClose, Qt::AlignRight | Qt::AlignVCenter);
setTitleBarWidget(titleWidget);

View File

@ -1,6 +1,6 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-FileCopyrightText: (C) 2025 - 2026 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
@ -11,6 +11,7 @@
class LogWidget;
class QLabel;
class QPushButton;
class SearchWidget;
class LogDock : public QDockWidget
{
@ -29,4 +30,5 @@ private:
QPushButton *m_btnClose = nullptr;
QPushButton *m_btnFloat = nullptr;
QLabel *m_lblTitle = nullptr;
SearchWidget *m_searchWidget = nullptr;
};

View File

@ -1,6 +1,6 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-FileCopyrightText: (C) 2025 - 2026 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
@ -41,3 +41,25 @@ void LogWidget::appendLine(const QString &msg)
{
m_textLog->appendPlainText(msg);
}
void LogWidget::findNext(const QString &text)
{
if (text.isEmpty())
return;
if (!m_textLog->find(text)) {
m_textLog->moveCursor(QTextCursor::Start);
m_textLog->find(text);
}
}
void LogWidget::findPrevious(const QString &text)
{
if (text.isEmpty())
return;
if (!m_textLog->find(text, QTextDocument::FindBackward)) {
m_textLog->moveCursor(QTextCursor::End);
m_textLog->find(text, QTextDocument::FindBackward);
}
}

View File

@ -1,6 +1,6 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2025 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-FileCopyrightText: (C) 2025 - 2026 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
@ -18,6 +18,8 @@ class LogWidget : public QWidget
public:
explicit LogWidget(QWidget *parent = nullptr);
void appendLine(const QString &msg);
void findNext(const QString &text);
void findPrevious(const QString &text);
private:
QPlainTextEdit *m_textLog = nullptr;

View File

@ -0,0 +1,93 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2026 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#include "SearchWidget.h"
#include <QEvent>
#include <QHBoxLayout>
#include <QLineEdit>
#include <QPushButton>
SearchWidget::SearchWidget(QWidget *parent)
: QWidget{parent},
m_btnToggle{new QPushButton(this)},
m_btnNext{new QPushButton(this)},
m_btnPrev{new QPushButton(this)},
m_searchLine{new QLineEdit(this)}
{
setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
const auto iconSize = QSize(fontMetrics().height() - 2, fontMetrics().height() - 2);
const auto maxBtnSize = QSize(fontMetrics().height() + 2, fontMetrics().height() + 2);
m_btnToggle->setFixedSize(maxBtnSize);
m_btnToggle->setCheckable(true);
m_btnToggle->setChecked(false);
m_btnToggle->setFlat(true);
m_btnToggle->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::SystemSearch));
m_btnToggle->setIconSize(iconSize);
m_btnNext->setFixedSize(maxBtnSize);
m_btnNext->setFlat(true);
m_btnNext->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::GoDown));
m_btnNext->setIconSize(iconSize);
m_btnPrev->setFixedSize(maxBtnSize);
m_btnPrev->setFlat(true);
m_btnPrev->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::GoUp));
m_btnPrev->setIconSize(iconSize);
m_searchLine->setMaximumHeight(maxBtnSize.height());
connect(m_btnToggle, &QPushButton::toggled, this, &SearchWidget::toggleVisible);
connect(m_btnNext, &QPushButton::clicked, this, &SearchWidget::next);
connect(m_btnPrev, &QPushButton::clicked, this, &SearchWidget::previous);
connect(m_searchLine, &QLineEdit::editingFinished, this, &SearchWidget::next);
setText();
auto mainLayout = new QHBoxLayout;
mainLayout->addWidget(m_btnToggle);
mainLayout->addWidget(m_searchLine);
mainLayout->addWidget(m_btnNext);
mainLayout->addWidget(m_btnPrev);
setLayout(mainLayout);
toggleVisible();
adjustSize();
}
void SearchWidget::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
if (e->type() == QEvent::LanguageChange)
setText();
}
void SearchWidget::toggleVisible(bool visible)
{
m_searchLine->setVisible(visible);
m_btnNext->setVisible(visible);
m_btnPrev->setVisible(visible);
}
void SearchWidget::setText()
{
m_btnToggle->setToolTip(tr("Search"));
m_btnNext->setToolTip(tr("Find next"));
m_btnPrev->setToolTip(tr("Find previous"));
m_searchLine->setPlaceholderText(tr("Find..."));
}
void SearchWidget::next()
{
Q_EMIT findNext(m_searchLine->text());
}
void SearchWidget::previous()
{
Q_EMIT findPrevious(m_searchLine->text());
}

View File

@ -0,0 +1,36 @@
/*
* Deskflow -- mouse and keyboard sharing utility
* SPDX-FileCopyrightText: (C) 2026 Chris Rizzitello <sithlord48@gmail.com>
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
*/
#pragma once
#include <QWidget>
class QPushButton;
class QLineEdit;
class SearchWidget : public QWidget
{
Q_OBJECT
public:
explicit SearchWidget(QWidget *parent = nullptr);
Q_SIGNALS:
void findNext(const QString &text);
void findPrevious(const QString &text);
protected:
void changeEvent(QEvent *e) override;
private:
void toggleVisible(bool visible = false);
void setText();
void next();
void previous();
QPushButton *m_btnToggle = nullptr;
QPushButton *m_btnNext = nullptr;
QPushButton *m_btnPrev = nullptr;
QLineEdit *m_searchLine = nullptr;
};

View File

@ -883,6 +883,25 @@ Nombres válidos:
<translation type="unfinished">&lt;center&gt;Pantalla: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Haga doble clic para editar la configuración&lt;br&gt;Arrastre la pantalla a la papelera para eliminarla</translation>
</message>
</context>
<context>
<name>SearchWidget</name>
<message>
<source>Search</source>
<translation type="unfinished">Buscar</translation>
</message>
<message>
<source>Find next</source>
<translation type="unfinished">Buscar siguiente</translation>
</message>
<message>
<source>Find previous</source>
<translation type="unfinished">Buscar anterior</translation>
</message>
<message>
<source>Find...</source>
<translation type="unfinished">Buscar...</translation>
</message>
</context>
<context>
<name>ServerConfigDialog</name>
<message>

View File

@ -883,6 +883,25 @@ Nomi validi:
<translation>&lt;center&gt;Schermo: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Fai doppio clic per modificare le impostazioni&lt;br&gt;Trascina lo schermo nel cestino per rimuoverlo</translation>
</message>
</context>
<context>
<name>SearchWidget</name>
<message>
<source>Search</source>
<translation type="unfinished">Ricerca</translation>
</message>
<message>
<source>Find next</source>
<translation type="unfinished">Trova successivo</translation>
</message>
<message>
<source>Find previous</source>
<translation type="unfinished">Trova precedente</translation>
</message>
<message>
<source>Find...</source>
<translation type="unfinished">Trova...</translation>
</message>
</context>
<context>
<name>ServerConfigDialog</name>
<message>

View File

@ -884,6 +884,25 @@ Valid names:
<translation>&lt;center&gt;: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;</translation>
</message>
</context>
<context>
<name>SearchWidget</name>
<message>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Find next</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Find previous</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Find...</source>
<translation type="unfinished">...</translation>
</message>
</context>
<context>
<name>ServerConfigDialog</name>
<message>

View File

@ -881,6 +881,25 @@ Valid names:
<translation>&lt;center&gt;Экран: &lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;Двойной клик для настроек&lt;br&gt;Перетащите экран в корзину для удаления</translation>
</message>
</context>
<context>
<name>SearchWidget</name>
<message>
<source>Search</source>
<translation type="unfinished">Поиск</translation>
</message>
<message>
<source>Find next</source>
<translation type="unfinished">Найти следующее</translation>
</message>
<message>
<source>Find previous</source>
<translation type="unfinished">Найти предыдущее</translation>
</message>
<message>
<source>Find...</source>
<translation type="unfinished">Поиск...</translation>
</message>
</context>
<context>
<name>ServerConfigDialog</name>
<message>

View File

@ -884,6 +884,25 @@ Valid names:
<translation>&lt;center&gt;&lt;b&gt;%1&lt;/b&gt;&lt;/center&gt;&lt;br&gt;&lt;br&gt;</translation>
</message>
</context>
<context>
<name>SearchWidget</name>
<message>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Find next</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Find previous</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Find...</source>
<translation type="unfinished">...</translation>
</message>
</context>
<context>
<name>ServerConfigDialog</name>
<message>