WSF
EditorDock.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2018 Infoscitex, a DCS Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef EDITORDOCK_HPP
13#define EDITORDOCK_HPP
14
15#include <QTimer>
16
17#include "ScriptDebugger.hpp"
18#include "UtCallbackHolder.hpp"
19#include "WkfDockWidget.hpp"
20
21class QLabel;
22class QStatusBar;
23class QTabBar;
24
25namespace wizard
26{
27class Editor;
28class TextSource;
29
31class EditorDock : public wkf::DockWidget
32{
33 Q_OBJECT
34
35public:
36 EditorDock(QMainWindow* aMainWindow, Editor* aEditor);
37 ~EditorDock() override;
38
39 void OverrideTitleBar(QWidget* aWidget) override;
40 void VisibilityChanged(bool aVisible);
42 void contextMenuEvent(QContextMenuEvent* aEvent) override;
43 void closeEvent(QCloseEvent* event) override;
44 void TabCloseRequested(int aTabIndex);
48 Editor* GetEditor() { return mEditor; }
49
52 const QMainWindow* GetMainWindow() const noexcept;
55 QMainWindow* GetMainWindow() noexcept;
56
57 void OnChangeDebug(bool aIsActive);
58
59 void DisableFullscreen();
60 void EnableFullscreen();
61
62protected:
63 void paintEvent(QPaintEvent* aEventPtr) override;
64 UtCallbackHolder mCallbackHolder;
65
66private:
67 void Initialize();
68 void ModifyTabBars();
69 void BuildStatusBar();
70 void StatusUpdate();
71 void UpdateConnections(QTabBar* aTabBarPtr);
74 void UpdateDockTitle(QStyleOptionDockWidget& aOptions) noexcept;
75
76 Editor* mEditor;
77
78 QTimer mStatusUpdateTimer;
79 QStatusBar* mStatusBar;
80 QLabel* mLineLabelPtr;
81 QLabel* mColumnLabelPtr;
82 QLabel* mStatusLabelPtr;
83 bool mDebugActive;
84
85 QMetaObject::Connection mTabCloseConnection;
86};
87} // namespace wizard
88
89#endif
void contextMenuEvent(QContextMenuEvent *aEvent) override
Definition EditorDock.cpp:117
~EditorDock() override
Definition EditorDock.cpp:77
void DisableFullscreen()
Definition EditorDock.cpp:379
void OverrideTitleBar(QWidget *aWidget) override
Definition EditorDock.cpp:85
Editor * GetEditor()
Definition EditorDock.hpp:48
void closeEvent(QCloseEvent *event) override
Definition EditorDock.cpp:125
void OnChangeDebug(bool aIsActive)
Definition EditorDock.cpp:389
void VisibilityChanged(bool aVisible)
Definition EditorDock.cpp:92
EditorDock(QMainWindow *aMainWindow, Editor *aEditor)
Definition EditorDock.cpp:30
void EnableFullscreen()
Definition EditorDock.cpp:384
const QMainWindow * GetMainWindow() const noexcept
Definition EditorDock.cpp:369
void paintEvent(QPaintEvent *aEventPtr) override
Definition EditorDock.cpp:233
void ModificationChanged(wizard::TextSource *aSourcePtr)
Definition EditorDock.cpp:101
UtCallbackHolder mCallbackHolder
Definition EditorDock.hpp:64
void CursorPositionChanged()
Definition EditorDock.cpp:280
void TabCloseRequested(int aTabIndex)
Definition EditorDock.cpp:220
Definition Editor.hpp:57
Definition TextSource.hpp:48
Definition Runner.hpp:22
Copyrights Multiple, All Rights Reserved