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) {
|
if (installing.get() <= 1) {
|
||||||
restarter.scheduleRestart(owner)
|
// 不阻塞按钮状态变更
|
||||||
|
SwingUtilities.invokeLater { restarter.scheduleRestart(owner) }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果是更新,那么也需要刷新 InstalledPanel 下的按钮状态
|
// 如果是更新,那么也需要刷新 InstalledPanel 下的按钮状态
|
||||||
|
|||||||
@@ -237,11 +237,17 @@ internal class TransportNavigationPanel(private val navigator: TransportNavigato
|
|||||||
button.putClientProperty(FlatClientProperties.BUTTON_TYPE, FlatClientProperties.BUTTON_TYPE_TOOLBAR_BUTTON)
|
button.putClientProperty(FlatClientProperties.BUTTON_TYPE, FlatClientProperties.BUTTON_TYPE_TOOLBAR_BUTTON)
|
||||||
button.addMouseListener(object : MouseAdapter() {
|
button.addMouseListener(object : MouseAdapter() {
|
||||||
override fun mouseClicked(e: MouseEvent) {
|
override fun mouseClicked(e: MouseEvent) {
|
||||||
if (navigator.loading) return
|
if (SwingUtilities.isLeftMouseButton(e)) {
|
||||||
if (path == navigator.workdir) {
|
if (navigator.loading) return
|
||||||
setTextFieldText(path)
|
if (path == navigator.workdir) {
|
||||||
} else {
|
setTextFieldText(path)
|
||||||
navigator.navigateTo(path.absolutePathString())
|
} 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
|
val workdir = workdir ?: return
|
||||||
if (e.actionCommand.isNullOrBlank()) {
|
if (e.actionCommand.isNullOrBlank()) {
|
||||||
if (bookmarkBtn.isBookmark) {
|
if (bookmarkBtn.isBookmark) {
|
||||||
bookmarkBtn.deleteBookmark(workdir.absolutePathString())
|
bookmarkBtn.deleteBookmark(workdir.pathString)
|
||||||
} else {
|
} else {
|
||||||
bookmarkBtn.addBookmark(workdir.absolutePathString())
|
bookmarkBtn.addBookmark(workdir.pathString)
|
||||||
}
|
}
|
||||||
bookmarkBtn.isBookmark = bookmarkBtn.isBookmark.not()
|
bookmarkBtn.isBookmark = bookmarkBtn.isBookmark.not()
|
||||||
} else {
|
} else {
|
||||||
@@ -263,7 +263,8 @@ internal class TransportPanel(
|
|||||||
homeBtn.addActionListener(createSmartAction(object : AbstractAction() {
|
homeBtn.addActionListener(createSmartAction(object : AbstractAction() {
|
||||||
override fun actionPerformed(e: ActionEvent) {
|
override fun actionPerformed(e: ActionEvent) {
|
||||||
if (loader.isLoaded()) {
|
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 ->
|
addPropertyChangeListener("workdir") { evt ->
|
||||||
val newValue = evt.newValue
|
val newValue = evt.newValue
|
||||||
if (newValue is Path) {
|
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
|
// https://github.com/TermoraDev/termora/issues/401
|
||||||
table.addMouseListener(object : MouseAdapter() {
|
table.addMouseListener(object : MouseAdapter() {
|
||||||
override fun mouseClicked(e: MouseEvent) {
|
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() {
|
table.addKeyListener(object : KeyAdapter() {
|
||||||
override fun keyPressed(e: KeyEvent) {
|
override fun keyPressed(e: KeyEvent) {
|
||||||
@@ -494,6 +493,7 @@ internal class TransportPanel(
|
|||||||
if (SystemInfo.isMacOS.not()) {
|
if (SystemInfo.isMacOS.not()) {
|
||||||
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), "Reload")
|
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")
|
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_R, toolkit.menuShortcutKeyMaskEx), "Reload")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -601,7 +601,12 @@ internal class TransportPanel(
|
|||||||
if (workdir != null) registerSelectRow(workdir.name)
|
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) {
|
private fun registerSelectRow(name: String) {
|
||||||
|
|||||||
@@ -139,7 +139,8 @@ internal class TransportTabbed(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun addLocalTab() {
|
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 fs = FileSystems.getDefault()
|
||||||
val support = DefaultTransportSupport(fs, fs.getPath(getDefaultLocalPath()))
|
val support = DefaultTransportSupport(fs, fs.getPath(getDefaultLocalPath()))
|
||||||
val panel = TransportPanel(internalTransferManager, host, object : TransportSupportLoader {
|
val panel = TransportPanel(internalTransferManager, host, object : TransportSupportLoader {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ open class S3FileSystem(provider: S3FileSystemProvider) : BaseFileSystem<S3Path>
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun close() {
|
override fun close() {
|
||||||
isOpen.compareAndSet(false, true)
|
isOpen.compareAndSet(true, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getRootDirectories(): Iterable<Path> {
|
override fun getRootDirectories(): Iterable<Path> {
|
||||||
|
|||||||
Reference in New Issue
Block a user