Limit string length option

This commit is contained in:
Blu3train 2023-08-29 23:31:00 +02:00
parent f3fbe04409
commit 0505417247
4 changed files with 8 additions and 1 deletions

View File

@ -64,6 +64,7 @@ extern const char* DEFAULT_CODEPAGE;
extern const char* FLUSH_DELAY; extern const char* FLUSH_DELAY;
extern const char* MAX_BUFFER_SIZE; extern const char* MAX_BUFFER_SIZE;
extern const char* MAX_HISTORY_SIZE; extern const char* MAX_HISTORY_SIZE;
extern const char* LIMIT_STRING_LENGTH;
extern const char* CONFIG_JP_LOCALE; extern const char* CONFIG_JP_LOCALE;
extern const wchar_t* ABOUT; extern const wchar_t* ABOUT;
extern const wchar_t* CL_OPTIONS; extern const wchar_t* CL_OPTIONS;
@ -503,6 +504,7 @@ namespace
{ TextThread::maxBufferSize, MAX_BUFFER_SIZE }, { TextThread::maxBufferSize, MAX_BUFFER_SIZE },
{ TextThread::flushDelay, FLUSH_DELAY }, { TextThread::flushDelay, FLUSH_DELAY },
{ TextThread::maxHistorySize, MAX_HISTORY_SIZE }, { TextThread::maxHistorySize, MAX_HISTORY_SIZE },
{ TextThread::limitStringLength, LIMIT_STRING_LENGTH },
{ Host::defaultCodepage, DEFAULT_CODEPAGE }, { Host::defaultCodepage, DEFAULT_CODEPAGE },
}) })
{ {
@ -666,6 +668,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
TextThread::flushDelay = settings.value(FLUSH_DELAY, TextThread::flushDelay).toInt(); TextThread::flushDelay = settings.value(FLUSH_DELAY, TextThread::flushDelay).toInt();
TextThread::maxBufferSize = settings.value(MAX_BUFFER_SIZE, TextThread::maxBufferSize).toInt(); TextThread::maxBufferSize = settings.value(MAX_BUFFER_SIZE, TextThread::maxBufferSize).toInt();
TextThread::maxHistorySize = settings.value(MAX_HISTORY_SIZE, TextThread::maxHistorySize).toInt(); TextThread::maxHistorySize = settings.value(MAX_HISTORY_SIZE, TextThread::maxHistorySize).toInt();
TextThread::limitStringLength = settings.value(LIMIT_STRING_LENGTH, TextThread::limitStringLength).toInt();
Host::defaultCodepage = settings.value(DEFAULT_CODEPAGE, Host::defaultCodepage).toInt(); Host::defaultCodepage = settings.value(DEFAULT_CODEPAGE, Host::defaultCodepage).toInt();
Host::Start(ProcessConnected, ProcessDisconnected, ThreadAdded, ThreadRemoved, SentenceReceived); Host::Start(ProcessConnected, ProcessDisconnected, ThreadAdded, ThreadRemoved, SentenceReceived);

View File

@ -112,6 +112,7 @@ void TextThread::Flush()
if (buffer.empty()) return; if (buffer.empty()) return;
if (buffer.size() > maxBufferSize || GetTickCount64() - lastPushTime > flushDelay) if (buffer.size() > maxBufferSize || GetTickCount64() - lastPushTime > flushDelay)
{ {
if (limitStringLength==0 || buffer.length()<limitStringLength) // Limit string length (0=disabled)
AddSentence(std::move(buffer)); AddSentence(std::move(buffer));
buffer.clear(); buffer.clear();
} }

View File

@ -11,6 +11,7 @@ public:
inline static bool filterRepetition = false; inline static bool filterRepetition = false;
inline static int flushDelay = 500; // flush every 500ms by default inline static int flushDelay = 500; // flush every 500ms by default
inline static int maxBufferSize = 3000; inline static int maxBufferSize = 3000;
inline static int limitStringLength = 1000; // Limit string length to 1000 chars by default
inline static int maxHistorySize = 10'000'000; inline static int maxHistorySize = 10'000'000;
TextThread(ThreadParam tp, HookParam hp, std::optional<std::wstring> name = {}); TextThread(ThreadParam tp, HookParam hp, std::optional<std::wstring> name = {});

View File

@ -94,6 +94,7 @@ const char* DEFAULT_CODEPAGE = u8"Default codepage";
const char* FLUSH_DELAY = u8"Flush delay"; const char* FLUSH_DELAY = u8"Flush delay";
const char* MAX_BUFFER_SIZE = u8"Max buffer size"; const char* MAX_BUFFER_SIZE = u8"Max buffer size";
const char* MAX_HISTORY_SIZE = u8"Max history size"; const char* MAX_HISTORY_SIZE = u8"Max history size";
const char* LIMIT_STRING_LENGTH = u8"Limit string length (0=Off)";
const char* CONFIG_JP_LOCALE = u8"Launch with JP locale"; const char* CONFIG_JP_LOCALE = u8"Launch with JP locale";
const wchar_t* CONSOLE = L"Console"; const wchar_t* CONSOLE = L"Console";
const wchar_t* CLIPBOARD = L"Clipboard"; const wchar_t* CLIPBOARD = L"Clipboard";
@ -860,6 +861,7 @@ Per rimuovere un estenzione, selezionala e premi rimuovi)";
FLUSH_DELAY = u8"Ritardo flush"; FLUSH_DELAY = u8"Ritardo flush";
MAX_BUFFER_SIZE = u8"Massima dimensione buffer"; MAX_BUFFER_SIZE = u8"Massima dimensione buffer";
MAX_HISTORY_SIZE = u8"Massima dimensione cronologia"; MAX_HISTORY_SIZE = u8"Massima dimensione cronologia";
LIMIT_STRING_LENGTH = u8"Limita lunghezza stringa (0=Off)";
CONFIG_JP_LOCALE = u8"Avvia con il JP locale"; CONFIG_JP_LOCALE = u8"Avvia con il JP locale";
CONSOLE = L"Console"; CONSOLE = L"Console";
CLIPBOARD = L"Appunti"; CLIPBOARD = L"Appunti";