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