Only elide label of hyperlink inset if target and not name given
Pavel Sanda
sanda at lyx.org
Tue Mar 24 11:35:56 UTC 2020
On Mon, Mar 23, 2020 at 12:36:58PM +0100, Pavel Sanda wrote:
> On Sun, Mar 22, 2020 at 08:26:47PM -0400, Richard Kimberly Heck wrote:
> > On 3/22/20 5:51 PM, Pavel Sanda wrote:
> > > On Sat, Mar 21, 2020 at 11:14:48PM +0100, ??ystein Senneset Haaland wrote:
> > >> When I add a URL as a hyperlink inset and give it a name, I normally would
> > >> like to see the full text of the name in the label. This way, it can to a
> > >> greater extent be part of the surrounding text.
> > >>
> > >> The patch is simple; it only moves the eliding part up where its only the
> > >> target that is set, not the name:
> > > Makes sense. I can commit later if there are no objections.
> >
> > Seems sensible to me, too.
>
> Actually I am not sure anymore about arbitrary lengths. If someone hyperlinks whole
> paragraph, do we really want inset overlaping width of lyx window?
> Wouldn't be enough to make restriction of 'name' case just somewhat longer?
> (Say 80 chars approximating single line in the output.)
Like this.
Pavel
-------------- next part --------------
diff --git a/src/insets/InsetHyperlink.cpp b/src/insets/InsetHyperlink.cpp
index a500f7bd59..65f6c0fe24 100644
--- a/src/insets/InsetHyperlink.cpp
+++ b/src/insets/InsetHyperlink.cpp
@@ -65,14 +65,22 @@ docstring InsetHyperlink::screenLabel() const
docstring url;
url += getParam("name");
- if (url.empty())
+ if (url.empty()) {
url += getParam("target");
- // elide if long
- if (url.length() > 30) {
- docstring end = url.substr(url.length() - 17, url.length());
- support::truncateWithEllipsis(url, 13);
- url += end;
+ // elide if long and no name was provided
+ if (url.length() > 30) {
+ docstring end = url.substr(url.length() - 17, url.length());
+ support::truncateWithEllipsis(url, 13);
+ url += end;
+ }
+ } else {
+ // elide if long (approx number of chars in line of article class)
+ if (url.length() > 80) {
+ docstring end = url.substr(url.length() - 67, url.length());
+ support::truncateWithEllipsis(url, 13);
+ url += end;
+ }
}
return temp + url;
}
More information about the lyx-devel
mailing list