forked from mia/Aegisub
Improved the speed of grid drawing with tags hidden.
Originally committed to SVN as r478.
This commit is contained in:
parent
3e9d9b79d6
commit
b02de858a2
1 changed files with 11 additions and 13 deletions
|
@ -440,22 +440,20 @@ void BaseGrid::DrawImage(wxDC &dc) {
|
|||
// Hidden overrides
|
||||
if (mode == 1 || mode == 2) {
|
||||
wxString replaceWith = Options.AsText(_T("Grid hide overrides char"));
|
||||
curDiag->ParseASSTags();
|
||||
size_t n = curDiag->Blocks.size();
|
||||
for (size_t i=0;i<n;i++) {
|
||||
AssDialogueBlock *block = curDiag->Blocks.at(i);
|
||||
AssDialogueBlockPlain *plain = AssDialogueBlock::GetAsPlain(block);
|
||||
if (plain) {
|
||||
value += plain->GetText();
|
||||
int textlen = curDiag->Text.Length();
|
||||
int depth = 0;
|
||||
wxChar curChar;
|
||||
for (int i=0;i<textlen;i++) {
|
||||
curChar = curDiag->Text[i];
|
||||
if (curChar == _T('{')) depth = 1;
|
||||
else if (curChar == _T('}')) {
|
||||
depth--;
|
||||
if (depth == 0 && mode == 1) value += replaceWith;
|
||||
if (depth < 0) depth = 0;
|
||||
}
|
||||
else {
|
||||
if (mode == 1) {
|
||||
value += replaceWith;
|
||||
else if (depth != 1) value += curChar;
|
||||
}
|
||||
}
|
||||
}
|
||||
curDiag->ClearBlocks();
|
||||
}
|
||||
|
||||
// Show overrides
|
||||
else value = curDiag->Text;
|
||||
|
|
Loading…
Reference in a new issue