Merge pull request #1087 from SiboVG/bug-report-bold
Improve Bug Report formatting
This commit is contained in:
commit
1def2b6c6d
@ -14,10 +14,12 @@ import java.util.TreeSet;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.JEditorPane;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JScrollPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.JTextPane;
|
||||
|
||||
import com.jogamp.opengl.JoglVersion;
|
||||
|
||||
@ -68,11 +70,13 @@ public class BugReportDialog extends JDialog {
|
||||
panel.add(new JLabel(trans.get("bugreport.dlg.otherwise") + " "),
|
||||
"gapleft para, split 2, gapright rel");
|
||||
panel.add(new URLLabel(REPORT_EMAIL_URL, REPORT_EMAIL), "growx, wrap para");
|
||||
|
||||
|
||||
final JTextArea textArea = new JTextArea(message, 20, 70);
|
||||
textArea.setEditable(true);
|
||||
panel.add(new JScrollPane(textArea), "grow, wrap");
|
||||
|
||||
final JEditorPane editorPane = new JEditorPane("text/html", formatNewlineHTML(message));
|
||||
editorPane.putClientProperty(JTextPane.HONOR_DISPLAY_PROPERTIES, true);
|
||||
editorPane.setPreferredSize(new Dimension(600, 400));
|
||||
editorPane.setEditable(true);
|
||||
editorPane.setCaretPosition(0); // Scroll to the top by default
|
||||
panel.add(new JScrollPane(editorPane), "grow, wrap");
|
||||
|
||||
panel.add(new StyledLabel(trans.get("bugreport.lbl.Theinformation"), -1), "wrap para");
|
||||
|
||||
@ -106,17 +110,18 @@ public class BugReportDialog extends JDialog {
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append("---------- Bug report ----------\n");
|
||||
sb.append("<html>---------- Bug report ----------\n");
|
||||
sb.append('\n');
|
||||
sb.append("Include detailed steps on how to trigger the bug:\n");
|
||||
sb.append("<b>Include detailed steps on how to trigger the bug:</b>\n");
|
||||
sb.append("<i>(You can edit text directly in this window)</i>\n");
|
||||
sb.append('\n');
|
||||
sb.append("1. \n");
|
||||
sb.append("2. \n");
|
||||
sb.append("3. \n");
|
||||
sb.append('\n');
|
||||
|
||||
sb.append("What does the software do and what in your opinion should it do in the " +
|
||||
"case described above:\n");
|
||||
sb.append("<b>What does the software do and what in your opinion should it do in the " +
|
||||
"case described above:</b>\n");
|
||||
sb.append('\n');
|
||||
sb.append('\n');
|
||||
sb.append('\n');
|
||||
@ -133,7 +138,7 @@ public class BugReportDialog extends JDialog {
|
||||
addSystemInformation(sb);
|
||||
sb.append("---------- Error log ----------\n");
|
||||
addErrorLog(sb);
|
||||
sb.append("---------- End of bug report ----------\n");
|
||||
sb.append("---------- End of bug report ----------</html>\n");
|
||||
sb.append('\n');
|
||||
|
||||
BugReportDialog reportDialog = new BugReportDialog(parent,
|
||||
@ -152,14 +157,15 @@ public class BugReportDialog extends JDialog {
|
||||
public static void showExceptionDialog(Window parent, Thread t, Throwable e) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
sb.append("---------- Bug report ----------\n");
|
||||
sb.append('\n');
|
||||
sb.append("Please include a description about what actions you were " +
|
||||
"performing when the exception occurred:\n");
|
||||
sb.append('\n');
|
||||
sb.append('\n');
|
||||
sb.append("<html>---------- Bug report ----------\n");
|
||||
sb.append('\n');
|
||||
sb.append("<b>Please include a description about what actions you were " +
|
||||
"performing when the exception occurred:</b>\n");
|
||||
sb.append("<i>(You can edit text directly in this window)</i>\n");
|
||||
sb.append('\n');
|
||||
sb.append("1. \n");
|
||||
sb.append("2. \n");
|
||||
sb.append("3. \n");
|
||||
|
||||
|
||||
sb.append("Include your email address (optional; it helps if we can " +
|
||||
@ -191,7 +197,7 @@ public class BugReportDialog extends JDialog {
|
||||
addSystemInformation(sb);
|
||||
sb.append("---------- Error log ----------\n");
|
||||
addErrorLog(sb);
|
||||
sb.append("---------- End of bug report ----------\n");
|
||||
sb.append("---------- End of bug report ----------</html>\n");
|
||||
sb.append('\n');
|
||||
|
||||
BugReportDialog reportDialog =
|
||||
@ -235,5 +241,16 @@ public class BugReportDialog extends JDialog {
|
||||
sb.append(l.toString()).append('\n');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace newline character \n to an HTML newline. Instead of just using a <br> tag, we replace newlines with a
|
||||
* paragraph tag with zero margin. This is so that when you copy the HTML text and paste it somewhere, that the
|
||||
* HTML newlines are also interpreted as newlines in the new text. A <br> tag would just be replaced by a space.
|
||||
* @param text text to be formatted
|
||||
* @return text with HTML newlines
|
||||
*/
|
||||
private static String formatNewlineHTML(String text) {
|
||||
return text.replaceAll("\n(.*?)(?=(\n|$))", "<p style=\"margin-top: 0\">$1</p>");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package net.sf.openrocket.logging;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
/**
|
||||
@ -127,7 +128,7 @@ public class LogLine implements Comparable<LogLine> {
|
||||
public String toString() {
|
||||
if (formattedMessage == null) {
|
||||
String str;
|
||||
str = String.format("%4d %10.3f %-" + LogLevel.LENGTH + "s %s %s",
|
||||
str = String.format(Locale.ENGLISH, "%4d %10.3f %-" + LogLevel.LENGTH + "s %s %s",
|
||||
count, timestamp / 1000.0, (level != null) ? level.toString() : "NULL",
|
||||
getLocation(),
|
||||
message);
|
||||
|
Loading…
x
Reference in New Issue
Block a user