add key id in tooltip if it's not visible

dbus-notify
Zlatin Balevsky 2022-06-06 13:06:59 +01:00
parent 60bed8ad5a
commit ed785915a8
No known key found for this signature in database
GPG Key ID: A72832072D525E41
9 changed files with 44 additions and 41 deletions

View File

@ -49,11 +49,11 @@ class ChatRoomModel {
return persona
}
public String getTitle() {
public String getRawTitle() {
MWProfileHeader header = profileHeaders.get(persona)
if (header == null)
return ""
return HTMLSanitizer.sanitize(header.getTitle())
return header.getTitle()
}
public Icon getThumbnail() {

View File

@ -941,10 +941,6 @@ class MainFrameModel {
uploader.downloaderPersona
}
String getTitle() {
HTMLSanitizer.sanitize(profileHeader?.getTitle())
}
Icon getThumbnail() {
if (profileHeader == null)
return null
@ -1166,9 +1162,8 @@ class MainFrameModel {
}
@Override
String getTitle() {
String title = core.trustService.getProfileHeader(getPersona())?.getTitle()
return HTMLSanitizer.sanitize(title)
String getRawTitle() {
getHeader()?.getTitle()
}
@Override

View File

@ -259,7 +259,6 @@ class SearchTabModel {
static class SenderBucket implements PersonaOrProfile {
final Persona sender
private final Icon avatar
private final String profileTitle
private final MWProfileHeader profileHeader
private final int rowIdx
final List<UIResultEvent> results = []
@ -275,10 +274,8 @@ class SearchTabModel {
icon = new ThumbnailIcon(profileHeader.getThumbNail())
} catch (IOException iox) {}
avatar = icon
profileTitle = HTMLSanitizer.sanitize(profileHeader.getTitle())
} else {
avatar = null
profileTitle = null
}
}
@ -290,10 +287,6 @@ class SearchTabModel {
avatar
}
String getTitle() {
profileTitle
}
MWProfileHeader getHeader() {
profileHeader
}

View File

@ -42,13 +42,6 @@ class MWMessageStatus implements PersonaOrProfile {
return icon
}
@Override
String getTitle() {
if (profileHeader == null)
return null
return HTMLSanitizer.sanitize(profileHeader.getTitle())
}
@Override
MWProfileHeader getHeader() {
profileHeader

View File

@ -1,6 +1,7 @@
package com.muwire.gui.profile
import com.muwire.core.Persona
import com.muwire.gui.HTMLSanitizer
import com.muwire.gui.UISettings
import javax.swing.JTable
@ -28,9 +29,15 @@ class PersonaOrProfileCellRenderer extends DefaultTableCellRenderer {
else
setIcon(null)
if (pop.getTitle() != null)
setToolTipText(pop.getTitle())
else
if (pop.getTitle() != null) {
if (settings.personaRendererIds)
setToolTipText(pop.getTitle())
else {
String escaped = HTMLSanitizer.escape(pop.getRawTitle());
String tooltip = "<html><body>${pop.getPersona().getHumanReadableName()}: ${escaped}</body><html>"
setToolTipText(tooltip)
}
} else
setToolTipText(trans("NO_PROFILE"))
Persona persona = pop.getPersona()

View File

@ -29,11 +29,6 @@ class ResultPOP implements PersonaOrProfile {
thumbNail
}
@Override
String getTitle() {
return HTMLSanitizer.sanitize(event.profileHeader?.getTitle())
}
@Override
MWProfileHeader getHeader() {
return event.profileHeader

View File

@ -27,7 +27,7 @@ class TrustPOP implements PersonaOrProfile {
@Override
Icon getThumbnail() {
MWProfileHeader header = trustEntry.getProfileHeader()
MWProfileHeader header = getHeader()
if (header == null)
return null
if (icon == null)
@ -35,11 +35,6 @@ class TrustPOP implements PersonaOrProfile {
return icon
}
@Override
String getTitle() {
return HTMLSanitizer.sanitize(trustEntry.getProfileHeader()?.getTitle())
}
@Override
public MWProfileHeader getHeader() {
trustEntry.getProfileHeader()

View File

@ -7,6 +7,15 @@ public class HTMLSanitizer {
return null;
StringBuilder sb = new StringBuilder(s.length() * 2 + 26);
sb.append("<html><body>");
sb.append(escape(s));
sb.append("</body></html>");
return sb.toString();
}
public static String escape(String s) {
if (s == null)
return null;
StringBuilder sb = new StringBuilder(s.length() * 2);
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch(c) {
@ -18,7 +27,6 @@ public class HTMLSanitizer {
sb.append(c);
}
}
sb.append("</body></html>");
return sb.toString();
}
}

View File

@ -3,16 +3,33 @@ package com.muwire.gui.profile;
import com.muwire.core.Persona;
import com.muwire.core.profile.MWProfile;
import com.muwire.core.profile.MWProfileHeader;
import com.muwire.gui.HTMLSanitizer;
import javax.swing.*;
public interface PersonaOrProfile {
Persona getPersona();
default Persona getPersona() {return getHeader().getPersona();}
Icon getThumbnail();
String getTitle();
default String getTitle() {
return HTMLSanitizer.sanitize(getRawTitle());
}
default String getRawTitle() {
MWProfileHeader header = getHeader();
if (header == null)
return null;
return header.getTitle();
}
default MWProfileHeader getHeader() {
return null;
MWProfile profile = getProfile();
if (profile == null)
return null;
return profile.getHeader();
}
default MWProfile getProfile() { return null; }
}