QSearch plugin

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

мужики, есть готовый прототип, чем мы тут занимаемся? кроме кнопки регулярных выражений берем всё и воплощаем у QSearch

единственное, я могу нарисовать простые пиктограммы для кнопок, чтобы не фигачить на них непонятные буквы

Image

Serge Yolkin
делай как на картинке, а значки потом прицепим :wink:

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Насчёт символьных шрифтов: то, что у одного отображается в виде спец. символов, у другого вполне может отображаться квадратами. (Я даже свидетель тому, как спецсимволы - в моём случае буквы с ударением - одного и того же шрифта отображаются по разному в Windows XP и 7.)
Насчёт картинки se7h: тут же были протесты против картинок. Хотя, думается мне, если нарисовать чёрный символ с белой окаймовкой, то его одинаково хорошо будет видно на фоне как на белой, так и на чёрной кнопки.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

DV
именно
простые и ясные символы, по концепции как у sublime text, по обводке что-нибудь придумаю

Offline
Site Admin
Posts: 6403
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

DV wrote:Насчёт картинки se7h: тут же были протесты против картинок. Хотя, думается мне, если нарисовать чёрный символ с белой окаймовкой, то его одинаково хорошо будет видно на фоне как на белой, так и на чёрной кнопки.
Можно просто использовать ToolBar контрол со значками (могут иметь прозрачные пикселы). RecentFiles плагин:
Image

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

se7h
Я не понял, что такое "Обратный поиск" и "Find All" (предполагаю, что это "подсветить всё", но не уверен; может, сделать эту такую кнопку с фиксацией, и расположить её слева, где остальные опции?). Кроме того, где расположить прогрессбар? Или предлагается отказаться от него совсем?

DV
Если используются спецсимволы из обычного (несимвольного) шрифта, такое (квадраты вместо символов) часто бывает, а вот символы из Webdings или Wingdings, как правило, отображаются корректно. В конце концов, можно потестить это на бете до релиза. Другое дело, если шрифт может быть задан только для всех элементов интерфейса сразу...

Вариант, который предложил Instructor, мне показался интересным. В конце концов, эстеты всегда смогут нарисовать иконки по своему вкусу. Хоть символьные. ResHacker рулит.

Промежуточный итог: Если уважаемый DV подтверждает/урезает/дополняет перечень элементов интерфейса (т.е. готов наполнить эти элементы функционалом), если вариант кнопок с иконками всех устраивает (я смогу изобразить только что-нибудь совсем уж простенькое, кому-то прийдется заняться живописью), давайте отмашку - сверстаю максимум за сутки - это если со временем будут проблемы, а то и за пару часов управлюсь.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

"Обратный поиск"
искать в обратном направлении, то есть вверх
"Find All"
выделить все вхождения и установить возле каждого каретку для их одновременного редактирования (multiselecting), АР таким функционалом не обладает, а значит и Find all у QSearch не будет

какой смысл пытаться выкрутиться с помощью глифов, когда можно нарисовать аккуратные двухцветные значки?
пользователь должен однозначно понимать, что будет, когда он нажмет на определенную кнопку

DV
Offline
Posts: 1291
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

В рамках QSearch, пользуясь тем, что уже есть, представляются разумными следующие элементы:
- учитывать регистр (фиксатор)
- слово целиком (фиксатор)
- использовать спец. символы (фиксатор) *
- подсветить все (фиксатор)
- поиск вперёд (кнопка)
- поиск назад (кнопка)
- найти все (кнопка) **

* использовать спец. символы (фиксатор) - дублирует аналогичный пункт всплывающего меню: поиск с использованием \n, \t, * и ?
** найти все (кнопка) - поиск всех вхождений в файле с выводом в Log::Output. Крутая идея, но, учитывая поддержку спец. символов (см. выше), требующая рефакторинга существующего кода. Не буду ничего обещать в этом плане, но предусмотреть такую кнопку можно.

С точки зрения интерфейса, нужно придумать, как всё это разместить эргономично и по фен-шую, не забывая про обычно скрытый прогресс-бар, появляющийся, например, во время длительного поиска со спец.символами (скажем, при поиске редко встречающегося слова в большом файле). Ну и внешний вид кнопок/фиксаторов.
Например: http://urupin.livejournal.com/158556.html

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

se7h wrote:искать в обратном направлении
А Find Prev тогда зачем?
se7h wrote:... аккуратные двухцветные значки ... пользователь должен однозначно понимать ...
Что ж, дело за Вами, коллега. Вроде, должны влезть значки 16х16, но, возможно, высоты не хватит. Надо бы попросить уважаемого DV попробовать скомпилировать и выдать рекомендации по размеру иконок.

Code: Select all

#define IDI_MATCHCASE 1001
#define IDI_WHOLEWORD 1002
#define IDI_SPECSYMBOLS 1003
#define IDI_SEARCHUP 1004
#define IDI_SEARCHDOWN 1005
#define IDI_HIGHLIGHTALL 1006
#define IDC_BT_MATCHCASE 1001
#define IDC_BT_WHOLEWORD 1002
#define IDC_BT_SPECSYMBOLS 1003
#define IDC_BT_SEARCHUP 1004
#define IDC_BT_SEARCHDOWN 1005
#define IDC_BT_HIGHLIGHTALL 1006
#define IDR_RCDATA1 1

#include "resource.h"
#include <windows.h>

LANGUAGE 0,0

IDI_QSEARCH ICON DISCARDABLE "QSearch.ico"
IDI_MATCHCASE ICON DISCARDABLE "1001.ico"
IDI_WHOLEWORD ICON DISCARDABLE "1002.ico"
IDI_SPECSYMBOLS ICON DISCARDABLE "1003.ico"
IDI_SEARCHUP ICON DISCARDABLE "1004.ico"
IDI_SEARCHDOWN ICON DISCARDABLE "1005.ico"
IDI_HIGHLIGHTALL ICON DISCARDABLE "1006.ico"

IDD_QSEARCH DIALOGEX 6,12,390,16
FONT 8,"MS Shell Dlg",0,0,0
STYLE WS_CHILDWINDOW|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN
EXSTYLE WS_EX_CONTROLPARENT
BEGIN
  CONTROL "",IDC_ED_FINDTEXT,"Edit",NOT WS_VISIBLE|WS_CHILDWINDOW|WS_TABSTOP|ES_WANTRETURN|ES_AUTOHSCROLL,90,2,200,13,WS_EX_CLIENTEDGE
  CONTROL "",IDC_CB_FINDTEXT,"ComboBox",NOT WS_VISIBLE|WS_CHILDWINDOW|WS_VSCROLL|WS_TABSTOP|CBS_HASSTRINGS|CBS_AUTOHSCROLL|CBS_DROPDOWN,90,2,200,100,WS_EX_CLIENTEDGE
  CONTROL "",IDC_BT_CANCEL,"Button",WS_CHILDWINDOW|WS_VISIBLE|BS_FLAT|BS_VCENTER|BS_CENTER|BS_OWNERDRAW,4,3,10,10
  CONTROL "",IDC_BT_MATCHCASE,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_FLAT|BS_VCENTER|BS_CENTER|0x00000040,19,1,16,14
  CONTROL "",IDC_BT_WHOLEWORD,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_FLAT|BS_VCENTER|BS_CENTER|0x00000040,35,1,16,14
  CONTROL "",IDC_BT_SPECSYMBOLS,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_FLAT|BS_VCENTER|BS_CENTER|0x00000040,51,1,16,14
  CONTROL "",IDC_BT_SEARCHUP,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_FLAT|BS_VCENTER|BS_CENTER|0x00000040,310,1,16,14
  CONTROL "",IDC_BT_SEARCHDOWN,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_FLAT|BS_VCENTER|BS_CENTER,294,1,16,14
  CONTROL "",IDC_BT_HIGHLIGHTALL,"Button",WS_CHILDWINDOW|WS_VISIBLE|WS_TABSTOP|BS_FLAT|BS_VCENTER|BS_CENTER|0x00000040,70,1,16,14
  CONTROL "",IDC_PB_PROGRESS,"msctls_progress32",NOT WS_VISIBLE|WS_CHILDWINDOW,294,2,92,13
END

IDR_MENU_OPTIONS MENU
BEGIN
  POPUP "Options"
  BEGIN
    MENUITEM "Search: On-the-fly mode",IDM_SRCHONTHEFLYMODE
    MENUITEM "Search: Always from beginning",IDM_SRCHFROMBEGINNING
    MENUITEM "Search: Use special characters ( \\n, \\t, * and ? )",IDM_SRCHUSESPECIALCHARS
    MENUITEM "Search: Pick up selected text",IDM_SRCHPICKUPSELECTION
    MENUITEM "Search: SelFind picks up selected text",IDM_SRCHSELFINDPICKUP
    MENUITEM "Search: Stop at EOF (end of file)",IDM_SRCHSTOPEOF
    MENUITEM "Window: Docked top",IDM_SRCHWNDDOCKEDTOP
    MENUITEM "Window: Select all when focused",IDM_EDITFOCUSSELECTALL
    MENUITEM "Window: Catch main F3",IDM_CATCHMAINF3
    MENUITEM "Window: Catch main Esc",IDM_CATCHMAINESC
    MENUITEM "Window: Hotkey hides the panel",IDM_HOTKEYCLOSESWND
    MENUITEM "Window: Editor auto-focus",IDM_EDITORAUTOFOCUS
  END
END

VS_VERSION_INFO VERSIONINFO
FILEVERSION 4,9,0,0
PRODUCTVERSION 4,9,0,0
FILEOS 0x00000004
FILETYPE 0x00000002
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "FFFF04B0"
    BEGIN
      VALUE "Comments", "Pig is really neat! :-)\0"
      VALUE "CompanyName", "Full of Madness Co.\0"
      VALUE "FileDescription", "QSearch plugin for AkelPad text editor\0"
      VALUE "FileVersion", "4, 9, 0, 0\0"
      VALUE "InternalName", "QSearch\0"
      VALUE "LegalCopyright", "(C) Sep 2007 - Jul 2012, Vitaliy Dovgan aka DV\0"
      VALUE "OriginalFilename", "QSearch.dll\0"
      VALUE "ProductName", "QSearch plugin for AkelPad text editor\0"
      VALUE "ProductVersion", "4, 9, 0, 0\0"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0xFFFF, 0x04B0
  END
END

IDR_RCDATA1 RCDATA
BEGIN
END
Last edited by Serge Yolkin on Thu Aug 09, 2012 6:42 pm, edited 2 times in total.

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

se7h wrote:... когда можно нарисовать аккуратные двухцветные значки?
Я все же за единую стилистику редактора в целом. А на тулбаре значки вполне себе цветные.
А по поводу наглядности можно предусмотреть режим «значки и текст».

Offline
Posts: 670
Joined: Thu Jun 03, 2010 8:47 am
Location: Сочи, Хоста
Contact:

Post by Andrey_A_A »

Давно не заходил, думал вопрос кнопок на панели плагина будет задвинут, а тут уже 3-й лист. Отлично, если реализуется функционал

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Serge Yolkin wrote:А Find Prev тогда зачем?
по сути, активизация опции "Обратный поиск" меняет местами Find и Find Prev, возможно, кому-то одно из поведений более привычно, плюс ко всему, при узком окне редактора, кнопка "Find Prev" скрывается

Infocatcher
в любом современном профсофте иконки выглядят лаконично и минималистично при полной ясности изображения и, признаюсь, мне нравится этот подход 8)

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

А я всё-таки за то, чтобы плаг использовал темы кодера. Ну будут картинки, и что, при смене темы на светлую "да здравствуют попугаи"?

Offline
Posts: 2248
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

VladSh, ну это уже перебрали. Только скинирования нам и не хватало. Итак есть куча проблем, которые пока просто не всплывают.

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

se7h wrote:в любом современном профсофте иконки выглядят лаконично и минималистично при полной ясности изображения и, признаюсь, мне нравится этот подход 8)
А мне все равно удобнее ориентироваться в цветных иконках – это быстрее. То есть для одноцветных надо форму сравнивать, а так некоторые сразу про цвету видно. Хотя мера в цветах, конечно, нужна. :)

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

Infocatcher wrote:Я все же за единую стилистику редактора в целом.
Полностью с Вами согласен. Тогда, возможно, вместо баттонов надо использовать тулбары со значками? Как предлагал Instructor? Готов попробовать, только разберусь с их позиционированием (ну и если DV не будет возражать).

VladSh, у меня панель плагина ниже горизонтального скроллбара, не очень понимаю, зачем там тема кодера...

Infocatcher, думаю, "о вкусах не спорят - есть тысяча мнений". Предложите комплект иконок по списку функций, представленному DV, и, если Ваш вариант не вызовет слишком уж резкой критики, можно будет его реализовать.
Post Reply