mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-11-23 12:18:37 -05:00
Search actives, return proper expansion states after search
This commit is contained in:
parent
68495b4d90
commit
83cb2659ff
@ -230,6 +230,8 @@ wxTreeItemId BookmarkView::refreshBookmarks() {
|
|||||||
|
|
||||||
if (searchState || bmExpandState) {
|
if (searchState || bmExpandState) {
|
||||||
m_treeView->Expand(bookmarkBranch);
|
m_treeView->Expand(bookmarkBranch);
|
||||||
|
} else {
|
||||||
|
m_treeView->Collapse(bookmarkBranch);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto gn_i : groupNames) {
|
for (auto gn_i : groupNames) {
|
||||||
@ -299,12 +301,29 @@ void BookmarkView::doUpdateActiveList() {
|
|||||||
|
|
||||||
wxTreeItemId selItem = nullptr;
|
wxTreeItemId selItem = nullptr;
|
||||||
for (auto demod_i : demods) {
|
for (auto demod_i : demods) {
|
||||||
|
wxString activeLabel = BookmarkMgr::getActiveDisplayName(demod_i);
|
||||||
|
|
||||||
|
if (searchState) {
|
||||||
|
std::string freqStr = frequencyToStr(demod_i->getFrequency());
|
||||||
|
std::string bwStr = frequencyToStr(demod_i->getBandwidth());
|
||||||
|
std::string mtype = demod_i->getDemodulatorType();
|
||||||
|
|
||||||
|
std::wstring fullText = activeLabel.ToStdWstring() +
|
||||||
|
L" " + demod_i->getDemodulatorUserLabel() +
|
||||||
|
L" " + std::to_wstring(demod_i->getFrequency()) +
|
||||||
|
L" " + std::wstring(freqStr.begin(),freqStr.end()) +
|
||||||
|
L" " + std::wstring(bwStr.begin(),bwStr.end()) +
|
||||||
|
L" " + std::wstring(mtype.begin(),mtype.end());
|
||||||
|
|
||||||
|
if (!isKeywordMatch(fullText, searchKeywords)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TreeViewItem* tvi = new TreeViewItem();
|
TreeViewItem* tvi = new TreeViewItem();
|
||||||
tvi->type = TreeViewItem::TREEVIEW_ITEM_TYPE_ACTIVE;
|
tvi->type = TreeViewItem::TREEVIEW_ITEM_TYPE_ACTIVE;
|
||||||
tvi->demod = demod_i;
|
tvi->demod = demod_i;
|
||||||
|
|
||||||
wxString activeLabel = BookmarkMgr::getActiveDisplayName(demod_i);
|
|
||||||
|
|
||||||
wxTreeItemId itm = m_treeView->AppendItem(activeBranch,activeLabel);
|
wxTreeItemId itm = m_treeView->AppendItem(activeBranch,activeLabel);
|
||||||
m_treeView->SetItemData(itm, tvi);
|
m_treeView->SetItemData(itm, tvi);
|
||||||
|
|
||||||
@ -316,7 +335,7 @@ void BookmarkView::doUpdateActiveList() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool rangeExpandState = expandState["range"];
|
bool rangeExpandState = searchState?false:expandState["range"];
|
||||||
|
|
||||||
BookmarkRangeList bmRanges = wxGetApp().getBookmarkMgr().getRanges();
|
BookmarkRangeList bmRanges = wxGetApp().getBookmarkMgr().getRanges();
|
||||||
m_treeView->DeleteChildren(rangeBranch);
|
m_treeView->DeleteChildren(rangeBranch);
|
||||||
@ -394,13 +413,20 @@ void BookmarkView::doUpdateActiveList() {
|
|||||||
|
|
||||||
if (activeExpandState) {
|
if (activeExpandState) {
|
||||||
m_treeView->Expand(activeBranch);
|
m_treeView->Expand(activeBranch);
|
||||||
|
} else {
|
||||||
|
m_treeView->Collapse(activeBranch);
|
||||||
}
|
}
|
||||||
if (recentExpandState) {
|
if (recentExpandState) {
|
||||||
m_treeView->Expand(recentBranch);
|
m_treeView->Expand(recentBranch);
|
||||||
|
} else {
|
||||||
|
m_treeView->Collapse(recentBranch);
|
||||||
}
|
}
|
||||||
if (rangeExpandState) {
|
if (rangeExpandState) {
|
||||||
m_treeView->Expand(rangeBranch);
|
m_treeView->Expand(rangeBranch);
|
||||||
|
} else {
|
||||||
|
m_treeView->Collapse(rangeBranch);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (selItem != nullptr) {
|
if (selItem != nullptr) {
|
||||||
m_treeView->SelectItem(selItem);
|
m_treeView->SelectItem(selItem);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user