12#ifndef EDITOR_HELPERS_HPP
13#define EDITOR_HELPERS_HPP
22#include "UtCompilerAttributes.hpp"
23class UtTextDocumentRange;
26#include "WkfEnvironment.hpp"
27#include "WkfUnitsObject.hpp"
48namespace EditorHelpers
57 const QString& aAttributeName,
58 const QString& aInsert);
67 const QString& aAttributeName,
68 const QString& aInsert);
91 const QTextCursor& aEndCursor,
92 const QString& aAttributeName,
93 const QString& aDataValue)
noexcept;
100 const QString& aAttributeName,
101 const QString& aDataValue)
noexcept;
109 QTextCursor::MoveMode aMoveMode,
110 int aOperationCount = 1) noexcept;
123 const
vespa::VaPosition& aNewPosition) noexcept;
135template<typename UNITARY_PROPERTY>
136bool ReplaceUnitaryText(QStringList& aUnitaryTokens,
int aCommandIndex, UNITARY_PROPERTY& aNewUnitary) noexcept
138 static_assert(std::is_base_of<UtUnitaryValue<typename UNITARY_PROPERTY::UnitType>, UNITARY_PROPERTY>::value,
139 "UNITARY_PROPERTY must derive from UtUnitaryValue");
150 QString unitaryValueStr;
151 std::string unitaryUnitStr{aUnitaryTokens[unitIndex].toStdString()};
152 if (UtUnitAngle::IsUnitValid(unitaryUnitStr))
155 if (aNewUnitary.ConvertToUnit(unitaryUnitStr))
158 std::ostringstream oss;
160 unitaryValueStr = QString::fromStdString(oss.str());
162 QStringList unitaryValueStrSplit{unitaryValueStr.split(
' ')};
163 if (unitaryValueStrSplit.size() == 2)
166 unitaryValueStr = unitaryValueStrSplit[0];
172 aUnitaryTokens[valueIndex] = unitaryValueStr;
198template<wkf::ValueType UNITARY_TYPE,
typename UNITARY_PROPERTY>
201 static_assert(std::is_base_of<UtUnitaryValue<typename UNITARY_PROPERTY::UnitType>, UNITARY_PROPERTY>::value,
202 "UNITARY_PROPERTY must derive from UtUnitaryValue");
205 int unitaryUnit{wkfEnv.GetPreferenceObject<wkf::UnitsObject>()->GetUnit(UNITARY_TYPE)};
207 aUnitary.ConvertToUnit(unitaryUnit);
209 std::ostringstream oss;
212 return QString::fromStdString(oss.str());
#define VI_EXPORT
Definition ViExport.hpp:38
Definition WsfPProxyNode.hpp:60
static int FindNextValidToken(const QStringList &aList, int aStart)
Definition Editor.cpp:1258
Definition EditorHelpers.hpp:37
bool ReplaceTextInEditor(const UtTextDocumentRange &aEntryRange, const QString &aAttributeName, const QString &aInsert)
Definition EditorHelpers.cpp:113
QTextCursor FindStartCursor(const WsfPProxyNode &aNode) noexcept
Definition EditorHelpers.cpp:167
QString GetInsertWithComments(const UtTextDocumentRange &aEntryRange, const QString &aAttributeName, const QString &aInsert)
Definition EditorHelpers.cpp:41
bool ReplaceUnitaryText(QStringList &aUnitaryTokens, int aCommandIndex, UNITARY_PROPERTY &aNewUnitary) noexcept
Definition EditorHelpers.hpp:136
bool IsWhitespaceString(const QString &aText) noexcept
Definition EditorHelpers.cpp:286
QString ConstructTextToAppendToBlock(const QTextCursor &aStartCursor, const QTextCursor &aEndCursor, const QString &aAttributeName, const QString &aDataValue) noexcept
Definition EditorHelpers.cpp:206
int GetIndentLevel(const QString &aLine) noexcept
Definition EditorHelpers.cpp:194
bool MoveToPreviousNonWhitespaceToken(QTextCursor &aCursor, QTextCursor::MoveMode aMoveMode, int aOperationCount) noexcept
Definition EditorHelpers.cpp:261
bool ReplacePositionText(QStringList &aPositionTokens, int aCommandIndex, const vespa::VaPosition &aNewPosition) noexcept
Definition EditorHelpers.cpp:298
QString GetPositionString(const vespa::VaPosition &aPosition) noexcept
Definition EditorHelpers.cpp:354
QTextCursor FindEndCursor(const WsfPProxyNode &aNode) noexcept
Definition EditorHelpers.cpp:178
QString GetUnitaryString(UNITARY_PROPERTY &aUnitary) noexcept
Definition EditorHelpers.hpp:199
void AddNewAttributeInText(const WsfPProxyNode &aProxyNode, const QString &aAttributeName, const QString &aDataValue) noexcept
Definition EditorHelpers.cpp:228
bool ReplaceMGRS_Text(QStringList &aMGRS_Tokens, int aCommandIndex, const vespa::VaPosition &aNewPosition) noexcept
Definition EditorHelpers.cpp:328
void InsertTextAndResetCursor(wizard::Editor *aEditorPtr, QTextCursor &aCursor, const QString &aTextToInsert) noexcept
Definition EditorHelpers.cpp:347