Index: azureus2/org/gudy/azureus2/internat/MessagesBundle.properties =================================================================== RCS file: /cvsroot/azureus/azureus2/org/gudy/azureus2/internat/MessagesBundle.properties,v retrieving revision 1.815 diff -u -r1.815 MessagesBundle.properties --- azureus2/org/gudy/azureus2/internat/MessagesBundle.properties 18 May 2007 19:25:52 -0000 1.815 +++ azureus2/org/gudy/azureus2/internat/MessagesBundle.properties 20 May 2007 01:58:08 -0000 @@ -2148,6 +2150,8 @@ ConfigView.section.ipfilter.enable.descriptionCache.tooltip=When disabled, descriptions will not be remembered OpenTorrentWindow.filesInfo=%1 of %2 will be downloaded. +OpenTorrentWindow.diskUsage=\n%1\t%2 of %3 + ConfigView.label.openmytorrents=Open 'My Torrents' on startup ConfigView.section.style.DNDalwaysInIncomplete=Always show torrents with 'Do Not Download' files in Incomplete section of My Torrents Index: azureus2/org/gudy/azureus2/ui/swt/OpenTorrentWindow.java =================================================================== RCS file: /cvsroot/azureus/azureus2/org/gudy/azureus2/ui/swt/OpenTorrentWindow.java,v retrieving revision 1.89 diff -u -r1.89 OpenTorrentWindow.java --- azureus2/org/gudy/azureus2/ui/swt/OpenTorrentWindow.java 18 May 2007 22:57:09 -0000 1.89 +++ azureus2/org/gudy/azureus2/ui/swt/OpenTorrentWindow.java 20 May 2007 01:58:08 -0000 @@ -27,6 +27,7 @@ import java.io.*; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -509,6 +510,7 @@ } cmbDataDir.redraw(); cmbDataDir.update(); + updateSize(); } }); @@ -1201,6 +1203,7 @@ } // for i checkSeedingMode(); + updateSize(); } }); @@ -1589,6 +1592,7 @@ } // for i checkSeedingMode(); + updateSize(); } /** @@ -2501,7 +2505,7 @@ if (sDestFileName != null) { return new File(sDestFileName); } else { - return new File(sDestDir, sFullFileName); + return new File(parent.sDestDir, sFullFileName); } } @@ -2534,21 +2538,109 @@ return (sDefDir == "") ? null : sDefDir; } + + private class FreeSpaceItem { + public FreeSpaceItem(File root) {this.root = root;} + + long bytesToConsume = 0; + long freeSpace = 0; + final File root; + } private void updateSize() { + /* + * determine space consumed by all files per partition + */ + final File[] FSroots = File.listRoots(); + final HashMap partitionItems = new HashMap(); + String diskFreeInfo = ""; + boolean filesTooBig = false; + + // code requires java 1.6 methods + try + { + for(int i = 0;i part.freeSpace) + filesTooBig = true; + } + + + + + /* + * determine info for selected torrents only + */ long totalSize = 0; long checkedSize = 0; + for (int i = 0; i < dataFiles.size(); i++) { TorrentFileInfo file = (TorrentFileInfo) dataFiles.get(i); totalSize += file.lSize; - + if (file.bDownload) { checkedSize += file.lSize; } } - + + + + // build string and set label if (totalSize == 0) { dataFileTableLabel.setText(""); } else { @@ -2556,8 +2648,9 @@ "OpenTorrentWindow.filesInfo", new String[] { DisplayFormatters.formatByteCountToKiBEtc(checkedSize), DisplayFormatters.formatByteCountToKiBEtc(totalSize) - })); + })+diskFreeInfo); } + dataFileTableLabel.setForeground(filesTooBig ? Colors.colorError : null); dataFileTableLabel.update(); dataFileTableLabel.getParent().getParent().layout(true, true); }