Skip to content

Commit

Permalink
UI|Home: Improvements to focus behavior in Home columns
Browse files Browse the repository at this point in the history
Moving the focus with Tab will cause the highlighted column to
change.
  • Loading branch information
skyjake committed Aug 7, 2016
1 parent 7efdd52 commit 7a8120a
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 1 deletion.
Expand Up @@ -27,6 +27,7 @@ class PackagesColumnWidget : public ColumnWidget
PackagesColumnWidget();

de::String tabHeading() const override;
void setHighlighted(bool highlighted) override;

private:
DENG2_PRIVATE(d)
Expand Down
3 changes: 3 additions & 0 deletions doomsday/apps/client/include/ui/widgets/homemenuwidget.h
Expand Up @@ -22,6 +22,7 @@
#include <de/MenuWidget>

class HomeItemWidget;
class ColumnWidget;

/**
* Menu for items in Home columns.
Expand Down Expand Up @@ -56,6 +57,8 @@ class HomeMenuWidget : public de::MenuWidget
void setInteractedItem(de::ui::Item const *menuItem,
de::ui::Item const *actionItem);

ColumnWidget *parentColumn() const;

signals:
void selectedIndexChanged(int index);
void itemClicked(int index);
Expand Down
9 changes: 9 additions & 0 deletions doomsday/apps/client/src/ui/home/packagescolumnwidget.cpp
Expand Up @@ -162,3 +162,12 @@ String PackagesColumnWidget::tabHeading() const
{
return tr("Packages");
}

void PackagesColumnWidget::setHighlighted(bool highlighted)
{
ColumnWidget::setHighlighted(highlighted);
if (highlighted)
{
root().setFocus(&d->packages->searchTermsEditor());
}
}
3 changes: 2 additions & 1 deletion doomsday/apps/client/src/ui/widgets/homeitemwidget.cpp
Expand Up @@ -41,7 +41,7 @@ DENG_GUI_PIMPL(HomeItemWidget)
void acquireFocus()
{
owner.acquireFocus();
emit owner.mouseActivity();
//emit owner.mouseActivity();
}

bool handleEvent(GuiWidget &widget, Event const &event)
Expand Down Expand Up @@ -376,6 +376,7 @@ void HomeItemWidget::focusGained()
{
setSelected(true);
emit selected();
emit mouseActivity();
}

void HomeItemWidget::focusLost()
Expand Down
18 changes: 18 additions & 0 deletions doomsday/apps/client/src/ui/widgets/homemenuwidget.cpp
Expand Up @@ -18,6 +18,7 @@

#include "ui/widgets/homemenuwidget.h"
#include "ui/widgets/homeitemwidget.h"
#include "ui/home/columnwidget.h"

using namespace de;

Expand Down Expand Up @@ -134,6 +135,18 @@ void HomeMenuWidget::setInteractedItem(ui::Item const *menuItem, ui::Item const
d->interactedAction = actionItem;
}

ColumnWidget *HomeMenuWidget::parentColumn() const
{
for (Widget *i = parentWidget(); i; i = i->parent())
{
if (ColumnWidget *column = i->maybeAs<ColumnWidget>())
{
return column;
}
}
return nullptr;
}

ui::Item const *HomeMenuWidget::interactedItem() const
{
return d->interacted;
Expand All @@ -150,6 +163,11 @@ void HomeMenuWidget::mouseActivityInItem()
{
emit itemClicked(findItem(*clickedWidget));
}

if (auto *column = parentColumn())
{
emit column->mouseActivity(column);
}
}

void HomeMenuWidget::itemSelectionChanged()
Expand Down

0 comments on commit 7a8120a

Please sign in to comment.