Skip to content

Commit

Permalink
Traktor: Implemented "find in database" when in split mode.
Browse files Browse the repository at this point in the history
  • Loading branch information
apistol78 committed May 22, 2024
1 parent fc4d018 commit 1c3d761
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 14 deletions.
40 changes: 32 additions & 8 deletions code/Editor/App/DatabaseView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -583,24 +583,44 @@ void DatabaseView::updateView()

m_treeDatabase->applyState(treeState);
if (viewMode == 1)
updateGridInstances();
updateGridInstances(nullptr);

m_splitter->update();
}

bool DatabaseView::highlight(const db::Instance* instance)
{
const int32_t viewMode = m_toolViewMode->getSelected();

RefArray< ui::TreeViewItem > items;
m_treeDatabase->getItems(items, ui::TreeView::GfDescendants);
for (auto item : items)

if (viewMode == 0)
{
if (item->getData< db::Instance >(L"INSTANCE") == instance)
for (auto item : items)
{
item->show();
item->select();
return true;
if (item->getData< db::Instance >(L"INSTANCE") == instance)
{
item->show();
item->select();
return true;
}
}
}
else if (viewMode == 1)
{
for (auto item : items)
{
if (item->getData< db::Group >(L"GROUP") == instance->getParent())
{
item->show();
item->select();
}
}
updateGridInstances(instance);
return true;
}

return false;
}

Expand Down Expand Up @@ -1212,7 +1232,7 @@ Ref< ui::TreeViewItem > DatabaseView::buildTreeItemSplit(ui::TreeView* treeView,
return groupItem;
}

void DatabaseView::updateGridInstances()
void DatabaseView::updateGridInstances(const db::Instance* highlightInstance)
{
// Grid is only visible in "split" mode.
const int32_t viewMode = m_toolViewMode->getSelected();
Expand Down Expand Up @@ -1258,6 +1278,10 @@ void DatabaseView::updateGridInstances()
item->setSubText(getCategoryText(primaryType));
item->setData(L"GROUP", childInstance->getParent());
item->setData(L"INSTANCE", childInstance);

if (highlightInstance)
item->setSelected(highlightInstance == childInstance);

previewItems->add(item);

// Get thumbnail preview of instance.
Expand Down Expand Up @@ -1505,7 +1529,7 @@ void DatabaseView::eventInstanceSelect(ui::SelectionChangeEvent* event)
if (m_treeDatabase->getItems(items, ui::TreeView::GfDescendants | ui::TreeView::GfSelectedOnly) <= 0)
return;

updateGridInstances();
updateGridInstances(nullptr);
}

void DatabaseView::eventInstanceButtonDown(ui::MouseButtonDownEvent* event)
Expand Down
2 changes: 1 addition & 1 deletion code/Editor/App/DatabaseView.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ class DatabaseView : public ui::Container

Ref< ui::TreeViewItem > buildTreeItemSplit(ui::TreeView* treeView, ui::TreeViewItem* parentItem, db::Group* group);

void updateGridInstances();
void updateGridInstances(const db::Instance* highlightInstance);

void filterType(db::Instance* instance);

Expand Down
6 changes: 1 addition & 5 deletions code/Ui/PreviewList/PreviewList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,7 @@ bool PreviewList::create(Widget* parent, uint32_t style)

void PreviewList::setItems(PreviewItems* items)
{
if ((m_items = items) != nullptr)
{
for (int32_t i = 0; i < m_items->count(); ++i)
m_items->get(i)->setSelected(false);
}
m_items = items;
requestUpdate();
}

Expand Down

0 comments on commit 1c3d761

Please sign in to comment.