diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000..946f12a
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,12 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "type": "npm",
+ "script": "dev",
+ "problemMatcher": [],
+ "label": "ZERO/ONE Development Mode",
+ "detail": "electron-vite dev"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/renderer/src/appStore.ts b/src/renderer/src/appStore.ts
index 95af9ff..6840f00 100644
--- a/src/renderer/src/appStore.ts
+++ b/src/renderer/src/appStore.ts
@@ -39,7 +39,9 @@ export const useAppStore = defineStore('app', {
}
}
},
- previewDeviceModel: localStorage.getItem('previewDeviceModel') || 'nanoOne'
+ previewDeviceModel: localStorage.getItem('previewDeviceModel') || 'nanoOne',
+ profileManagerDragging: false,
+ showProfileConfig: false
}
},
getters: {
@@ -179,6 +181,12 @@ export const useAppStore = defineStore('app', {
switchPreviewDeviceModel() {
this.previewDeviceModel = this.previewDeviceModel === 'nanoOne' ? 'nanoZero' : 'nanoOne'
localStorage.setItem('previewDeviceModel', this.previewDeviceModel)
+ },
+ setProfileManagerDragging(dragging) {
+ this.profileManagerDragging = dragging
+ },
+ setShowProfileConfig(show) {
+ this.showProfileConfig = show
}
// cycleScreenOrientation() {
// this.screenOrientation = (this.screenOrientation + 90) % 360
diff --git a/src/renderer/src/components/profile/ProfileCategory.vue b/src/renderer/src/components/profile/ProfileCategory.vue
new file mode 100644
index 0000000..ab2342e
--- /dev/null
+++ b/src/renderer/src/components/profile/ProfileCategory.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ {{ categoryName
+ }}
+ ({{ deviceStore.profilesByTag[categoryName].length || 0 }})
+
+
+
+
+ onProfileDrop(event, categoryIndex)"
+ >
+
+
+
+
+
+
{
+ deviceStore.selectProfile(dragProfile.element.name)
+ appStore.setShowProfileConfig(true)
+ }
+ "
+ @rename="
+ (oldName, newName) => {
+ deviceStore.renameProfile(oldName, newName)
+ if (deviceStore.currentProfileName === oldName) {
+ deviceStore.selectProfile(newName)
+ }
+ }
+ "
+ @duplicate="
+ (originalName, profile) => {
+ deviceStore.duplicateProfile(originalName, profile)
+ }
+ "
+ @delete="(profileName) => deviceStore.deleteProfile(profileName)"
+ />
+
+
+
+
+
+
+
+
+
+
diff --git a/src/renderer/src/components/profile/ProfileManager.vue b/src/renderer/src/components/profile/ProfileManager.vue
index 149a079..3b2bded 100644
--- a/src/renderer/src/components/profile/ProfileManager.vue
+++ b/src/renderer/src/components/profile/ProfileManager.vue
@@ -6,15 +6,24 @@
>