@@ -20,6 +20,7 @@ Highlighter::Highlighter(QWidget *parent):
2020{
2121 setupUi ();
2222 mFilter = QSharedPointer<LogFilter>(new LogFilter ());
23+ emit logFilterChanged (mFilter );
2324 connect (mJsonEdit , &JsonTextEdit::updated, this , &Highlighter::onJsonObjectUpdated);
2425 initDir ();
2526 initFSWatcher ();
@@ -55,14 +56,15 @@ void Highlighter::setupUi()
5556 mRootWidget ->setLayout (mMainLayout );
5657 setWidget (mRootWidget );
5758
58- setTabWidth (4 );
59-
6059 connect (mNewButton , &QToolButton::clicked, this , &Highlighter::onNewButtonClicked);
6160 connect (mDelButton , &QToolButton::clicked, this , &Highlighter::onDelButtonClicked);
6261 connect (mSaveButton , &QToolButton::clicked, this , &Highlighter::onSaveButtonClicked);
6362 connect (mRuleBox , &QComboBox::currentTextChanged, this , &Highlighter::onRuleSelectedChanged);
6463 connect (mRuleBox , QOverload<int >::of (&QComboBox::currentIndexChanged), this , &Highlighter::onRulesBoxIndexChanged);
6564 connect (mHighlightButton , &QToolButton::clicked, this , &Highlighter::onHighlightButtonClicked);
65+ connect (mJsonEdit , &JsonTextEdit::edittingCompleted, this , &Highlighter::onJsonEdittingCompleted);
66+ connect (mFindNxtButton , &QPushButton::clicked, this , &Highlighter::onFindNexClicked);
67+ connect (mFindPreButton , &QPushButton::clicked, this , &Highlighter::onFindPreClicked);
6668}
6769
6870void Highlighter::initDir ()
@@ -92,12 +94,6 @@ void Highlighter::initFSWatcher()
9294 this , &Highlighter::onRulesDirChanged);
9395}
9496
95- void Highlighter::setTabWidth (int nspace)
96- {
97- QFontMetrics metrics (mJsonEdit ->font ());
98- mJsonEdit ->setTabStopDistance (nspace * metrics.width (' ' ));
99- }
100-
10197QSharedPointer<AbstractLineFilter> Highlighter::logHighlighter ()
10298{
10399 return mFilter ;
@@ -107,6 +103,12 @@ void Highlighter::onJsonObjectUpdated(const QJsonObject &jsonObject)
107103{
108104 mFilter ->clearRule ();
109105
106+ if (jsonObject.isEmpty ()) {
107+ LogUtil::i (TAG, " empty jsonObject" );
108+ mFilter ->update ();
109+ return ;
110+ }
111+
110112 // traverse every rules
111113 foreach (const QString &ruleName, jsonObject.keys ()) {
112114 QJsonValue value = jsonObject.value (ruleName);
@@ -313,4 +315,34 @@ void Highlighter::saveAsRuleFile(const QString &fileName, const QString &content
313315void Highlighter::onHighlightButtonClicked ()
314316{
315317 LogUtil::i (TAG, " onHighlightButtonClicked" );
318+ emit logHighlighterTriggered ();
319+ }
320+
321+ void Highlighter::onJsonEdittingCompleted ()
322+ {
323+ LogUtil::i (TAG, " onJsonEdittingCompleted" );
324+ emit logHighlighterTriggered ();
325+ }
326+
327+ void Highlighter::onFindNexClicked ()
328+ {
329+ QString comboPattern = mFilter ->comboVisiblePattern ();
330+
331+ if (comboPattern.isNull ()) return ;
332+
333+ emit findTriggered (comboPattern,
334+ QTextDocument::FindFlag::FindCaseSensitively,
335+ true );
336+ }
337+
338+ void Highlighter::onFindPreClicked ()
339+ {
340+ QString comboPattern = mFilter ->comboVisiblePattern ();
341+
342+ if (comboPattern.isNull ()) return ;
343+
344+ emit findTriggered (comboPattern,
345+ QTextDocument::FindFlag::FindCaseSensitively
346+ |QTextDocument::FindFlag::FindBackward,
347+ true );
316348}
0 commit comments