Skip to content

Commit

Permalink
Merge pull request #209 from svlad-90/dev/vladyslav-goncharuk/ISSUE-26
Browse files Browse the repository at this point in the history
[ISSUE #26][SEARCH] Add the history of used regexp-s
  • Loading branch information
svlad-90 authored Sep 9, 2024
2 parents 50ec84e + ae19d54 commit 40de764
Show file tree
Hide file tree
Showing 139 changed files with 4,824 additions and 406 deletions.
10 changes: 9 additions & 1 deletion dltmessageanalyzerplugin/src/common/Definitions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3603,6 +3603,8 @@ PUML_PACKAGE_BEGIN(DLT)
PUML_CLASS_END()
PUML_CLASS_BEGIN(QDltMsg)
PUML_CLASS_END()
PUML_CLASS_BEGIN(QListView)
PUML_CLASS_END()
PUML_PACKAGE_END()

PUML_PACKAGE_BEGIN(qcustomplot)
Expand All @@ -3612,9 +3614,15 @@ PUML_PACKAGE_BEGIN(qcustomplot)
PUML_CLASS_BEGIN(QCPLegend)
PUML_INHERITANCE(QObject, extends)
PUML_CLASS_END()
PUML_CLASS_BEGIN(QCPAxisRect)
PUML_CLASS_BEGIN(QCPAxis)
PUML_INHERITANCE(QCPLayerable, extends)
PUML_CLASS_END()
PUML_CLASS_BEGIN(QCPLayerable)
PUML_INHERITANCE(QObject, extends)
PUML_CLASS_END()
PUML_CLASS_BEGIN(QCPAxisRect)
PUML_INHERITANCE(QObject, extends)
PUML_CLASS_END()
PUML_CLASS_BEGIN(QCPGraph)
PUML_INHERITANCE(QObject, extends)
PUML_CLASS_END()
Expand Down
1 change: 1 addition & 0 deletions dltmessageanalyzerplugin/src/components/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ DMA_add_subdirectory_with_clang_tidy(logsWrapper)
DMA_add_subdirectory_with_clang_tidy(patternsView)
DMA_add_subdirectory_with_clang_tidy(plant_uml)
DMA_add_subdirectory_with_clang_tidy(plotView)
DMA_add_subdirectory_with_clang_tidy(regexHistory)
DMA_add_subdirectory_with_clang_tidy(searchView)
DMA_add_subdirectory_with_clang_tidy(settings)
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ struct tRequestParameters
tRequestParameters();

/**
* @param pClient - client, which should be notified about the progress
* @param pFile - file, which is used for analysis
* @param fromMessage - from which message to analyze
* @param numberOfMessages - until which message to analyze
* @param regex - regex, to be used for analysis
* @param numberOfThreads - number of threads to be used for analysis
* @param regexScriptingMetadata - scripting metadata
* @param isContinuous - whether search is continuous. This parameter can be ignored by one-shot implementations
* @param isContinuous - whether search is continuous. This parameter
* can be ignored by one-shot implementations
* @param searchColumns - the seaarch columns visibility map
* @param regexStr - regex string that was queried for the search
* @param selectedAliases - the selected alises that were used to form a regex
*/
tRequestParameters(
const tFileWrapperPtr& pFile_,
Expand All @@ -29,7 +31,9 @@ struct tRequestParameters
const QRegularExpression& regex_,
const int& numberOfThreads_,
bool isContinuous_,
const tSearchResultColumnsVisibilityMap& searchColumns_);
const tSearchResultColumnsVisibilityMap& searchColumns_,
const QString& regexStr_,
const QStringList& selectedAliases_);

tFileWrapperPtr pFile;
int fromMessage;
Expand All @@ -38,6 +42,8 @@ struct tRequestParameters
int numberOfThreads;
bool isContinuous;
tSearchResultColumnsVisibilityMap searchColumns;
QString regexStr;
QStringList selectedAliases;
};

Q_DECLARE_METATYPE(tRequestParameters)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,14 @@ class IDLTMessageAnalyzerController: public QObject
* Client might not remember about this fact, so we provide this information back to the client, to simplify the client's logic.
*/
void progressNotification( const tProgressNotificationData& progressNotificationData );

/**
* @brief analysisStarted - signal, which notifies client about the start of the analysis.
* @param requestId - the request id of the search
* @param usedRegex - the regex with which the anlysis was started
* @oaram selectedAliases - the selected regex alises that were used to form the search query
*/
void analysisStarted( const tRequestId& requestId, const QString& usedRegex, const QStringList& selectedAliases );
};

typedef std::shared_ptr<IDLTMessageAnalyzerController> tDLTMessageAnalyzerControllerPtr;
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,9 @@ tRequestId CContinuousAnalyzer::requestAnalyze( const std::weak_ptr<IDLTMessageA
requestParameters.regex,
requestParameters.numberOfThreads,
regexScriptingMetadata,
requestParameters.searchColumns );
requestParameters.searchColumns,
requestParameters.regexStr,
requestParameters.selectedAliases);
requestData.fromMessage = requestParameters.fromMessage;
requestData.toMessage = requestParameters.fromMessage + requestParameters.numberOfMessages;

Expand Down Expand Up @@ -263,7 +265,9 @@ void CContinuousAnalyzer::triggerContinuousAnalysisIteration(const tRequestDataM
inputIt->regex,
inputIt->numberOfThreads,
inputIt->bIsContinuousAnalysis,
inputIt->searchColumns
inputIt->searchColumns,
inputIt->regexStr,
inputIt->selectedAlises
);

tRequestId subRequestId = mpSubAnalyzer->requestAnalyze(mpSubConsumer,
Expand Down Expand Up @@ -340,7 +344,9 @@ CContinuousAnalyzer::tRequestData::tRequestData(const tRequestId& requestId_,
const QRegularExpression& regex_,
const int& numberOfThreads_,
const tRegexScriptingMetadata& regexScriptingMetadata_,
const tSearchResultColumnsVisibilityMap& searchColumns_): requestId(requestId_),
const tSearchResultColumnsVisibilityMap& searchColumns_,
const QString& regexStr_,
const QStringList& selectedAlises_): requestId(requestId_),
pClient(pClient_),
subRequestId(subRequestId_),
bIsContinuousAnalysis(bIsContinuousAnalysis_),
Expand All @@ -351,7 +357,9 @@ CContinuousAnalyzer::tRequestData::tRequestData(const tRequestId& requestId_,
regexScriptingMetadata(regexScriptingMetadata_),
numberOfThreads(numberOfThreads_),
bContinuousModeActive(false),
searchColumns(searchColumns_)
searchColumns(searchColumns_),
regexStr(regexStr_),
selectedAlises(selectedAlises_)
{}

PUML_PACKAGE_BEGIN(DMA_Analyzer)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ class CContinuousAnalyzer : public IDLTMessageAnalyzerController
const QRegularExpression& regex_,
const int& numberOfThreads_,
const tRegexScriptingMetadata& regexScriptingMetadata_,
const tSearchResultColumnsVisibilityMap& searchColumns_);
const tSearchResultColumnsVisibilityMap& searchColumns_,
const QString& regexStr_,
const QStringList& selectedAlises_);
tRequestId requestId;
std::weak_ptr<IDLTMessageAnalyzerControllerConsumer> pClient;
tRequestId subRequestId;
Expand All @@ -94,6 +96,8 @@ class CContinuousAnalyzer : public IDLTMessageAnalyzerController
int numberOfThreads;
bool bContinuousModeActive;
tSearchResultColumnsVisibilityMap searchColumns;
QString regexStr;
QStringList selectedAlises;
};

tRequestDataMap mRequestDataMap;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ mColors()
qRegisterMetaType<tAnalyzePortionData>("tAnalyzePortionData");

connect( getSettingsManager().get(), &ISettingsManager::searchResultHighlightingGradientChanged,
[this]( const tHighlightingGradient& gradient )
this, [this]( const tHighlightingGradient& gradient )
{
mColors = generateColors(gradient);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ tRequestId CMTAnalyzer::requestAnalyze( const std::weak_ptr<IDLTMessageAnalyzerC
requestParameters.regex,
regexScriptingMetadata,
requestParameters.numberOfThreads,
requestParameters.searchColumns);
requestParameters.searchColumns,
requestParameters.regexStr,
requestParameters.selectedAliases);

if(0 != requestData.numberOfMessagesToBeAnalyzed)
{
Expand Down Expand Up @@ -470,7 +472,9 @@ CMTAnalyzer::tRequestData::tRequestData( const std::weak_ptr<IDLTMessageAnalyzer
const QRegularExpression& regex_,
const tRegexScriptingMetadata& regexScriptingMetadata_,
const int& numberOfThreads_,
const tSearchResultColumnsVisibilityMap& searchColumns_):
const tSearchResultColumnsVisibilityMap& searchColumns_,
const QString& regexStr_,
const QStringList& selectedLiases_):
pClient(pClient_),
pFile(pFile_),
requestedRegexMatches(0),
Expand All @@ -480,6 +484,8 @@ CMTAnalyzer::tRequestData::tRequestData( const std::weak_ptr<IDLTMessageAnalyzer
regexScriptingMetadata(regexScriptingMetadata_),
numberOfThreads(numberOfThreads_),
searchColumns(searchColumns_),
regexStr(regexStr_),
selectedLiases(selectedLiases_),
fromMessage(fromMessage_),
workerThreadCookieCounter(0),
bUML_Req_Res_Ev_DuplicateFound(false),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ private slots:
const QRegularExpression& regex_,
const tRegexScriptingMetadata& regexScriptingMetadata_,
const int& numberOfThreads_,
const tSearchResultColumnsVisibilityMap& searchColumns_);
const tSearchResultColumnsVisibilityMap& searchColumns_,
const QString& regexStr_,
const QStringList& selectedLiases_);
std::weak_ptr<IDLTMessageAnalyzerControllerConsumer> pClient;
tFileWrapperPtr pFile; // file, which should be analyzed
int requestedRegexMatches; // number of strings, which were requested to be analyzed from the regex analyzer thread
Expand All @@ -62,6 +64,8 @@ private slots:
tRegexScriptingMetadata regexScriptingMetadata;
int numberOfThreads; // number of threads, to be used for analysis
tSearchResultColumnsVisibilityMap searchColumns; // columns in which we search for the match.
QString regexStr; // the string using which the 'regex' field was creted
QStringList selectedLiases; // the regex aliasaes that were used to form the query
int fromMessage; // from which message to start analysis
tWorkerThreadCookie workerThreadCookieCounter;
bool bUML_Req_Res_Ev_DuplicateFound = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ numberOfMessages(0),
regex(),
numberOfThreads(0),
isContinuous(false),
searchColumns()
searchColumns(),
regexStr(),
selectedAliases()
{
}

Expand All @@ -18,14 +20,18 @@ const int& numberOfMessages_,
const QRegularExpression& regex_,
const int& numberOfThreads_,
bool isContinuous_,
const tSearchResultColumnsVisibilityMap& searchColumns_):
const tSearchResultColumnsVisibilityMap& searchColumns_,
const QString& regexStr_,
const QStringList& selectedAliases_):
pFile(pFile_),
fromMessage(fromMessage_),
numberOfMessages(numberOfMessages_),
regex(regex_),
numberOfThreads(numberOfThreads_),
isContinuous(isContinuous_),
searchColumns(searchColumns_)
searchColumns(searchColumns_),
regexStr(regexStr_),
selectedAliases(selectedAliases_)
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ tRequestId IDLTMessageAnalyzerControllerConsumer::requestAnalyze( const tRequest
}

requestId = mpController.lock()->requestAnalyze(shared_from_this(), requestParameters, regexMetadata);
mpController.lock()->analysisStarted(requestId, requestParameters.regexStr, requestParameters.selectedAliases);
mbGroupedViewFeatureActiveForCurrentAnalysis = bGroupedViewFeatureActive;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ class CRegexLineEdit : public QLineEdit
//SEND_MSG(QString("%1").arg(__FUNCTION__));
tParent::focusInEvent(event);

//disconnect(completer(), SIGNAL(QCompleter::activated(QString)), this, SLOT(QLineEdit::setText));
if(nullptr != completer())
{
//SEND_MSG(QString("%1 completer not nullptr").arg(__FUNCTION__));
Expand Down Expand Up @@ -168,7 +167,7 @@ void CFilterItemDelegate::updateSuggestions(const QString& input)

if(true == parentIndex.isValid()) //if parent index is valid
{
if(1 == mpModel->rowCount(parentIndex)) // if parent haas only 1 child
if(1 == mpModel->rowCount(parentIndex)) // if parent has only 1 child
{
auto parentRowType = parentIndex.sibling(parentIndex.row(), static_cast<int>(eRegexFiltersColumn::RowType)).data().value<eRegexFiltersRowType>();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ CFiltersModel::CFiltersModel(const tSettingsManagerPtr& pSettingsManager,
};

connect(getSettingsManager().get(), &ISettingsManager::filterVariablesChanged,
[this](bool)
this, [this](bool)
{
filterRegexTokensInternal();
});
Expand Down Expand Up @@ -774,12 +774,12 @@ QStringList CFiltersModel::getCompletionData( const int& groupIndex,
{
int numberOfSuggestions = 0;

auto caseSensitiveOption = getSettingsManager()->getFiltersCompletion_CaseSensitive() ?
Qt::CaseSensitive :
Qt::CaseInsensitive;

for(const auto& completionItem : foundCompletionSet->second)
{
auto caseSensitiveOption = getSettingsManager()->getFiltersCompletion_CaseSensitive() ?
Qt::CaseSensitive :
Qt::CaseInsensitive;

bool bStringFound = false;

if(false == getSettingsManager()->getFiltersCompletion_SearchPolicy())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -394,8 +394,6 @@ void CFiltersView::handleSettingsManagerChange()
{
QMenu* pSubMenu = new QMenu("Completion settings", this);

// TSettingItem<bool> mSetting_FiltersCompletion_SearchPolicy; // 0 - startWith; 1 - contains

{
QAction* pAction = new QAction("Case sensitive", this);
connect(pAction, &QAction::triggered, [this](bool checked)
Expand Down Expand Up @@ -545,7 +543,7 @@ void CFiltersView::handleSettingsManagerChange()

connect( getSettingsManager().get(),
&ISettingsManager::regexFiltersColumnsVisibilityMapChanged,
[this](const tRegexFiltersColumnsVisibilityMap&)
this, [this](const tRegexFiltersColumnsVisibilityMap&)
{
updateColumnsVisibility();
updateWidth();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ void CGroupedView::handleSettingsManagerChange()
{
connect( getSettingsManager().get(),
&ISettingsManager::groupedViewColumnsVisibilityMapChanged,
[this](const tGroupedViewColumnsVisibilityMap&)
this, [this](const tGroupedViewColumnsVisibilityMap&)
{
updateColumnsVisibility();
updateWidth();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public slots:
void applyPatternsCombination();

signals:
void patternSelected( const QString& regexCandidate );
void patternSelected( const QString& regexCandidate, const QStringList& selectedAliases );
void deletePatternTriggered();
void editPatternTriggered();
void overwriteFromInputFieldTriggered();
Expand All @@ -71,7 +71,7 @@ public slots:

private: // methods
void setModel(QAbstractItemModel *model) override;
QString createCombinedRegex();
QString createCombinedRegex(QStringList& selectedAliases);
void updateColumnsVisibility();
void copySelectedRow();
void pasteSelectedRow();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ class IPatternsModel : public QAbstractItemModel
QModelIndex foundIdx;
};
/**
* @brief search - searches pattern by irs alias
* @brief search - searches pattern by its alias
* @param alias - alias to be searched
* @return - instance of tSearchResult, which provides result status of the search
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -838,9 +838,9 @@ void CPatternsModel::updatePatternsInPersistency()
{
if(nullptr != mpRootItem)
{
ISettingsManager::tAliasItemVec aliasVec;
ISettingsManager::tAliasItemMap aliasMap;

auto preVisitFunction = [&aliasVec](const tTreeItem* pItem)
auto preVisitFunction = [&aliasMap](const tTreeItem* pItem)
{
if(nullptr != pItem)
{
Expand All @@ -858,7 +858,7 @@ void CPatternsModel::updatePatternsInPersistency()
const QString& alias = pItem->data(static_cast<int>(ePatternsColumn::Alias)).get<QString>();

ISettingsManager::tAliasItem aliasItem(isDefault == Qt::Checked, alias, regex);
aliasVec.push_back(aliasItem);
aliasMap.insert(alias, aliasItem);
}
}
}
Expand All @@ -869,10 +869,10 @@ void CPatternsModel::updatePatternsInPersistency()
mpRootItem->visit(preVisitFunction, CTreeItem::tVisitFunction(), false);

// if something has changed
if(aliasVec != getSettingsManager()->getAliases())
if(aliasMap != getSettingsManager()->getAliases())
{
// let's update them in the persistency
getSettingsManager()->setAliases( aliasVec );
getSettingsManager()->setAliases( aliasMap );
}
}
}
Expand Down
Loading

0 comments on commit 40de764

Please sign in to comment.