Тонкость вот в чём: каретка может находиться где-то в середине слова - тогда начало слова будет левее, а конец - правее каретки. Ситуация с разделителем справа от текущего слова почему-то попадает в эту же категорию (EM_FINDWORDBREAK с WB_LEFT возвращает позицию начала слова слева от разделителя).
Начало слова может оказаться на другой строке - в этом случае мы ничего не делаем.
> Кстати, если ли такая настройка "Если ничего не выделено и курсор не стоит на "текущем слове", то искать по предыдущему поиску"?
Так ведь именно таким образом и работает (если ничего не выделено). Ну а если не хочется, чтобы подхватывалось новое выделенное слово, снимаем галочку "Подхватывать выделенный текст".
> Можно ли сделать так, чтобы в QSearch.ini можно было задавать цвет без этих 2-х нулей, а то оно жутко сбивает?..
Нет. Используется стандартная ф-ция AkelPad для чтения двоичных данных, а она читает или указанное число байт (4) или ничего. И в документации написано именно так:
QSearch-Rus.txt wrote:
color_notfound = FFE0E000
Цвет фона, который устанавливается в случае, когда искомый текст не
найден. Этот цвет задается в виде "RRGGBB00", где RR, GG и BB - это
шестнадцатиричные значения красного, зеленого и синего цветов (от 00
до FF).
Posted: Sat Jul 23, 2011 5:54 pm
by VladSh
DV wrote:Тонкость вот в чём: каретка может находиться где-то в середине слова - тогда начало слова будет левее, а конец - правее каретки. Ситуация с разделителем справа от текущего слова почему-то попадает в эту же категорию...
Поведение того скрипта, что я приводил выше, лишено таких странностей, хотя он поддерживает все необходимые варианты выделения: в середине слова, с левой части слова (сразу перед словом) и с правой части слова (сразу после слова). Я видимо не понял, в чём тонкость...
DV wrote:> Кстати, есть ли такая настройка "Если ничего не выделено и курсор не стоит на "текущем слове", то искать по предыдущему поиску"?
Так ведь именно таким образом и работает (если ничего не выделено). Ну а если не хочется, чтобы подхватывалось новое выделенное слово, снимаем галочку "Подхватывать выделенный текст".
Как-то мы, наверное, не поняли друг друга..
Галка на "Подхвате" стоит, после поиска устанавливаю текст на строку на, которой ничего нет, жму F3 - ничего не происходит (не ищет). Так я и спрашиваю за это, есть ли настройка, которая будет либо так и делать - ничего не искать либо будет использовать предыдущий поиск? И если нет, то может как-то можно настроить "на куда-нибудь" горячую клавишу "поискать по предыдущему поиску"?
Ещё. Если F3 назначить на SelFindNext, то подхвата выделенного текста в окошко не происходит, хотя галка "Подхвата" включена. Что ожидается:
- при закрытом окне плага при нажатии F3 производится поиск (это есть);
- при нажатии F3, когда окно плага открыто, нажатие F3 будет перехватываться окном плага и работать так как бы не было назначено F3 на SelFindNext, т.е. производится бы подхват.
Это было бы удобно.
Posted: Sat Jul 23, 2011 6:21 pm
by DV
VladSh wrote:Если F3 назначить на SelFindNext, то подхвата выделенного текста в окошко не происходит, хотя галка "Подхвата" включена.
QSearch-Rus.txt wrote:
"Поиск: Подхватывать выделенный текст"
srch_pickup_selection = 1
При вызове QSearch или при нажатии F3 в окне редактирования AkelPad,
в строку поиска QSearch вставляется текст, выделенный в окне
редактирования AkelPad.
srch_pickup_selection = 0
При вызове QSearch, текст в строке поиска не изменяется.
"Поиск: SelFind подхватывает выделенный текст"
srch_selfind_pickup = 0
Вызов SelFindNext или SelFindPrev не меняет текст в строке поиска
панели QSearch.
srch_selfind_pickup = 1 Вызов SelFindNext или SelFindPrev вставляет в строку поиска панели
QSearch текст, выделенный в окне редактирования AkelPad.
Posted: Sat Jul 23, 2011 6:33 pm
by VladSh
DV
То дёргаешь RTФакинг (на самом деле приличный) Мануал, а то забываешь.. и когда надо бы не забыть, то вот, нате вам )))
По этому вопросу srch_selfind_pickup = 1 помог спасибо
Posted: Sun Jul 24, 2011 10:25 am
by DV
VladSh wrote:"текущее слово" как-то так должно определяться: WordCaretSelect.js
Вроде, работает, в рот мне ноги. Похоже, что при реализации данной фичи в QSearch этот скрипт ещё не был доведен до совершенства, и мне пришлось выдумывать что-то своё. Теперь буду использовать код скрипта.
Posted: Tue Jul 26, 2011 1:55 pm
by DV
QSearch v.4.4
+ улучшена реализация doSelectCurrentWord для SelFindNext/Prev (взята из "WordCaretSelect.js" by FeyFre & VladSh)
Posted: Thu Nov 17, 2011 8:59 am
by Cuprum
Кнопка "Панель поиска" в панели инструментов позволяет только включить поисковую строку снизу окна. При повторном нажатии на кнопку строка поиска поиска не исчезает. Хотелось бы, чтобы с помощью этой кнопки можно было и включать и выключать поисковую строку (по аналогии с кнопкой "Панель проводника").
Posted: Thu Dec 15, 2011 7:56 pm
by DV
QSearch v.4.6
* для AkelPad 4.7.1+
+ поддержка внутреннего языка AkelPad
Posted: Tue Feb 07, 2012 9:51 am
by Infocatcher
Что-то у меня после сворачивания-разворачивания окна стала чернеть кнопка закрытия панели поиска.
Запускаемся.
Показываем панельку хоткеем.
Переводим фокус обратно на документ.
Снова запускаем поиск хоткеем (фокус переходит на панельку).
Сворачиваем окно AkelPad'а и сразу же разворачиваем обратно – кнопка черная.
(HWND)wParam == button handle. Button must have BS_OWNERDRAW style.
(BUTTONDRAW *)lParam == pointer to a BUTTONDRAW structure. If NULL, button draw processing will be removed.
В смысле, убрать его - и это решит дефекты прорисовки?
Posted: Tue Feb 07, 2012 1:24 pm
by DV
Похоже на то, что AKD_SETBUTTONDRAW в 4.7.3 почему-то стал конфликтовать с btnWndProc в QSearch.
добавлено: Хотя нет, дело не в этом. Выглядит так, будто кнопка не полностью перерисовывается, появляясь при показе диалога QSearch на том месте, где только что была кнопка промотки горизонтального скроллбара AkelEdit.
добавлено позднее: Хотя нет Похоже, дело в BM_SETSTYLE в коде QSearchDlg.c, который не содержит BS_OWNERDRAW.