Skip to content

Commit db8a85f

Browse files
authored
Merge pull request #53 from arduino/bugfix/windows-path
Bugfix/windows path
2 parents 15eb66b + 07e0d7a commit db8a85f

File tree

5 files changed

+198
-126
lines changed

5 files changed

+198
-126
lines changed

index.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ function ilistFolder(folder, filesOnly) {
4040
return files
4141
}
4242

43-
4443
// LOCAL FILE SYSTEM ACCESS
4544
ipcMain.handle('open-folder', async (event) => {
4645
console.log('ipcMain', 'open-folder')
@@ -64,16 +63,14 @@ ipcMain.handle('ilist-files', async (event, folder) => {
6463
return ilistFolder(folder)
6564
})
6665

67-
ipcMain.handle('load-file', (event, folder, filename) => {
68-
console.log('ipcMain', 'load-file', folder, filename )
69-
let filePath = path.resolve(folder, filename)
66+
ipcMain.handle('load-file', (event, filePath) => {
67+
console.log('ipcMain', 'load-file', filePath)
7068
let content = fs.readFileSync(filePath)
7169
return content
7270
})
7371

74-
ipcMain.handle('save-file', (event, folder, filename, content) => {
75-
console.log('ipcMain', 'save-file', folder, filename, content)
76-
let filePath = path.resolve(folder, filename)
72+
ipcMain.handle('save-file', (event, filePath, content) => {
73+
console.log('ipcMain', 'save-file', filePath, content)
7774
fs.writeFileSync(filePath, content, 'utf8')
7875
return true
7976
})
@@ -89,21 +86,20 @@ ipcMain.handle('update-folder', (event, folder) => {
8986
return { folder, files }
9087
})
9188

92-
ipcMain.handle('remove-file', (event, folder, filename) => {
93-
console.log('ipcMain', 'remove-file', folder, filename)
94-
let filePath = path.resolve(folder, filename)
89+
ipcMain.handle('remove-file', (event, filePath) => {
90+
console.log('ipcMain', 'remove-file', filePath)
9591
fs.unlinkSync(filePath)
9692
return true
9793
})
9894

99-
ipcMain.handle('rename-file', (event, folder, filename, newFilename) => {
100-
console.log('ipcMain', 'rename-file', folder, filename, newFilename)
101-
let filePath = path.resolve(folder, filename)
102-
let newFilePath = path.resolve(folder, newFilename)
95+
ipcMain.handle('rename-file', (event, filePath, newFilePath) => {
96+
console.log('ipcMain', 'rename-file', filePath, newFilePath)
10397
fs.renameSync(filePath, newFilePath)
104-
return newFilename
98+
return true
10599
})
106100

101+
// WINDOW MANAGEMENT
102+
107103
ipcMain.handle('set-window-size', (event, minWidth, minHeight) => {
108104
console.log('ipcMain', 'set-window-size', minWidth, minHeight)
109105
if (!win) {

package-lock.json

Lines changed: 27 additions & 27 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

preload.js

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
console.log('preload')
22
const { contextBridge, ipcRenderer } = require('electron')
3+
const path = require('path')
34

45
const Micropython = require('micropython.js')
56
const board = new Micropython()
@@ -53,14 +54,12 @@ const Serial = {
5354
saveFileContent: async (filename, content, dataConsumer) => {
5455
return board.fs_save(content || ' ', filename, dataConsumer)
5556
},
56-
uploadFile: async (diskFolder, serialFolder, filename, dataConsumer) => {
57-
let src = `${diskFolder}/${filename}`
58-
let dest = `${serialFolder}/${filename}`
57+
uploadFile: async (src, dest, dataConsumer) => {
5958
return board.fs_put(src, dest, dataConsumer)
6059
},
61-
downloadFile: async (serialFolder, diskFolder, filename) => {
62-
let contents = await Serial.loadFile(`${serialFolder}/${filename}`)
63-
return ipcRenderer.invoke('save-file', diskFolder, filename, contents)
60+
downloadFile: async (src, dest) => {
61+
let contents = await Serial.loadFile(src)
62+
return ipcRenderer.invoke('save-file', dest, contents)
6463
},
6564
renameFile: async (oldName, newName) => {
6665
return board.fs_rename(oldName, newName)
@@ -73,6 +72,15 @@ const Serial = {
7372
},
7473
exit_raw_repl: async () => {
7574
return board.exit_raw_repl()
75+
},
76+
getNavigationPath: (navigation, target) => {
77+
return [navigation, target].filter(p => p).join('/')
78+
},
79+
getFullPath: (root, navigation, file) => {
80+
return root + [navigation, file].filter(p => p).join('/')
81+
},
82+
getParentPath: (filePath) => {
83+
return filePath.split('/').slice(0, -1).join('/')
7684
}
7785
}
7886

@@ -86,18 +94,27 @@ const Disk = {
8694
ilistFiles: async (folder) => {
8795
return ipcRenderer.invoke('ilist-files', folder)
8896
},
89-
loadFile: async (folder, file) => {
90-
let content = await ipcRenderer.invoke('load-file', folder, file)
97+
loadFile: async (filePath) => {
98+
let content = await ipcRenderer.invoke('load-file', filePath)
9199
return new TextDecoder().decode(content)
92100
},
93-
removeFile: async (folder, file) => {
94-
return ipcRenderer.invoke('remove-file', folder, file)
101+
removeFile: async (filePath) => {
102+
return ipcRenderer.invoke('remove-file', filePath)
103+
},
104+
saveFileContent: async (filePath, content) => {
105+
return ipcRenderer.invoke('save-file', filePath, content)
106+
},
107+
renameFile: async (oldName, newName) => {
108+
return ipcRenderer.invoke('rename-file', oldName, newName)
109+
},
110+
getNavigationPath: (navigation, target) => {
111+
return path.join(navigation, target)
95112
},
96-
saveFileContent: async (folder, file, content) => {
97-
return ipcRenderer.invoke('save-file', folder, file, content)
113+
getFullPath: (root, navigation, file) => {
114+
return path.resolve(path.join(root, navigation, file))
98115
},
99-
renameFile: async (folder, oldName, newName) => {
100-
return ipcRenderer.invoke('rename-file', folder, oldName, newName)
116+
getParentPath: (navigation) => {
117+
return path.dirname(navigation)
101118
}
102119
}
103120

ui/arduino/components/panel_files.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ function PanelFiles(state, emit) {
8484
<div class="path">
8585
${state.isConnected ? Icon('icons/Connect.svg') : Icon('icons/Disconnect.svg')}
8686
<a class="full" href="#" onclick=${() => emit('open-port-dialog')}>
87-
${state.isConnected ? state.serialPath : 'Connect'}
87+
${state.isConnected ? state.serialPort : 'Connect'}
8888
</a>
8989
${removeSerial}
9090
${newSerial}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy