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:
Eberhard Graether
2014-07-17 14:38:18 +02:00
parent 75e1cb7229
commit 4578c109ec
14 changed files with 128 additions and 15 deletions
@@ -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();
+1
View File
@@ -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:
+9 -5
View File
@@ -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;
}
+3 -3
View File
@@ -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;
+3
View File
@@ -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;
};