ui: added find shortcut to set focus in search view
The shortcut is added to the new Find menubar item and dispatches a MessageFind, which is handled by the SearchController. QtSearchView assures via the ViewLayout that the view is visible when setting focus on the search box.
This commit is contained in:
@@ -33,6 +33,11 @@ void SearchController::handleMessage(MessageActivateToken* message)
|
||||
getView()->setText(m_graphAccess->getNameForNodeWithId(message->tokenId));
|
||||
}
|
||||
|
||||
void SearchController::handleMessage(MessageFind* message)
|
||||
{
|
||||
getView()->setFocus();
|
||||
}
|
||||
|
||||
void SearchController::handleMessage(MessageFinishedParsing* message)
|
||||
{
|
||||
getView()->setAutocompletionList(m_graphAccess->getNamesForNodesWithNamePrefix(""));
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "component/controller/Controller.h"
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageActivateToken.h"
|
||||
#include "utility/messaging/type/MessageFind.h"
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
|
||||
class GraphAccess;
|
||||
@@ -14,6 +15,7 @@ class SearchView;
|
||||
class SearchController
|
||||
: public Controller
|
||||
, public MessageListener<MessageActivateToken>
|
||||
, public MessageListener<MessageFind>
|
||||
, public MessageListener<MessageFinishedParsing>
|
||||
{
|
||||
public:
|
||||
@@ -25,6 +27,7 @@ public:
|
||||
|
||||
private:
|
||||
virtual void handleMessage(MessageActivateToken* message);
|
||||
virtual void handleMessage(MessageFind* message);
|
||||
virtual void handleMessage(MessageFinishedParsing* message);
|
||||
SearchView* getView();
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ public:
|
||||
virtual std::string getName() const;
|
||||
|
||||
virtual void setText(const std::string& s) = 0;
|
||||
virtual void setFocus() = 0;
|
||||
virtual void setAutocompletionList(const std::vector<std::string>& autocompletionList) = 0;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
#include "component/view/View.h"
|
||||
|
||||
#include "component/view/ViewLayout.h"
|
||||
#include "gui/GuiWidgetWrapper.h"
|
||||
|
||||
View::View(ViewLayout* viewLayout, const Vec2i& minSize)
|
||||
: m_viewLayout(viewLayout)
|
||||
, m_widgetWrapper(nullptr)
|
||||
, m_minSize(minSize)
|
||||
{
|
||||
}
|
||||
|
||||
View::~View()
|
||||
{
|
||||
m_viewLayout->removeView(this);
|
||||
@@ -38,9 +44,7 @@ Vec2i View::getMinSize() const
|
||||
return m_minSize;
|
||||
}
|
||||
|
||||
View::View(ViewLayout* viewLayout, const Vec2i& minSize)
|
||||
: m_viewLayout(viewLayout)
|
||||
, m_widgetWrapper(nullptr)
|
||||
, m_minSize(minSize)
|
||||
ViewLayout* View::getViewLayout() const
|
||||
{
|
||||
return m_viewLayout;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
#include "utility/math/Vector2.h"
|
||||
|
||||
class GuiWidgetWrapper;
|
||||
class ViewLayout;
|
||||
|
||||
class View
|
||||
{
|
||||
@@ -17,6 +16,7 @@ public:
|
||||
template<typename T>
|
||||
static std::shared_ptr<T> create(ViewLayout* viewLayout);
|
||||
|
||||
View(ViewLayout* viewLayout, const Vec2i& minSize);
|
||||
virtual ~View();
|
||||
|
||||
virtual std::string getName() const = 0;
|
||||
@@ -34,11 +34,11 @@ public:
|
||||
Vec2i getMinSize() const;
|
||||
|
||||
protected:
|
||||
View(ViewLayout* viewLayout, const Vec2i& minSize); // make public
|
||||
|
||||
template <typename ControllerType>
|
||||
ControllerType* getController();
|
||||
|
||||
ViewLayout* getViewLayout() const;
|
||||
|
||||
private:
|
||||
Component* m_component;
|
||||
ViewLayout* const m_viewLayout;
|
||||
|
||||
@@ -12,6 +12,9 @@ public:
|
||||
virtual void addView(View* view) = 0;
|
||||
virtual void removeView(View* view) = 0;
|
||||
|
||||
virtual void showView(View* view) = 0;
|
||||
virtual void hideView(View* view) = 0;
|
||||
|
||||
virtual void loadLayout() = 0;
|
||||
virtual void saveLayout() = 0;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user