algeriano wrote:Guys, tell me how to configure that when you open a text file, the default focus is always in the search bar?
QSearch does not propose such ability since editing, in my opinion, has higher priority than searching when we are talking about a text editor (not viewer). Anyway, the user Deelite wrote he somehow succeeded to get such behavior - but I can't believe it. If he did achieve that, then it looks like a "buggy feature" because such behavior was not added intentionally
QSearch, however, proposes a wide range of additional options that allow delicate tuning of the behavior. The details are in "AkelFiles\Docs\QSearch-Eng.txt". In particular, when both "Window: Editor auto-focus" and "Window: QSearch auto-focus" are checked, a simple move of the mouse cursor switches the focus between AkelPad's editing window and QSearch'es search field.
Posted: Tue Feb 06, 2018 4:44 pm
by FeyFre
Well, can always can try write resident script hooked to AKDN_OPENDOCUMENT_FINISH where we will try activate QSearch, but I doubt it will be reliable and userfriendly even for people who request this functionality.
Posted: Tue Mar 20, 2018 12:05 pm
by DV
algeriano wrote:Guys, tell me how to configure that when you open a text file, the default focus is always in the search bar?
var hWndMain = AkelPad.GetMainWnd();
var oSys = AkelPad.SystemFunction();
var AKD_JS_QSEARCH_FOCUS = 0x7ABC; // unique message (must not be equal to any existing AKD_* message)
var AKD_JS_SCRIPT_STOP = 0x7CCC; // unique message (must not be equal to any existing AKD_* message)
var UNIQUE_QS_ID = 0x1A2BC71E; // unique wParam id to identify _this_ script file
AkelPad.ScriptNoMutex();
var mutexName = "QSearchAutoFocus_js_" + hWndMain;
var hMutex;
if (hMutex = oSys.Call("kernel32::CreateMutex" + _TCHAR, 0, 1, mutexName))
{
if (oSys.GetLastError() == 183 /*ERROR_ALREADY_EXISTS*/)
{
oSys.Call("kernel32::CloseHandle", hMutex);
oSys.Call("user32::PostMessage" + _TCHAR, hWndMain, AKD_JS_SCRIPT_STOP, UNIQUE_QS_ID, 0);
WScript.Quit();
}
}
var hMainSubClass;
if (hMainSubClass = AkelPad.WindowSubClass(1 /*WSC_MAINPROC*/, MainCallback))
{
AkelPad.WindowGetMessage(); //Message loop
AkelPad.WindowUnsubClass(1 /*WSC_MAINPROC*/);
}
function MainCallback(hWnd, uMsg, wParam, lParam)
{
if (uMsg == 0x436 /*AKDN_OPENDOCUMENT_FINISH*/
|| uMsg == 0x416 /*AKDN_FRAME_ACTIVATE*/)
{
AkelPad.WindowNextProc(hMainSubClass, hWnd, uMsg, wParam, lParam); // default processing
oSys.Call("user32::PostMessage" + _TCHAR, hWnd, AKD_JS_QSEARCH_FOCUS, UNIQUE_QS_ID, 0);
AkelPad.WindowNoNextProc(hMainSubClass); // skip it
}
else if (uMsg == AKD_JS_QSEARCH_FOCUS && wParam == UNIQUE_QS_ID)
{
if (AkelPad.IsPluginRunning("QSearch::QSearch"))
{
AkelPad.Call("QSearch::QSearch"); // hides QSearch when "hotkey_hides_panel" is "1"
}
AkelPad.Call("QSearch::QSearch");
AkelPad.SendMessage(hWndMain, 0x0111 /*WM_COMMAND*/, 0, 0); // "empty" command to update the Toolbar
}
else if (uMsg == AKD_JS_SCRIPT_STOP && wParam == UNIQUE_QS_ID)
{
oSys.Call("user32::PostQuitMessage", 0); // exit the message loop
}
return 0;
}
Posted: Tue Nov 27, 2018 4:50 pm
by DV
DV wrote:"QSearchAutoFocus.js"
Можно было бы встроить это прямо в QSearch - например, как одну из ручных настроек.
Также замечено, что при установленной галочке "Подсветить все" при поиске с регулярными выражениями галочка "Слово целиком" не имеет эффекта.
Похоже, что при подсветке флаг "Слово целиком" игнорируется, когда он используется одновременно с регулярными выражениями.
В любом случае, это можно исправить средствами QSearch, явным образом обрамляя искомую строку парой \b в случае регулярных выражений + "Слово целиком".
Posted: Tue Nov 27, 2018 7:47 pm
by DV
DV wrote:Можно было бы встроить это прямо в QSearch
OK.
DV wrote:это можно исправить средствами QSearch
OK.
Posted: Wed Dec 12, 2018 8:25 pm
by DV
QSearch v.7.1
+ исправлено: галочка "Слово целиком" не оказывала эффект на "Подсветить все" при поиске с регулярными выражениями
+ новая настройка: "Авто-фокус в QSearch (при откр. файла)"
* мелкие улучшения
P.S.
Уже идёт разработка следующей версии плагина. Там будет кое-что интересное.
Posted: Thu Dec 13, 2018 9:13 pm
by DV
В общем, парни и девчонки, такая вот задумка:
Тут один умник писал, что поиск в другом потоке не нужен.
Так вот, при поиске слова "soft" в лог-файле размером в 9 МБ (созданного каким-то установщиком) без фонового потока весь AkelPad зависает на несколько минут (!). Отличный подход к дизайну!
Так что я ещё буду допиливать поиск в фоновом потоке, ну и вообще. Это я пока только сырой прототип показал. Ну и, для отчётности, только на эти сырые изменения уже ушло 16 часов разработки.
Posted: Fri Dec 14, 2018 2:57 am
by yozhic
DV
QSearch.ini history_save=4. Не сохраняет историю. Ни в реестре, ни в ini...
Posted: Fri Dec 14, 2018 9:08 am
by icijian
yozhic wrote:DV
QSearch.ini history_save=4. Не сохраняет историю. Ни в реестре, ни в ini...
The new version has this problem Old version is normal!
history_save = 3
Может быть установлено в 0 или быть суммой следующих значений:
0 - (...) не сохраняется
1 - (...) история поиска сохраняется
2 - (...) "Учитывать регистр" и "Слово целиком" сохраняется
4 - (...) сохранять не в Системном Реестре
Ключевой момент: быть суммой следующих значений.
Значение 4 само по себе - єто только признак того, что "сохранять не в Системном Реестре, а там, куда сохраняет настройки AkelPad (например, в .ini файл)"
Однако, какие же настройки сохранять?
Значение 4 является суммой 4+0, а не суммой 4+1+2 или 4+1 или 4+2.
0 - история поиска и состояние галочек не сохраняется.
Posted: Fri Dec 14, 2018 3:33 pm
by opk44
4 - (...) сохранять не в Системном Реестре
Может тогда порядок слов поменять на "не сохранять в Системном Реестре"?
Posted: Sat Dec 15, 2018 6:35 am
by Skif_off
opk44 wrote:Может тогда порядок слов поменять на "не сохранять в Системном Реестре"?
Тогда получится неправильно: флаг 4 не запрещает хранить в реестре, а заставляет плагин использовать то же, что использует сам AkelPad.
Posted: Sat Dec 15, 2018 9:18 am
by yozhic
DV
Да, прошу прощения, невнимательно прочел справку Вчера вечером уже и сам разобрался, но не было возможности исправить свой пост. Зато теперь есть подробная инструкция для торопыг
Posted: Wed Dec 26, 2018 10:08 am
by DV
Что-то я затормозился с разработкой... Сначала нашел несколько неподалок, требующих разбирательства под глубокой отладкой, потом много задач по работе навалилось, теперь вот приболел еще...
Я, пожалуй, создам проект "AkelPad-QSearch" на GitHub - и буду там вікладівать по мере разработки версии для тестирования.
Posted: Wed Dec 26, 2018 1:45 pm
by yozhic
DV
Только напишите там, пожалуйста, как его собирать. Чтобы чайники тоже могли принять участие. От чайников толк иногда тоже бывает