📄 opentorrentwindow.java
字号:
{
OpenTorrentWindow openTorrentWindow = stOpenTorrentWindow;
openTorrentWindow.bOverrideStartModeToStopped = bDefaultStopped;
openTorrentWindow.bDefaultForSeeding = bForSeeding;
if (sFilesToOpen != null && !bPopupOpenURL && openTorrentWindow.addTorrents(sPathOfFilesToOpen, sFilesToOpen) == 0 && openTorrentWindow.torrentList.size() == 0 && openTorrentWindow.downloaders.size() == 0)
{
openTorrentWindow.close(true, true);
return;
}
if (bPopupOpenURL)
openTorrentWindow.browseURL();
if (saveSilentlyDir != null)
{
openTorrentWindow.sDestDir = saveSilentlyDir;
for (int i = 0; i < openTorrentWindow.torrentList.size(); i++)
{
TorrentInfo info = (TorrentInfo)openTorrentWindow.torrentList.get(i);
info.renameDuplicates();
}
openTorrentWindow.openTorrents();
openTorrentWindow.close(true, false);
}
}
}
public static final synchronized void invoke(Shell parent, GlobalManager gm)
{
invoke(parent, gm, null, null, false, false, false);
}
public static final synchronized void invokeURLPopup(Shell parent, GlobalManager gm)
{
invoke(parent, gm, null, null, false, false, true);
}
private OpenTorrentWindow(Shell parent, GlobalManager gm, boolean bOpenWindow)
{
cmbStartMode = null;
cmbQueueLocation = null;
dataFiles = new ArrayList();
torrentList = new ArrayList();
downloaders = new ArrayList();
bOverrideStartModeToStopped = false;
disposeList = new ArrayList();
bClosed = false;
bSkipDataDirModify = false;
activeTorrentCount = 0;
diskFreeInfoRefreshPending = false;
diskFreeInfoRefreshRunning = false;
this.gm = gm;
sDestDir = COConfigurationManager.getStringParameter("Default save path");
if (bOpenWindow)
openWindow(parent);
else
shellForChildren = parent;
}
private void openWindow(Shell parent)
{
boolean bTorrentInClipboard = false;
shell = ShellFactory.createShell(parent, 2160);
shellForChildren = shell;
shell.setText(MessageText.getString("OpenTorrentWindow.title"));
Utils.setShellIcon(shell);
GridLayout layout = FixupLayout(new GridLayout(), false);
shell.setLayout(layout);
shell.addListener(11, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event e)
{
resizeTables(3);
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
Clipboard clipboard = new Clipboard(shell.getDisplay());
String sClipText = (String)clipboard.getContents(TextTransfer.getInstance());
if (sClipText != null)
bTorrentInClipboard = addTorrentsFromTextList(sClipText, true) > 0;
Composite cButtons = new Composite(shell, 0);
RowLayout rLayout = new RowLayout(256);
rLayout.marginBottom = 0;
rLayout.marginLeft = 0;
rLayout.marginRight = 0;
rLayout.marginTop = 0;
cButtons.setLayout(rLayout);
Button browseTorrent = new Button(cButtons, 8);
Messages.setLanguageText(browseTorrent, "OpenTorrentWindow.addFiles");
browseTorrent.addListener(13, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event event)
{
FileDialog fDialog = new FileDialog(shell, 4098);
fDialog.setFilterExtensions(new String[] {
"*.torrent", "*.tor", Constants.FILE_WILDCARD
});
fDialog.setFilterNames(new String[] {
"*.torrent", "*.tor", Constants.FILE_WILDCARD
});
fDialog.setFilterPath(TorrentOpener.getFilterPathTorrent());
fDialog.setText(MessageText.getString("MainWindow.dialog.choose.file"));
String fileName = TorrentOpener.setFilterPathTorrent(fDialog.open());
if (fileName != null)
addTorrents(fDialog.getFilterPath(), fDialog.getFileNames());
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
Utils.setGridData(cButtons, 768, browseTorrent, MIN_BUTTON_HEIGHT);
Button browseURL = new Button(cButtons, 8);
Messages.setLanguageText(browseURL, "OpenTorrentWindow.addFiles.URL");
browseURL.addListener(13, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event event)
{
browseURL();
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
Button browseFolder = new Button(cButtons, 8);
Messages.setLanguageText(browseFolder, "OpenTorrentWindow.addFiles.Folder");
browseFolder.addListener(13, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event event)
{
DirectoryDialog fDialog = new DirectoryDialog(shell, 0);
fDialog.setFilterPath(TorrentOpener.getFilterPathTorrent());
fDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.folder"));
String path = TorrentOpener.setFilterPathTorrent(fDialog.open());
if (path != null)
addTorrents(path, null);
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
if (bTorrentInClipboard)
{
Button pasteOpen = new Button(cButtons, 8);
Messages.setLanguageText(pasteOpen, "OpenTorrentWindow.addFiles.Clipboard");
pasteOpen.setToolTipText(sClipText);
pasteOpen.addListener(13, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event event)
{
Clipboard clipboard = new Clipboard(shell.getDisplay());
String sClipText = (String)clipboard.getContents(TextTransfer.getInstance());
if (sClipText != null)
addTorrentsFromTextList(sClipText.trim(), false);
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
}
Group gTorrentsArea = new Group(shell, 0);
GridData gridData = new GridData(768);
gTorrentsArea.setLayoutData(gridData);
layout = FixupLayout(new GridLayout(), true);
gTorrentsArea.setLayout(layout);
Messages.setLanguageText(gTorrentsArea, "OpenTorrentWindow.torrentLocation");
Composite cTorrentList = new Composite(gTorrentsArea, 0);
gridData = new GridData(768);
cTorrentList.setLayoutData(gridData);
createTorrentListArea(cTorrentList);
Composite cTorrentOptions = new Composite(gTorrentsArea, 0);
gridData = new GridData(768);
cTorrentOptions.setLayoutData(gridData);
layout = FixupLayout(new GridLayout(), true);
layout.marginHeight = 0;
layout.marginWidth = 0;
cTorrentOptions.setLayout(layout);
Label label = new Label(cTorrentOptions, 0);
gridData = new GridData(768);
label.setLayoutData(gridData);
Messages.setLanguageText(label, "OpenTorrentWindow.torrent.options");
int userMode = COConfigurationManager.getIntParameter("User Mode");
if (userMode > 0)
{
Composite cTorrentModes = new Composite(cTorrentOptions, 0);
gridData = new GridData(768);
cTorrentModes.setLayoutData(gridData);
layout = new GridLayout();
layout.numColumns = 4;
layout.marginWidth = 0;
layout.marginHeight = 0;
cTorrentModes.setLayout(layout);
label = new Label(cTorrentModes, 0);
gridData = new GridData(4);
label.setLayoutData(gridData);
Messages.setLanguageText(label, "OpenTorrentWindow.startMode");
cmbStartMode = new Combo(cTorrentModes, 2056);
gridData = new GridData(768);
cmbStartMode.setLayoutData(gridData);
updateStartModeCombo();
cmbStartMode.addSelectionListener(new SelectionAdapter() {
final OpenTorrentWindow this$0;
public void widgetSelected(SelectionEvent e)
{
setSelectedStartMode(cmbStartMode.getSelectionIndex());
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
label = new Label(cTorrentModes, 0);
gridData = new GridData(4);
label.setLayoutData(gridData);
Messages.setLanguageText(label, "OpenTorrentWindow.addPosition");
cmbQueueLocation = new Combo(cTorrentModes, 2056);
gridData = new GridData(768);
cmbQueueLocation.setLayoutData(gridData);
updateQueueLocationCombo();
cmbQueueLocation.addSelectionListener(new SelectionAdapter() {
final OpenTorrentWindow this$0;
public void widgetSelected(SelectionEvent e)
{
setSelectedQueueLocation(cmbQueueLocation.getSelectionIndex());
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
}
cSaveTo = new Composite(cTorrentOptions, 0);
layout = FixupLayout(new GridLayout(), false);
layout.marginHeight = 0;
layout.marginWidth = 0;
layout.verticalSpacing = 0;
layout.numColumns = 2;
cSaveTo.setLayout(layout);
Label lblDataDir = new Label(cSaveTo, 0);
gridData = new GridData(256);
gridData.horizontalSpan = 2;
lblDataDir.setLayoutData(gridData);
Messages.setLanguageText(lblDataDir, "OpenTorrentWindow.dataLocation");
cmbDataDir = new Combo(cSaveTo, 2048);
gridData = new GridData(768);
cmbDataDir.setLayoutData(gridData);
cmbDataDir.addModifyListener(new ModifyListener() {
final OpenTorrentWindow this$0;
public void modifyText(ModifyEvent e)
{
if (bSkipDataDirModify)
return;
sDestDir = cmbDataDir.getText();
int indexes[] = torrentTable.getSelectionIndices();
for (int i = 0; i < indexes.length; i++)
{
TorrentInfo info = (TorrentInfo)torrentList.get(indexes[i]);
info.sDestDir = sDestDir;
}
torrentTable.clearAll();
checkSeedingMode();
File file = new File(sDestDir);
if (!file.isDirectory())
cmbDataDir.setBackground(Colors.colorErrorBG);
else
cmbDataDir.setBackground(null);
cmbDataDir.redraw();
cmbDataDir.update();
diskFreeInfoRefreshPending = true;
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
updateDataDirCombo();
if (sDestDir != null && sDestDir.length() > 0)
cmbDataDir.add(sDestDir);
dirList = COConfigurationManager.getStringListParameter("saveTo_list");
StringIterator iter = dirList.iterator();
do
{
if (!iter.hasNext())
break;
String s = iter.next();
if (!s.equals(sDestDir))
cmbDataDir.add(s);
} while (true);
Button browseData = new Button(cSaveTo, 8);
Messages.setLanguageText(browseData, "ConfigView.button.browse");
browseData.addListener(13, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event event)
{
String sDefPath = cmbDataDir.getText();
File f = new File(sDefPath);
if (sDefPath.length() > 0)
do
{
if (f.exists())
break;
f = f.getParentFile();
if (f != null)
continue;
f = new File(sDefPath);
break;
} while (true);
DirectoryDialog dDialog = new DirectoryDialog(shell, 0x20000);
dDialog.setFilterPath(f.getAbsolutePath());
dDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.savepath_forallfiles"));
String sSavePath = dDialog.open();
if (sSavePath != null)
cmbDataDir.setText(sSavePath);
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
gridData = new GridData(768);
cSaveTo.setLayoutData(gridData);
Group gFilesArea = new Group(shell, 0);
gridData = new GridData(1808);
gFilesArea.setLayoutData(gridData);
layout = FixupLayout(new GridLayout(), true);
gFilesArea.setLayout(layout);
Messages.setLanguageText(gFilesArea, "OpenTorrentWindow.fileList");
createTableDataFiles(gFilesArea);
Composite cArea = new Composite(shell, 0);
layout = new GridLayout();
layout.marginHeight = 0;
layout.numColumns = 2;
cArea.setLayout(layout);
ok = new Button(cArea, 8);
Messages.setLanguageText(ok, "Button.ok");
gridData = new GridData(128);
gridData.widthHint = 70;
ok.setLayoutData(gridData);
shell.setDefaultButton(ok);
ok.addListener(13, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event event)
{
okPressed();
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
checkSeedingMode();
Button cancel = new Button(cArea, 8);
Messages.setLanguageText(cancel, "Button.cancel");
gridData = new GridData();
gridData.widthHint = 70;
cancel.setLayoutData(gridData);
cancel.addListener(13, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event event)
{
close(true, true);
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
Utils.setGridData(cArea, 128, ok, MIN_BUTTON_HEIGHT);
shell.addDisposeListener(new DisposeListener() {
final OpenTorrentWindow this$0;
public void widgetDisposed(DisposeEvent e)
{
if (!bClosed)
close(false, true);
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
shell.addListener(31, new Listener() {
final OpenTorrentWindow this$0;
public void handleEvent(Event e)
{
if (e.detail == 2)
close(true, true);
}
{
this$0 = OpenTorrentWindow.this;
super();
}
});
KeyListener pasteKeyListener = new KeyAdapter() {
final OpenTorrentWindow this$0;
public void keyPressed(KeyEvent e)
{
int key = e.character;
if ((e.stateMask & SWT.MOD1) != 0 && e.character <= '\032' && e.character > 0)
key += 96;
if (key == 118 && (e.stateMask & SWT.MOD1) > 0 || e.keyCode == 0x1000009 && (e.stateMask & 0x20000) > 0)
{
e.doit = false;
Clipboard clipboard = new Clipboard(shell.getDisplay());
String sClipText = (String)clipboard.getContents(TextTransfer.getInstance());
if (sClipText != null)
addTorrentsFromTextList(sClipText, false);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -