fixed archive behaviour
This commit is contained in:
parent
b07e888bae
commit
b65f459511
@ -1199,9 +1199,7 @@ public class FilePanelTab extends JPanel {
|
|||||||
if (row >= 0) {
|
if (row >= 0) {
|
||||||
FileItem item = (viewMode == ViewMode.BRIEF) ? tableModel.getItemFromBriefLayout(row, briefCurrentColumn) : tableModel.getItem(row);
|
FileItem item = (viewMode == ViewMode.BRIEF) ? tableModel.getItemFromBriefLayout(row, briefCurrentColumn) : tableModel.getItem(row);
|
||||||
if (item != null && !item.isFtp()) {
|
if (item != null && !item.isFtp()) {
|
||||||
if (item.isDirectory() || (item.getFile() != null && FileOperations.canOpenAsArchive(item.getFile()))) {
|
enterSelectedArchive(item, row, viewMode == ViewMode.BRIEF ? briefCurrentColumn : 0);
|
||||||
openSelectedItem();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
e.consume();
|
e.consume();
|
||||||
@ -2281,32 +2279,20 @@ public class FilePanelTab extends JPanel {
|
|||||||
FileOperations.rewriteArchiveFromDirectory(currentArchiveTempDir.toFile(), currentArchiveSourceFile, currentArchivePassword, callback);
|
FileOperations.rewriteArchiveFromDirectory(currentArchiveTempDir.toFile(), currentArchiveSourceFile, currentArchivePassword, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void openSelectedItem() {
|
private boolean shouldEnterArchiveOnActivation(File file) {
|
||||||
int selectedRow = fileTable.getSelectedRow();
|
return FileOperations.isArchiveFile(file);
|
||||||
if (selectedRow >= 0) {
|
|
||||||
FileItem item;
|
|
||||||
if (viewMode == ViewMode.BRIEF) {
|
|
||||||
item = tableModel.getItemFromBriefLayout(selectedRow, briefCurrentColumn);
|
|
||||||
} else {
|
|
||||||
item = tableModel.getItem(selectedRow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item == null) return;
|
private void enterSelectedArchive(FileItem item, int row, int column) {
|
||||||
|
if (item == null || item.isFtp()) return;
|
||||||
|
|
||||||
if (item.isFtp()) {
|
if (!item.isDirectory() && FileOperations.canOpenAsArchive(item.getFile())) {
|
||||||
if (item.getName().equals("..")) {
|
enterArchiveItem(item, row, column);
|
||||||
navigateFtpUp();
|
|
||||||
} else if (item.isDirectory()) {
|
|
||||||
String entryPath = item.getFtpPath();
|
|
||||||
loadFtpDirectory(entryPath, true, true);
|
|
||||||
}
|
}
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item.getName().equals("..")) {
|
private void enterArchiveItem(FileItem item, int row, int column) {
|
||||||
navigateUp();
|
ReturnNavigationState returnState = rememberReturnStateForItem(item, row, column);
|
||||||
} else if (FileOperations.canOpenAsArchive(item.getFile())) {
|
|
||||||
ReturnNavigationState returnState = rememberReturnStateForItem(item, selectedRow, viewMode == ViewMode.BRIEF ? briefCurrentColumn : 0);
|
|
||||||
rememberArchiveReturnState(item.getFile());
|
rememberArchiveReturnState(item.getFile());
|
||||||
final File archiveFile = item.getFile();
|
final File archiveFile = item.getFile();
|
||||||
|
|
||||||
@ -2339,6 +2325,34 @@ public class FilePanelTab extends JPanel {
|
|||||||
JOptionPane.showMessageDialog(FilePanelTab.this, error, "Archive Error", JOptionPane.ERROR_MESSAGE);
|
JOptionPane.showMessageDialog(FilePanelTab.this, error, "Archive Error", JOptionPane.ERROR_MESSAGE);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openSelectedItem() {
|
||||||
|
int selectedRow = fileTable.getSelectedRow();
|
||||||
|
if (selectedRow >= 0) {
|
||||||
|
FileItem item;
|
||||||
|
if (viewMode == ViewMode.BRIEF) {
|
||||||
|
item = tableModel.getItemFromBriefLayout(selectedRow, briefCurrentColumn);
|
||||||
|
} else {
|
||||||
|
item = tableModel.getItem(selectedRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item == null) return;
|
||||||
|
|
||||||
|
if (item.isFtp()) {
|
||||||
|
if (item.getName().equals("..")) {
|
||||||
|
navigateFtpUp();
|
||||||
|
} else if (item.isDirectory()) {
|
||||||
|
String entryPath = item.getFtpPath();
|
||||||
|
loadFtpDirectory(entryPath, true, true);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.getName().equals("..")) {
|
||||||
|
navigateUp();
|
||||||
|
} else if (shouldEnterArchiveOnActivation(item.getFile())) {
|
||||||
|
enterArchiveItem(item, selectedRow, viewMode == ViewMode.BRIEF ? briefCurrentColumn : 0);
|
||||||
} else if (item.isDirectory()) {
|
} else if (item.isDirectory()) {
|
||||||
rememberReturnStateForItem(item, selectedRow, viewMode == ViewMode.BRIEF ? briefCurrentColumn : 0);
|
rememberReturnStateForItem(item, selectedRow, viewMode == ViewMode.BRIEF ? briefCurrentColumn : 0);
|
||||||
loadDirectory(item.getFile());
|
loadDirectory(item.getFile());
|
||||||
@ -2855,7 +2869,7 @@ public class FilePanelTab extends JPanel {
|
|||||||
|
|
||||||
if (item.getName().equals("..")) {
|
if (item.getName().equals("..")) {
|
||||||
navigateUp();
|
navigateUp();
|
||||||
} else if (FileOperations.canOpenAsArchive(item.getFile())) {
|
} else if (shouldEnterArchiveOnActivation(item.getFile())) {
|
||||||
ReturnNavigationState returnState = rememberReturnStateForItem(item, row, viewMode == ViewMode.BRIEF ? col : 0);
|
ReturnNavigationState returnState = rememberReturnStateForItem(item, row, viewMode == ViewMode.BRIEF ? col : 0);
|
||||||
rememberArchiveReturnState(item.getFile());
|
rememberArchiveReturnState(item.getFile());
|
||||||
final File archiveFile = item.getFile();
|
final File archiveFile = item.getFile();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user