diff --git a/src/components/App.vue b/src/components/App.vue index 50c1d87164..643255c72c 100644 --- a/src/components/App.vue +++ b/src/components/App.vue @@ -157,6 +157,7 @@ onMounted(async () => { isAcceptTermsDialogOpen: import.meta.env.MODE !== "development" && store.state.acceptTerms !== "Accepted", + isInitialSettingsDialogOpen: store.state.openedEditor == undefined, }); // プロジェクトファイルが指定されていればロード diff --git a/src/components/Dialog/AllDialog.vue b/src/components/Dialog/AllDialog.vue index 4c714f1b7f..15fdcf410c 100644 --- a/src/components/Dialog/AllDialog.vue +++ b/src/components/Dialog/AllDialog.vue @@ -23,6 +23,7 @@ /> + + + diff --git a/src/store/type.ts b/src/store/type.ts index 88c4682444..435a9eae65 100644 --- a/src/store/type.ts +++ b/src/store/type.ts @@ -1912,9 +1912,7 @@ export type SettingStoreState = { experimentalSetting: ExperimentalSettingType; confirmedTips: ConfirmedTips; engineSettings: EngineSettings; -} & Omit & { - openedEditor: EditorType | undefined; // undefinedのときはどのエディタを開くか定まっていない - }; +} & RootMiscSettingType; // keyとvalueの型を連動するようにしたPayloadを作る type KeyValuePayload = K extends keyof R @@ -2035,6 +2033,7 @@ export type DialogStates = { isUpdateNotificationDialogOpen: boolean; isExportSongAudioDialogOpen: boolean; isImportSongProjectDialogOpen: boolean; + isInitialSettingsDialogOpen: boolean; }; export type UiStoreTypes = { diff --git a/src/store/ui.ts b/src/store/ui.ts index f75913f5d6..87261dfcd3 100644 --- a/src/store/ui.ts +++ b/src/store/ui.ts @@ -78,6 +78,7 @@ export const uiStoreState: UiStoreState = { isUpdateNotificationDialogOpen: false, isExportSongAudioDialogOpen: false, isImportSongProjectDialogOpen: false, + isInitialSettingsDialogOpen: false, isMaximized: false, isPinned: false, isFullscreen: false, diff --git a/src/type/preload.ts b/src/type/preload.ts index 5fdd6f40fe..f22e8aee5e 100644 --- a/src/type/preload.ts +++ b/src/type/preload.ts @@ -370,7 +370,7 @@ export type ConfirmedTips = { // ルート直下にある雑多な設定値 export const rootMiscSettingSchema = z.object({ - openedEditor: z.enum(["talk", "song"]).default("talk"), + openedEditor: z.enum(["talk", "song"]).optional(), editorFont: z.enum(["default", "os"]).default("default"), showTextLineNumber: z.boolean().default(false), showAddAudioItemButton: z.boolean().default(true), diff --git "a/tests/e2e/browser/\343\202\242\343\202\257\343\202\273\343\203\263\343\203\210.spec.ts" "b/tests/e2e/browser/\343\202\242\343\202\257\343\202\273\343\203\263\343\203\210.spec.ts" index 02a611fee7..d355c72191 100644 --- "a/tests/e2e/browser/\343\202\242\343\202\257\343\202\273\343\203\263\343\203\210.spec.ts" +++ "b/tests/e2e/browser/\343\202\242\343\202\257\343\202\273\343\203\263\343\203\210.spec.ts" @@ -1,11 +1,11 @@ import { test, expect } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk, navigateToSong } from "../navigators"; test.beforeEach(gotoHome); test("アクセント分割したらアクセント区間が増える", async ({ page }) => { - await navigateToMain(page); + await navigateToSong(page); await expect(page.locator(".audio-cell").first()).toBeVisible(); await page.locator(".audio-cell input").first().fill("こんにちは"); await page.locator(".audio-cell input").first().press("Enter"); @@ -19,7 +19,7 @@ test("アクセント分割したらアクセント区間が増える", async ({ test("アクセントの読み部分をクリックすると読みを変更できる", async ({ page, }) => { - await navigateToMain(page); + await navigateToTalk(page); await page.getByRole("textbox", { name: "1行目" }).click(); await page.getByRole("textbox", { name: "1行目" }).fill("テストです"); diff --git "a/tests/e2e/browser/\343\202\242\343\203\203\343\203\227\343\203\207\343\203\274\343\203\210\351\200\232\347\237\245\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" "b/tests/e2e/browser/\343\202\242\343\203\203\343\203\227\343\203\207\343\203\274\343\203\210\351\200\232\347\237\245\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" index e36c0276c8..8ac81ebe5c 100644 --- "a/tests/e2e/browser/\343\202\242\343\203\203\343\203\227\343\203\207\343\203\274\343\203\210\351\200\232\347\237\245\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" +++ "b/tests/e2e/browser/\343\202\242\343\203\203\343\203\227\343\203\207\343\203\274\343\203\210\351\200\232\347\237\245\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" @@ -1,7 +1,7 @@ import { test, expect } from "@playwright/test"; import dotenv from "dotenv"; import semver from "semver"; -import { navigateToMain, gotoHome } from "../navigators"; +import { navigateToTalk, gotoHome } from "../navigators"; import { getNewestQuasarDialog } from "../locators"; import { UpdateInfo } from "@/type/preload"; import { assertNonNullable } from "@/type/utility"; @@ -39,7 +39,7 @@ test.beforeEach(async ({ page }) => { test.beforeEach(async ({ page }) => { await gotoHome({ page }); - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); }); diff --git "a/tests/e2e/browser/\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\246\343\201\263\346\233\277\343\201\210\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" "b/tests/e2e/browser/\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\246\343\201\263\346\233\277\343\201\210\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" index 123421fd68..8ac4c79ed0 100644 --- "a/tests/e2e/browser/\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\246\343\201\263\346\233\277\343\201\210\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" +++ "b/tests/e2e/browser/\343\202\255\343\203\243\343\203\251\343\202\257\343\202\277\343\203\274\344\270\246\343\201\263\346\233\277\343\201\210\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" @@ -1,13 +1,13 @@ import { test, expect } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk } from "../navigators"; test.beforeEach(gotoHome); test("「設定」→「キャラクター並び替え・視聴」で「設定 / キャラクター並び替え・視聴」ページが表示される", async ({ page, }) => { - await navigateToMain(page); + await navigateToTalk(page); await page.getByText("設定").click(); await page.waitForTimeout(100); await page.getByText("キャラクター並び替え・試聴").click(); diff --git "a/tests/e2e/browser/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.ts" "b/tests/e2e/browser/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.ts" index 37196f334a..ca322d7570 100644 --- "a/tests/e2e/browser/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.ts" +++ "b/tests/e2e/browser/\343\202\271\343\202\257\343\203\252\343\203\274\343\203\263\343\202\267\343\203\247\343\203\203\343\203\210.spec.ts" @@ -1,11 +1,11 @@ import { test, expect } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk } from "../navigators"; test.beforeEach(gotoHome); test("メイン画面の表示", async ({ page }) => { test.skip(process.platform !== "win32", "Windows以外のためスキップします"); - await navigateToMain(page); + await navigateToTalk(page); // トーク画面の表示 while (true) { diff --git "a/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" "b/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" index 45abbd9e49..28d2dab4f3 100644 --- "a/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" +++ "b/tests/e2e/browser/\343\203\204\343\203\274\343\203\253\343\203\220\343\203\274\343\202\253\343\202\271\343\202\277\343\203\236\343\202\244\343\202\272\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" @@ -1,6 +1,6 @@ import { test, expect } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk } from "../navigators"; import { getNewestQuasarDialog, getQuasarMenu } from "../locators"; test.beforeEach(gotoHome); @@ -8,7 +8,7 @@ test.beforeEach(gotoHome); test("ツールバーのカスタマイズでボタンを追加でき、デフォルトに戻すこともできる", async ({ page, }) => { - await navigateToMain(page); + await navigateToTalk(page); // 全部書き出しボタンはデフォルトでないことを確認 expect( await page diff --git "a/tests/e2e/browser/\343\203\206\343\202\255\343\202\271\343\203\210\350\277\275\345\212\240\343\203\273\345\211\212\351\231\244\343\203\273\345\205\245\343\202\214\346\233\277\343\201\210.spec.ts" "b/tests/e2e/browser/\343\203\206\343\202\255\343\202\271\343\203\210\350\277\275\345\212\240\343\203\273\345\211\212\351\231\244\343\203\273\345\205\245\343\202\214\346\233\277\343\201\210.spec.ts" index 10f7043829..f46233badb 100644 --- "a/tests/e2e/browser/\343\203\206\343\202\255\343\202\271\343\203\210\350\277\275\345\212\240\343\203\273\345\211\212\351\231\244\343\203\273\345\205\245\343\202\214\346\233\277\343\201\210.spec.ts" +++ "b/tests/e2e/browser/\343\203\206\343\202\255\343\202\271\343\203\210\350\277\275\345\212\240\343\203\273\345\211\212\351\231\244\343\203\273\345\205\245\343\202\214\346\233\277\343\201\210.spec.ts" @@ -1,6 +1,6 @@ import { test, expect, Locator, Page } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToSong } from "../navigators"; test.beforeEach(gotoHome); @@ -27,7 +27,7 @@ async function getCenter(locator: Locator) { test("テキストの追加・入れ替え・削除", async ({ page }) => { // デフォルトでaudioCellは一つなのを確認 - await navigateToMain(page); + await navigateToSong(page); await expect( page.getByRole("button").filter({ hasText: "add" }), ).toBeVisible(); diff --git "a/tests/e2e/browser/\343\203\207\343\203\225\343\202\251\343\203\253\343\203\210\343\202\271\343\202\277\343\202\244\343\203\253\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" "b/tests/e2e/browser/\343\203\207\343\203\225\343\202\251\343\203\253\343\203\210\343\202\271\343\202\277\343\202\244\343\203\253\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" index 8af7d3ed7d..f65f705116 100644 --- "a/tests/e2e/browser/\343\203\207\343\203\225\343\202\251\343\203\253\343\203\210\343\202\271\343\202\277\343\202\244\343\203\253\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" +++ "b/tests/e2e/browser/\343\203\207\343\203\225\343\202\251\343\203\253\343\203\210\343\202\271\343\202\277\343\202\244\343\203\253\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" @@ -1,13 +1,13 @@ import { test, expect } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk } from "../navigators"; test.beforeEach(gotoHome); test("「設定」→「デフォルトスタイル」で「設定 / デフォルトスタイル・試聴」ダイアログが表示される", async ({ page, }) => { - await navigateToMain(page); + await navigateToTalk(page); await page.getByRole("button", { name: "設定" }).click(); await page.getByText("デフォルトスタイル").click(); await expect(page.getByText("設定 / デフォルトスタイル・試聴")).toBeVisible(); diff --git "a/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\345\200\244\345\244\211\346\233\264.spec.ts" "b/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\345\200\244\345\244\211\346\233\264.spec.ts" index a79efcf022..2620d8c31d 100644 --- "a/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\345\200\244\345\244\211\346\233\264.spec.ts" +++ "b/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\345\200\244\345\244\211\346\233\264.spec.ts" @@ -1,5 +1,5 @@ import { test, expect, Page } from "@playwright/test"; -import { toggleSetting, navigateToMain, gotoHome } from "../../navigators"; +import { toggleSetting, navigateToTalk, gotoHome } from "../../navigators"; import { addAudioCells } from "./utils"; /* @@ -70,7 +70,7 @@ async function getAudioInfoParameters( test.beforeEach(async ({ page }) => { await gotoHome({ page }); - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); await toggleSetting(page, "複数選択"); diff --git "a/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\351\201\270\346\212\236.spec.ts" "b/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\351\201\270\346\212\236.spec.ts" index acfed4c3df..d8191cfc50 100644 --- "a/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\351\201\270\346\212\236.spec.ts" +++ "b/tests/e2e/browser/\350\244\207\346\225\260\351\201\270\346\212\236/\351\201\270\346\212\236.spec.ts" @@ -1,11 +1,11 @@ import { test, expect, Page } from "@playwright/test"; -import { toggleSetting, navigateToMain, gotoHome } from "../../navigators"; +import { toggleSetting, navigateToTalk, gotoHome } from "../../navigators"; import { ctrlLike, addAudioCells } from "./utils"; test.beforeEach(async ({ page }) => { await gotoHome({ page }); - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); await toggleSetting(page, "複数選択"); diff --git "a/tests/e2e/browser/\350\252\277\346\225\264\347\265\220\346\236\234.spec.ts" "b/tests/e2e/browser/\350\252\277\346\225\264\347\265\220\346\236\234.spec.ts" index f31e9bf26f..71013891c7 100644 --- "a/tests/e2e/browser/\350\252\277\346\225\264\347\265\220\346\236\234.spec.ts" +++ "b/tests/e2e/browser/\350\252\277\346\225\264\347\265\220\346\236\234.spec.ts" @@ -1,5 +1,5 @@ import { test, expect, Page } from "@playwright/test"; -import { toggleSetting, navigateToMain, gotoHome } from "../navigators"; +import { toggleSetting, navigateToTalk, gotoHome } from "../navigators"; test.beforeEach(gotoHome); @@ -26,7 +26,7 @@ async function getSliderValues(page: Page) { } test("実験的機能:調整結果の保持", async ({ page }) => { - await navigateToMain(page); + await navigateToTalk(page); await toggleSetting(page, "調整結果の保持"); await page.waitForTimeout(100); diff --git "a/tests/e2e/browser/\350\276\236\346\233\270\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" "b/tests/e2e/browser/\350\276\236\346\233\270\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" index bfd2e9b0db..07f580544b 100644 --- "a/tests/e2e/browser/\350\276\236\346\233\270\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" +++ "b/tests/e2e/browser/\350\276\236\346\233\270\343\203\200\343\202\244\343\202\242\343\203\255\343\202\260.spec.ts" @@ -1,5 +1,5 @@ import { test, expect, Page, Locator } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk } from "../navigators"; import { getNewestQuasarDialog } from "../locators"; test.beforeEach(gotoHome); @@ -50,7 +50,7 @@ async function validateInputTag( test("「設定」→「読み方&アクセント辞書」で「読み方&アクセント辞書」ページが表示される", async ({ page, }) => { - await navigateToMain(page); + await navigateToTalk(page); const targetString = "あいうえお"; diff --git "a/tests/e2e/browser/\351\237\263\345\243\260.spec.ts" "b/tests/e2e/browser/\351\237\263\345\243\260.spec.ts" index cc2bb5c18b..4fbaf6cb60 100644 --- "a/tests/e2e/browser/\351\237\263\345\243\260.spec.ts" +++ "b/tests/e2e/browser/\351\237\263\345\243\260.spec.ts" @@ -1,13 +1,13 @@ import { test } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk } from "../navigators"; test.beforeEach(gotoHome); test("テキストを入力→アクセントを変更→音声合成→再生ができる", async ({ page, }) => { - await navigateToMain(page); + await navigateToTalk(page); await page.getByRole("textbox", { name: "1行目" }).click(); await page.getByRole("textbox", { name: "1行目" }).fill("テストです"); diff --git "a/tests/e2e/browser/\351\237\263\345\243\260\343\203\221\343\203\251\343\203\241\343\203\274\343\202\277.spec.ts" "b/tests/e2e/browser/\351\237\263\345\243\260\343\203\221\343\203\251\343\203\241\343\203\274\343\202\277.spec.ts" index 01145b34a5..37f40e13f1 100644 --- "a/tests/e2e/browser/\351\237\263\345\243\260\343\203\221\343\203\251\343\203\241\343\203\274\343\202\277.spec.ts" +++ "b/tests/e2e/browser/\351\237\263\345\243\260\343\203\221\343\203\251\343\203\241\343\203\274\343\202\277.spec.ts" @@ -1,6 +1,6 @@ import { test, expect, Locator } from "@playwright/test"; -import { gotoHome, navigateToMain, toggleSetting } from "../navigators"; +import { gotoHome, navigateToTalk, toggleSetting } from "../navigators"; test.beforeEach(gotoHome); @@ -10,7 +10,7 @@ async function validateValue(locator: Locator, expectedValue: string) { } test("音声パラメータ引き継ぎの設定", async ({ page }) => { - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); await page.locator(".audio-cell input").first().press("Enter"); await page.waitForTimeout(100); diff --git "a/tests/e2e/browser/\351\237\263\345\243\260\350\251\263\347\264\260.spec.ts" "b/tests/e2e/browser/\351\237\263\345\243\260\350\251\263\347\264\260.spec.ts" index 57b873104b..31127ab863 100644 --- "a/tests/e2e/browser/\351\237\263\345\243\260\350\251\263\347\264\260.spec.ts" +++ "b/tests/e2e/browser/\351\237\263\345\243\260\350\251\263\347\264\260.spec.ts" @@ -1,6 +1,6 @@ import { test, expect, Page } from "@playwright/test"; -import { gotoHome, navigateToMain } from "../navigators"; +import { gotoHome, navigateToTalk } from "../navigators"; test.beforeEach(gotoHome); @@ -9,7 +9,7 @@ function getNthAccentPhraseInput({ page, n }: { page: Page; n: number }) { } test("単体アクセント句の読み変更", async ({ page }) => { - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); const textField = page.getByRole("textbox", { name: "1行目" }); @@ -51,7 +51,7 @@ test("単体アクセント句の読み変更", async ({ page }) => { }); test("詳細調整欄のコンテキストメニュー", async ({ page }) => { - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); // 削除 diff --git a/tests/e2e/navigators.ts b/tests/e2e/navigators.ts index 20a0fbbe1a..f204278c45 100644 --- a/tests/e2e/navigators.ts +++ b/tests/e2e/navigators.ts @@ -43,7 +43,7 @@ export async function toggleSetting(page: Page, settingName: string) { export async function navigateToHelpDialog(page: Page): Promise { return await test.step("ヘルプダイアログの表示まで移動", async () => { - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); await page.getByRole("button", { name: "ヘルプ" }).click(); return getNewestQuasarDialog(page); @@ -52,7 +52,7 @@ export async function navigateToHelpDialog(page: Page): Promise { export async function navigateToSettingDialog(page: Page): Promise { return await test.step("設定ダイアログの表示まで移動", async () => { - await navigateToMain(page); + await navigateToTalk(page); await page.waitForTimeout(100); await page.getByRole("button", { name: "設定" }).click(); await getQuasarMenu(page, "オプション").click(); @@ -60,11 +60,21 @@ export async function navigateToSettingDialog(page: Page): Promise { }); } +export async function navigateToTalk(page: Page) { + await navigateToMain(page); + + await test.step("トーク画面に移動", async () => { + await page.getByRole("button", { name: "トーク" }).click(); + await page.waitForTimeout(100); + }); +} + export async function navigateToSong(page: Page) { + await navigateToMain(page); + await test.step("ソング画面に移動", async () => { - await navigateToMain(page); - await expect(page.getByText("ソング")).toBeVisible(); - await page.getByText("ソング").click(); + await page.getByRole("button", { name: "ソング" }).click(); + await page.waitForTimeout(100); // 見やすいようにスナップを1/8に変更 await page.getByLabel("スナップ").click(); diff --git a/tests/unit/backend/common/__snapshots__/configManager.spec.ts.snap b/tests/unit/backend/common/__snapshots__/configManager.spec.ts.snap index c7b4ee14d0..c22553fc08 100644 --- a/tests/unit/backend/common/__snapshots__/configManager.spec.ts.snap +++ b/tests/unit/backend/common/__snapshots__/configManager.spec.ts.snap @@ -202,7 +202,6 @@ exports[`0.13.0からマイグレーションできる 1`] = ` }, ], "inheritAudioInfo": true, - "openedEditor": "talk", "playheadPositionDisplayFormat": "MINUTES_SECONDS", "presets": { "items": {},