Release v0.6.41: filter and remember pinned clipboard history
This commit is contained in:
1 parent
524a836cc0
commit
684ca1b3cc
14 files changed
+60
-28
No files matched your search
+19
-5
@@ -514,15 +514,16 @@ void search(HWND w, HistoryView *v)
|
||||
v->previewActive = std::make_shared<std::atomic<bool>>(true);
|
||||
v->closed = false;
|
||||
auto q = value(w, 101);
|
||||
const bool pinnedOnly = SendDlgItemMessageW(w, 117, CB_GETCURSEL, 0, 0) == 1;
|
||||
auto generation = ++v->generation;
|
||||
v->pending.clear();
|
||||
auto *app = v->app;
|
||||
app->enqueueHistorySearch(
|
||||
[w, app, q, generation]
|
||||
[w, app, q, generation, pinnedOnly]
|
||||
{
|
||||
try
|
||||
{
|
||||
auto result = new SearchResult{generation, app->history->search(q)};
|
||||
auto result = new SearchResult{generation, app->history->search(q, pinnedOnly)};
|
||||
if (!PostMessageW(w, ResultsMessage, 0, (LPARAM)result))
|
||||
delete result;
|
||||
}
|
||||
@@ -739,6 +740,12 @@ LRESULT CALLBACK historyProc(HWND w, UINT msg, WPARAM wp, LPARAM lp)
|
||||
case WM_COMMAND:
|
||||
{
|
||||
int id = LOWORD(wp);
|
||||
if (id == 117 && HIWORD(wp) == CBN_SELCHANGE)
|
||||
{
|
||||
KillTimer(w, 1);
|
||||
search(w, v);
|
||||
return 0;
|
||||
}
|
||||
if (id == 101 && HIWORD(wp) == EN_CHANGE)
|
||||
{
|
||||
// Reject an older result even during the debounce interval.
|
||||
@@ -910,7 +917,8 @@ LRESULT CALLBACK historyProc(HWND w, UINT msg, WPARAM wp, LPARAM lp)
|
||||
v->rememberedSelection = selected(w, v);
|
||||
int top = (int)SendDlgItemMessageW(w,102,LB_GETTOPINDEX,0,0);
|
||||
v->rememberedTop = top >= 0 && top < (int)v->items.size() ? v->items[top].id : L"";
|
||||
v->app->saveHistoryView(v->rememberedSelection, v->rememberedTop, value(w, 101));
|
||||
v->app->saveHistoryView(v->rememberedSelection, v->rememberedTop, value(w, 101),
|
||||
SendDlgItemMessageW(w, 117, CB_GETCURSEL, 0, 0) == 1);
|
||||
KillTimer(w, 1);
|
||||
v->closed = true;
|
||||
v->previewActive->store(false);
|
||||
@@ -1737,8 +1745,14 @@ void showHistory(App &app, bool visible)
|
||||
HWND w = makeWindow(app, L"KSwitcher.History", L"Clipboard history", historyProc, 760, 500);
|
||||
app.historyWindow = w;
|
||||
windowLayoutState(w)->history = true;
|
||||
label(w, L"&Search clipboard history", 16, 12, 500);
|
||||
edit(w, 101, 16, 38, 728);
|
||||
label(w, L"&Filter", 16, 12, 170);
|
||||
auto filter = control(w, L"COMBOBOX", L"", WS_TABSTOP | CBS_DROPDOWNLIST | WS_VSCROLL,
|
||||
117, 16, 38, 170, 100);
|
||||
SendMessageW(filter, CB_ADDSTRING, 0, (LPARAM)L"All items");
|
||||
SendMessageW(filter, CB_ADDSTRING, 0, (LPARAM)L"★ Pinned only");
|
||||
SendMessageW(filter, CB_SETCURSEL, app.historyPinnedOnly ? 1 : 0, 0);
|
||||
label(w, L"&Search clipboard history", 194, 12, 500);
|
||||
edit(w, 101, 194, 38, 550);
|
||||
auto list = control(w, L"LISTBOX", L"",
|
||||
WS_TABSTOP | WS_VSCROLL | LBS_NOTIFY | LBS_NOINTEGRALHEIGHT | WS_BORDER |
|
||||
LBS_OWNERDRAWFIXED | LBS_HASSTRINGS,
|
||||
|
||||
Reference in new issue
Block a user