39 #ifndef __OPENFLUID_UIWARESDEV_WARESRCFILEEDITOR_HPP__
40 #define __OPENFLUID_UIWARESDEV_WARESRCFILEEDITOR_HPP__
43 #include <QPlainTextEdit>
45 #include <QSignalMapper>
53 #include <openfluid/ui/config.hpp>
56 namespace openfluid {
namespace ui {
namespace waresdev {
59 class WareSrcSyntaxHighlighter;
69 void updateLineNumberAreaWidth();
71 void highlightCurrentLine();
73 void updateLineNumberArea(
const QRect& Rect,
int);
75 void onChanged(
bool Changed);
77 void onInsertRequested(
const QString& Str);
79 void insertCompletion();
81 void onCompletionPopupCurrentRowChanged(
const QModelIndex &Current,
const QModelIndex& Previous);
91 QStringList m_ContentList;
93 QColor Red = QColor(openfluid::ui::config::LINEMARKER_ERRCOLOR);
94 QColor Orange = QColor(openfluid::ui::config::LINEMARKER_WARNCOLOR);
101 m_MajorMarkerType(MsgType)
103 QString Cleared = Content.trimmed();
104 if (!Cleared.isEmpty())
106 m_ContentList.append(Cleared);
115 QColor getColor()
const
129 QString getContent()
const
131 if (m_ContentList.isEmpty())
136 if (m_ContentList.size() == 1)
138 return QString(
"<html>%1</html>").arg(m_ContentList[0]);
141 return QString(
"• %1").arg(m_ContentList.join(
"<br/>• "));
153 m_MajorMarkerType = MsgType;
156 m_ContentList.append(Content.trimmed());
162 #if (QT_VERSION_MAJOR < 6)
163 QRegExp m_SelectionTagsRegExp;
164 QRegExp m_AllTagsRegExp;
165 QRegExp m_WordPartRegExp;
167 QRegularExpression m_SelectionTagsRegExp;
168 QRegularExpression m_AllTagsRegExp;
169 QRegularExpression m_WordPartRegExp;
172 QWidget* mp_LineNumberArea;
175 QColor m_LineNbAreaColor = QColor(
"#F8F8FF");
176 QColor m_LineNbTextColor = QColor(
"#999999");
178 QString m_IndentString;
180 int m_SpaceCharWidth;
184 QSignalMapper* mp_SignalMapper;
186 QMap<QString, QMenu*> m_InsertionMenus;
188 QCompleter* mp_Completer;
190 QMap<QTextBlock, LineMarker> m_LineMarkersByBlock;
192 bool m_ShowLineMarkers =
true;
194 void writeString(
const QString& Str,
int InitialIndentInSpaceNb);
196 void insertNewLine();
198 bool findString(
const QString& StringToFind, QTextDocument::FindFlags Options);
200 bool replaceString(
const QString& StringToFind,
const QString& StringForReplace, Qt::CaseSensitivity Cs);
241 const QString& StringForReplace, QTextDocument::FindFlags Options, QString& Message);
288 QAction* mp_ShowMarkersAction =
nullptr;
305 if (Event->type() == QEvent::ToolTip)
307 QHelpEvent* HelpEvent =
static_cast<QHelpEvent*
>(Event);
310 return QWidget::event(Event);
322 QMenu* Menu =
new QMenu();
323 Menu->addAction(mp_ShowMarkersAction);
324 Menu->exec(Event->globalPos());
334 setStyleSheet(
"QToolTip {min-width:300px;}");
339 mp_ShowMarkersAction->setCheckable(
true);
341 connect(mp_ShowMarkersAction, SIGNAL(triggered(
bool)), mp_Editor, SLOT(setShowLineMarkers(
bool)));
Definition: DefaultAction.hpp:54
QVector< Rule > Rules
Definition: CompletionProvider.hpp:108
FindReplaceAction
Definition: FindReplaceDialog.hpp:68
Definition: WareSrcFileEditor.hpp:281
LineNumberArea(WareSrcFileEditor *Editor)
Definition: WareSrcFileEditor.hpp:331
void paintEvent(QPaintEvent *Event)
Definition: WareSrcFileEditor.hpp:293
QSize sizeHint() const
Definition: WareSrcFileEditor.hpp:349
bool event(QEvent *Event)
Definition: WareSrcFileEditor.hpp:303
void contextMenuEvent(QContextMenuEvent *Event)
Definition: WareSrcFileEditor.hpp:318
Definition: WareFileEditor.hpp:55
Definition: WareSrcFileEditor.hpp:63
int lineNumberAreaWidth()
void saveContentToPath(const QString &Path)
void setShowLineMarkers(bool ShowMarkers)
void contextMenuEvent(QContextMenuEvent *Event)
void editorTxtChanged(WareFileEditor *Editor, bool Changed)
bool getShowLineMarkers()
bool findReplace(FindReplaceDialog::FindReplaceAction Action, const QString &StringToFind, const QString &StringForReplace, QTextDocument::FindFlags Options, QString &Message)
void updateLineNumberArea()
void selectLine(int LineNumber)
void lineNumberAreaPaintEvent(QPaintEvent *Event)
void tooltipEvent(const QPoint &Position)
QString getSelectedText()
void resizeEvent(QResizeEvent *Event)
virtual ~WareSrcFileEditor()
void addLineMessage(WareSrcMsgParser::WareSrcMsg Message)
void keyPressEvent(QKeyEvent *Event)
WareSrcFileEditor(const QString &FilePath, QWidget *Parent=nullptr)
Definition: WareSrcMsgParser.hpp:68
MessageType
Definition: WareSrcMsgParser.hpp:72
Definition: WareSrcSyntaxHighlighter.hpp:55
#define OPENFLUID_API
Definition: dllexport.hpp:86
Definition: ApplicationException.hpp:47