Don't ignore the contents of override blocks when counting characters for selection preserving
This commit is contained in:
parent
3983719e3f
commit
f261688b11
4 changed files with 7 additions and 3 deletions
|
@ -86,6 +86,9 @@ int ignore_mask_to_icu_mask(int mask) {
|
|||
namespace agi {
|
||||
size_t CharacterCount(std::string::const_iterator begin, std::string::const_iterator end, int mask) {
|
||||
mask = ignore_mask_to_icu_mask(mask);
|
||||
if ((mask & agi::IGNORE_BLOCKS) == 0)
|
||||
return count_in_range(begin, end, mask);
|
||||
|
||||
size_t characters = 0;
|
||||
auto pos = begin;
|
||||
do {
|
||||
|
|
|
@ -20,7 +20,8 @@ namespace agi {
|
|||
enum {
|
||||
IGNORE_NONE = 0,
|
||||
IGNORE_WHITESPACE = 1,
|
||||
IGNORE_PUNCTUATION = 2
|
||||
IGNORE_PUNCTUATION = 2,
|
||||
IGNORE_BLOCKS = 4
|
||||
};
|
||||
|
||||
/// Get the length in characters of the longest line in the given text
|
||||
|
|
|
@ -271,7 +271,7 @@ public:
|
|||
if (duration <= 100 || text.size() > static_cast<size_t>(duration))
|
||||
return -1;
|
||||
|
||||
int ignore = agi::IGNORE_NONE;
|
||||
int ignore = agi::IGNORE_BLOCKS;
|
||||
if (ignore_whitespace->GetBool())
|
||||
ignore |= agi::IGNORE_WHITESPACE;
|
||||
if (ignore_punctuation->GetBool())
|
||||
|
|
|
@ -609,7 +609,7 @@ void SubsEditBox::CallCommand(const char *cmd_name) {
|
|||
}
|
||||
|
||||
void SubsEditBox::UpdateCharacterCount(std::string const& text) {
|
||||
int ignore = agi::IGNORE_NONE;
|
||||
int ignore = agi::IGNORE_BLOCKS;
|
||||
if (OPT_GET("Subtitle/Character Counter/Ignore Whitespace")->GetBool())
|
||||
ignore |= agi::IGNORE_WHITESPACE;
|
||||
if (OPT_GET("Subtitle/Character Counter/Ignore Punctuation")->GetBool())
|
||||
|
|
Loading…
Reference in a new issue