From 520a97ec3f69478ff6011f56f65b3a563778297d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristoffer=20Vassb=C3=B8?= Date: Thu, 25 Jul 2024 13:58:23 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=8F=20Edit=20section=20tweaks=20-=20Stage?= =?UTF-8?q?=20output=20preload=20auto=20size=20-=20Fixed=20edit=20style=20?= =?UTF-8?q?reset=20not=20always=20working=20-=20Fixed=20edit=20tabs=20clos?= =?UTF-8?q?ing=20again=20-=20Fixed=20stage=20CSS=20edit=20not=20working=20?= =?UTF-8?q?-=20Edit=20section=20close=20button=20on=20no=20changed=20-=20D?= =?UTF-8?q?isabled=20text=20scrolling=20in=20stage=20output=20-=20Tweaked?= =?UTF-8?q?=20stage=20label=20style=20-=20Updated=20languages=20-=20Minor?= =?UTF-8?q?=20bug=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/lang/tr.json | 62 ++++++- .../capture/helpers/CaptureTransmitter.ts | 6 +- src/frontend/components/draw/DrawTools.svelte | 2 +- src/frontend/components/edit/EditTools.svelte | 14 +- .../components/edit/tools/EditValues.svelte | 161 +++++++++--------- .../components/edit/tools/ItemStyle.svelte | 3 + src/frontend/components/edit/values/item.ts | 2 +- src/frontend/components/helpers/output.ts | 7 +- .../components/inputs/CombinedInput.svelte | 6 + .../components/settings/SettingsTabs.svelte | 2 +- .../settings/tabs/Connection.svelte | 2 +- .../components/settings/tabs/defaultThemes.ts | 8 +- .../components/show/tools/Metadata.svelte | 24 +-- src/frontend/components/slide/Textbox.svelte | 9 +- src/frontend/components/stage/Shows.svelte | 2 +- src/frontend/components/stage/Stagebox.svelte | 13 +- .../components/stage/items/SlideText.svelte | 59 ++++++- src/frontend/components/stage/stage.ts | 2 +- .../components/stage/tools/BoxStyle.svelte | 15 +- .../components/stage/tools/ItemStyle.svelte | 5 +- src/frontend/components/stage/values/text.ts | 2 +- src/frontend/components/system/Panel.svelte | 16 +- 22 files changed, 272 insertions(+), 150 deletions(-) diff --git a/public/lang/tr.json b/public/lang/tr.json index ebc7dbce..dda4548c 100644 --- a/public/lang/tr.json +++ b/public/lang/tr.json @@ -9,6 +9,7 @@ "search": "Arama", "none": "Hiçbiri", "finished": "Bitti", + "open": "Açık", "system_open": "Sistemde aç" }, "titlebar": { @@ -29,9 +30,11 @@ "about": { "check_updates": "Güncellemeleri ara", "made": "tarafından Norveç'te yapılmıştır.", - "report": "Bir sorunu bildirmek ister misiniz? GitHub'da bir sorun oluşturun.", - "help": "Çeviriye yardım etmek veya bir özellik istemek mi istiyorsunuz? mail gönder", - "support": "Projeyi destekliyor musunuz?", + "more": "Lütfen daha fazla uygulamamıza göz atın", + "report": "Bir sorunu bildirmek veya bir özellik talep etmek için şu adrese gidin", + "translate": "Çeviriye yardım etmek ister misiniz? Lütfen şu adrese gidin", + "mail": "E-posta yoluyla iletişim", + "support": "Bu proje için minnettarsanız, lütfen desteklemeyi düşünün", "assets": "Kullanılan varlıklar", "libraries": "Kullanılan kütüphaneler", "thanks": "Teşekkür ederim", @@ -117,7 +120,8 @@ "slide": "Slaytı temizle", "overlays": "Bindirmeleri temizle", "audio": "Sesi temizle", - "nextTimer": "Sonraki slayt zamanlayıcısını temizle" + "nextTimer": "Sonraki slayt zamanlayıcısını temizle", + "drawing": "Temiz çizim" }, "remove": { "background": "Arkaplanı kaldırın", @@ -160,6 +164,8 @@ "recommended": "Tavsiye edilen" }, "audio": { + "settings": "Ses ayarları", + "mute_when_video_plays": "Video oynatılırken sesi kapat", "metronome": "Metronom", "toggle_metronome": "Metronomu değiştir", "tempo": "Tempo", @@ -227,7 +233,8 @@ "display": "Geçerli ekranda çıktı penceresi gösterilemedi", "keep_one_layout": "En az bir düzeniniz olmalıdır", "video_unavailable": "Video kullanılamıyor mu? İçerik oluşturucu, videodaki yerleştirmeleri devre dışı bıraktı.", - "folder_exists": "Bu klasör zaten var" + "folder_exists": "Bu klasör zaten var", + "uri": "Ses adı ayrıştırılamadı, lütfen dosyayı yeniden adlandırın" }, "meta": { "title": "Başlık", @@ -277,6 +284,9 @@ "inputs": { "name": "İsim", "url": "URL", + "method": "Yöntem", + "contentType": "İçerik Türü", + "payload": "Yük", "video_id": "Video ID/URL", "close_ad": "Çıktı ekranında reklamı kapat", "start": "Başlat", @@ -353,6 +363,7 @@ "animate": "Hareketlendir", "next_timer": "Sonraki slayt zamanlayıcı", "import": "İçeri aktar", + "songbeamer_import": "Songbeamer İçe aktar", "export": "Dışarı aktar", "importing": "İçe Aktarma", "import_scripture": "Kutsal kitabı içe aktar", @@ -388,7 +399,7 @@ "verse_undefined": "{} ayeti bu bölümde yok.", "recording_started": "Kayıt başladı!", "recording_stopped": "Kayıt durduruldu!", - "starting_show": "Başlangıç şovu", + "starting_action": "Başlangıç eylemi", "less_than_minute": "bir dakikadan daha kısa sürede.", "less_than_seconds": "{} saniyeden daha kısa sürede.", "now": "Şimdi!", @@ -507,7 +518,7 @@ "add_color": "Renk ekle", "format": "Biçim", "find_replace": "Metni bul ve değiştir", - "cut_in_half": "Yarıdan kes", + "cut_in_half": "İkiye bölünmüş", "find": "Bul", "replace": "Değiştir", "case_sensitive": "Harfe duyarlı", @@ -537,6 +548,7 @@ "delete_shows_not_indexed": "Dizine eklenmemiş 'Şovlar' klasöründeki şovları silin", "delete_thumbnail_cache": "Küçük resim önbelleğini sil", "open_log_file": "Günlük dosyasını aç", + "open_cache_folder": "Önbellek klasörünü açın", "refresh_all_shows": "Tüm şovları 'Şovlar' klasörüne alın", "start_timer": "Zamanlayıcıyı başlat", "stop_timers": "Aktif zamanlayıcıları durdur", @@ -562,6 +574,7 @@ "change_volume": "Hacmi değiştirin", "start_audio_stream": "Ses akışını başlat", "start_playlist": "Çalma listesini başlat", + "playlist_next": "Çalma listesindeki sonraki parça", "start_metronome": "Metronomu başlat", "start_slide_timers": "Etkin slaytta zamanlayıcıları başlatma", "id_select_output_style": "Kimliğe göre çıktı stilini seçme", @@ -570,10 +583,15 @@ "change_variable": "Değişken değiştir", "start_trigger": "Tetikleyiciyi başlat", "run_action": "Çalıştırma eylemi", + "toggle_action": "Eylemi değiştir", + "send_rest_command": "HTTP-İsteği Gönder", "custom_activation": "Özel etkinleştirme", "activate_on_startup": "Başlangıçta etkinleştir", "activate_save": "Kaydettiğinde etkinleştir", "activate_slide_clicked": "Slayt tıklandığında etkinleştir", + "activate_video_starting": "Video başladığında etkinleştir", + "activate_video_ending": "Video sona erdiğinde etkinleştir", + "activate_timer_ending": "Zamanlayıcı sona erdiğinde etkinleştir", "activate_scripture_start": "Kutsal kitap başlatıldığında etkinleştirin", "activate_show_created": "Gösteri oluşturulduğunda etkinleştir" }, @@ -747,7 +765,8 @@ "max_events": "Maksimum etkinlik", "start_days_from_today": "Bugünden sonraki günlerde başla", "just_one_day": "Sadece bir gün", - "enable_start_date": "Başlangıç tarihini etkinleştir" + "enable_start_date": "Başlangıç tarihini etkinleştir", + "disable_navigation": "Navigasyon kontrollerini devre dışı bırak" }, "items": { "text": "Metin kutusu", @@ -765,6 +784,7 @@ "variable": "Değişken", "web": "Website", "visualizer": "Görselleştirici", + "captions": "Başlıklar", "icon": "Simge" }, "borders": { @@ -817,6 +837,13 @@ "analog": "Analog", "seconds": "Saniye" }, + "captions": { + "info": "Henüz açmadıysanız tarayıcınızda açmak için lütfen URL'ye tıklayın veya başka bir cihazda açın! Mikrofonunuza erişim sağladığınızdan ve en iyi performans için Google Chrome kullandığınızdan emin olun.", + "language": "Transkripsiyon dili", + "translate": "Şuna çevir", + "showtime": "Ekran süresi", + "powered_by": "Tarafından desteklenmektedir" + }, "midi": { "midi": "MIDI", "activate": "MIDI sinyali ile etkinleştirin", @@ -925,9 +952,11 @@ "full_colors": "Tam slayt grubu renkleri", "auto_output": "Başlangıçta çıktı ekranını etkinleştir", "hide_cursor_in_output": "İmleci çıktıda gizle", + "clear_media_when_finished": "Bittiğinde medyayı temizleyin", "disable_presenter_controller_keys": "Sunum yapan denetleyici tuşlarını devre dışı bırakma", "default_project_name": "Varsayılan proje adı", "audio_fade_duration": "Ses kısma süresi", + "audio_crossfade": "Ses çapraz geçişi", "max_auto_font_size": "Maks. otomatik yazı tipi boyutu", "resolution": "Çözünürlük", "cropping": "Kırpma", @@ -986,7 +1015,7 @@ "calendar": { "type": "Tip", "event": "Etkinlik", - "show": "Gösteri planla", + "schedule_action": "Eylem planlayın", "name": "İsim", "color": "Renk", "time": "Zaman", @@ -1111,5 +1140,20 @@ "words": "Kelimeler", "template": "Şablon", "category": "Kategori" + }, + "songbeamer_import": { + "options": "Seçenekler", + "encoding": "Kodlama", + "older_versions": "6.02a'dan eski Songbeamer sürümleri için", + "category": "Kategori", + "utf8": "UTF-8", + "latin1": "Latin 1", + "translations": "Çeviriler", + "translation_multiline": "Çoklu Hat", + "translation_textboxes": "Metin Kutuları", + "translation_layouts": "Düzenlemeler", + "translation_description_multiline": "Tüm dilleri tek bir metin kutusuna dönüşümlü satırlar halinde ekler. (Songbeamer'daki gibi)", + "translation_description_textboxes": "Her dili ayrı bir metin kutusu olarak slayta ekler.", + "translation_description_layouts": "Her dil için benzersiz bir slayt seti ve bir düzen oluşturur." } } diff --git a/src/electron/capture/helpers/CaptureTransmitter.ts b/src/electron/capture/helpers/CaptureTransmitter.ts index 3bb61fd1..6f890e8c 100644 --- a/src/electron/capture/helpers/CaptureTransmitter.ts +++ b/src/electron/capture/helpers/CaptureTransmitter.ts @@ -42,7 +42,7 @@ export class CaptureTransmitter { static startChannel(captureId: string, key: string) { const combinedKey = `${captureId}-${key}` - const interval = 1000 / OutputHelper.getOutput(captureId)?.captureOptions?.framerates[key] || 30 + const interval = 1000 / OutputHelper.getOutput(captureId)?.captureOptions?.framerates?.[key] || 30 if (this.channels[combinedKey]?.timer) { clearInterval(this.channels[combinedKey].timer) @@ -98,7 +98,7 @@ export class CaptureTransmitter { const ratio = image.getAspectRatio() //this.ndiFrameCount++ // WIP refresh on enable? - NdiSender.sendVideoBufferNDI(captureId, buffer, { size, ratio, framerate: OutputHelper.getOutput(captureId)?.captureOptions?.framerates.ndi || 10 }) + NdiSender.sendVideoBufferNDI(captureId, buffer, { size, ratio, framerate: OutputHelper.getOutput(captureId)?.captureOptions?.framerates?.ndi || 10 }) } static resizeImage(image: NativeImage, initialSize: Size, newSize: Size) { @@ -118,7 +118,7 @@ export class CaptureTransmitter { ;[...new Set(this.requestList)].forEach((data: any) => { data = JSON.parse(data) - if (data.previewId !== msg.data.id) { + if (data.previewId !== msg.data?.id) { newList.push(JSON.stringify(data)) return } diff --git a/src/frontend/components/draw/DrawTools.svelte b/src/frontend/components/draw/DrawTools.svelte index bd0fb6d2..c9425295 100644 --- a/src/frontend/components/draw/DrawTools.svelte +++ b/src/frontend/components/draw/DrawTools.svelte @@ -9,7 +9,7 @@ // TODO: zoom tool function keydown(e: any) { - if (e.ctrlKey || e.metaKey) return + if (e.target?.closest(".edit") || e.ctrlKey || e.metaKey) return let nextTab = -1 let currentTabIndex = tools.findIndex((tab) => tab === $drawTool) diff --git a/src/frontend/components/edit/EditTools.svelte b/src/frontend/components/edit/EditTools.svelte index e48f7f6a..9d019df5 100644 --- a/src/frontend/components/edit/EditTools.svelte +++ b/src/frontend/components/edit/EditTools.svelte @@ -1,7 +1,7 @@
- {#if (slides?.length && showIsActive && $activeEdit.slide !== null) || $activeEdit.id} - + {#if slideActive} + {#if active === "text"}
diff --git a/src/frontend/components/edit/tools/EditValues.svelte b/src/frontend/components/edit/tools/EditValues.svelte index aab0cc81..dc1ba84f 100644 --- a/src/frontend/components/edit/tools/EditValues.svelte +++ b/src/frontend/components/edit/tools/EditValues.svelte @@ -1,5 +1,6 @@ - + {#if metadata.autoMedia !== true}
@@ -114,8 +118,7 @@
- -
+

@@ -177,10 +180,6 @@ text-transform: uppercase; } - .styling div.tempHide { - display: none; - } - .message, .styling { padding: 10px; @@ -194,6 +193,7 @@ position: relative; display: block; background: var(--primary-darker); + height: initial; } .styling div { diff --git a/src/frontend/components/slide/Textbox.svelte b/src/frontend/components/slide/Textbox.svelte index efc85087..3ad4ab01 100644 --- a/src/frontend/components/slide/Textbox.svelte +++ b/src/frontend/components/slide/Textbox.svelte @@ -39,6 +39,7 @@ export let transitionEnabled: boolean = false export let animationStyle: any = {} export let dynamicValues: boolean = true + export let isStage: boolean = false export let customFontSize: number | null = null export let outputStyle: any = {} export let ref: { @@ -394,10 +395,10 @@ {#if lines}
diff --git a/src/frontend/components/stage/Shows.svelte b/src/frontend/components/stage/Shows.svelte index b5c4ec17..4e885d84 100644 --- a/src/frontend/components/stage/Shows.svelte +++ b/src/frontend/components/stage/Shows.svelte @@ -16,7 +16,7 @@ .sort((a, b) => a.name.localeCompare(b.name)) function keydown(e: any) { - if (e.ctrlKey || e.metaKey) return + if (e.target?.closest(".edit") || e.ctrlKey || e.metaKey) return let nextTab = -1 let currentTabIndex = sortedStageSlides.findIndex((a) => a.id === $activeStage.id) diff --git a/src/frontend/components/stage/Stagebox.svelte b/src/frontend/components/stage/Stagebox.svelte index f2ad9f0a..3402ff7f 100644 --- a/src/frontend/components/stage/Stagebox.svelte +++ b/src/frontend/components/stage/Stagebox.svelte @@ -1,5 +1,5 @@ -{#if slide} - {#if style} +{#if style} + {#if slide}
{#each items as item} @@ -56,9 +84,28 @@ {/each}
- {:else} - {#each items as item} - - {/each} {/if} +{:else} +
+ {#each items1 as item} + + {/each} +
+
+ {#each items2 as item} + + {/each} +
{/if} + + diff --git a/src/frontend/components/stage/stage.ts b/src/frontend/components/stage/stage.ts index 89dbcf96..61d55a51 100644 --- a/src/frontend/components/stage/stage.ts +++ b/src/frontend/components/stage/stage.ts @@ -11,7 +11,7 @@ export function updateStageShow() { }) } -export function getCustomStageLabel(itemId: string): string { +export function getCustomStageLabel(itemId: string, _updater: any = null): string { if (itemId.includes("global_timers")) return get(timers)[getStageItemId(itemId)]?.name || "" if (itemId.includes("variables")) return get(variables)[getStageItemId(itemId)]?.name || "" diff --git a/src/frontend/components/stage/tools/BoxStyle.svelte b/src/frontend/components/stage/tools/BoxStyle.svelte index f4fd3acd..13bfe85b 100644 --- a/src/frontend/components/stage/tools/BoxStyle.svelte +++ b/src/frontend/components/stage/tools/BoxStyle.svelte @@ -48,6 +48,10 @@ edits.default[1].value = item.tracker.accent || $themes[$theme]?.colors?.secondary || "#F0008C" } + // CSS + // WIP get only text related item styles (& combine again)? + $: if (edits?.CSS && item?.style) edits.CSS[0].value = item.style + // align let alignStyle: any = {} let lineAlignStyle: any = {} @@ -64,8 +68,6 @@ } function setValue(input: any) { - console.log("STAGE", input) - let value: any = input.value // if (input.id === "filter") value = addFilterString(item?.filter || "", [input.key, value]) // else if (input.key) value = { ...((item as any)?.[input.key] || {}), [input.key]: value } @@ -74,35 +76,30 @@ if (input.id.includes(".")) { let splitted = input.id.split(".") - console.log(splitted) input.id = splitted[0] let newValue = item?.[input.id] || {} newValue[splitted[1]] = value value = newValue - console.log(value) } history({ id: "UPDATE", newData: { data: value, key: "items", subkey: input.id, keys: items }, oldData: { id: $activeStage.id }, location: { page: "stage", id: "stage_item_content", override: $activeStage.id + items.join("") } }) } function updateAlign(input) { - console.log("ALIGN", input) let id = "align" if (input.key === "text-align") id = "alignX" let value = input.value - console.log(id, value) history({ id: "UPDATE", newData: { data: value, key: "items", subkey: id, keys: items }, oldData: { id: $activeStage.id }, location: { page: "stage", id: "stage_item_content", override: $activeStage.id + items.join("") } }) } function updateStyle(e: any) { let input = e.detail - console.log(input) if (input.key === "text-align" || input.key === "align-items") updateAlign(input) - if (input.id !== "style") { + if (input.id !== "style" && input.id !== "CSS") { setValue(input) return } @@ -113,8 +110,6 @@ if (!value) return - console.log(item?.style, value) - history({ id: "UPDATE", newData: { data: value, key: "items", subkey: "style", keys: items }, oldData: { id: $activeStage.id }, location: { page: "stage", id: "stage_item_content", override: $activeStage.id + items.join("") } }) if (!timeout) { diff --git a/src/frontend/components/stage/tools/ItemStyle.svelte b/src/frontend/components/stage/tools/ItemStyle.svelte index 2d390865..978b6268 100644 --- a/src/frontend/components/stage/tools/ItemStyle.svelte +++ b/src/frontend/components/stage/tools/ItemStyle.svelte @@ -20,6 +20,9 @@ $: itemEdit = clone(itemEdits) $: if (itemEdit.backdrop_filters) delete itemEdit.backdrop_filters + // CSS + $: if (itemEdit?.CSS && item?.style) itemEdit.CSS[0].value = item.style + function updateStyle(e: any) { let input = e.detail @@ -29,8 +32,6 @@ if (!value) return - console.log(item?.style, value) - history({ id: "UPDATE", newData: { data: value, key: "items", subkey: "style", keys: items }, oldData: { id: $activeStage.id }, location: { page: "stage", id: "stage_item_style", override: $activeStage.id + items.join("") } }) if (!timeout) { diff --git a/src/frontend/components/stage/values/text.ts b/src/frontend/components/stage/values/text.ts index 0cc42cb3..07cd077f 100644 --- a/src/frontend/components/stage/values/text.ts +++ b/src/frontend/components/stage/values/text.ts @@ -29,5 +29,5 @@ export const textEdits: { [key: string]: EditInput[] } = { { name: "color", id: "chordsData.color", input: "color", value: "#FF851B", hidden: true }, { name: "size", id: "chordsData.size", input: "number", value: 30, hidden: true }, ], - CSS: [{ id: "item", input: "CSS" }], + CSS: [{ id: "CSS", input: "CSS" }], } diff --git a/src/frontend/components/system/Panel.svelte b/src/frontend/components/system/Panel.svelte index ad810de2..76344063 100644 --- a/src/frontend/components/system/Panel.svelte +++ b/src/frontend/components/system/Panel.svelte @@ -1,8 +1,22 @@ -
+ + +