6#include <QtCore/QTimer>
7#include <QtCore/QMutexLocker>
8#include <QtWidgets/QGraphicsScene>
9#include <QtWidgets/QSplitter>
10#include <QtWidgets/QStackedWidget>
13#include <ibase/ICommandsProvider.h>
14#include <ilog/IMessageConsumer.h>
15#include <imeas/INumericConstraints.h>
16#include <imod/TSingleModelObserverBase.h>
17#include <ilog/TMessageDelegatorComp.h>
18#include <iqtgui/TRestorableGuiWrap.h>
19#include <iqtgui/TDesignerGuiCompBase.h>
20#include <iqtgui/CHierarchicalCommand.h>
21#include <imod/CModelProxy.h>
22#include <istd/TChangeDelegator.h>
25#include <imtloggui/IEventItem.h>
26#include <imtloggui/IGraphicsController.h>
27#include <imtloggui/IGraphicsSceneProvider.h>
28#include <imtloggui/CEventGraphicsView.h>
29#include <imtloggui/CTimeAxis.h>
32#include <GeneratedFiles/imtloggui/ui_CEventViewComp.h>
40 public iqtgui::TRestorableGuiWrap<
41 iqtgui::TDesignerGuiCompBase<Ui::CEventViewComp>>,
42 virtual public IViewPropertyManager,
43 virtual public IGraphicsSceneProvider
47 typedef iqtgui::TRestorableGuiWrap<
48 iqtgui::TDesignerGuiCompBase<Ui::CEventViewComp>> BaseClass;
50 I_BEGIN_COMPONENT(CEventViewComp);
51 I_REGISTER_INTERFACE(ilog::IMessageConsumer);
52 I_REGISTER_INTERFACE(IViewPropertyManager);
53 I_REGISTER_INTERFACE(IViewPropertyProvider);
54 I_REGISTER_INTERFACE(IGraphicsSceneProvider);
55 I_REGISTER_SUBELEMENT(Commands);
56 I_REGISTER_SUBELEMENT_INTERFACE(Commands, ibase::ICommandsProvider, ExtractCommands);
57 I_REGISTER_SUBELEMENT_INTERFACE(Commands, istd::IChangeable, ExtractCommands);
58 I_REGISTER_SUBELEMENT_INTERFACE(Commands, imod::IModel, ExtractCommands);
59 I_ASSIGN(m_statisticsViewCompPtr,
"EventStatisticsView",
"Event statistics for groups",
true,
"EventStatisticsView");
60 I_ASSIGN(m_metainfoViewCompPtr,
"EventItemMetaInfoView",
"Event metainfo viewer",
true,
"EventItemMetaInfoView");
61 I_ASSIGN(m_graphicsControllerCompPtr,
"GraphicsController",
"Graphics controller",
true,
"GraphicsController");
67 virtual QGraphicsScene* GetGraphicsScene()
override;
70 virtual QRectF GetSceneRect()
const override;
71 virtual QRectF GetViewRect()
const override;
72 virtual QMargins GetMargins()
const override;
73 virtual istd::CRange GetScaleRangeX()
const override;
74 virtual istd::CRange GetScaleRangeY()
const override;
75 virtual double GetScaleX()
const override;
76 virtual double GetScaleY()
const override;
79 virtual bool SetSceneRect(
const QRectF& rect)
override;
80 virtual bool SetViewRect(
const QRectF& rect)
override;
81 virtual bool SetMargins(
const QMargins& margins)
override;
82 virtual bool SetScaleRangeX(
const istd::CRange& range)
override;
83 virtual bool SetScaleRangeY(
const istd::CRange& range)
override;
86 virtual void OnRestoreSettings(
const QSettings& settings)
override;
87 virtual void OnSaveSettings(QSettings& settings)
const override;
90 virtual void OnGuiCreated()
override;
91 virtual void OnGuiDestroyed()
override;
92 virtual void OnGuiRetranslate()
override;
95 virtual void OnComponentCreated()
override;
101 void OnMoveToFirstCommand();
102 void OnMoveToPreviousCommand();
103 void OnMoveToNextCommand();
104 void OnMoveToLastCommand();
105 void OnZoomInCommand();
106 void OnZoomOutCommand();
108 void OnSelectionChanged();
112 QRectF GetSceneVisibleRect()
const;
113 double GetCurrentScaleX()
const;
114 void UpdateCommands();
115 void MoveToTime(
const QDateTime& time);
116 bool UpdateMetaInfoPanel(
const IEventItem* eventItem);
119 class Commands:
virtual public ibase::ICommandsProvider
124 void SetParent(CEventViewComp* parentPtr);
128 virtual const ibase::IHierarchicalCommand* GetCommands()
const override;
131 CEventViewComp* m_parentPtr;
134 template <
typename InterfaceType>
135 static InterfaceType* ExtractCommands(CEventViewComp& component)
137 return &component.m_commands;
142 I_REF(iqtgui::IGuiObject, m_statisticsViewCompPtr);
143 I_REF(iqtgui::IGuiObject, m_metainfoViewCompPtr);
144 I_REF(imtloggui::IGraphicsController, m_graphicsControllerCompPtr);
146 imod::TModelWrap<Commands> m_commands;
147 iqtgui::CHierarchicalCommand m_rootCommands;
148 iqtgui::CHierarchicalCommand m_moveToFirstCommand;
149 iqtgui::CHierarchicalCommand m_moveToPreviousCommand;
150 iqtgui::CHierarchicalCommand m_moveToNextCommand;
151 iqtgui::CHierarchicalCommand m_moveToLastCommand;
152 iqtgui::CHierarchicalCommand m_zoomInCommand;
153 iqtgui::CHierarchicalCommand m_zoomOutCommand;
154 iqtgui::CHierarchicalCommand m_zoomReset;
156 QGraphicsScene m_scene;
157 istd::TChangeDelegator<imod::TModelWrap<CEventGraphicsView>>* m_viewPtr;
158 double m_scaleFactor;
160 QDateTime m_currentCommandTime;
162 imod::CModelProxy m_modelProxy;
164 QSplitter* m_splitterPtr;
165 QStackedWidget* m_panelsStackPtr;
166 QWidget* m_statisticsPanelPtr;
167 QWidget* m_metaInfoPanelPtr;
172 istd::CRange m_scaleRangeX;