mirror of
https://github.com/TermoraDev/termora.git
synced 2026-01-16 02:12:58 +08:00
fix: windows drive list failure
This commit is contained in:
@@ -232,7 +232,8 @@ class PluginPanel(val descriptor: PluginPluginDescriptor) : JPanel(), Disposable
|
||||
|
||||
// 当有多个插件正在安装时,那么最后一个安装成功的询问是否重启
|
||||
if (installing.get() <= 1) {
|
||||
restarter.scheduleRestart(owner)
|
||||
// 不阻塞按钮状态变更
|
||||
SwingUtilities.invokeLater { restarter.scheduleRestart(owner) }
|
||||
}
|
||||
|
||||
// 如果是更新,那么也需要刷新 InstalledPanel 下的按钮状态
|
||||
|
||||
@@ -237,11 +237,17 @@ internal class TransportNavigationPanel(private val navigator: TransportNavigato
|
||||
button.putClientProperty(FlatClientProperties.BUTTON_TYPE, FlatClientProperties.BUTTON_TYPE_TOOLBAR_BUTTON)
|
||||
button.addMouseListener(object : MouseAdapter() {
|
||||
override fun mouseClicked(e: MouseEvent) {
|
||||
if (navigator.loading) return
|
||||
if (path == navigator.workdir) {
|
||||
setTextFieldText(path)
|
||||
} else {
|
||||
navigator.navigateTo(path.absolutePathString())
|
||||
if (SwingUtilities.isLeftMouseButton(e)) {
|
||||
if (navigator.loading) return
|
||||
if (path == navigator.workdir) {
|
||||
setTextFieldText(path)
|
||||
} else {
|
||||
if (path.fileSystem.isWindowsFileSystem() && path.pathString == path.fileSystem.separator) {
|
||||
navigator.navigateTo(path.pathString)
|
||||
} else {
|
||||
navigator.navigateTo(path.absolutePathString())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -249,9 +249,9 @@ internal class TransportPanel(
|
||||
val workdir = workdir ?: return
|
||||
if (e.actionCommand.isNullOrBlank()) {
|
||||
if (bookmarkBtn.isBookmark) {
|
||||
bookmarkBtn.deleteBookmark(workdir.absolutePathString())
|
||||
bookmarkBtn.deleteBookmark(workdir.pathString)
|
||||
} else {
|
||||
bookmarkBtn.addBookmark(workdir.absolutePathString())
|
||||
bookmarkBtn.addBookmark(workdir.pathString)
|
||||
}
|
||||
bookmarkBtn.isBookmark = bookmarkBtn.isBookmark.not()
|
||||
} else {
|
||||
@@ -263,7 +263,8 @@ internal class TransportPanel(
|
||||
homeBtn.addActionListener(createSmartAction(object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
if (loader.isLoaded()) {
|
||||
navigator.navigateTo(loader.getSyncTransportSupport().getDefaultPath().absolutePathString())
|
||||
val home = loader.getSyncTransportSupport().getDefaultPath().absolutePathString()
|
||||
reload(newPath = home, requestFocus = true)
|
||||
}
|
||||
}
|
||||
}))
|
||||
@@ -344,7 +345,7 @@ internal class TransportPanel(
|
||||
addPropertyChangeListener("workdir") { evt ->
|
||||
val newValue = evt.newValue
|
||||
if (newValue is Path) {
|
||||
bookmarkBtn.isBookmark = bookmarkBtn.getBookmarks().contains(newValue.absolutePathString())
|
||||
bookmarkBtn.isBookmark = bookmarkBtn.getBookmarks().contains(newValue.pathString)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -404,14 +405,6 @@ internal class TransportPanel(
|
||||
}
|
||||
})
|
||||
|
||||
table.addKeyListener(object : KeyAdapter() {
|
||||
override fun keyPressed(e: KeyEvent) {
|
||||
if (e.keyCode == KeyEvent.VK_ENTER) {
|
||||
enterSelectionFolder()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// https://github.com/TermoraDev/termora/issues/401
|
||||
table.addMouseListener(object : MouseAdapter() {
|
||||
override fun mouseClicked(e: MouseEvent) {
|
||||
@@ -467,6 +460,12 @@ internal class TransportPanel(
|
||||
}
|
||||
})
|
||||
|
||||
table.actionMap.put("EnterSelectionFolder", object : AbstractAction() {
|
||||
override fun actionPerformed(e: ActionEvent) {
|
||||
enterSelectionFolder()
|
||||
}
|
||||
})
|
||||
|
||||
// 快速导航
|
||||
table.addKeyListener(object : KeyAdapter() {
|
||||
override fun keyPressed(e: KeyEvent) {
|
||||
@@ -494,6 +493,7 @@ internal class TransportPanel(
|
||||
if (SystemInfo.isMacOS.not()) {
|
||||
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), "Reload")
|
||||
}
|
||||
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "EnterSelectionFolder")
|
||||
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_R, toolkit.menuShortcutKeyMaskEx), "Reload")
|
||||
}
|
||||
|
||||
@@ -601,7 +601,12 @@ internal class TransportPanel(
|
||||
if (workdir != null) registerSelectRow(workdir.name)
|
||||
}
|
||||
|
||||
navigator.navigateTo(path.absolutePathString())
|
||||
// Windows 比较特殊,显示盘符页
|
||||
if (path.fileSystem.isWindowsFileSystem() && path.pathString == path.fileSystem.separator) {
|
||||
navigator.navigateTo(path.pathString)
|
||||
} else {
|
||||
navigator.navigateTo(path.absolutePathString())
|
||||
}
|
||||
}
|
||||
|
||||
private fun registerSelectRow(name: String) {
|
||||
|
||||
@@ -139,7 +139,8 @@ internal class TransportTabbed(
|
||||
}
|
||||
|
||||
fun addLocalTab() {
|
||||
val host = Host(name = "Local", protocol = LocalProtocolProvider.PROTOCOL)
|
||||
// local id 必须固定,不然书签无法使用
|
||||
val host = Host(id = "local", name = "Local", protocol = LocalProtocolProvider.PROTOCOL)
|
||||
val fs = FileSystems.getDefault()
|
||||
val support = DefaultTransportSupport(fs, fs.getPath(getDefaultLocalPath()))
|
||||
val panel = TransportPanel(internalTransferManager, host, object : TransportSupportLoader {
|
||||
|
||||
@@ -22,7 +22,7 @@ open class S3FileSystem(provider: S3FileSystemProvider) : BaseFileSystem<S3Path>
|
||||
}
|
||||
|
||||
override fun close() {
|
||||
isOpen.compareAndSet(false, true)
|
||||
isOpen.compareAndSet(true, false)
|
||||
}
|
||||
|
||||
override fun getRootDirectories(): Iterable<Path> {
|
||||
|
||||
Reference in New Issue
Block a user