17#include <QPlainTextEdit>
26class UtTextDocumentRange;
48 QSize
sizeHint()
const override {
return QSize(30, 0); }
75 void Replace(
const UtTextRange& aRange,
const std::string aText);
79 QTextCursor* aCursorPtr =
nullptr,
81 int aUpperBound = -1);
90 void GetLineColumn(
const size_t& aOffset,
size_t& aLine,
size_t& aColumn);
91 QPoint
GetPoint(
const size_t aOffset);
92 size_t GetOffset(
const size_t aLine,
const size_t aColumn);
96 size_t GetPosition(
size_t aLine,
size_t aColumn);
97 size_t GetPosition(
const QPoint& aPoint);
99 std::string RangeText(
size_t aStart,
size_t aEnd);
100 void RequestCloseAction();
107 void RecordCurrentLocation(
bool aForceNewEntry =
true);
108 void GoToLine(
size_t aLine);
109 void GoToRange(
const UtTextRange& aRange);
114 QString ToPlainText();
115 static std::string ToAscii(
const QString& aText);
118 static void UpdateStyleFromArray(
const QVector<QTextCharFormat>& aFormatChanges,
119 const QTextBlock& firstBlk,
120 int aLastBlockNumber,
124 void SetGlobalReadOnly(
bool aIsGlobalReadOnly);
129 virtual int MarginWidth();
130 int LineNumberWidth();
132 void BuildTitleBarMenu(QMenu& aMenu);
136 QString GetShortName(
bool aTrim =
true)
const;
142 static QStringList Split(
const QString& aStr);
146 static int FindNextValidToken(
const QStringList& aList,
int aStart);
148 void mousePressEvent(QMouseEvent* aEvent)
override;
162 void keyPressEvent(QKeyEvent* e) override;
168 virtual void PaintMargin(QPaintEvent* event);
169 virtual void OnCursorPositionChanged();
170 void GetCursorPoint(
int& aX,
int& aY,
int& aLineHeight);
171 virtual void OnUpdateRequest(
const QRect&,
int);
172 virtual void DocContentsChange(
int aFrom,
int aCharsRemoves,
int aCharsAdded);
173 void AddCurrentLineSelection(QList<QTextEdit::ExtraSelection>& aSelections);
174 bool event(QEvent* e)
override;
175 void UpdateMarginGeometry();
181 virtual void UpdateAutoComplete() {}
184 void EnsureCurrentLineVisible();
186 void UpdateMarginViewport();
187 void OnUndoAvailable(
bool aAvailable);
188 void OnRedoAvailable(
bool aAvailable);
189 void OnModificationChanged(
bool aIsModified);
190 void OnTextChanged();
192 int SpaceFromIndent(
int aIndentSize)
const;
193 int LineSpaceFromIndent(
int aIndentSize,
size_t aLine)
const;
194 bool SameWhitespaceOffset(
size_t aFirstLine,
size_t aLastLine,
int aIndentSize)
const;
196 virtual void UpdateExtraSelections();
197 void wheelEvent(QWheelEvent* e)
override;
198 void resizeEvent(QResizeEvent* e)
override;
199 void showEvent(QShowEvent* e)
override;
200 void closeEvent(QCloseEvent* e)
override;
201 virtual void marginMouseMoveEvent(QMouseEvent*) {}
202 virtual void marginLeaveEvent(QEvent*) {}
203 virtual void marginMousePressEvent(QMouseEvent* e) {}
204 virtual void marginContextMenuEvent(QContextMenuEvent*) {}
206 Project* mProjectPtr;
207 TextSource* mSourcePtr;
209 EditorManager* mManagerPtr;
210 bool mFoldingEnabled;
213 bool mGlobalReadOnly;
217 EditorMargin* mMarginWidget;
219 QTimer mDeferredUpdateSelectionsTimer;
221 UtCallbackHolder mCallbacks;
#define VI_EXPORT
Definition ViExport.hpp:38
A wkf::DockWidget containing a wizard::Editor.
Definition EditorDock.hpp:32
Definition EditorManager.hpp:41
void leaveEvent(QEvent *) override
Definition Editor.cpp:1327
void paintEvent(QPaintEvent *) override
Definition Editor.cpp:1316
QSize sizeHint() const override
Definition Editor.hpp:48
void contextMenuEvent(QContextMenuEvent *) override
Definition Editor.cpp:1336
void mouseMoveEvent(QMouseEvent *e) override
Definition Editor.cpp:1322
EditorMargin(Editor *aP)
Definition Editor.cpp:1309
void mousePressEvent(QMouseEvent *e) override
Definition Editor.cpp:1331
Editor * mParent
Definition Editor.hpp:53
friend class EditorMargin
Definition Editor.hpp:59
bool GetSelectionRange(UtTextDocumentRange &aRange)
Definition Editor.cpp:622
Editor(QWidget *aParent, Project *aProject, TextSource *aTextSource, EditorManager *aManagerPtr)
Definition Editor.cpp:39
virtual void EndNonUserAction()
Definition Editor.hpp:103
bool ReplaceFoundText()
Definition Editor.cpp:484
int GetLineHeight(const int aLine)
Definition Editor.cpp:694
void SetSelection(const UtTextRange &aRange)
Definition Editor.cpp:638
EditorMargin * Margin()
Definition Editor.hpp:167
void Replace(const UtTextRange &aRange, const std::string aText)
Definition Editor.cpp:515
bool SearchNext(const FindTextRequest &aFindRequest, QTextCursor *aCursorPtr=nullptr)
Definition Editor.cpp:529
void GoToLineAction()
Definition Editor.cpp:460
bool SearchNextNoWrap(const FindTextRequest &aFindRequest, QTextCursor *aCursorPtr=nullptr, int aLowerBound=-1, int aUpperBound=-1)
Definition Editor.cpp:567
virtual void Paste()
Definition Editor.cpp:445
virtual void ReloadComplete()
Definition Editor.hpp:105
void GetCurrentPosition(size_t &aOffset, size_t &aLine, size_t &aColumn)
Definition Editor.cpp:658
bool FoldingEnabled()
Definition Editor.hpp:164
QTimer & DeferUpdateTimer()
Definition Editor.hpp:166
size_t GetOffset(const size_t aLine, const size_t aColumn)
Definition Editor.cpp:685
bool SearchPrevious(const FindTextRequest &aFindRequest)
Definition Editor.cpp:607
static const int cSYMBOL_MARGIN_WIDTH
Definition Editor.hpp:177
virtual void LoadSettings()
Definition Editor.cpp:475
TextSource * GetSource()
Definition Editor.hpp:94
virtual bool ExecutingNonUserAction()
Definition Editor.hpp:104
virtual void BeginNonUserAction()
Definition Editor.hpp:102
void focusInEvent(QFocusEvent *e) override
Definition Editor.cpp:993
void GetLineColumn(const size_t &aOffset, size_t &aLine, size_t &aColumn)
Definition Editor.cpp:670
void FindNextAction()
Definition Editor.cpp:450
std::string GetLineText(const size_t &aLine)
Definition Editor.cpp:665
std::string GetSelectedText()
Definition Editor.cpp:524
Project * GetProject()
Definition Editor.hpp:95
void DeleteLine()
Definition Editor.cpp:413
void PrintFile()
Definition Editor.cpp:401
void FindPreviousAction()
Definition Editor.cpp:455
EditorManager * Manager()
Definition Editor.hpp:163
virtual void UpdateStyle()
Definition Editor.hpp:117
void Initialize()
Definition Editor.cpp:394
bool TextIsSelected()
Definition Editor.cpp:1272
QPoint GetPoint(const size_t aOffset)
Definition Editor.cpp:678
Definition FindTextRequest.hpp:19
A WSF 'project'. Manages WSF sources files in a WSF project.
Definition Project.hpp:66
Definition ScriptDebugger.hpp:25
Definition TextSource.hpp:48