Skip to content

Commit

Permalink
1.3.0-beta.3 (#929)
Browse files Browse the repository at this point in the history
* ✨ Tweaked group count style
- Fixed scripture changing in some cases
- Fixed some issues with split in two
- Split in two will also split text content
- Fixed global group drop added to wrong index if dropped at the end
- UI tweaks
- Updated languages

* 🔍 Updated show search
- Textbox focused on edit page open
- CTRL+ALT+I to import directly from clipboard
- Fixed disabled checkbox not copied to item clipboard
- Fixed stage slide item auto size
- Fixed stage media thumbnails not always loading
- UI tweaks
- Version update
  • Loading branch information
vassbo authored Oct 25, 2024
1 parent 2a653ae commit 2a7e39a
Show file tree
Hide file tree
Showing 34 changed files with 414 additions and 136 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "freeshow",
"version": "1.3.0-beta.2",
"version": "1.3.0-beta.3",
"private": true,
"main": "build/electron/index.js",
"description": "Show song lyrics and more for free!",
Expand Down
50 changes: 44 additions & 6 deletions public/lang/en_GB.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,15 +94,17 @@
"search_web": "Search for song on the web",
"search_results": "Search results",
"more_options": "More options",
"auto_groups": "Auto assign groups",
"format_new_show": "Format text",
"format_new_show_tip": "Improve text format with auto capitalise, split text, assign groups & more.",
"split_lines": "Numbers of lines",
"format_new_show_tip": "Improve text format with auto capitalise, trim/split text & more.",
"split_lines": "Max lines per slide",
"split_lines_tip": "Numbers of lines allowed per slide before auto splitting",
"quick_lyrics": "Quick lyrics",
"quick_lyrics_tip": "Paste text or enter manually",
"quick_lyrics_example_tip": "Enter lyrics or any text here",
"quick_lyrics_example_text": "Line",
"empty": "Empty show"
"empty": "Empty show",
"exists": "Found an existing show with the same name"
},
"preview": {
"_previous_show": "Previous show",
Expand Down Expand Up @@ -381,6 +383,7 @@
"transition": "Transition",
"delete_show": "Delete show",
"delete_show_confirmation": "Are you sure you want to delete",
"delete_duplicated_shows": "Delete duplicated shows",
"change_name": "Change name on",
"choose_screen": "Choose screen",
"choose_output": "Choose output type",
Expand Down Expand Up @@ -431,6 +434,7 @@
"less_than_minute": "in less than a minute.",
"less_than_seconds": "in less than {} seconds.",
"now": "now!",
"unsupported_video": "Unsupported video!",
"no_video_id": "No video ID",
"no_name": "No name",
"reverting_setting": "Reverting this change in {} seconds, enable again to make the change stay!",
Expand Down Expand Up @@ -485,7 +489,11 @@
"slide_template": "Slide template",
"source": "Source",
"artist": "Artist",
"song": "Song"
"song": "Song",
"delete_manual": "Manual check",
"delete_match": "Delete if exact match",
"delete_keep_last_modified": "Delete all except last modified",
"delete_keep_first_created": "Delete all except first created"
},
"actions": {
"rename": "Rename",
Expand Down Expand Up @@ -594,7 +602,10 @@
"play_on_midi_tip": "Activate this specific slide when receiving chosen MIDI signal",
"send_midi": "Send MIDI signal",
"delete_shows_not_indexed": "Delete shows in 'Shows' folder that are not indexed",
"delete_empty_shows": "Delete empty shows",
"delete_thumbnail_cache": "Delete thumbnail cache",
"export_usage_log": "Export usage log",
"reset_usage_log": "Reset usage log",
"open_log_file": "Open log file",
"open_cache_folder": "Open cache folder",
"refresh_all_shows": "Get all shows in 'Shows' folder",
Expand Down Expand Up @@ -644,6 +655,8 @@
"activate_slide_clicked": "Activate on slide click",
"activate_video_starting": "Activate when video is starting",
"activate_video_ending": "Activate when video is ending",
"activate_audio_starting": "Activate when audio is starting",
"activate_audio_ending": "Activate when audio is ending",
"activate_timer_ending": "Activate when timer is ending",
"activate_scripture_start": "Activate when scripture is started",
"activate_slide_cleared": "Activate when slide is cleared",
Expand Down Expand Up @@ -719,6 +732,7 @@
"addToProject": "Add to project",
"add_to_show": "Add to show",
"lockForChanges": "Lock for editing",
"use_as_archive": "Mark as archive",
"newCategory": "New category",
"changeIcon": "Change icon",
"changeGroup": "Change group",
Expand Down Expand Up @@ -1015,7 +1029,7 @@
"select_display": "Click on the screen where you want to display the output window.",
"manual_input_hint": "Can't find the display? Click here to manually change the position.",
"manual_drag_hint": "You can also hold ctrl/cmd over an active output window to manually drag it around.",
"allow_main_screen": "Allow output on main screen",
"allow_main_screen": "Allow custom output position & size",
"identify_screens": "Identify screens",
"new_output": "New output",
"normal": "Normal",
Expand Down Expand Up @@ -1064,7 +1078,7 @@
"show_location": "Show location",
"data_location": "Data location",
"user_data_location": "Save user settings at 'Data location'",
"popup_before_close": "Always display popup before closing",
"popup_before_close": "Enable close confirmation popup",
"disable_hardware_acceleration": "Disable hardware acceleration",
"restart_for_change": "You have to restart the program for the change to take effect!",
"font": "Font",
Expand Down Expand Up @@ -1095,6 +1109,7 @@
"restore_started": "Restoring...",
"backup_finished": "Backup complete!",
"restore_finished": "Restore complete!",
"auto_backup": "Auto backup",
"preview_frame_rate": "Preview frame rate",
"auto": "Auto",
"optimized": "Optimised",
Expand Down Expand Up @@ -1242,22 +1257,45 @@
"6": "Saturday",
"7": "Sunday"
},
"interval": {
"daily": "Daily",
"weekly": "Weekly",
"mothly": "Monthly"
},
"info": {
"created": "Created",
"modified": "Modified",
"used": "Used",
"changed": "Changed",
"recently_used": "Recently used",
"extension": "File extension",
"size": "Size",
"slides": "Slides",
"words": "Words",
"template": "Template",
"category": "Category",
"codecs": "Codecs",
"mimeType": "MIME type",
"photoUrl": "Photo URL",
"likes": "Likes",
"artist": "Artist",
"artistUrl": "Artist page"
},
"guide_description": {
"start": "This is a short walkthrough of some basic features! (You can skip in the bottom right corner.)",
"project_manage": "Manage all of your projects in one place.",
"project_create": "Create folders to keep it organised, and create new projects.",
"project_list": "After opening a project you get a list of all the items here on the left side, drag & drop from the drawer to add more.",
"drawer": "Find all of your shows, media, overlays, etc. in one place.",
"drawer_shows": "Manage all of your different shows by organising them in different categories. Drag & drop any selected show to move them.",
"create_show_button": "Click this to create a new show (song, presentation, etc.)",
"create_show_popup": "Fill in the main details of the show, you can also auto find lyrics on the web from the name, or paste the lyrics manually.",
"show": "A show is the main presentation, click on any slide to present, and use the arrow keys to navigate. You can also drag & drop media files on a slide to set as background.",
"show_slide": "After a slide is clicked, it will show in the output and you will see a preview on the right, here you'll also find some extra actions like pausing a video.",
"output_clear": "Clear individual output layers, or clear all layers in the output.",
"edit": "Open slide editing with one click at the top.",
"end": "You can always look on the web if you need help with other features."
},
"songbeamer_import": {
"options": "Options",
"encoding": "Encoding",
Expand Down
50 changes: 44 additions & 6 deletions public/lang/en_ZM.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,15 +94,17 @@
"search_web": "Search for song on the web",
"search_results": "Search results",
"more_options": "More options",
"auto_groups": "Auto assign groups",
"format_new_show": "Format text",
"format_new_show_tip": "Improve text format with auto capitalise, split text, assign groups & more.",
"split_lines": "Numbers of lines",
"format_new_show_tip": "Improve text format with auto capitalise, trim/split text & more.",
"split_lines": "Max lines per slide",
"split_lines_tip": "Numbers of lines allowed per slide before auto splitting",
"quick_lyrics": "Quick lyrics",
"quick_lyrics_tip": "Paste text or enter manually",
"quick_lyrics_example_tip": "Enter lyrics or any text here",
"quick_lyrics_example_text": "Line",
"empty": "Empty show"
"empty": "Empty show",
"exists": "Found an existing show with the same name"
},
"preview": {
"_previous_show": "Previous show",
Expand Down Expand Up @@ -381,6 +383,7 @@
"transition": "Transition",
"delete_show": "Delete show",
"delete_show_confirmation": "Are you sure you want to delete",
"delete_duplicated_shows": "Delete duplicated shows",
"change_name": "Change name on",
"choose_screen": "Choose screen",
"choose_output": "Choose output type",
Expand Down Expand Up @@ -431,6 +434,7 @@
"less_than_minute": "in less than a minute.",
"less_than_seconds": "in less than {} seconds.",
"now": "now!",
"unsupported_video": "Unsupported video!",
"no_video_id": "No video ID",
"no_name": "No name",
"reverting_setting": "Reverting this change in {} seconds, enable again to make the change stay!",
Expand Down Expand Up @@ -485,7 +489,11 @@
"slide_template": "Slide template",
"source": "Source",
"artist": "Artist",
"song": "Song"
"song": "Song",
"delete_manual": "Manual check",
"delete_match": "Delete if exact match",
"delete_keep_last_modified": "Delete all except last modified",
"delete_keep_first_created": "Delete all except first created"
},
"actions": {
"rename": "Rename",
Expand Down Expand Up @@ -594,7 +602,10 @@
"play_on_midi_tip": "Activate this specific slide when receiving chosen MIDI signal",
"send_midi": "Send MIDI signal",
"delete_shows_not_indexed": "Delete shows in 'Shows' folder that are not indexed",
"delete_empty_shows": "Delete empty shows",
"delete_thumbnail_cache": "Delete thumbnail cache",
"export_usage_log": "Export usage log",
"reset_usage_log": "Reset usage log",
"open_log_file": "Open log file",
"open_cache_folder": "Open cache folder",
"refresh_all_shows": "Get all shows in 'Shows' folder",
Expand Down Expand Up @@ -644,6 +655,8 @@
"activate_slide_clicked": "Activate on slide click",
"activate_video_starting": "Activate when video is starting",
"activate_video_ending": "Activate when video is ending",
"activate_audio_starting": "Activate when audio is starting",
"activate_audio_ending": "Activate when audio is ending",
"activate_timer_ending": "Activate when timer is ending",
"activate_scripture_start": "Activate when scripture is started",
"activate_slide_cleared": "Activate when slide is cleared",
Expand Down Expand Up @@ -719,6 +732,7 @@
"addToProject": "Add to project",
"add_to_show": "Add to show",
"lockForChanges": "Lock for editing",
"use_as_archive": "Mark as archive",
"newCategory": "New category",
"changeIcon": "Change icon",
"changeGroup": "Change group",
Expand Down Expand Up @@ -1015,7 +1029,7 @@
"select_display": "Click on the screen where you want to display the output window.",
"manual_input_hint": "Can't find the display? Click here to manually change the position.",
"manual_drag_hint": "You can also hold ctrl/cmd over an active output window to manually drag it around.",
"allow_main_screen": "Allow output on main screen",
"allow_main_screen": "Allow custom output position & size",
"identify_screens": "Identify screens",
"new_output": "New output",
"normal": "Normal",
Expand Down Expand Up @@ -1064,7 +1078,7 @@
"show_location": "Show location",
"data_location": "Data location",
"user_data_location": "Save user settings at 'Data location'",
"popup_before_close": "Always display popup before closing",
"popup_before_close": "Enable close confirmation popup",
"disable_hardware_acceleration": "Disable hardware acceleration",
"restart_for_change": "You have to restart the program for the change to take effect!",
"font": "Font",
Expand Down Expand Up @@ -1095,6 +1109,7 @@
"restore_started": "Restoring...",
"backup_finished": "Backup complete!",
"restore_finished": "Restore complete!",
"auto_backup": "Auto backup",
"preview_frame_rate": "Preview frame rate",
"auto": "Auto",
"optimized": "Optimised",
Expand Down Expand Up @@ -1242,22 +1257,45 @@
"6": "Saturday",
"7": "Sunday"
},
"interval": {
"daily": "Daily",
"weekly": "Weekly",
"mothly": "Monthly"
},
"info": {
"created": "Created",
"modified": "Modified",
"used": "Used",
"changed": "Changed",
"recently_used": "Recently used",
"extension": "File extension",
"size": "Size",
"slides": "Slides",
"words": "Words",
"template": "Template",
"category": "Category",
"codecs": "Codecs",
"mimeType": "MIME type",
"photoUrl": "Photo URL",
"likes": "Likes",
"artist": "Artist",
"artistUrl": "Artist page"
},
"guide_description": {
"start": "This is a short walkthrough of some basic features! (You can skip in the bottom right corner.)",
"project_manage": "Manage all of your projects in one place.",
"project_create": "Create folders to keep it organised, and create new projects.",
"project_list": "After opening a project you get a list of all the items here on the left side, drag & drop from the drawer to add more.",
"drawer": "Find all of your shows, media, overlays, etc. in one place.",
"drawer_shows": "Manage all of your different shows by organising them in different categories. Drag & drop any selected show to move them.",
"create_show_button": "Click this to create a new show (song, presentation, etc.)",
"create_show_popup": "Fill in the main details of the show, you can also auto find lyrics on the web from the name, or paste the lyrics manually.",
"show": "A show is the main presentation, click on any slide to present, and use the arrow keys to navigate. You can also drag & drop media files on a slide to set as background.",
"show_slide": "After a slide is clicked, it will show in the output and you will see a preview on the right, here you'll also find some extra actions like pausing a video.",
"output_clear": "Clear individual output layers, or clear all layers in the output.",
"edit": "Open slide editing with one click at the top.",
"end": "You can always look on the web if you need help with other features."
},
"songbeamer_import": {
"options": "Options",
"encoding": "Encoding",
Expand Down
16 changes: 8 additions & 8 deletions public/lang/zh_CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,10 @@
"mute_when_video_plays": "视频播放时静音",
"pre_fader_volume_meter": "推子前音量表",
"metronome": "节拍器",
"toggle_metronome": "切换节拍器",
"tempo": "时间",
"bpm": "节拍数",
"beats": "节拍"
"toggle_metronome": "显示/隐藏节拍器",
"tempo": "节奏",
"bpm": "拍数",
"beats": "拍子"
},
"menu": {
"show": "演出",
Expand Down Expand Up @@ -530,7 +530,7 @@
"speech": "朗读",
"startSpeaking": "开始朗读",
"stopSpeaking": "停止朗读",
"focus_mode": "切换聚焦模式",
"focus_mode": "切换专注模式",
"fullscreen": "切换全屏",
"resetZoom": "重置缩放",
"zoom": "缩放",
Expand Down Expand Up @@ -1058,8 +1058,8 @@
"clear_media_when_finished": "播放完成时清除媒体",
"disable_presenter_controller_keys": "禁用演示者控制器按键",
"default_project_name": "默认项目名称",
"audio_fade_duration": "音频淡入淡出持续时间",
"audio_crossfade": "音频交叉淡入",
"audio_fade_duration": "音频淡化时长",
"audio_crossfade": "音频交叉淡化",
"clear_style_background_on_text": "幻灯片激活时清除样式背景",
"resolution": "分辨率",
"cropping": "裁剪",
Expand Down Expand Up @@ -1209,7 +1209,7 @@
"direction": "方向",
"type": "类型",
"none": "",
"fade": "渐变",
"fade": "淡化",
"blur": "模糊",
"scale": "缩放",
"spin": "旋转",
Expand Down
10 changes: 6 additions & 4 deletions src/frontend/components/context/menuClick.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { get } from "svelte/store"
import { uid } from "uid"
import { EXPORT, MAIN, OUTPUT } from "../../../types/Channels"
import type { MediaStyle } from "../../../types/Main"
import type { Slide } from "../../../types/Show"
import type { Item, Slide } from "../../../types/Show"
import { changeSlideGroups, mergeSlides, mergeTextboxes, splitItemInTwo } from "../../show/slides"
import {
$,
Expand Down Expand Up @@ -63,7 +63,7 @@ import { stopMediaRecorder } from "../drawer/live/recorder"
import { playPauseGlobal } from "../drawer/timers/timers"
import { addChords } from "../edit/scripts/chords"
import { rearrangeItems } from "../edit/scripts/itemHelpers"
import { getSelectionRange } from "../edit/scripts/textStyle"
import { getItemText, getSelectionRange } from "../edit/scripts/textStyle"
import { exportProject } from "../export/project"
import { clone, removeDuplicates } from "../helpers/array"
import { copy, cut, deleteAction, duplicate, paste, selectAll } from "../helpers/clipboard"
Expand Down Expand Up @@ -962,9 +962,11 @@ const actions: any = {
if (!slideRef || previousSpiltIds.includes(slideRef.id)) return
previousSpiltIds.push(slideRef.id)

let slideItems = _show().slides([slideRef.id]).get("items")[0]
let slideItems: Item[] = _show().slides([slideRef.id]).get("items")[0]

let firstTextItemIndex = slideItems.findIndex((a) => a.lines) ?? -1
// check lines array & text array first, then text value
let firstTextItemIndex = slideItems.findIndex((a) => getItemText(a).length && ((a.lines?.length || 0) > 1 || (a.lines?.[0]?.text?.length || 0) > 1))
if (firstTextItemIndex < 0) firstTextItemIndex = slideItems.findIndex((a) => getItemText(a).length > 18)
if (firstTextItemIndex < 0) return

splitItemInTwo(slideRef, firstTextItemIndex)
Expand Down
Loading

0 comments on commit 2a7e39a

Please sign in to comment.