mcthesw / game-save-manager

一个简单的游戏存档管理器
https://help.sworld.club
GNU Affero General Public License v3.0
573 stars 20 forks source link

[功能/FEATURE]新增2级目录,左侧间隔可以拖动 #84

Closed kuroikana closed 3 months ago

kuroikana commented 7 months ago

边的存档管理,如果字数超过12个字就看不到后面字,能不能让他们之间的隔断可以自己弄。 调整游戏展示顺序不能用滚轮滚动,就只能看到前面那几个,后面的我想调顺序也不能跳, 存档管理能做个上级目录吧把gal的放一堆,

mcthesw commented 7 months ago

左栏现在已经支持最长两行的显示;调整展示顺序也可以滚动了(PR #85 ),如果马上需要使用可以下载前沿版本

关于存档管理上级目录可以在 #83 中讨论

mcthesw commented 4 months ago

目前设想: 在GameSaveManager.config.json中添加字段favorite,如下

{
  "version": "1.0.0 alpha",
  "backup_path": "./save_data",
  "games": [],
  "settings": {
    "prompt_when_not_described": false,
    "extra_backup_when_apply": true
  },
  "favorite": [
    {
      "name": "收藏夹",
      "type": "folder",
      "children": [
        {
          "type": "game",
          "name": "游戏名1",
          "children": null
        },
        {
          "type": "game",
          "name": "游戏名2",
          "children": null
        }
      ]
    },
    {
      "name": "ACT游戏",
      "type": "folder",
      "children": [
        {
          "name":"XXX系列",
          "type":"folder",
          "children":[
            {
              "name":"XXX 1",
              "type":"game",
              "children":null
            },{
              "name":"XXX 2",
              "type":"game",
              "children":null
            }
          ]
        }
      ]
    }
  ]
}

也就是说,新的类型可以这样定义

enum 收藏夹目录项类型{
    folder,
    game
}
interface 收藏夹目录项{
    name: string;
    type: 收藏夹目录项类型;
    children?: Array<收藏夹目录项>;
}

至此,对该结构进行一次遍历,就可以生成对应的menu了,此处可能需要设计一个递归组件,可以参考该教程该教程

mcthesw commented 4 months ago

该功能可以在新页面中放置一个Tree控件来进行编辑(比如排序,或者删除文件夹等功能),排序可以构造一个拖拽排序的新弹出窗口,也可以在树形控件上直接进行点击排序 考虑到方便,把整个menu换成tree控件说不定也是可行的

mcthesw commented 3 months ago

image 于1.2.0版本已支持