limit scrollback
This commit is contained in:
@@ -56,6 +56,7 @@ class ChatRoomController {
|
||||
|
||||
view.roomTextArea.append(toShow)
|
||||
view.roomTextArea.append('\n')
|
||||
trimLines()
|
||||
}
|
||||
|
||||
if (command.action == ChatAction.JOIN) {
|
||||
@@ -131,6 +132,7 @@ class ChatRoomController {
|
||||
String toDisplay = DataHelper.formatTime(e.timestamp) + " <"+e.sender.getHumanReadableName()+"> " + text + "\n"
|
||||
runInsideUIAsync {
|
||||
view.roomTextArea.append(toDisplay)
|
||||
trimLines()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -139,6 +141,7 @@ class ChatRoomController {
|
||||
runInsideUIAsync {
|
||||
model.members.add(p)
|
||||
view.roomTextArea.append(toDisplay)
|
||||
trimLines()
|
||||
view.membersTable?.model?.fireTableDataChanged()
|
||||
}
|
||||
}
|
||||
@@ -158,6 +161,7 @@ class ChatRoomController {
|
||||
runInsideUIAsync {
|
||||
model.members.remove(p)
|
||||
view.roomTextArea.append(toDisplay)
|
||||
trimLines()
|
||||
view.membersTable?.model?.fireTableDataChanged()
|
||||
}
|
||||
}
|
||||
@@ -167,8 +171,19 @@ class ChatRoomController {
|
||||
runInsideUIAsync {
|
||||
if (model.members.remove(p)) {
|
||||
view.roomTextArea.append(toDisplay)
|
||||
trimLines()
|
||||
view.membersTable?.model?.fireTableDataChanged()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void trimLines() {
|
||||
if (model.settings.maxChatLines < 0)
|
||||
return
|
||||
while(view.roomTextArea.getLineCount() > model.settings.maxChatLines) {
|
||||
int line0Start = view.roomTextArea.getLineStartOffset(0)
|
||||
int line0End = view.roomTextArea.getLineEndOffset(0)
|
||||
view.roomTextArea.replaceRange(null, line0Start, line0End)
|
||||
}
|
||||
}
|
||||
}
|
@@ -151,6 +151,10 @@ class OptionsController {
|
||||
boolean advertiseChat = view.advertiseChatCheckbox.model.isSelected()
|
||||
model.advertiseChat = advertiseChat
|
||||
settings.advertiseChat = advertiseChat
|
||||
|
||||
int maxChatLines = Integer.parseInt(view.maxChatLinesField.text)
|
||||
model.maxChatLines = maxChatLines
|
||||
uiSettings.maxChatLines = maxChatLines
|
||||
|
||||
core.saveMuSettings()
|
||||
|
||||
|
@@ -19,7 +19,10 @@ class ChatRoomModel {
|
||||
|
||||
def members = []
|
||||
|
||||
UISettings settings
|
||||
|
||||
void mvcGroupInit(Map<String,String> args) {
|
||||
members.add(core.me)
|
||||
settings = application.context.get("ui-settings")
|
||||
}
|
||||
}
|
@@ -60,6 +60,7 @@ class OptionsModel {
|
||||
@Observable boolean startChatServer
|
||||
@Observable int maxChatConnections
|
||||
@Observable boolean advertiseChat
|
||||
@Observable int maxChatLines
|
||||
|
||||
void mvcGroupInit(Map<String, String> args) {
|
||||
MuWireSettings settings = application.context.get("muwire-settings")
|
||||
@@ -112,5 +113,6 @@ class OptionsModel {
|
||||
startChatServer = settings.startChatServer
|
||||
maxChatConnections = settings.maxChatConnections
|
||||
advertiseChat = settings.advertiseChat
|
||||
maxChatLines = uiSettings.maxChatLines
|
||||
}
|
||||
}
|
@@ -75,6 +75,7 @@ class OptionsView {
|
||||
def startChatServerCheckbox
|
||||
def maxChatConnectionsField
|
||||
def advertiseChatCheckbox
|
||||
def maxChatLinesField
|
||||
|
||||
def buttonsPanel
|
||||
|
||||
@@ -284,6 +285,8 @@ class OptionsView {
|
||||
maxChatConnectionsField = textField(text : bind {model.maxChatConnections}, constraints : gbc(gridx: 1, gridy : 1, anchor:GridBagConstraints.LINE_END))
|
||||
label(text : "Advertise chat ability in search results", constraints : gbc(gridx: 0, gridy:2, anchor:GridBagConstraints.LINE_START, weightx:100))
|
||||
advertiseChatCheckbox = checkBox(selected : bind{model.advertiseChat}, constraints : gbc(gridx:1, gridy:2, anchor:GridBagConstraints.LINE_END))
|
||||
label(text : "Maximum lines of scrollback (-1 means unlimited)", constraints : gbc(gridx:0, gridy:3, anchor : GridBagConstraints.LINE_START, weightx: 100))
|
||||
maxChatLinesField = textField(text : bind{model.maxChatLines}, constraints : gbc(gridx:1, gridy: 3, anchor: GridBagConstraints.LINE_END))
|
||||
}
|
||||
panel(constraints : gbc(gridx: 0, gridy : 1, weighty: 100))
|
||||
}
|
||||
|
Reference in New Issue
Block a user