Skip to content

Commit

Permalink
Merge pull request #65 from svlad-90/feature/ISSUE_30
Browse files Browse the repository at this point in the history
[ISSUE #30][GROUPED_VIEW] Add the possibility to mark columns, which should be copied during the copy operation
  • Loading branch information
svlad-90 committed Jul 7, 2020
2 parents 9825bd8 + 7a191f4 commit 342cb3f
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 7 deletions.
61 changes: 55 additions & 6 deletions dltmessageanalyzerplugin/src/groupedView/CGroupedView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,56 @@ CGroupedView::CGroupedView(QWidget *parent):

contextMenu.addSeparator();

{
QMenu* pSubMenu = new QMenu("Copy columns", this);

{
const auto& gorupedViewColumnsCopyPasteMap =
CSettingsManager::getInstance()->getGroupedViewColumnsCopyPasteMap();

for( int i = static_cast<int>(eGroupedViewColumn::SubString);
i < static_cast<int>(eGroupedViewColumn::AfterLastVisible);
++i)
{
auto foundItem = gorupedViewColumnsCopyPasteMap.find(static_cast<eGroupedViewColumn>(i));

if(foundItem != gorupedViewColumnsCopyPasteMap.end())
{
QAction* pAction = new QAction(getName(static_cast<eGroupedViewColumn>(i)), this);
connect(pAction, &QAction::triggered, [i](bool checked)
{
auto groupedViewColumnsCopyPasteMap_ =
CSettingsManager::getInstance()->getGroupedViewColumnsCopyPasteMap();

auto foundItem_ = groupedViewColumnsCopyPasteMap_.find(static_cast<eGroupedViewColumn>(i));

if(foundItem_ != groupedViewColumnsCopyPasteMap_.end()) // if item is in the map
{
foundItem_.value() = checked; // let's update copy paste value
CSettingsManager::getInstance()->setGroupedViewColumnsCopyPasteMap(groupedViewColumnsCopyPasteMap_);
}
});
pAction->setCheckable(true);
pAction->setChecked(foundItem.value());
pSubMenu->addAction(pAction);
}
}
}

contextMenu.addMenu(pSubMenu);
}

{
QAction* pAction = new QAction("Reset copy columns", this);
connect(pAction, &QAction::triggered, []()
{
CSettingsManager::getInstance()->resetGroupedViewColumnsCopyPasteMap();
});
contextMenu.addAction(pAction);
}

contextMenu.addSeparator();

{
auto selectedRows = selectionModel()->selectedRows();

Expand Down Expand Up @@ -481,13 +531,13 @@ void CGroupedView::copyGroupedViewSelection() const

QString finalText;

const auto& visibleColumns = CSettingsManager::getInstance()->getGroupedViewColumnsVisibilityMap();
const auto& copyColumns = CSettingsManager::getInstance()->getGroupedViewColumnsCopyPasteMap();

bool bAnythingToCopy = false;

for(const auto& visibleColumn : visibleColumns)
for(const auto& copyColumn : copyColumns)
{
if(true == visibleColumn)
if(true == copyColumn)
{
bAnythingToCopy = true;
break;
Expand All @@ -504,9 +554,9 @@ void CGroupedView::copyGroupedViewSelection() const
i < static_cast<int>(eGroupedViewColumn::AfterLastVisible);
++i )
{
auto foundVisibleColumn = visibleColumns.find(static_cast<eGroupedViewColumn>(i));
auto foundVisibleColumn = copyColumns.find(static_cast<eGroupedViewColumn>(i));

if(foundVisibleColumn != visibleColumns.end() && true == foundVisibleColumn.value())
if(foundVisibleColumn != copyColumns.end() && true == foundVisibleColumn.value())
{
auto column = index.model()->sibling(index.row(), i, index);

Expand Down Expand Up @@ -559,7 +609,6 @@ void CGroupedView::copyGroupedViewSelection() const
}
}


QClipboard *pClipboard = QApplication::clipboard();
pClipboard->setText(finalText);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -611,7 +611,7 @@ CPatternsView::CPatternsView(QWidget *parent):

if(foundItem_ != patternsColumnsCopyPasteMap_.end()) // if item is in the map
{
foundItem_.value() = checked; // let's update visibility value
foundItem_.value() = checked; // let's update copy paste value
CSettingsManager::getInstance()->setPatternsColumnsCopyPasteMap(patternsColumnsCopyPasteMap_);
}
});
Expand Down
21 changes: 21 additions & 0 deletions dltmessageanalyzerplugin/src/settings/CSettingsManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ static const QString sFilterVariablesKey = "FilterVariables";
static const QString sCaseSensitiveRegex = "caseSensitiveRegex";
static const QString sSelectedRegexFile = "selectedRegexFile";
static const QString sGroupedViewColumnsVisibilityMapKey = "GroupedViewColumnsVisibilityMap";
static const QString sGroupedViewColumnsCopyPasteMapKey = "GroupedViewColumnsCopyPasteMap";

static const tSettingsManagerVersion sDefaultSettingsManagerVersion = static_cast<tSettingsManagerVersion>(-1);
static const tSettingsManagerVersion sCurrentSettingsManagerVersion = 1u; // current version of settings manager used by SW.
Expand Down Expand Up @@ -270,6 +271,10 @@ CSettingsManager::CSettingsManager():
[this](const tGroupedViewColumnsVisibilityMap& data){groupedViewColumnsVisibilityMapChanged(data);},
[this](){tryStoreSettingsConfig();},
sDefaultGroupedViewColumnsVisibilityMap)),
mSetting_GroupedViewColumnsCopyPasteMap(createGroupedViewColumnsVisibilityMapSettingsItem(sGroupedViewColumnsCopyPasteMapKey,
[this](const tGroupedViewColumnsVisibilityMap& data){groupedViewColumnsCopyPasteMapChanged(data);},
[this](){tryStoreSettingsConfig();},
sDefaultGroupedViewColumnsVisibilityMap)),
mRootSettingItemPtrVec(),
mUserSettingItemPtrVec(),
mPatternsSettingItemPtrVec(),
Expand Down Expand Up @@ -302,6 +307,7 @@ CSettingsManager::CSettingsManager():
mUserSettingItemPtrVec.push_back(&mSetting_FilterVariables);
mUserSettingItemPtrVec.push_back(&mSetting_SelectedRegexFile);
mUserSettingItemPtrVec.push_back(&mSetting_GroupedViewColumnsVisibilityMap);
mUserSettingItemPtrVec.push_back(&mSetting_GroupedViewColumnsCopyPasteMap);

/////////////// PATTERNS SETTINGS ///////////////
mPatternsSettingItemPtrVec.push_back(&mSetting_Aliases);
Expand Down Expand Up @@ -1309,6 +1315,11 @@ void CSettingsManager::setGroupedViewColumnsVisibilityMap(const tGroupedViewColu
mSetting_GroupedViewColumnsVisibilityMap.setData(val);
}

void CSettingsManager::setGroupedViewColumnsCopyPasteMap(const tGroupedViewColumnsVisibilityMap& val)
{
mSetting_GroupedViewColumnsCopyPasteMap.setData(val);
}

void CSettingsManager::setSelectedRegexFile(const QString& val)
{
mSetting_SelectedRegexFile.setData(val);
Expand Down Expand Up @@ -1440,6 +1451,11 @@ QString CSettingsManager::getSelectedRegexFile() const
return mSetting_GroupedViewColumnsVisibilityMap.getData();
}

const tGroupedViewColumnsVisibilityMap& CSettingsManager::getGroupedViewColumnsCopyPasteMap() const
{
return mSetting_GroupedViewColumnsCopyPasteMap.getData();
}

QString CSettingsManager::getRegexDirectory() const
{
return QString(".") + QDir::separator() +
Expand Down Expand Up @@ -1690,3 +1706,8 @@ void CSettingsManager::resetGroupedViewColumnsVisibilityMap()
{
setGroupedViewColumnsVisibilityMap(sDefaultGroupedViewColumnsVisibilityMap);
}

void CSettingsManager::resetGroupedViewColumnsCopyPasteMap()
{
setGroupedViewColumnsCopyPasteMap(sDefaultGroupedViewColumnsVisibilityMap);
}
5 changes: 5 additions & 0 deletions dltmessageanalyzerplugin/src/settings/CSettingsManager.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ class CSettingsManager : public QObject
void resetPatternsColumnsCopyPasteMap();
void resetRegexFiltersColumnsVisibilityMap();
void resetGroupedViewColumnsVisibilityMap();
void resetGroupedViewColumnsCopyPasteMap();
QString getRegexDirectory() const;
QString getRegexDirectoryFull() const;
QString getUserSettingsFilepath() const;
Expand Down Expand Up @@ -103,6 +104,7 @@ class CSettingsManager : public QObject
void setRegexFiltersColumnsVisibilityMap(const tRegexFiltersColumnsVisibilityMap& val);
void setFilterVariables(bool val);
void setGroupedViewColumnsVisibilityMap(const tGroupedViewColumnsVisibilityMap& val);
void setGroupedViewColumnsCopyPasteMap(const tGroupedViewColumnsVisibilityMap& val);

/**
* @brief setSelectedRegexFile - updates selected regex file
Expand Down Expand Up @@ -144,6 +146,7 @@ class CSettingsManager : public QObject
bool getFilterVariables() const;
QString getSelectedRegexFile() const;
const tGroupedViewColumnsVisibilityMap& getGroupedViewColumnsVisibilityMap() const;
const tGroupedViewColumnsVisibilityMap& getGroupedViewColumnsCopyPasteMap() const;

////////////////////////NOTIFICATIONS/////////////////////////////

Expand Down Expand Up @@ -179,6 +182,7 @@ class CSettingsManager : public QObject
void filterVariablesChanged(bool filterVariables);
void selectedRegexFileChanged( const QString& regexDirectory );
void groupedViewColumnsVisibilityMapChanged(const tGroupedViewColumnsVisibilityMap& groupedViewColumnsVisibilityMap);
void groupedViewColumnsCopyPasteMapChanged(const tGroupedViewColumnsVisibilityMap& groupedViewColumnsCopyPasteMap);

private: // methods

Expand Down Expand Up @@ -396,6 +400,7 @@ class CSettingsManager : public QObject
TSettingItem<bool> mSetting_FilterVariables;
TSettingItem<QString> mSetting_SelectedRegexFile; // name of the regex file to be used.
TSettingItem<tGroupedViewColumnsVisibilityMap> mSetting_GroupedViewColumnsVisibilityMap;
TSettingItem<tGroupedViewColumnsVisibilityMap> mSetting_GroupedViewColumnsCopyPasteMap;

typedef ISettingItem* tSettingItemPtr;
typedef std::vector<tSettingItemPtr> tSettingItemsPtrVec;
Expand Down

0 comments on commit 342cb3f

Please sign in to comment.