Do not clear uploads by default
This commit is contained in:
@@ -292,6 +292,11 @@ class MainFrameController {
|
||||
params['core'] = core
|
||||
mvcGroup.createMVCGroup("add-comment", "Add Comment", params)
|
||||
}
|
||||
|
||||
@ControllerAction
|
||||
void clearUploads() {
|
||||
model.uploads.removeAll { it.finished }
|
||||
}
|
||||
|
||||
void saveMuWireSettings() {
|
||||
File f = new File(core.home, "MuWire.properties")
|
||||
|
@@ -157,6 +157,10 @@ class OptionsController {
|
||||
boolean excludeLocalResult = view.excludeLocalResultCheckbox.model.isSelected()
|
||||
model.excludeLocalResult = excludeLocalResult
|
||||
uiSettings.excludeLocalResult = excludeLocalResult
|
||||
|
||||
boolean clearUploads = view.clearUploadsCheckbox.model.isSelected()
|
||||
model.clearUploads = clearUploads
|
||||
uiSettings.clearUploads = clearUploads
|
||||
|
||||
File uiSettingsFile = new File(core.home, "gui.properties")
|
||||
uiSettingsFile.withOutputStream {
|
||||
|
@@ -46,6 +46,7 @@ import com.muwire.core.update.UpdateAvailableEvent
|
||||
import com.muwire.core.update.UpdateDownloadedEvent
|
||||
import com.muwire.core.upload.UploadEvent
|
||||
import com.muwire.core.upload.UploadFinishedEvent
|
||||
import com.muwire.core.upload.Uploader
|
||||
|
||||
import griffon.core.GriffonApplication
|
||||
import griffon.core.artifact.GriffonModel
|
||||
@@ -378,7 +379,19 @@ class MainFrameModel {
|
||||
|
||||
void onUploadEvent(UploadEvent e) {
|
||||
runInsideUIAsync {
|
||||
uploads << e.uploader
|
||||
UploaderWrapper wrapper = null
|
||||
uploads.each {
|
||||
if (it.uploader == e.uploader) {
|
||||
wrapper = it
|
||||
return
|
||||
}
|
||||
}
|
||||
if (wrapper != null) {
|
||||
wrapper.uploader = e.uploader
|
||||
wrapper.requests++
|
||||
wrapper.finished = false
|
||||
} else
|
||||
uploads << new UploaderWrapper(uploader : e.uploader)
|
||||
JTable table = builder.getVariable("uploads-table")
|
||||
table.model.fireTableDataChanged()
|
||||
view.refreshSharedFiles()
|
||||
@@ -387,7 +400,18 @@ class MainFrameModel {
|
||||
|
||||
void onUploadFinishedEvent(UploadFinishedEvent e) {
|
||||
runInsideUIAsync {
|
||||
uploads.remove(e.uploader)
|
||||
UploaderWrapper wrapper = null
|
||||
uploads.each {
|
||||
if (it.uploader == e.uploader) {
|
||||
wrapper = it
|
||||
return
|
||||
}
|
||||
}
|
||||
if (uiSettings.clearUploads) {
|
||||
uploads.remove(wrapper)
|
||||
} else {
|
||||
wrapper.finished = true
|
||||
}
|
||||
JTable table = builder.getVariable("uploads-table")
|
||||
table.model.fireTableDataChanged()
|
||||
}
|
||||
@@ -584,4 +608,10 @@ class MainFrameModel {
|
||||
boolean canDownload(InfoHash hash) {
|
||||
!downloadInfoHashes.contains(hash)
|
||||
}
|
||||
|
||||
class UploaderWrapper {
|
||||
Uploader uploader
|
||||
int requests
|
||||
boolean finished
|
||||
}
|
||||
}
|
@@ -38,6 +38,7 @@ class OptionsModel {
|
||||
@Observable boolean clearFinishedDownloads
|
||||
@Observable boolean excludeLocalResult
|
||||
@Observable boolean showSearchHashes
|
||||
@Observable boolean clearUploads
|
||||
|
||||
// bw options
|
||||
@Observable String inBw
|
||||
@@ -81,6 +82,7 @@ class OptionsModel {
|
||||
clearFinishedDownloads = uiSettings.clearFinishedDownloads
|
||||
excludeLocalResult = uiSettings.excludeLocalResult
|
||||
showSearchHashes = uiSettings.showSearchHashes
|
||||
clearUploads = uiSettings.clearUploads
|
||||
|
||||
if (core.router != null) {
|
||||
inBw = String.valueOf(settings.inBw)
|
||||
|
@@ -271,31 +271,35 @@ class MainFrameView {
|
||||
scrollPane (constraints : BorderLayout.CENTER) {
|
||||
table(id : "uploads-table") {
|
||||
tableModel(list : model.uploads) {
|
||||
closureColumn(header : "Name", type : String, read : {row -> row.getName() })
|
||||
closureColumn(header : "Name", type : String, read : {row -> row.uploader.getName() })
|
||||
closureColumn(header : "Progress", type : String, read : { row ->
|
||||
int percent = row.getProgress()
|
||||
int percent = row.uploader.getProgress()
|
||||
"$percent% of piece".toString()
|
||||
})
|
||||
closureColumn(header : "Downloader", type : String, read : { row ->
|
||||
row.getDownloader()
|
||||
row.uploader.getDownloader()
|
||||
})
|
||||
closureColumn(header : "Remote Pieces", type : String, read : { row ->
|
||||
int pieces = row.getTotalPieces()
|
||||
int done = row.getDonePieces()
|
||||
int pieces = row.uploader.getTotalPieces()
|
||||
int done = row.uploader.getDonePieces()
|
||||
int percent = -1
|
||||
if ( pieces != 0 ) {
|
||||
percent = (done * 100) / pieces
|
||||
}
|
||||
long size = row.getTotalSize()
|
||||
long size = row.uploader.getTotalSize()
|
||||
String totalSize = ""
|
||||
if (size >= 0 ) {
|
||||
totalSize = " of " + DataHelper.formatSize2Decimal(size, false) + "B"
|
||||
}
|
||||
String.format("%02d", percent) + "% ${totalSize} ($done/$pieces pcs)".toString()
|
||||
})
|
||||
closureColumn(header : "Requests", type : Integer, read : {row -> row.requests})
|
||||
}
|
||||
}
|
||||
}
|
||||
panel (constraints : BorderLayout.SOUTH) {
|
||||
button(text : "Clear Finished Uploads", clearUploadsAction)
|
||||
}
|
||||
}
|
||||
}
|
||||
panel (constraints: "monitor window") {
|
||||
|
@@ -58,6 +58,7 @@ class OptionsView {
|
||||
def clearFinishedDownloadsCheckbox
|
||||
def excludeLocalResultCheckbox
|
||||
def showSearchHashesCheckbox
|
||||
def clearUploadsCheckbox
|
||||
|
||||
def inBwField
|
||||
def outBwField
|
||||
@@ -197,6 +198,9 @@ class OptionsView {
|
||||
label(text : "Exclude local files from results", constraints: gbc(gridx:0, gridy:3, anchor : GridBagConstraints.LINE_START, weightx: 100))
|
||||
excludeLocalResultCheckbox = checkBox(selected : bind {model.excludeLocalResult},
|
||||
constraints : gbc(gridx: 1, gridy : 3, anchor : GridBagConstraints.LINE_END))
|
||||
label(text : "Clear finished uploads", constraints:gbc(gridx:0, gridy:4, anchor: GridBagConstraints.LINE_START, weightx : 100))
|
||||
clearUploadsCheckbox = checkBox(selected : bind {model.clearUploads},
|
||||
constraints : gbc(gridx:1, gridy: 4, anchor:GridBagConstraints.LINE_END))
|
||||
}
|
||||
panel (constraints : gbc(gridx: 0, gridy: 2, weighty: 100))
|
||||
}
|
||||
|
Reference in New Issue
Block a user