Skip to content
代码片段 群组 项目
提交 3959ab6d 编辑于 作者: Jing Teng's avatar Jing Teng
浏览文件

enable navigation bar to be toggled via URL / electron menu via rendererApi.

BUG: ZAPP-450
上级 c9f58be2
No related branches found
No related tags found
无相关合并请求
...@@ -89,6 +89,18 @@ async function progressStart(browserWindow, message) { ...@@ -89,6 +89,18 @@ async function progressStart(browserWindow, message) {
) )
} }
async function debugNavBarOn(browserWindow) {
await browserWindow.webContents.executeJavaScript(
`window.global_renderer_api_execute('${restApi.rendererApiId.debugNavBarOn}')`
)
}
async function debugNavBarOff(browserWindow) {
await browserWindow.webContents.executeJavaScript(
`window.global_renderer_api_execute('${restApi.rendererApiId.debugNavBarOff}')`
)
}
async function getFileLocation(browserWindow, key) { async function getFileLocation(browserWindow, key) {
return null return null
} }
...@@ -185,6 +197,8 @@ exports.executeLoad = executeLoad ...@@ -185,6 +197,8 @@ exports.executeLoad = executeLoad
exports.executeSave = executeSave exports.executeSave = executeSave
exports.progressEnd = progressEnd exports.progressEnd = progressEnd
exports.progressStart = progressStart exports.progressStart = progressStart
exports.debugNavBarOn = debugNavBarOn
exports.debugNavBarOff = debugNavBarOff
exports.reportFiles = reportFiles exports.reportFiles = reportFiles
exports.processRendererNotify = processRendererNotify exports.processRendererNotify = processRendererNotify
exports.getFileLocation = getFileLocation exports.getFileLocation = getFileLocation
......
...@@ -144,6 +144,18 @@ const template = (httpPort) => [ ...@@ -144,6 +144,18 @@ const template = (httpPort) => [
browserApi.progressEnd(browserWindow) browserApi.progressEnd(browserWindow)
}, },
}, },
{
label: 'Show debug navigation bar',
click(menuItem, browserWindow) {
browserApi.debugNavBarOn(browserWindow)
},
},
{
label: 'Hide debug navigation bar',
click(menuItem, browserWindow) {
browserApi.debugNavBarOff(browserWindow)
},
},
{ {
label: 'About', label: 'About',
httpPort: httpPort, httpPort: httpPort,
......
...@@ -53,7 +53,7 @@ function openFileConfiguration(filePath, httpPort) { ...@@ -53,7 +53,7 @@ function openFileConfiguration(filePath, httpPort) {
* Creates a new window with a blank configuration. * Creates a new window with a blank configuration.
* *
* @param {*} httpPort * @param {*} httpPort
* @param {*} options: uiMode, embeddedMode * @param {*} options: uiMode, debugNavBar
*/ */
async function openNewConfiguration(httpPort, options = {}) { async function openNewConfiguration(httpPort, options = {}) {
windowJs.windowCreate(httpPort, options) windowJs.windowCreate(httpPort, options)
......
...@@ -46,7 +46,7 @@ function windowCreateIfNotThere(port) { ...@@ -46,7 +46,7 @@ function windowCreateIfNotThere(port) {
} }
} }
function createQueryString(uiMode = null, embeddedMode = null) { function createQueryString(uiMode = null) {
let queryString = '' let queryString = ''
if (uiMode) { if (uiMode) {
if (queryString.length == 0) { if (queryString.length == 0) {
...@@ -55,13 +55,6 @@ function createQueryString(uiMode = null, embeddedMode = null) { ...@@ -55,13 +55,6 @@ function createQueryString(uiMode = null, embeddedMode = null) {
queryString += `&uiMode=${uiMode}` queryString += `&uiMode=${uiMode}`
} }
} }
if (embeddedMode) {
if (queryString.length == 0) {
queryString = `?embeddedMode=${embeddedMode}`
} else {
queryString += `&embeddedMode=${embeddedMode}`
}
}
return queryString return queryString
} }
...@@ -72,7 +65,6 @@ function createQueryString(uiMode = null, embeddedMode = null) { ...@@ -72,7 +65,6 @@ function createQueryString(uiMode = null, embeddedMode = null) {
* @param {*} port * @param {*} port
* @param {*} [filePath=null] * @param {*} [filePath=null]
* @param {*} [uiMode=null] * @param {*} [uiMode=null]
* @param {*} [embeddedMode=null]
* @returns BrowserWindow that got created * @returns BrowserWindow that got created
*/ */
function windowCreate(port, args = {}) { function windowCreate(port, args = {}) {
...@@ -94,13 +86,19 @@ function windowCreate(port, args = {}) { ...@@ -94,13 +86,19 @@ function windowCreate(port, args = {}) {
webPreferences: webPreferences, webPreferences: webPreferences,
}) })
let queryString = createQueryString(args.uiMode, args.embeddedMode) let queryString = createQueryString(args.uiMode)
w.isDirty = false w.isDirty = false
w.loadURL(`http://localhost:${port}/` + queryString).then(async () => { w.loadURL(`http://localhost:${port}/` + queryString).then(async () => {
if (args.filePath != null) { if (args.filePath != null) {
browserApi.executeLoad(w, args.filePath) browserApi.executeLoad(w, args.filePath)
} }
if (args.debugNavBar) {
browserApi.debugNavBarOn(w)
} else {
browserApi.debugNavBarOff(w)
}
}) })
w.on('page-title-updated', (e) => { w.on('page-title-updated', (e) => {
......
...@@ -92,12 +92,12 @@ function processCommandLineArguments(argv) { ...@@ -92,12 +92,12 @@ function processCommandLineArguments(argv) {
type: 'string', type: 'string',
default: restApi.uiMode.ZIGBEE, default: restApi.uiMode.ZIGBEE,
}) })
.option('embeddedMode', { .option('debugNavBar', {
desc: desc:
'Boolean for when you want to embed purely the ZCL parts of the ZAP tool', 'Boolean for when you want to embed purely the ZCL parts of the ZAP tool',
alias: 'embed', alias: 'embed',
type: 'boolean', type: 'boolean',
default: false, default: exports.debugNavBar,
}) })
.option('noUi', { .option('noUi', {
desc: "Don't show the main window when starting.", desc: "Don't show the main window when starting.",
......
...@@ -100,6 +100,8 @@ exports.rendererApiId = { ...@@ -100,6 +100,8 @@ exports.rendererApiId = {
progressStart: 'progressStart', progressStart: 'progressStart',
progressEnd: 'progressEnd', progressEnd: 'progressEnd',
reportFiles: 'reportFiles', reportFiles: 'reportFiles',
debugNavBarOn: 'debugNavBarOn',
debugNavBarOff: 'debugNavBarOff',
} }
exports.rendererApiNotifyKey = { exports.rendererApiNotifyKey = {
...@@ -109,6 +111,7 @@ exports.rendererApiNotifyKey = { ...@@ -109,6 +111,7 @@ exports.rendererApiNotifyKey = {
exports.progress_attribute = 'progress-message' exports.progress_attribute = 'progress-message'
exports.reported_files = 'reported-files' exports.reported_files = 'reported-files'
exports.debugNavBar = 'debugNavBar'
exports.uri = uri exports.uri = uri
exports.httpCode = httpCode exports.httpCode = httpCode
......
...@@ -98,8 +98,8 @@ export default { ...@@ -98,8 +98,8 @@ export default {
this.$store.dispatch('zap/setDefaultUiMode', query[`uiMode`]) this.$store.dispatch('zap/setDefaultUiMode', query[`uiMode`])
} }
if (`embeddedMode` in query) { if (`debugNavBar` in query) {
this.$store.dispatch('zap/setEmbeddedMode', query[`embeddedMode`]) this.$store.dispatch('zap/setDebugNavBar', query[`debugNavBar`])
} }
this.zclDialogTitle = 'ZCL tab!' this.zclDialogTitle = 'ZCL tab!'
......
...@@ -59,6 +59,14 @@ function renderer_api_info() { ...@@ -59,6 +59,14 @@ function renderer_api_info() {
id: restApi.rendererApiId.progressEnd, id: restApi.rendererApiId.progressEnd,
description: 'End progress indicator.', description: 'End progress indicator.',
}, },
{
id: restApi.rendererApiId.debugNavBarOn,
description: 'Show debug navigation bar',
},
{
id: restApi.rendererApiId.debugNavBarOff,
description: 'Hide debug navigation bar',
},
], ],
} }
} }
...@@ -103,6 +111,12 @@ function renderer_api_execute(id, ...args) { ...@@ -103,6 +111,12 @@ function renderer_api_execute(id, ...args) {
JSON.parse(args[0]) JSON.parse(args[0])
) )
break break
case restApi.rendererApiId.debugNavBarOn:
observable.setObservableAttribute(restApi.debugNavBar, true)
break
case restApi.rendererApiId.debugNavBarOff:
observable.setObservableAttribute(restApi.debugNavBar, false)
break
} }
return ret return ret
} }
......
...@@ -29,7 +29,7 @@ limitations under the License. ...@@ -29,7 +29,7 @@ limitations under the License.
<div class="q-gutter-y-md height: 10vh"> <div class="q-gutter-y-md height: 10vh">
<q-toolbar <q-toolbar
class="shadow-2" class="shadow-2"
v-if="!this.$store.state.zap.calledArgs['embeddedMode']" v-if="this.$store.state.zap.debugNavBar"
> >
<q-tabs flat v-model="tab"> <q-tabs flat v-model="tab">
<q-tab name="general" label="General" /> <q-tab name="general" label="General" />
...@@ -244,6 +244,10 @@ export default { ...@@ -244,6 +244,10 @@ export default {
this.doGeneration(this.generationDirectory) this.doGeneration(this.generationDirectory)
} }
}) })
observable.observeAttribute(restApi.debugNavBar, (value) => {
this.$store.dispatch('zap/setDebugNavBar', value)
})
}, },
} }
</script> </script>
...@@ -589,8 +589,8 @@ export function setDefaultUiMode(context, uiMode) { ...@@ -589,8 +589,8 @@ export function setDefaultUiMode(context, uiMode) {
context.commit(`setDefaultUiMode`, uiMode) context.commit(`setDefaultUiMode`, uiMode)
} }
export function setEmbeddedMode(context, embeddedMode) { export function setDebugNavBar(context, debugNavBar) {
context.commit('setEmbeddedMode', embeddedMode) context.commit('setDebugNavBar', debugNavBar)
} }
export function setAttributeEditting(context, editContext) { export function setAttributeEditting(context, editContext) {
......
...@@ -375,8 +375,8 @@ export function setDefaultUiMode(state, uiMode) { ...@@ -375,8 +375,8 @@ export function setDefaultUiMode(state, uiMode) {
Vue.set(state.calledArgs, `defaultUiMode`, uiMode) Vue.set(state.calledArgs, `defaultUiMode`, uiMode)
} }
export function setEmbeddedMode(state, embeddedMode) { export function setDebugNavBar(state, debugNavBar) {
Vue.set(state.calledArgs, 'embeddedMode', embeddedMode) state.debugNavBar = debugNavBar
} }
export function setAttributeEditting(state, context) { export function setAttributeEditting(state, context) {
......
...@@ -114,8 +114,8 @@ export default function () { ...@@ -114,8 +114,8 @@ export default function () {
}, },
calledArgs: { calledArgs: {
defaultUiMode: restApi.uiMode.ZIGBEE, defaultUiMode: restApi.uiMode.ZIGBEE,
embeddedMode: false,
}, },
debugNavBar: false, // default visibility mode for debug navigation bar
studio: { studio: {
projectInfoJson: [], // HTTP response from Studio jetty server projectInfoJson: [], // HTTP response from Studio jetty server
ucComponents: [], ucComponents: [],
......
...@@ -27,7 +27,7 @@ test('Make sure electron main process loads', () => { ...@@ -27,7 +27,7 @@ test('Make sure electron main process loads', () => {
test('Test constructing queries for the window', () => { test('Test constructing queries for the window', () => {
let query = window.createQueryString('um', 'em') let query = window.createQueryString('um', 'em')
expect(query).toBe(`?uiMode=um&embeddedMode=em`) expect(query).toBe(`?uiMode=um`)
query = window.createQueryString() query = window.createQueryString()
expect(query).toBe(``) expect(query).toBe(``)
}) })
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册