From 739806ea4ed5d3e25ad1afa39a9e2b3db88b65ec Mon Sep 17 00:00:00 2001 From: Rodrigo Braz Monteiro Date: Mon, 8 Jan 2007 05:32:29 +0000 Subject: [PATCH] Small tests to prepare for real-time subtitle visual manipulation Originally committed to SVN as r744. --- aegisub/subs_edit_box.cpp | 9 +++++---- aegisub/subs_edit_box.h | 2 +- aegisub/subs_grid.cpp | 20 +++++++++++--------- aegisub/subs_grid.h | 2 +- aegisub/video_display.cpp | 10 +++++++++- 5 files changed, 27 insertions(+), 16 deletions(-) diff --git a/aegisub/subs_edit_box.cpp b/aegisub/subs_edit_box.cpp index e3056a158..6eee542ab 100644 --- a/aegisub/subs_edit_box.cpp +++ b/aegisub/subs_edit_box.cpp @@ -860,16 +860,17 @@ void SubsEditBox::KeyPress(wxKeyEvent &event) { /////////////// // Commit text -void SubsEditBox::CommitText() { +void SubsEditBox::CommitText(bool weak) { AssDialogue *cur = grid->GetDialogue(linen); // Update line if (cur) { cur->Text = TextEdit->GetText(); - //cur->ParseASSTags(); cur->UpdateData(); - grid->Refresh(false); - audio->SetDialogue(grid,cur,linen); + if (!weak) { + grid->Refresh(false); + audio->SetDialogue(grid,cur,linen); + } } } diff --git a/aegisub/subs_edit_box.h b/aegisub/subs_edit_box.h index 5c8194c36..ecd5eb8bb 100644 --- a/aegisub/subs_edit_box.h +++ b/aegisub/subs_edit_box.h @@ -152,7 +152,7 @@ public: void SetStyleFlag (wxString tag,wxString preValue=_T(""),int pos=-1); void SetSplitLineMode(wxSize size=wxSize(-1,-1)); - void CommitText(); + void CommitText(bool weak=false); void Update(bool timeOnly=false); void UpdateGlobals(); void SetToLine(int n); diff --git a/aegisub/subs_grid.cpp b/aegisub/subs_grid.cpp index 9c198d48f..29cd1d63f 100644 --- a/aegisub/subs_grid.cpp +++ b/aegisub/subs_grid.cpp @@ -1269,7 +1269,7 @@ void SubtitlesGrid::SplitLineByKaraoke(int lineNumber) { // Commit changes // -------------- // This will save the work .ass and refresh it -void SubtitlesGrid::CommitChanges(bool force) { +void SubtitlesGrid::CommitChanges(bool force,bool videoOnly) { if (video->loaded || force) { // Check if it's playing bool playing = false; @@ -1289,15 +1289,17 @@ void SubtitlesGrid::CommitChanges(bool force) { if (playing) video->Play(); } - // Autosave if option is enabled - if (Options.AsBool(_T("Auto Save on Every Change"))) { - if (ass->IsModified() && !ass->filename.IsEmpty()) parentFrame->SaveSubtitles(false); - } + if (!videoOnly) { + // Autosave if option is enabled + if (Options.AsBool(_T("Auto Save on Every Change"))) { + if (ass->IsModified() && !ass->filename.IsEmpty()) parentFrame->SaveSubtitles(false); + } - // Update parent frame - parentFrame->UpdateTitle(); - SetColumnWidths(); - Refresh(false); + // Update parent frame + parentFrame->UpdateTitle(); + SetColumnWidths(); + Refresh(false); + } } diff --git a/aegisub/subs_grid.h b/aegisub/subs_grid.h index 2ae5ffcad..1fb1b8fec 100644 --- a/aegisub/subs_grid.h +++ b/aegisub/subs_grid.h @@ -103,7 +103,7 @@ public: void LoadDefault(AssFile *ass=NULL); void LoadFromAss(AssFile *ass=NULL,bool keepSelection=false,bool dontModify=false); - void CommitChanges(bool force=false); + void CommitChanges(bool force=false,bool videoOnly=false); void SetVideoToSubs(bool start); void SetSubsToVideo(bool start); diff --git a/aegisub/video_display.cpp b/aegisub/video_display.cpp index 07744ae80..dcf5a3774 100644 --- a/aegisub/video_display.cpp +++ b/aegisub/video_display.cpp @@ -393,7 +393,15 @@ void VideoDisplay::OnMouseEvent(wxMouseEvent& event) { grid->editBox->SetOverride(_T("\\pos"),wxString::Format(_T("(%i,%i)"),vx,vy),0); grid->editBox->CommitText(); grid->ass->FlagAsModified(); - grid->CommitChanges(); + grid->CommitChanges(false,true); + } + + // Drag + if (event.LeftIsDown() && false) { + grid->editBox->SetOverride(_T("\\pos"),wxString::Format(_T("(%i,%i)"),vx,vy),0); + grid->editBox->CommitText(true); + //grid->ass->FlagAsModified(); + grid->CommitChanges(false,true); } // Hover