View interface

This commit is contained in:
Eberhard Graether
2016-07-08 14:37:49 +02:00
parent 996b33b1fb
commit 1fcb241189
16 changed files with 82 additions and 78 deletions
-2
View File
@@ -248,8 +248,6 @@ add_files(
utility/messaging/type/MessageGraphNodeExpand.h
utility/messaging/type/MessageGraphNodeMove.h
utility/messaging/type/MessageInterruptTasks.h
utility/messaging/type/MessageLoadAfter.h
utility/messaging/type/MessageLoadBefore.h
utility/messaging/type/MessageLoadProject.h
utility/messaging/type/MessageMoveIDECursor.h
utility/messaging/type/MessageProjectEdit.h
+4
View File
@@ -38,6 +38,8 @@ ViewFactory* ComponentFactory::getViewFactory() const
std::shared_ptr<Component> ComponentFactory::createCodeComponent(ViewLayout* viewLayout)
{
std::shared_ptr<CodeView> view = m_viewFactory->createCodeView(viewLayout);
view->createOverlay();
std::shared_ptr<CodeController> controller = std::make_shared<CodeController>(m_storageAccess);
return std::make_shared<Component>(view, controller);
@@ -53,6 +55,8 @@ std::shared_ptr<Component> ComponentFactory::createFeatureComponent()
std::shared_ptr<Component> ComponentFactory::createGraphComponent(ViewLayout* viewLayout)
{
std::shared_ptr<View> view = m_viewFactory->createGraphView(viewLayout);
view->createOverlay();
std::shared_ptr<GraphController> controller = std::make_shared<GraphController>(m_storageAccess);
return std::make_shared<Component>(view, controller);
@@ -26,6 +26,8 @@ void GraphController::handleMessage(MessageActivateAll* message)
{
TRACE("graph all");
getView()->showOverlay();
m_activeNodeIds.clear();
m_activeEdgeIds.clear();
@@ -43,6 +45,8 @@ void GraphController::handleMessage(MessageActivateTokens* message)
{
TRACE("graph activate");
getView()->showOverlay();
if (message->isEdge || message->keepContent())
{
m_activeEdgeIds = message->tokenIds;
+17 -2
View File
@@ -25,14 +25,29 @@ void View::addToLayout()
m_viewLayout->addView(this);
}
void View::setComponent(Component* component)
{
m_component = component;
}
ViewWidgetWrapper* View::getWidgetWrapper() const
{
return m_widgetWrapper.get();
}
void View::setComponent(Component* component)
void View::createOverlay()
{
m_component = component;
getWidgetWrapper()->createOverlay();
}
void View::showOverlay()
{
getWidgetWrapper()->showOverlay();
}
void View::hideOverlay()
{
getWidgetWrapper()->hideOverlay();
}
ViewLayout* View::getViewLayout() const
+4
View File
@@ -35,6 +35,10 @@ public:
ViewWidgetWrapper* getWidgetWrapper() const;
void createOverlay();
void showOverlay();
void hideOverlay();
protected:
template <typename ControllerType>
ControllerType* getController();
@@ -6,6 +6,10 @@ class ViewWidgetWrapper
public:
ViewWidgetWrapper();
virtual ~ViewWidgetWrapper();
virtual void createOverlay() = 0;
virtual void showOverlay() = 0;
virtual void hideOverlay() = 0;
};
#endif // VIEW_WIDGET_WRAPPER_H
@@ -1,21 +0,0 @@
#ifndef MESSAGE_LOAD_AFTER_H
#define MESSAGE_LOAD_AFTER_H
#include "utility/messaging/Message.h"
class MessageLoadAfter
: public Message<MessageLoadAfter>
{
public:
MessageLoadAfter()
{
setSendAsTask(false);
}
static const std::string getStaticType()
{
return "MessageLoadAfter";
}
};
#endif // MESSAGE_LOAD_AFTER_H
@@ -1,21 +0,0 @@
#ifndef MESSAGE_LOAD_BEFORE_H
#define MESSAGE_LOAD_BEFORE_H
#include "utility/messaging/Message.h"
class MessageLoadBefore
: public Message<MessageLoadBefore>
{
public:
MessageLoadBefore()
{
setSendAsTask(false);
}
static const std::string getStaticType()
{
return "MessageLoadBefore";
}
};
#endif // MESSAGE_LOAD_BEFORE_H
-2
View File
@@ -7,7 +7,6 @@
#include "qt/element/QtCodeArea.h"
#include "qt/element/QtCodeFileList.h"
#include "qt/utility/QtHighlighter.h"
#include "qt/view/QtViewOverlay.h"
#include "qt/view/QtViewWidgetWrapper.h"
#include "settings/ColorScheme.h"
@@ -42,7 +41,6 @@ void QtCodeView::createWidgetWrapper()
void QtCodeView::initView()
{
m_overlay = new QtViewOverlay(m_widget);
}
void QtCodeView::refreshView()
-3
View File
@@ -11,7 +11,6 @@
class QFrame;
class QtCodeFileList;
class QtViewOverlay;
class QWidget;
class QtCodeView
@@ -90,8 +89,6 @@ private:
std::vector<Id> m_activeTokenIds;
std::vector<ErrorInfo> m_errorInfos;
QtViewOverlay* m_overlay;
};
# endif // QT_CODE_VIEW_H
+2 -3
View File
@@ -26,7 +26,6 @@
#include "qt/view/graphElements/QtGraphNodeBundle.h"
#include "qt/view/graphElements/QtGraphNodeData.h"
#include "qt/view/graphElements/QtGraphNodeExpandToggle.h"
#include "qt/view/QtViewOverlay.h"
#include "qt/view/QtViewWidgetWrapper.h"
#include "settings/ColorScheme.h"
@@ -73,8 +72,6 @@ void QtGraphView::initView()
connect(view, SIGNAL(emptySpaceClicked()), this, SLOT(clickedInEmptySpace()));
m_overlay = new QtViewOverlay(widget);
doRefreshView();
}
@@ -254,6 +251,8 @@ void QtGraphView::doRebuildGraph(
m_graph = graph;
}
hideOverlay();
if (animated)
{
createTransition();
-3
View File
@@ -15,7 +15,6 @@ class QSequentialAnimationGroup;
class QtGraphEdge;
class QtGraphicsView;
class QtGraphNode;
class QtViewOverlay;
class QtGraphView
: public QObject
@@ -109,8 +108,6 @@ private:
std::shared_ptr<QSequentialAnimationGroup> m_transition;
QPointF m_sceneRectOffset;
QtViewOverlay* m_overlay;
};
#endif // QT_GRAPH_VIEW_H
+8 -8
View File
@@ -79,8 +79,8 @@ void QtOverlay::paintEvent(QPaintEvent *event)
QtViewOverlay::QtViewOverlay(QWidget* parent)
: m_parent(parent)
, m_beforeFunctor(std::bind(&QtViewOverlay::doBefore, this))
, m_afterFunctor(std::bind(&QtViewOverlay::doAfter, this))
, m_showFunctor(std::bind(&QtViewOverlay::doShowOverlay, this))
, m_hideFunctor(std::bind(&QtViewOverlay::doHideOverlay, this))
{
m_overlay = new QtOverlay(m_parent);
m_parent->installEventFilter(new ResizeFilter(m_overlay));
@@ -88,17 +88,17 @@ QtViewOverlay::QtViewOverlay(QWidget* parent)
m_timer = new QTimer(m_overlay);
}
void QtViewOverlay::handleMessage(MessageLoadBefore* message)
void QtViewOverlay::showOverlay()
{
m_beforeFunctor();
m_showFunctor();
}
void QtViewOverlay::handleMessage(MessageLoadAfter* message)
void QtViewOverlay::hideOverlay()
{
m_afterFunctor();
m_hideFunctor();
}
void QtViewOverlay::doBefore()
void QtViewOverlay::doShowOverlay()
{
QObject::connect(m_timer, SIGNAL(timeout()), m_overlay, SLOT(animate()));
@@ -107,7 +107,7 @@ void QtViewOverlay::doBefore()
m_overlay->show();
}
void QtViewOverlay::doAfter()
void QtViewOverlay::doHideOverlay()
{
m_timer->stop();
+7 -12
View File
@@ -4,9 +4,6 @@
#include <QWidget>
#include "qt/utility/QtThreadedFunctor.h"
#include "utility/messaging/MessageListener.h"
#include "utility/messaging/type/MessageLoadBefore.h"
#include "utility/messaging/type/MessageLoadAfter.h"
class QTimer;
@@ -50,26 +47,24 @@ private:
class QtViewOverlay
: public MessageListener<MessageLoadBefore>
, public MessageListener<MessageLoadAfter>
{
public:
QtViewOverlay(QWidget* parent = 0);
private:
void handleMessage(MessageLoadBefore* message);
void handleMessage(MessageLoadAfter* message);
void showOverlay();
void hideOverlay();
void doBefore();
void doAfter();
private:
void doShowOverlay();
void doHideOverlay();
QWidget* m_parent;
QtOverlay* m_overlay;
QTimer* m_timer;
QtThreadedFunctor<void> m_beforeFunctor;
QtThreadedFunctor<void> m_afterFunctor;
QtThreadedFunctor<void> m_showFunctor;
QtThreadedFunctor<void> m_hideFunctor;
};
#endif // QT_VIEW_OVERLAY
@@ -1,6 +1,7 @@
#include "qt/view/QtViewWidgetWrapper.h"
#include "component/view/View.h"
#include "qt/view/QtViewOverlay.h"
#include "utility/logging/logging.h"
QWidget* QtViewWidgetWrapper::getWidgetOfView(const View* view)
@@ -24,6 +25,7 @@ QWidget* QtViewWidgetWrapper::getWidgetOfView(const View* view)
QtViewWidgetWrapper::QtViewWidgetWrapper(QWidget* widget)
: m_widget(widget)
, m_overlay(nullptr)
{
}
@@ -31,6 +33,27 @@ QtViewWidgetWrapper::~QtViewWidgetWrapper()
{
}
void QtViewWidgetWrapper::createOverlay()
{
m_overlay = new QtViewOverlay(m_widget);
}
void QtViewWidgetWrapper::showOverlay()
{
if (m_overlay)
{
m_overlay->showOverlay();
}
}
void QtViewWidgetWrapper::hideOverlay()
{
if (m_overlay)
{
m_overlay->hideOverlay();
}
}
QWidget* QtViewWidgetWrapper::getWidget()
{
return m_widget;
+9 -1
View File
@@ -6,8 +6,10 @@
#include "component/view/ViewWidgetWrapper.h"
class View;
class QtViewOverlay;
class QtViewWidgetWrapper: public ViewWidgetWrapper
class QtViewWidgetWrapper
: public ViewWidgetWrapper
{
public:
static QWidget* getWidgetOfView(const View* view);
@@ -15,10 +17,16 @@ public:
QtViewWidgetWrapper(QWidget* widget);
virtual ~QtViewWidgetWrapper();
virtual void createOverlay() override;
virtual void showOverlay() override;
virtual void hideOverlay() override;
QWidget* getWidget();
private:
QWidget* m_widget;
QtViewOverlay* m_overlay;
};
#endif // QT_VIEW_WIDGET_WRAPPER_H