View interface
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user