Stop coalescing changes made in the edit box after ten seconds of no changes
Originally committed to SVN as r6137.
This commit is contained in:
parent
fd35224cb5
commit
1c2abeae30
2 changed files with 12 additions and 2 deletions
|
@ -166,6 +166,8 @@ SubsEditBox::SubsEditBox(wxWindow *parent, agi::Context *context)
|
||||||
, splitLineMode(false)
|
, splitLineMode(false)
|
||||||
, controlState(true)
|
, controlState(true)
|
||||||
, c(context)
|
, c(context)
|
||||||
|
, commitId(-1)
|
||||||
|
, undoTimer(GetEventHandler())
|
||||||
{
|
{
|
||||||
// Top controls
|
// Top controls
|
||||||
wxArrayString styles;
|
wxArrayString styles;
|
||||||
|
@ -270,8 +272,7 @@ SubsEditBox::SubsEditBox(wxWindow *parent, agi::Context *context)
|
||||||
MainSizer->Add(BottomSizer,1,wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM,3);
|
MainSizer->Add(BottomSizer,1,wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM,3);
|
||||||
|
|
||||||
// Set sizer
|
// Set sizer
|
||||||
SetSizer(MainSizer);
|
SetSizerAndFit(MainSizer);
|
||||||
MainSizer->SetSizeHints(this);
|
|
||||||
|
|
||||||
origBgColour = TextEdit->GetBackgroundColour();
|
origBgColour = TextEdit->GetBackgroundColour();
|
||||||
disabledBgColour = GetBackgroundColour();
|
disabledBgColour = GetBackgroundColour();
|
||||||
|
@ -312,6 +313,7 @@ SubsEditBox::SubsEditBox(wxWindow *parent, agi::Context *context)
|
||||||
Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &SubsEditBox::OnCommentChange, this, CommentBox->GetId());
|
Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &SubsEditBox::OnCommentChange, this, CommentBox->GetId());
|
||||||
|
|
||||||
Bind(wxEVT_SIZE, &SubsEditBox::OnSize, this);
|
Bind(wxEVT_SIZE, &SubsEditBox::OnSize, this);
|
||||||
|
Bind(wxEVT_TIMER, &SubsEditBox::OnUndoTimer, this);
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
for (int i = 0; i < 4; i++) {
|
||||||
Bind(wxEVT_COMMAND_BUTTON_CLICKED, &SubsEditBox::OnFlagButton, this, BUTTON_FIRST + i);
|
Bind(wxEVT_COMMAND_BUTTON_CLICKED, &SubsEditBox::OnFlagButton, this, BUTTON_FIRST + i);
|
||||||
|
@ -490,6 +492,10 @@ void SubsEditBox::OnChange(wxStyledTextEvent &event) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SubsEditBox::OnUndoTimer(wxTimerEvent&) {
|
||||||
|
commitId = -1;
|
||||||
|
}
|
||||||
|
|
||||||
template<class T, class setter>
|
template<class T, class setter>
|
||||||
void SubsEditBox::SetSelectedRows(setter set, T value, wxString desc, int type, bool amend) {
|
void SubsEditBox::SetSelectedRows(setter set, T value, wxString desc, int type, bool amend) {
|
||||||
for_each(sel.begin(), sel.end(), bind(set, std::tr1::placeholders::_1, value));
|
for_each(sel.begin(), sel.end(), bind(set, std::tr1::placeholders::_1, value));
|
||||||
|
@ -498,6 +504,7 @@ void SubsEditBox::SetSelectedRows(setter set, T value, wxString desc, int type,
|
||||||
commitId = c->ass->Commit(desc, type, (amend && desc == lastCommitType) ? commitId : -1, sel.size() == 1 ? *sel.begin() : 0);
|
commitId = c->ass->Commit(desc, type, (amend && desc == lastCommitType) ? commitId : -1, sel.size() == 1 ? *sel.begin() : 0);
|
||||||
file_changed_slot.Unblock();
|
file_changed_slot.Unblock();
|
||||||
lastCommitType = desc;
|
lastCommitType = desc;
|
||||||
|
undoTimer.Start(10000, wxTIMER_ONE_SHOT);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <wx/panel.h>
|
#include <wx/panel.h>
|
||||||
|
#include <wx/timer.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <libaegisub/signal.h>
|
#include <libaegisub/signal.h>
|
||||||
|
@ -130,6 +131,7 @@ class SubsEditBox : public wxPanel, protected SelectionListener<AssDialogue> {
|
||||||
int timeCommitId[3];
|
int timeCommitId[3];
|
||||||
int commitId;
|
int commitId;
|
||||||
wxString lastCommitType;
|
wxString lastCommitType;
|
||||||
|
wxTimer undoTimer;
|
||||||
|
|
||||||
void OnChange(wxStyledTextEvent &event);
|
void OnChange(wxStyledTextEvent &event);
|
||||||
void OnKeyDown(wxKeyEvent &event);
|
void OnKeyDown(wxKeyEvent &event);
|
||||||
|
@ -151,6 +153,7 @@ class SubsEditBox : public wxPanel, protected SelectionListener<AssDialogue> {
|
||||||
void OnCommentChange(wxCommandEvent &);
|
void OnCommentChange(wxCommandEvent &);
|
||||||
void OnEffectChange(wxCommandEvent &);
|
void OnEffectChange(wxCommandEvent &);
|
||||||
void OnSize(wxSizeEvent &event);
|
void OnSize(wxSizeEvent &event);
|
||||||
|
void OnUndoTimer(wxTimerEvent&);
|
||||||
|
|
||||||
void OnFlagButton(wxCommandEvent &event);
|
void OnFlagButton(wxCommandEvent &event);
|
||||||
void OnColorButton(wxCommandEvent &event);
|
void OnColorButton(wxCommandEvent &event);
|
||||||
|
|
Loading…
Reference in a new issue