Changes to text will no longer be discarded when you commit timing in the audio display and vice-versa, fixed glitches related to the Duration time edit box, and fixed snapping.

Originally committed to SVN as r742.
This commit is contained in:
Rodrigo Braz Monteiro 2007-01-08 03:05:26 +00:00
parent 0fbfd67864
commit 0ad1815eed
6 changed files with 28 additions and 4 deletions

View file

@ -55,6 +55,7 @@
#include "colorspace.h" #include "colorspace.h"
#include "hotkeys.h" #include "hotkeys.h"
#include "utils.h" #include "utils.h"
#include "timeedit_ctrl.h"
/////////////// ///////////////
@ -1021,9 +1022,15 @@ void AudioDisplay::CommitChanges (bool nextLine) {
curDiag->Start.SetMS(curStartMS); curDiag->Start.SetMS(curStartMS);
curDiag->End.SetMS(curEndMS); curDiag->End.SetMS(curEndMS);
curDiag->Text = grid->editBox->TextEdit->GetText();
curDiag->UpdateData(); curDiag->UpdateData();
} }
// Update edit box
grid->editBox->StartTime->Update();
grid->editBox->EndTime->Update();
grid->editBox->Duration->Update();
// Update grid // Update grid
grid->editBox->Update(!karaoke->enabled); grid->editBox->Update(!karaoke->enabled);
grid->ass->FlagAsModified(); grid->ass->FlagAsModified();
@ -1321,7 +1328,8 @@ void AudioDisplay::OnMouseEvent(wxMouseEvent& event) {
// Dragging nothing, time from scratch // Dragging nothing, time from scratch
if (!gotGrab) { if (!gotGrab) {
if (buttonIsDown) { if (buttonIsDown) {
hold = 3; if (leftIsDown) hold = 3;
else hold = 2;
lastX = x; lastX = x;
gotGrab = true; gotGrab = true;
} }
@ -1427,7 +1435,13 @@ void AudioDisplay::OnMouseEvent(wxMouseEvent& event) {
if (diagUpdated) { if (diagUpdated) {
diagUpdated = false; diagUpdated = false;
NeedCommit = true; NeedCommit = true;
if (Options.AsBool(_T("Audio Autocommit")) && curStartMS <= curEndMS) CommitChanges(); if (curStartMS <= curEndMS) {
grid->editBox->StartTime->SetTime(curStartMS,true);
grid->editBox->EndTime->SetTime(curEndMS,true);
grid->editBox->Duration->SetTime(curEndMS-curStartMS,true);
if (Options.AsBool(_T("Audio Autocommit"))) CommitChanges();
}
else UpdateImage(true); else UpdateImage(true);
} }
@ -1451,6 +1465,7 @@ void AudioDisplay::OnMouseEvent(wxMouseEvent& event) {
// Update stuff // Update stuff
if (updated) { if (updated) {
if (diagUpdated) NeedCommit = true;
player->SetEndPosition(GetSampleAtX(selEnd)); player->SetEndPosition(GetSampleAtX(selEnd));
wxCursor cursor(wxCURSOR_SIZEWE); wxCursor cursor(wxCURSOR_SIZEWE);
SetCursor(cursor); SetCursor(cursor);

View file

@ -81,6 +81,8 @@ Please visit http://aegisub.net to download latest version
- Moved karaoke syllable text in audio display to the top instead of bottom, since it often covers important information in spectrum mode (jfs) - Moved karaoke syllable text in audio display to the top instead of bottom, since it often covers important information in spectrum mode (jfs)
- Implemented a version checker that can automatically or manually check if there are any updates to Aegisub. (AMZ) - Implemented a version checker that can automatically or manually check if there are any updates to Aegisub. (AMZ)
- Added support for reading v4.00++ (ASS2) files. (AMZ) - Added support for reading v4.00++ (ASS2) files. (AMZ)
- Changes to text will no longer be discarded when you commit timing in the audio display and vice-versa. (AMZ)
- Fixed glitches related to the Duration time edit box. (AMZ)
= 1.10 beta - 2006.08.07 =========================== = 1.10 beta - 2006.08.07 ===========================

View file

@ -321,6 +321,7 @@ void SubsEditBox::SetToLine(int n) {
linen = n; linen = n;
StartTime->Update(); StartTime->Update();
EndTime->Update(); EndTime->Update();
Duration->Update();
} }
} }
@ -449,6 +450,7 @@ void SubsEditBox::OnFrameRadio(wxCommandEvent &event) {
if (ByFrame->GetValue()) { if (ByFrame->GetValue()) {
StartTime->SetByFrame(true); StartTime->SetByFrame(true);
EndTime->SetByFrame(true); EndTime->SetByFrame(true);
Duration->SetByFrame(true);
grid->SetByFrame(true); grid->SetByFrame(true);
} }
event.Skip(); event.Skip();
@ -461,6 +463,7 @@ void SubsEditBox::OnTimeRadio(wxCommandEvent &event) {
if (ByTime->GetValue()) { if (ByTime->GetValue()) {
StartTime->SetByFrame(false); StartTime->SetByFrame(false);
EndTime->SetByFrame(false); EndTime->SetByFrame(false);
Duration->SetByFrame(false);
grid->SetByFrame(false); grid->SetByFrame(false);
} }
event.Skip(); event.Skip();
@ -509,6 +512,7 @@ void SubsEditBox::SetControlsState (bool state) {
TextEdit->SetTextTo(_T("")); TextEdit->SetTextTo(_T(""));
StartTime->SetTime(0); StartTime->SetTime(0);
EndTime->SetTime(0); EndTime->SetTime(0);
Duration->SetTime(0);
Layer->SetValue(_T("")); Layer->SetValue(_T(""));
MarginL->SetValue(_T("")); MarginL->SetValue(_T(""));
MarginR->SetValue(_T("")); MarginR->SetValue(_T(""));

View file

@ -59,6 +59,7 @@ class wxScintilla;
class SubsEditBox : public wxPanel { class SubsEditBox : public wxPanel {
friend class SubsTextEditHandler; friend class SubsTextEditHandler;
friend class SubsTextEditCtrl; friend class SubsTextEditCtrl;
friend class AudioDisplay;
private: private:
bool splitLineMode; bool splitLineMode;

View file

@ -102,9 +102,11 @@ void TimeEdit::Modified() {
///////////////////////////// /////////////////////////////
// Set time and update stuff // Set time and update stuff
void TimeEdit::SetTime(int ms) { void TimeEdit::SetTime(int ms,bool setModified) {
int oldMs = time.GetMS();
time.SetMS(ms); time.SetMS(ms);
UpdateText(); UpdateText();
if (setModified && oldMs != ms) Modified();
} }

View file

@ -69,7 +69,7 @@ public:
TimeEdit(wxWindow* parent, wxWindowID id, const wxString& value = _T(""), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxTextCtrlNameStr); TimeEdit(wxWindow* parent, wxWindowID id, const wxString& value = _T(""), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxTextCtrlNameStr);
void SetByFrame(bool enable); void SetByFrame(bool enable);
void SetTime(int ms); void SetTime(int ms,bool setModified=false);
void Update(); void Update();
bool HasBeenModified() { return modified; } bool HasBeenModified() { return modified; }