sachac / subed

subed is a subtitle editor for Emacs
179 stars 16 forks source link

subed-increase-start-time breaks if start-time >= end-time #10

Closed hackerb9 closed 5 years ago

hackerb9 commented 5 years ago

I was frustrated when I couldn't use M-] to move a subtitle into the right position because the end-time was also incorrect. subed mode refused to let me set the start and end times to be the same values. I then tried to move the end time, but couldn't because it would've been greater than the next start time.

I'd rather subed let me do something "wrong" and presume that I know what I'm doing and I'm going to fix it later. If I do something silly, subed can syntax highlight in RED background times which are impossible (start >= end, end > next start).

Even better would be to have new functions that moves both the start and end times and bind those functions to M-[, M-] by default. Here's what I'd suggest for bindings:

Thank you for creating this neat mode.

hackerb9 commented 5 years ago

Ah, I see you have the function already to move both start and end times already implemented, but just bound to a difficult to hit keys C-M-b, C-M-f. Please use M-[ and M-] as I described above. Thanks!

rndusr commented 5 years ago

I've also run into this blocking issue. Still thinking about how to tackle this best.

C-M-b/f actually "shift" subtitles. Shifting means that the current and all following subtitles are adjusted by the same amount.

C-M-p/n "moves" subtitles, i.e. adjust start/stop time of the current subtitle by the same amount.

C-h m should give you a list of keybindings.

You can redefine those keys if you don't like them.

hackerb9 commented 5 years ago

I had not understood the difference between move versus shift. Usually I expect such commentary to be in comments at the top of the main lisp file, but I didn't see one in subed.el. (For example, see the Commentary in /usr/share/emacs/*/lisp/woman.el.gz).

You had mentioned in an earlier bug that you were looking for suggestions from users on keybindings. Are you still inviting ideas or is the keymap fixed?

hackerb9 commented 5 years ago

I've just run into the same blocking issue in another form. It appears to be legal for subtitles to overlap if they are in different positions on the screen. For example,

15
00:00:37,719 --> 00:00:42,490
{\an8} Double doors open.

16
00:00:40,855 --> 00:00:43,091
Why aren't I reacting
in this shot?

17
00:00:43,191 --> 00:00:44,959
{\an8} Ringo Starr?

18
00:00:45,059 --> 00:00:47,996
{\an8} Lined eyes.

19
00:00:46,728 --> 00:00:48,663
Guess I should be acting,
but I’m not.
rndusr commented 5 years ago

Yes, my documentation isn't very good at the moment. Thanks for reminding of this particular issue. I would've explained general concepts like "shift" and "move" in the docstring of subed-mode so it is easily and intuitively accessible via C-h f.

Are you still inviting ideas or is the keymap fixed?

I've liked the defaults so far, but I'm always open for suggestions, especially because I haven't used subed very much.

rndusr commented 5 years ago

It appears to be legal for subtitles to overlap if they are in different positions on the screen. For example, [...]

What do you mean? What's the issue with your example?

hackerb9 commented 5 years ago

15 ends after #16 starts. That means I can't increase the end time of #15 because it is blocked by #16.

(The code in curly braces puts the subtitle at the top of the screen for a second voice that overlaps the first.)

rndusr commented 5 years ago

I didn't know SubRip had the ability to place subtitles. Do you know if that's documented anywhere?

I guess if these "annotations" (what are they called?) are widely supported, the only reasonable thing would be to not block any adjustments. (Which kinda sucks because I put a lot of thought and time into that and it works so nicely! :()

rndusr commented 5 years ago

I've added a new defcustom, subed-enforce-time-boundaries, which you can set to nil to allow arbitrary timestamps.

This should solve this issue.