[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-panel-devel
Subject: Re: Review Request 122717: Improve tooltip layouting
From: "Martin Klapetek" <martin.klapetek () gmail ! com>
Date: 2015-03-05 13:46:50
Message-ID: 20150305134650.6755.26820 () probe ! kde ! org
[Download RAW message or body]
--===============7536850710940190863==
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
> On Feb. 26, 2015, 11:10 p.m., Kai Uwe Broulik wrote:
> > I'm now getting most of my headlines elided or wrapped:
> > "K-\n Menü"
> > "99%. Wird\n geladen" (battery)
> > "Aktualisierung..." (updater)
> > "KM..." (rather than KMail)
> > "Volume at\n 45%" (kmix)
> > "Donnerst..." (rather than Donnerstag, digitalclock)
>
> Lukáš Tinkl wrote:
> Yup, seeing the same here: http://developer.kde.org/~lukas/screenshots/tooltip.png
>
> Sebastian Kügler wrote:
> Thanks for the feedback! This patch indeed shortens the max width a bit, so it's \
> likely the culprit.
> Could you guys try changing
>
> property int preferredTextWidth: units.gridUnit * 20
>
> to 25 or 30 and see if that fixes the problems? I'd like to not make it too wide, \
> so we'll need some testing here, I think.
> Martin Klapetek wrote:
> 25 nor 30 does any difference here, in fact, not even 40 makes any difference at \
> all
> Sebastian Kügler wrote:
> Thanks for the testing.
>
> I've investigated a bit further, though without any conclusive solution. Let's take \
> a step back.
> The implicitWidth of the text item (which is the width the text would be rendered \
> at in one single line without linebreaks) set min and max width of the surrounding \
> layout, which is propagated into the root item's Layout.min and Layout.max widths. \
> On my system (Intel, dunno if it makes a difference), this works correctly, the \
> dialog's size correctly makes the tooltip window resize and fit.
> The bug we're seeing looks like the dialog size is not correctly scaled up, so the \
> text in the heading either breaks, or elides. What should happen here is that the \
> mainitems Layout sizing takes preference, and the tooltip window is scaled to the \
> content, not the other way around.
> I'm puzzled for now.
>
> David Edmundson wrote:
> Martin/ Lukas can you reproduce on the test case in \
> plasma-frameworkst/tests/tooltip.qml adding any new entries if needed
> Can you set a rightAnchor on the topmost RowLayout and see if that fixes it?
The tests do work but not quite correct imo - \
http://paste.opensuse.org/images/52544878.png
Adding another tooltip:
```
PlasmaCore.ToolTipArea {
width: 300
height: 50
icon: "telepathy-kde"
mainText: "Notifications"
subText: "Display notifications and jobs"
Rectangle {
color: "green"
anchors.fill: parent
}
Text {
anchors.fill: parent
text: "Notifications"
}
}
```
which mimicks the notifications applet tooltip shows only "Notificat...".
Also, adding right anchor breaks the tooltip altogether, makes it only about 20 \
pixels wide in all cases.
- Martin
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/122717/#review76692
-----------------------------------------------------------
On Feb. 26, 2015, 4:46 p.m., Sebastian Kügler wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/122717/
> -----------------------------------------------------------
>
> (Updated Feb. 26, 2015, 4:46 p.m.)
>
>
> Review request for Plasma.
>
>
> Repository: plasma-framework
>
>
> Description
> -------
>
> Improve tooltip layouting
>
> This patch ports the default tooltip away from custom spacing,
> positioning and Row/Column to QtQuick.Layouts. It makes the sizing more
> predictable, and the code more modern and readable. Tooltips feel to
> behave a bit smoother with this patch.
>
> In the process, this...
> - fixes spacing when no icon or image is set
> - limits the maximum height of the subtext to 8 lines (this prevents the
> klipper tooltip for example from growing super-high)
> - Makes the icon on the LHS proportional to the text
> - Limits the width a bit more to prevent super-wide tooltips
> - makes it use units.gridUnit throughout
>
> Changelog: Improve tooltip layout
>
> This is the more radical approach to https://git.reviewboard.kde.org/r/122715/
>
>
> Diffs
> -----
>
> src/declarativeimports/core/private/DefaultToolTip.qml d1be6ae
>
> Diff: https://git.reviewboard.kde.org/r/122717/diff/
>
>
> Testing
> -------
>
> Tested all applets' tooltips in the default panel
>
>
> File Attachments
> ----------------
>
> launcher (old)
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/a6c636ce-3aef-4d5a-82f0-d78f9dab19a1__old-kickoff.png
> pager (old)
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/fae793bb-2965-4a81-be27-08efce5b3838__old-pager.png
> kdeconnect (old)
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/fc079c52-be17-47cf-bd11-976aed566155__old-kdeconnect.png
> clock (old)
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/8214146b-cdd4-41d7-b406-f6fc404585cc__old-clock.png
> new-kickoff.png
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/9a96304f-1deb-4f57-9417-121a95b7ed03__new-kickoff.png
> new-pager.png
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/e2c5738f-e701-4a5e-a179-cedc6bb55181__new-pager.png
> new-kdeconnect.png
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/0c73a854-de8a-4dc2-bd57-c22e0700dbb5__new-kdeconnect.png
> new-clock.png
> https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/7311d304-cdf3-4bf2-8fdc-519d1a4c020d__new-clock.png
>
>
> Thanks,
>
> Sebastian Kügler
>
>
--===============7536850710940190863==
MIME-Version: 1.0
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: 8bit
<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 \
solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;"> \
<tr> <td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/122717/">https://git.reviewboard.kde.org/r/122717/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <p style="margin-top: 0;">On February 26th, 2015, 11:10 p.m. CET, <b>Kai Uwe \
Broulik</b> wrote:</p> <blockquote style="margin-left: 1em; border-left: 2px solid \
#d0d0d0; padding-left: 10px;"> <pre style="white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">I'm now getting most of my headlines elided or \
wrapped: "K-\n Menü"
"99%. Wird\n geladen" (battery)
"Aktualisierung..." (updater)
"KM..." (rather than KMail)
"Volume at\n 45%" (kmix)
"Donnerst..." (rather than Donnerstag, digitalclock)</p></pre>
</blockquote>
<p>On February 26th, 2015, 11:30 p.m. CET, <b>Lukáš Tinkl</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Yup, \
seeing the same here: \
http://developer.kde.org/~lukas/screenshots/tooltip.png</p></pre> </blockquote>
<p>On February 27th, 2015, 1:35 p.m. CET, <b>Sebastian Kügler</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Thanks for the feedback! This patch indeed shortens the max width a bit, so \
it's likely the culprit. </p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Could you guys try changing </p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">property int preferredTextWidth: units.gridUnit * 20</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">to 25 \
or 30 and see if that fixes the problems? I'd like to not make it too wide, so we'll \
need some testing here, I think.</p></pre> </blockquote>
<p>On March 2nd, 2015, 5:43 p.m. CET, <b>Martin Klapetek</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">25 \
nor 30 does any difference here, in fact, not even 40 makes any difference at \
all</p></pre> </blockquote>
<p>On March 3rd, 2015, 2:27 a.m. CET, <b>Sebastian Kügler</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Thanks for the testing.</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;">I've investigated a bit \
further, though without any conclusive solution. Let's take a step back.</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">The implicitWidth of the text item (which is the width the text would be \
rendered at in one single line without linebreaks) set min and max width of the \
surrounding layout, which is propagated into the root item's Layout.min and \
Layout.max widths. On my system (Intel, dunno if it makes a difference), this works \
correctly, the dialog's size correctly makes the tooltip window resize and fit.</p> \
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">The bug we're seeing looks like the dialog size is not \
correctly scaled up, so the text in the heading either breaks, or elides. What should \
happen here is that the mainitems Layout sizing takes preference, and the tooltip \
window is scaled to the content, not the other way around.</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I'm \
puzzled for now.</p></pre> </blockquote>
<p>On March 5th, 2015, 2:03 p.m. CET, <b>David Edmundson</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: \
10px;"> <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Martin/ Lukas can you reproduce on the test case in \
plasma-frameworkst/tests/tooltip.qml adding any new entries if needed</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Can you set a rightAnchor on the topmost RowLayout and see if that fixes \
it?</p></pre> </blockquote>
</blockquote>
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: \
-pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The \
tests do work but not quite correct imo - \
http://paste.opensuse.org/images/52544878.png</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">Adding another tooltip:</p> <p style="padding: 0;text-rendering: \
inherit;margin: 0;line-height: inherit;white-space: inherit;"><div class="codehilite" \
style="background: #f8f8f8"><pre style="line-height: 125%"> \
PlasmaCore.ToolTipArea {
<span style="color: #A0A000">width:</span> <span style="color: \
#666666">300</span>
<span style="color: #A0A000">height:</span> <span style="color: \
#666666">50</span>
<span style="color: #A0A000">icon:</span> <span style="color: \
#BA2121">"telepathy-kde"</span>
<span style="color: #A0A000">mainText:</span> <span style="color: \
#BA2121">"Notifications"</span>
<span style="color: #A0A000">subText:</span> <span style="color: \
#BA2121">"Display notifications and jobs"</span>
Rectangle {
<span style="color: #A0A000">color:</span> <span style="color: \
#BA2121">"green"</span> anchors.fill<span style="color: #666666">:</span> \
parent }
Text {
anchors.fill<span style="color: #666666">:</span> parent
<span style="color: #A0A000">text:</span> <span style="color: \
#BA2121">"Notifications"</span> }
}
</pre></div>
</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">which mimicks the notifications applet tooltip shows \
only "Notificat...".</p> <p style="padding: 0;text-rendering: inherit;margin: \
0;line-height: inherit;white-space: inherit;">Also, adding right anchor breaks the \
tooltip altogether, makes it only about 20 pixels wide in all cases.</p></pre> <br />
<p>- Martin</p>
<br />
<p>On February 26th, 2015, 4:46 p.m. CET, Sebastian Kügler wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: \
1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; \
-webkit-border-radius: 6px;"> <tr>
<td>
<div>Review request for Plasma.</div>
<div>By Sebastian Kügler.</div>
<p style="color: grey;"><i>Updated Feb. 26, 2015, 4:46 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-framework
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Improve tooltip layouting</p> <p style="padding: \
0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This \
patch ports the default tooltip away from custom spacing, positioning and Row/Column \
to QtQuick.Layouts. It makes the sizing more predictable, and the code more modern \
and readable. Tooltips feel to behave a bit smoother with this patch.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">In the process, this...
- fixes spacing when no icon or image is set
- limits the maximum height of the subtext to 8 lines (this prevents the
klipper tooltip for example from growing super-high)
- Makes the icon on the LHS proportional to the text
- Limits the width a bit more to prevent super-wide tooltips
- makes it use units.gridUnit throughout</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Changelog: Improve tooltip layout</p> <p \
style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: \
inherit;">This is the more radical approach to \
https://git.reviewboard.kde.org/r/122715/</p></pre> </td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: \
1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: \
inherit;white-space: inherit;">Tested all applets' tooltips in the default \
panel</p></pre> </td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>src/declarativeimports/core/private/DefaultToolTip.qml <span style="color: \
grey">(d1be6ae)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/122717/diff/" style="margin-left: \
3em;">View Diff</a></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments \
</h1>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/a6c636ce-3aef-4d5a-82f0-d78f9dab19a1__old-kickoff.png">launcher \
(old)</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/fae793bb-2965-4a81-be27-08efce5b3838__old-pager.png">pager \
(old)</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/fc079c52-be17-47cf-bd11-976aed566155__old-kdeconnect.png">kdeconnect \
(old)</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/8214146b-cdd4-41d7-b406-f6fc404585cc__old-clock.png">clock \
(old)</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/9a96304f-1deb-4f57-9417-121a95b7ed03__new-kickoff.png">new-kickoff.png</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/e2c5738f-e701-4a5e-a179-cedc6bb55181__new-pager.png">new-pager.png</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/0c73a854-de8a-4dc2-bd57-c22e0700dbb5__new-kdeconnect.png">new-kdeconnect.png</a></li>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2015/02/25/7311d304-cdf3-4bf2-8fdc-519d1a4c020d__new-clock.png">new-clock.png</a></li>
</ul>
</td>
</tr>
</table>
</div>
</body>
</html>
--===============7536850710940190863==--
[Attachment #3 (text/plain)]
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic