Skip to content

Releases: myltx/AuroraView

1.0.3

Choose a tag to compare

@myltx myltx released this 25 Nov 03:27

AuroraView 1.0.3 – 使用说明页与修图筛选体验优化

本文档记录 1.0.3 相对于 1.0.2 的增量改动,聚焦于「使用说明入口」与「修图筛选」的体验细节优化。


1. 新增:内置使用说明页(Help)

1.1 应用内 Help 覆盖层

  • 在 Viewer.vue 中新增内置使用说明覆盖层:
    • 以浮层形式在当前窗口打开,不会跳转到浏览器;
    • 内容包含:
      • 快速开始(打开目录、浏览缩略图、双击大图等);
      • 侧边栏各分组说明(收藏 / 星级 / 外接存储 / 自定义目录等);
      • 修图状态(PSD + RAW 分组、已修/未修角标与筛选规则);
      • 外部应用打开(右键菜单 + 大图工具条);
      • 常用快捷键一览;
      • 引导阅读更详细的 docs/UserGuide.md 与 release-notes。
  • 交互方式:
    • 点击右上角关闭按钮或背景区域可关闭 Help;
    • 在 Help 打开时仍保留当前目录、选中状态等浏览上下文。

1.2 菜单栏入口与快捷键

  • 主菜单栏新增 Help 入口:
    • 菜单路径:帮助 → 使用说明;
    • 快捷键:
      • macOS:Cmd + /;
      • Windows / Linux:Ctrl + /。
  • 选择该菜单项时,会通过 APP_ACTION: open-help 通知渲染层,显示使用说明覆盖层。
  • 菜单中「项目文档」链接更新为当前仓库地址:https://github.com/myltx/AuroraView。

2. 修图筛选(已修/未修/全部)体验优化

1.0.2 中已经增加了「修图筛选」下拉与 PSD/RAW 分组逻辑,本次版本主要优化边界行为与交互稳定性。

2.1 目录切换时自动重置为“全部”

  • 问题:在 1.0.2 中,如果在某个目录选择了“已修/未修”筛选,然后切换到另一个目录,可能出现:
    • 新目录实际有图片,但仍受上一目录筛选影响而被过滤掉;
    • 用户误以为新目录是空的。
  • 1.0.3 行为:
    • 每次切换目录时,editStatusFilter 自动重置为 "all"(全部);
    • 修图筛选下拉菜单也会同步回到「全部」状态;
    • 避免跨目录的筛选残留影响用户判断。

2.2 没有已修/未修图片时仍可操作筛选

  • 1.0.2 的边界场景:
    • 当选择“已修”筛选,而当前目录没有任何已修分组时:
      • 缩略图列表为空;
      • 由于筛选按钮基于“当前展示数量”判断,有可能筛完后按钮也被隐藏,用户无法切回“全部”。
  • 1.0.3 调整:
    • 新增 hasAnySourceImages 作为「目录是否有源图片」的判定;
    • 「修图筛选」按钮显示条件改为:
      • 目录中存在任何图片源(hasAnySourceImages === true),而非当前筛选结果非空;
    • 这样即使在“已修/未修”筛选下结果为空,下拉按钮仍然存在,用户可以随时切回“全部图片」。

3. 使用说明文档与 Help 页面的关系

3.1 docs/UserGuide.md(用户说明文档)

  • 新增用户向文档:docs/UserGuide.md:
    • 面向终端用户,系统梳理 AuroraView 的:
      • 快速上手步骤;
      • 目录/侧边栏的结构与用途;
      • 修图工作流(PSD + RAW 标记、角标与筛选);
      • 外部应用打开与扩展名绑定;
      • 常用快捷键列表;
      • 自动更新的简要说明。
  • 建议:
    • 安装包中保留该文档;
    • 可在未来 README / 官网中复用相关内容。

3.2 Viewer 内 Help 页

  • Help 覆盖层为 UserGuide.md 的“轻量版”:
    • 内容更加精简,避免在应用界面内展示过长文档;
    • 强调实际操作路径与快捷键,方便新用户快速上手。
  • 若需要更详细内容,可在 Help 中引导用户阅读安装包中的完整文档。

4. 开发者向调整(类型与构建稳定性)

  • 为 PSD 相关类型补充了显式声明,避免在严格 TS 配置下类型找不到(PsdGroup 等):
    • 新增 packages/renderer/src/types/psd.ts,统一声明:
      • PsdMetadata、PsdVariant、PsdGroup;
    • 渲染层通过 import type { PsdGroup } 获取类型,避免全局声明混乱。
  • 清理了未使用的变量与函数,保证在 strict + noUnusedLocals 下编译通过:
    • 移除未再使用的 themeOptions、旧的旋转/翻转按钮逻辑;
    • 删除无用的 handleRatingClick(缩略图星级已移除,改由大图视图统一处理)。
  • 所有改动均保持向后兼容,不影响现有自动更新与数据格式:
    • preferences.json 与 psd-metadata.json 结构与 1.0.2 保持一致;
    • 仅在渲染层增加了新的 UI 与类型辅助逻辑。

5. 升级与兼容性

  • 从 1.0.2 升级到 1.0.3:
    • 无需手动迁移数据或配置;
    • 1.0.3 会在原有功能基础上提供更清晰的 Help 入口与更健壮的修图筛选行为。
  • 自动更新:
    • 若已按 1.0.2 的方式配置 GitHub Releases(zip + latest-mac.yml),1.0.3 可直接通过自动更新下发;
    • .dmg 仍主要用于首次安装与手动下载,与自动更新逻辑无耦合。

如需要进一步扩展视频支持、时间线视图等高级功能,可参考 docs/VideoSupportPlan.md 中记录的规划,以 1.0.3 作为稳定基线迭代。

1.0.2

Choose a tag to compare

@myltx myltx released this 25 Nov 02:48

AuroraView 1.0.2 – 修图工作流与外部打开增强

本文档记录了最近一轮与「已修 / 未修」状态、高级格式支持以及外部应用打开相关的改动,供后续版本发布与维护参考。

1. 修图状态模型(PSD + RAW 分组)

  • 新增修图状态模型:
    • 仍然以 PSD 的虚拟标签作为「已修」的唯一来源:
      • 主进程:PsdMetadataStore(psd-metadata.json)存储 edited: boolean。
      • 渲染层:usePsdMetadata 暴露 isEdited(path) / toggleEdited(path)。
    • 在渲染层为图片计算统一的修图状态:
      • edited:同名分组中存在 PSD 且该 PSD 已标记为已修。
      • unedited:不满足 edited,但分组中包含 RAW/DNG 等专业格式或 PSD。
      • none:既无 PSD,也无 RAW 类文件,仅视为普通图片。
  • RAW/专业格式列表通过 RAW_LIKE_EXTENSIONS 维护(Viewer.vue):
    • 包含 dng, raw, nef, cr2, cr3, arw, raf, orf, rw2 等常见 RAW 格式。
  • 分组规则:
    • 按文件名去掉扩展名后的 baseName 分组,例如 photo.dng / photo.jpg / photo.psd 视为同一组。
    • 对每个分组统计:
      • hasPsd / psdEdited:是否存在 PSD 及其是否已修;
      • hasRawLike:是否存在 RAW 类文件。

2. 缩略图角标组件(EditStatusBadge)

  • 新增通用角标组件:packages/renderer/src/components/EditStatusBadge.vue:
    • Props:status: "edited" | "unedited" | "none"。
    • edited:
      • 绿色圆角胶囊背景(接近成功状态色),内含 ✔ 图标与「已修」文案;
      • 较高视觉优先级,带阴影与模糊以贴合现有玻璃拟物风格。
    • unedited:
      • 深色半透明背景,内含 ✎(写字笔)图标与「未修」文案;
      • 视觉强度略低于「已修」,提示为“待修原始文件”。
    • none:不渲染角标。
  • 集成位置:
    • Viewer.vue 缩略图块内:
      • 在 viewer-gallery__asset 容器内渲染 <EditStatusBadge :status="getEditStatusForItem(item)" />;
      • 利用 viewer-gallery__asset 的 position: relative,在右上角定位角标。
  • 状态判定:
    • PSD 文件:
      • status = "edited" 当且仅当该 PSD 的 metadata 标记为已修;
      • 未修 PSD 不再显示「未修」角标,仅在文件名处提供「标记为已修」按钮。
    • RAW / DNG 等专业格式:
      • 当其所在 baseName 分组被判定为 unedited 时展示「未修」角标;
      • 该分组一旦出现已修 PSD,则 RAW 不再显示未修角标。

3. 修图筛选下拉(已修 / 未修 / 全部)

  • 在 Viewer 工具栏中新增「修图筛选」下拉菜单:
    • 仅在非星级视图(!isRatingCollectionView)且当前目录存在图片源数据时显示;
    • 按钮风格与排序、视图模式等保持一致:
      • 图标使用 TOOLBAR_ICONS.psdManager,语义为“修图相关筛选”;
      • 悬停提示文案会根据当前筛选状态动态变更,如“修图筛选:全部图片 / 筛选:已修图片 / 筛选:未修图片”。
  • 下拉菜单选项:
    • 全部:editStatusFilter = "all",不按修图状态过滤;
    • 已修:editStatusFilter = "edited",仅展示被判定为 edited 的分组;
    • 未修:editStatusFilter = "unedited",仅展示被判定为 unedited 的分组。
  • 过滤规则:
    • 基于前述按 baseName 分组的 GroupInfo(hasPsd / psdEdited / hasRawLike)计算;
    • 一旦某个分组被选中(已修或未修),该分组下所有格式(PSD、RAW、JPG 等)都会一起展示,方便对比同名不同格式。
  • 边界行为:
    • 当筛选为“已修”但当前目录里没有任何已修分组时:
      • 缩略图列表为空;
      • 「修图筛选」下拉按钮仍然可见(基于 hasAnySourceImages 判断),允许用户切回“全部 / 未修”,避免出现“筛完按钮也消失”的困境。

4. PSD 标签与交互文案调整

  • 缩略图文件名区域的 PSD 文本标签进行了语义收紧:
    • 仅 PSD 显示按钮,RAW 等不再显示「未修」文案,以免与角标重复。
    • 文案调整:
      • 已修 PSD:[已修](高亮);
      • 未修 PSD:按钮文案为「标记为已修」。
    • 点击行为:
      • 已修 → 再次点击切换为未修(取消虚拟标签);
      • 未修 → 点击设为已修。
  • 该逻辑与 psdManager 面板中“一键标记已修”的行为保持一致。

5. 右键菜单与外部应用打开(回顾)

这一部分在上一轮改动中已经落地,这里一并记录,便于理解与维护整体工作流。

  • 缩略图右键新增自定义菜单:
    • 功能项:
      • 打开(系统默认应用):使用 macOS 关联的默认应用打开当前图片;
      • 在 Finder 中显示:通过 Electron shell.showItemInFolder 定位文件;
      • 使用已配置应用打开(.ext):如果已为对应扩展名配置固定应用,则直接使用该应用打开;
      • 选择应用并设为 .ext 默认打开方式…:弹出系统文件选择对话框(macOS 下筛 .app),选择应用后:
        • 立即用该应用打开当前图片;
        • 将扩展名 → 应用路径的映射写入用户配置。
  • 打开方式映射:
    • 主进程用户配置 preferences.json 中新增字段:
      • openWith: Record<string, string>,例如 { "psd": "/Applications/Adobe Photoshop 2024.app" }。
    • 通过 PreferencesService.set("openWith", mapping) 读写;
    • Preload 中扩展 UserPreferences 类型,并在 window.electron.preferences.get() 返回中携带;
    • 渲染层在 Viewer.vue 初次挂载时加载到 openWithMap,供右键菜单和大图视图使用。
  • 文件操作 API 扩展:
    • 主进程:
      • FILEOPS_OPEN:使用系统默认应用打开;
      • FILEOPS_OPEN_WITH_CHOOSER:
        • 支持传入 appPath(直接用指定应用打开);
        • 或弹出对话框让用户选择,返回选择的应用路径。
    • Preload:在 fileOps 上暴露 open(path) 与 openWithChooser(path, appPath?);
    • 渲染层:Viewer.vue 中封装了统一的“用默认 / 用映射 / 选择并保存到映射”的行为。

6. 大图视图:外部应用打开按钮(统一化)

  • 大图模式(lightbox)顶部工具栏新增“用外部应用打开当前图片”的按钮:
    • 不再局限于 PSD,所有图片均可使用;
    • 图标复用 TOOLBAR_ICONS.psdManager,标题根据当前扩展名动态提示:
      • 例如:使用外部应用打开 (.psd)、使用外部应用打开 (.dng)。
  • 行为:
    • 若当前扩展名已在 openWith 中配置应用:
      • 直接调用 fileOps.openWithChooser(path, mappedAppPath) 打开;
    • 否则:
      • 弹窗询问是否选择应用并设为该格式默认打开方式;
      • “确定”→ 调用 openWithChooser 让用户选 .app,并更新 openWith;
      • “取消”→ 回退为系统默认应用打开。

7. 选择行为与 UI 细节修正

  • 默认选择逻辑:
    • 打开目录时不再自动选中第一张图片;
    • currentIndex 虽仍重置为 0,但 selectedIndexes 为空,避免“看起来选中但其实没有选”的错觉。
  • 点击空白区域取消多选:
    • 在缩略图网格容器上监听点击;
    • 当点击目标不在 .viewer-gallery__item 内时,清空当前所有选中状态。
  • 视觉一致性:
    • viewer-gallery__item.is-active 仅在对应索引确实在 selectedIndexes 中时生效,保证 UI 与逻辑同步。

8. 风险与兼容性说明

  • preferences.json 结构变更:
    • 新增 openWith 字段,但通过默认值合并,旧版本配置仍可兼容;
    • 如遇到不兼容配置(解析失败),会回退到默认配置并重新写入。
  • psd-metadata.json 结构未变:
    • 仍为 version: 1 + items: Record<string, { edited?: boolean }>;
    • 本轮改动仅在渲染层增加了利用该字段的逻辑,不改变存储。
  • 右键菜单与修图筛选均只建立在已有数据之上:
    • 当目录为空或仅包含非图片文件时,不会影响已有功能;
    • 当修图筛选结果为空时,下拉按钮仍然存在,用户可以轻松切回“全部”视图。

如后续继续扩展「修图状态」到更多工作流(例如配合评分、收藏、导出未修列表等),建议在此文档基础上追加对应小节,保持演进历史清晰可查。

1.0.1

Choose a tag to compare

@myltx myltx released this 24 Nov 15:39

AuroraView 更新记录(大版本改造)

版本:1.0.1
范围:布局响应式、外接存储支持、PSD 虚拟标签、自动更新与发布流程等


一、界面与交互

1. Viewer 布局与响应式

  • 新增「窗口宽度自适应布局」:
    • 当窗口宽度 < 900px 时,左侧边栏自动折叠,优先展示右侧缩略图区域;
    • 当窗口恢复到宽屏时,自动恢复展开侧边栏。
  • 顶栏左侧新增「侧边栏开关」按钮(窄屏模式下可见):
    • 支持手动展开 / 收起侧边栏;
    • 图标方向根据折叠状态自动变化(展开时向左,折叠时向右)。
  • 左侧各分组列表(收藏目录 / 外接存储 / 系统目录 / 自定义目录):
    • 支持各自独立滚动,避免单个分组过长时推高整个侧边栏;
    • 每个分组内部增加折叠/展开控制,提升在小窗口下的可用性。

2. Viewer 内部交互优化

  • Toolbar 交互状态:
    • 确认并保持工具栏按钮(打开目录、刷新、视图切换、排序等)的 hover 高亮效果;
    • 统一使用 toolbar-interactive + -webkit-app-region: no-drag 避免被窗口拖拽区域覆盖。
  • 缩略图区域:
    • PSD 图片在标题行前新增一个小标签按钮,用于标记「已修 / 未修」(详见 PSD 虚拟标签一节)。

二、外接存储(仅 macOS)

1. 外接卷识别与过滤

  • 新增 FileSystemService#getExternalVolumes:
    • 通过 diskutil info <mountPoint> 获取卷信息,严格判断:
      • 仅保留已挂载(Mounted: Yes)的卷;
      • 过滤内部盘(Internal: Yes 且不可移除);
      • 过滤磁盘映像 / 虚拟卷 / 网络卷(Protocol 为 Disk Image / Virtual / Network 等);
      • 增加名称黑名单,忽略 Preboot / Recovery / VM / Update / Amazon Q 等系统或工具卷。
  • 针对 fork 默认模板中出现的 /Volumes/Amazon Q 等“幽灵卷”,通过上述过滤逻辑确保不会出现在 UI 的「外接存储」列表中。

2. IPC 与 Preload 接口

  • 新增 IPC 通道:
    • FS_GET_EXTERNAL_VOLUMES: 返回经过过滤的外接卷列表。
  • Preload (packages/preload/src/index.ts) 中新增:
    • fs.getExternalVolumes(): Promise<SystemDirectory[]>。

3. Viewer 侧边栏展示

  • 左侧新增「外接存储」分组:
    • 显示当前已挂载的外接卷,每个卷作为根节点;
    • 根节点采用「硬盘」图标,展开后的下级目录采用「文件夹」图标。
  • 支持外接存储目录树展开:
    • 点击小三角 (chevron) 可展开 / 收起子目录,行为与系统目录一致;
    • 内部使用统一的 toggleNode + loadChildren 机制懒加载子目录。
  • DirectoryWatcher 监听 /Volumes:
    • 通过 fs.watchDirectory("/Volumes", ...) 检测卷插拔;
    • 触发 loadExternalVolumes() 刷新「外接存储」列表。

三、自定义目录改造

  • 原自定义目录仅展示为平铺列表,现改造为支持多级目录树:
    • 顶层「自定义目录」仍作为入口;
    • 每个自定义根目录可以展开下级子目录结构;
    • 顶层节点显示用户图标,下级统一使用文件夹图标。
  • 自定义目录节点支持:
    • 展开/收起子目录(与系统/外接目录同一逻辑);
    • 顶层节点支持「移除目录」按钮,仅对根节点可见。

四、PSD 虚拟标签与同名分组

1. 同名分组逻辑

  • 在主进程新增 PsdModule:
    • 对指定目录调用 FileSystemService.readDirectory(directory, { filter: "images" });
    • 按 baseName(去掉扩展名的文件名)分组,例如:
      • photo.jpg / photo.png / photo.psd 会被归为同一组;
    • 只保留包含 psd 的分组,生成 PsdGroup:
      type PsdGroup = {
        baseName: string;
        directory: string;
        psd: { path: string; extension: string };
        others: { path: string; extension: string }[];
        metadata: PsdMetadata; // { edited?: boolean }
      };

2. 虚拟标签存储(不改文件名)

  • 新增 PsdMetadataStore(JSON 存储):
    • 文件路径:<userData>/psd-metadata.json
    • 结构:
      {
        "version": 1,
        "items": {
          "/absolute/path/to/photo.psd": { "edited": true }
        }
      }
    • 完全独立于真实文件名,不会改动文件系统。

3. PSD IPC 接口与 Preload

  • 新增 IPC 通道:
    • PSD_GET_GROUPS: 获取目录下包含 psd 的同名分组;
    • PSD_GET_METADATA: 获取单个 psd 的 metadata;
    • PSD_SET_EDITED: 更新 psd 的 edited 标签。
  • Preload 暴露 window.electron.psd:
    psd: {
      getGroups(directory: string): Promise<PsdGroup[]>;
      getMetadata(path: string): Promise<PsdMetadata>;
      setEdited(path: string, edited: boolean): Promise<PsdMetadata>;
    }

4. 渲染层状态管理与 UI 展示

  • 新增 composable:usePsdMetadata:
    • 管理一个 Map<string, boolean>:psdPath -> edited;
    • 提供:
      • isEdited(psdPath):查询该 psd 是否标记为已修;
      • loadFromGroups(groups: PsdGroup[]):从主进程返回的分组批量加载状态;
      • toggleEdited(psdPath):切换编辑状态并回写到 metadata。
    • Viewer 中集成:
    • 在 loadImagesForDirectory(path) 完成后调用:
      if (window.electron?.psd) {
        const groups = await window.electron.psd.getGroups(path);
        await loadPsdGroups(groups); // 来自 usePsdMetadata
      }
  • 缩略图标题区域 UI:
    • 对 psd 文件,在文件名左侧显示一个可点击的标签:
      • 未标记:显示「未修」,点击后变为「已修」;
      • 已标记:显示「已修」,点击可取消标记;
    • 仅改变内部 metadata,真实文件名保持不变。

5. PSD 标记管理面板

  • Viewer 顶部工具栏新增「PSD 标记管理」按钮:
    • 仅当当前目录中存在 psd 文件时可用;
    • 点击后在右下角打开一个浮层面板,集中展示当前目录中「待标记」的 psd。
  • PSD 管理面板能力:
    • 自动列出当前目录中所有包含 psd 的同名分组(基于 PsdGroup);
    • 仅展示尚未标记为「已修」的 psd(使用 pendingPsdGroups 过滤);
    • 每条记录显示:
      • psd 的完整路径;
      • 同名其它变体的扩展名(如 JPG/PNG);
      • 一键操作按钮「标记为已修」,点击后调用 togglePsdEdited 写入 metadata,并同步更新 UI。
    • 面板支持随时关闭,不影响缩略图中的单个 psd 标签操作。

五、自动更新与发布流程

1. electron-builder 配置调整

  • electron-builder.mjs:
    • appId 设置为稳定 ID:com.myltx.auroraview;
    • productName 保持中文 助眠神器,用于应用名称;
    • artifactName 改为 ASCII 形式,避免 URL 中出现未转义字符:
      artifactName: 'AuroraView-${version}-${os}-${arch}.${ext}',
    • mac 配置:
      mac: {
        // 本地构建同时生成 dmg + zip
        target: ["dmg", "zip"],
      },
    • publish 配置指向当前仓库:
      publish: [
        {
          provider: "github",
          owner: "myltx",
          repo: "AuroraView",
          // 如需直接生成正式 Release,可补充 releaseType: "release"
        },
      ],

2. NPM 脚本与发布命令

  • package.json 新增脚本:

    "scripts": {
      "build": "npm run build -ws --if-present",
      "compile": "npm run build && node ./scripts/run-electron-builder.mjs",
      "release": "npm run build && node ./scripts/run-electron-builder.mjs build --config electron-builder.mjs --mac zip --publish always",
      "release:onTag": "npm run build && node ./scripts/run-electron-builder.mjs build --config electron-builder.mjs --mac zip --publish onTag",
      ...
    }
  • 使用方式:

    • 本地打包(生成 dmg + zip,不发布):
      npm run compile
    • 发布到 GitHub Releases(只生成并上传 zip,用于自动更新):
      export GH_TOKEN=你的 GitHub Token
      npm run release

3. AutoUpdater 行为优化

  • AutoUpdater 模块(packages/main/src/modules/AutoUpdater.ts):
    • 启动时自动调用 checkForUpdatesAndNotify;
    • 下载完成后,新增友好弹框:
      • 标题:「发现新版本」;
      • 选项:「立即重启」/「稍后」;
      • 选择“立即重启”:autoUpdater.quitAndInstall() 立即应用更新;
      • 选择“稍后”:保留默认行为,用户下次退出应用时再安装。

六、其它说明

  • 清理与兼容:
    • 清理了 fork 模板中多余的 Dependabot 远程分支,仅保留 main 作为主分支;
    • 兼容 electron-builder 与自动更新的文件命名与发布策略,避免中文文件名导致的 URL/路径问题。
  • 已知限制:
    • PSD 虚拟标签目前为简单布尔状态 edited: boolean,如果未来需要更多状态(例如「已审核」「待修改」等),可扩展为枚举或多字段结构;
    • PSD 同名分组逻辑当前仅基于 baseName + 扩展名,不区分大小写,也不做智能匹配(例如 photo-retouched.psd 与 photo.jpg 不会自动归为一组)。

如果后续有需要,可在此基础上继续扩展:例如「同名变体面板」、更丰富的 PSD 状态枚举、或基于 EXIF / XMP 进一步增强 metadata 管理能力。

AuroraView v1.0.0

AuroraView v1.0.0 Pre-release
Pre-release

Choose a tag to compare

@myltx myltx released this 24 Nov 15:46

Version 1.0.0 (2025-11-24)

New Features & Improvements

主界面与导航

  • 启动后默认进入主界面,可在应用内访问两类页面:
    • Cockpit(总览):适合模块导航与聚合浏览
    • Viewer(浏览):适合具体内容查看与交互

目录与浏览

  • 支持打开任意图片目录(工具栏「文件夹」按钮或快捷键 ⌘/Ctrl + O)
  • 右侧缩略图区域显示当前目录下图片,支持单击选择、双击进入大图预览
  • 缩略图视图可切换:标准视图 / 紧凑视图
  • 支持按名称、时间或大小排序

搜索与筛选

  • 搜索框可按文件名或目录名称过滤
  • 支持星级筛选功能,快速查看标记的图片

收藏与常用目录

  • 收藏目录:将常用目录加入收藏,便于快速访问
  • 系统目录:自动列出常用系统图片目录
  • 自定义目录:支持手动添加任意常用工作目录

图片操作

  • 支持对单张或多张图片执行操作:
    • 复制路径、显示原文件、重命名
    • 复制或移动到指定目录
    • 导出或删除图片(删除操作带确认提示)

大图查看与播放

  • 双击缩略图或按空格键进入大图模式
  • 支持缩放、旋转、镜像操作
  • 全屏模式与幻灯片播放

外接存储(macOS 专用)

  • 插入 U 盘或移动硬盘时自动显示卷标
  • 支持浏览外接设备的根目录及子目录
  • 拔出设备后列表自动更新
  • 支持 PSD、RAW、DNG 等专业图片格式,并自动生成可预览缩略图

Notes

  • 本版本主要完善图片浏览、星级筛选、缩略图生成及外接存储支持
  • 后续版本将进一步补充操作示例和动图演示