fixed bugs in the Linux version and performance

Исправлены пути к файлам для AWR отчетов и сохранения фильтров Log View.
Исправлена падение при вызове "Script Recreate Cascade".
Убрано повтороное назначение Ctrl-G для "View Filtered Rows" теперь вызов происходит по Ctrl-F.
Исправлена работа ctlComboBox.
Для повышение производительности отключен поиск не парной скобки для текстов запросов
более 100000 байт.
This commit is contained in:
lsv 2025-04-16 14:06:05 +05:00 committed by lsv
parent d9a850bc8f
commit 60f519e38e
10 changed files with 63 additions and 57 deletions

View file

@ -179,7 +179,7 @@ ctlComboBox::ctlComboBox(wxWindow *wnd, int id, wxPoint pos, wxSize siz, long at
: ctlComboBoxFix(wnd, id, pos, siz, attr)
{
#ifdef __WXGTK__
SetEditable(false);
//SetEditable(false);
#endif
}
@ -196,6 +196,12 @@ int ctlComboBox::GuessSelection(wxCommandEvent &ev)
long sel, count = GetCount();
int len = str.Length();
#ifdef __WXGTK__
int sel_element = GetSelection();
if (sel_element >= 0) {
return sel;
}
#endif
for (sel = 0 ; sel < count ; sel++)
{
if (str == GetString(sel).Left(len))

View file

@ -702,22 +702,26 @@ void ctlSQLBox::OnKeyDown(wxKeyEvent &event)
}
int homewordpos = pos;
bool istop = false;
while ((pos--) >= 0)
{
ch = GetCharAt(pos);
st = GetStyleAt(pos);
if ((ch == '{' || ch == '}' ||
ch == '[' || ch == ']' ||
ch == '(' || ch == ')') &&
st != 1 &&st != 2 && st != 6 && st != 7)
int sqllen = GetLength();
if (sqllen < 100000) {
while ((pos--) >= 0)
{
match = BraceMatch(pos);
if (match == wxSTC_INVALID_POSITION)
ch = GetCharAt(pos);
st = GetStyleAt(pos);
if ((ch == '{' || ch == '}' ||
ch == '[' || ch == ']' ||
ch == '(' || ch == ')') &&
st != 1 && st != 2 && st != 6 && st != 7)
{
BraceBadLight(pos);
match = BraceMatch(pos);
if (match == wxSTC_INVALID_POSITION)
{
BraceBadLight(pos);
}
}
if ((wxIsalnum(ch) || ch == '_') && !istop && st != 7) homewordpos--; else istop = true;
}
if ((wxIsalnum(ch)|| ch =='_') && !istop && st != 7) homewordpos--; else istop = true;
}
// hints words
wxChar uc = event.GetUnicodeKey();
@ -1516,21 +1520,24 @@ void ctlSQLBox::OnPositionStc(wxStyledTextEvent &event)
// Roll back through the doc and highlight any unmatched braces
int tmp=pos;
list_table.Clear();
while ((pos--) >= 0)
{
ch = GetCharAt(pos);
st = GetStyleAt(pos);
if (st != 1 &&st != 2 && st != 6 && st != 7 &&(ch==';')&&startsql==0) startsql=pos+1;
if ((ch == '{' || ch == '}' ||
ch == '[' || ch == ']' ||
ch == '(' || ch == ')') &&
st != 1 &&st != 2 && st != 6 && st != 7)
int sqllen = GetLength();
if (sqllen < 100000) {
while ((pos--) >= 0)
{
match = BraceMatch(pos);
if (match == wxSTC_INVALID_POSITION)
ch = GetCharAt(pos);
st = GetStyleAt(pos);
if (st != 1 && st != 2 && st != 6 && st != 7 && (ch == ';') && startsql == 0) startsql = pos + 1;
if ((ch == '{' || ch == '}' ||
ch == '[' || ch == ']' ||
ch == '(' || ch == ')') &&
st != 1 && st != 2 && st != 6 && st != 7)
{
event.Skip();
return;
match = BraceMatch(pos);
if (match == wxSTC_INVALID_POSITION)
{
event.Skip();
return;
}
}
}
}