forked from qt-creator/qt-creator
modeleditor: Remove foreach / Q_FOREACH usage
Task-number: QTCREATORBUG-27464 Change-Id: I252bd537d766a65b8ceb95b32d652f462f89d188 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -168,11 +168,12 @@ void UpdateIncludeDependenciesVisitor::visitMComponent(qmt::MComponent *componen
|
|||||||
CppEditor::CppModelManager *cppModelManager = CppEditor::CppModelManager::instance();
|
CppEditor::CppModelManager *cppModelManager = CppEditor::CppModelManager::instance();
|
||||||
CPlusPlus::Snapshot snapshot = cppModelManager->snapshot();
|
CPlusPlus::Snapshot snapshot = cppModelManager->snapshot();
|
||||||
|
|
||||||
QStringList filePaths = findFilePathOfComponent(component);
|
const QStringList filePaths = findFilePathOfComponent(component);
|
||||||
foreach (const QString &filePath, filePaths) {
|
for (const QString &filePath : filePaths) {
|
||||||
CPlusPlus::Document::Ptr document = snapshot.document(filePath);
|
CPlusPlus::Document::Ptr document = snapshot.document(filePath);
|
||||||
if (document) {
|
if (document) {
|
||||||
foreach (const CPlusPlus::Document::Include &include, document->resolvedIncludes()) {
|
const QList<CPlusPlus::Document::Include> includes = document->resolvedIncludes();
|
||||||
|
for (const CPlusPlus::Document::Include &include : includes) {
|
||||||
QString includeFilePath = include.resolvedFileName();
|
QString includeFilePath = include.resolvedFileName();
|
||||||
// replace proxy header with real one
|
// replace proxy header with real one
|
||||||
CPlusPlus::Document::Ptr includeDocument = snapshot.document(includeFilePath);
|
CPlusPlus::Document::Ptr includeDocument = snapshot.document(includeFilePath);
|
||||||
@@ -214,7 +215,8 @@ QStringList UpdateIncludeDependenciesVisitor::findFilePathOfComponent(const qmt:
|
|||||||
}
|
}
|
||||||
QStringList bestFilePaths;
|
QStringList bestFilePaths;
|
||||||
int maxPathLength = 1;
|
int maxPathLength = 1;
|
||||||
foreach (const Node &node, m_filePaths.values(component->name())) {
|
const QList<Node> nodes = m_filePaths.values(component->name());
|
||||||
|
for (const Node &node : nodes) {
|
||||||
int i = elementPath.size() - 1;
|
int i = elementPath.size() - 1;
|
||||||
int j = node.m_elementPath.size() - 1;
|
int j = node.m_elementPath.size() - 1;
|
||||||
while (i >= 0 && j >= 0 && elementPath.at(i) == node.m_elementPath.at(j)) {
|
while (i >= 0 && j >= 0 && elementPath.at(i) == node.m_elementPath.at(j)) {
|
||||||
@@ -235,14 +237,16 @@ QStringList UpdateIncludeDependenciesVisitor::findFilePathOfComponent(const qmt:
|
|||||||
void UpdateIncludeDependenciesVisitor::collectElementPaths(const ProjectExplorer::FolderNode *folderNode,
|
void UpdateIncludeDependenciesVisitor::collectElementPaths(const ProjectExplorer::FolderNode *folderNode,
|
||||||
QMultiHash<QString, Node> *filePathsMap)
|
QMultiHash<QString, Node> *filePathsMap)
|
||||||
{
|
{
|
||||||
foreach (const ProjectExplorer::FileNode *fileNode, folderNode->fileNodes()) {
|
const QList<ProjectExplorer::FileNode *> fileNodes = folderNode->fileNodes();
|
||||||
|
for (const ProjectExplorer::FileNode *fileNode : fileNodes) {
|
||||||
QString elementName = qmt::NameController::convertFileNameToElementName(fileNode->filePath().toString());
|
QString elementName = qmt::NameController::convertFileNameToElementName(fileNode->filePath().toString());
|
||||||
QFileInfo fileInfo = fileNode->filePath().toFileInfo();
|
QFileInfo fileInfo = fileNode->filePath().toFileInfo();
|
||||||
QString nodePath = fileInfo.path();
|
QString nodePath = fileInfo.path();
|
||||||
QStringList elementsPath = qmt::NameController::buildElementsPath(nodePath, false);
|
QStringList elementsPath = qmt::NameController::buildElementsPath(nodePath, false);
|
||||||
filePathsMap->insert(elementName, Node(fileNode->filePath().toString(), elementsPath));
|
filePathsMap->insert(elementName, Node(fileNode->filePath().toString(), elementsPath));
|
||||||
}
|
}
|
||||||
foreach (const ProjectExplorer::FolderNode *subNode, folderNode->folderNodes())
|
const QList<ProjectExplorer::FolderNode *> subNodes = folderNode->folderNodes();
|
||||||
|
for (const ProjectExplorer::FolderNode *subNode : subNodes)
|
||||||
collectElementPaths(subNode, filePathsMap);
|
collectElementPaths(subNode, filePathsMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -114,9 +114,9 @@ bool ElementTasks::hasClassDefinition(const qmt::MElement *element) const
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
QFutureInterface<Core::LocatorFilterEntry> dummyInterface;
|
QFutureInterface<Core::LocatorFilterEntry> dummyInterface;
|
||||||
QList<Core::LocatorFilterEntry> matches = classesFilter->matchesFor(dummyInterface,
|
const QList<Core::LocatorFilterEntry> matches
|
||||||
qualifiedClassName);
|
= classesFilter->matchesFor(dummyInterface, qualifiedClassName);
|
||||||
foreach (const Core::LocatorFilterEntry &entry, matches) {
|
for (const Core::LocatorFilterEntry &entry : matches) {
|
||||||
CppEditor::IndexItem::Ptr info = qvariant_cast<CppEditor::IndexItem::Ptr>(entry.internalData);
|
CppEditor::IndexItem::Ptr info = qvariant_cast<CppEditor::IndexItem::Ptr>(entry.internalData);
|
||||||
if (info->scopedSymbolName() != qualifiedClassName)
|
if (info->scopedSymbolName() != qualifiedClassName)
|
||||||
continue;
|
continue;
|
||||||
@@ -151,8 +151,9 @@ void ElementTasks::openClassDefinition(const qmt::MElement *element)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
QFutureInterface<Core::LocatorFilterEntry> dummyInterface;
|
QFutureInterface<Core::LocatorFilterEntry> dummyInterface;
|
||||||
QList<Core::LocatorFilterEntry> matches = classesFilter->matchesFor(dummyInterface, qualifiedClassName);
|
const QList<Core::LocatorFilterEntry> matches
|
||||||
foreach (const Core::LocatorFilterEntry &entry, matches) {
|
= classesFilter->matchesFor(dummyInterface, qualifiedClassName);
|
||||||
|
for (const Core::LocatorFilterEntry &entry : matches) {
|
||||||
CppEditor::IndexItem::Ptr info = qvariant_cast<CppEditor::IndexItem::Ptr>(entry.internalData);
|
CppEditor::IndexItem::Ptr info = qvariant_cast<CppEditor::IndexItem::Ptr>(entry.internalData);
|
||||||
if (info->scopedSymbolName() != qualifiedClassName)
|
if (info->scopedSymbolName() != qualifiedClassName)
|
||||||
continue;
|
continue;
|
||||||
|
@@ -745,7 +745,8 @@ void ModelEditor::updateSelectedArea(SelectedArea selectedArea)
|
|||||||
if (hasSelection) {
|
if (hasSelection) {
|
||||||
qmt::DSelection selection = documentController->diagramsManager()->diagramSceneModel(activeDiagram)->selectedElements();
|
qmt::DSelection selection = documentController->diagramsManager()->diagramSceneModel(activeDiagram)->selectedElements();
|
||||||
if (!selection.isEmpty()) {
|
if (!selection.isEmpty()) {
|
||||||
foreach (qmt::DSelection::Index index, selection.indices()) {
|
const QList<qmt::DSelection::Index> indexes = selection.indices();
|
||||||
|
for (qmt::DSelection::Index index : indexes) {
|
||||||
qmt::DElement *diagramElement = documentController->diagramController()->findElement(index.elementKey(), activeDiagram);
|
qmt::DElement *diagramElement = documentController->diagramController()->findElement(index.elementKey(), activeDiagram);
|
||||||
if (diagramElement)
|
if (diagramElement)
|
||||||
propertiesDiagramElements.append(diagramElement);
|
propertiesDiagramElements.append(diagramElement);
|
||||||
@@ -765,9 +766,9 @@ void ModelEditor::updateSelectedArea(SelectedArea selectedArea)
|
|||||||
canPaste = hasSingleSelection && !modelsManager->isModelClipboardEmpty();
|
canPaste = hasSingleSelection && !modelsManager->isModelClipboardEmpty();
|
||||||
canSelectAll = activeDiagram && !activeDiagram->diagramElements().isEmpty();
|
canSelectAll = activeDiagram && !activeDiagram->diagramElements().isEmpty();
|
||||||
canExportDiagram = activeDiagram != nullptr;
|
canExportDiagram = activeDiagram != nullptr;
|
||||||
QModelIndexList indexes = d->modelTreeView->selectedSourceModelIndexes();
|
const QModelIndexList indexes = d->modelTreeView->selectedSourceModelIndexes();
|
||||||
if (!indexes.isEmpty()) {
|
if (!indexes.isEmpty()) {
|
||||||
foreach (const QModelIndex &propertiesIndex, indexes) {
|
for (const QModelIndex &propertiesIndex : indexes) {
|
||||||
if (propertiesIndex.isValid()) {
|
if (propertiesIndex.isValid()) {
|
||||||
qmt::MElement *modelElement = documentController->treeModel()->element(propertiesIndex);
|
qmt::MElement *modelElement = documentController->treeModel()->element(propertiesIndex);
|
||||||
if (modelElement)
|
if (modelElement)
|
||||||
@@ -1065,7 +1066,7 @@ void ModelEditor::initToolbars()
|
|||||||
QList<qmt::Toolbar> toolbars = stereotypeController->toolbars();
|
QList<qmt::Toolbar> toolbars = stereotypeController->toolbars();
|
||||||
std::stable_sort(toolbars.begin(), toolbars.end(),
|
std::stable_sort(toolbars.begin(), toolbars.end(),
|
||||||
[=](const qmt::Toolbar &lhs, const qmt::Toolbar &rhs) { return lhs.priority() > rhs.priority(); });
|
[=](const qmt::Toolbar &lhs, const qmt::Toolbar &rhs) { return lhs.priority() > rhs.priority(); });
|
||||||
foreach (const qmt::Toolbar &toolbar, toolbars) {
|
for (const qmt::Toolbar &toolbar : qAsConst(toolbars)) {
|
||||||
QWidget *toolBar = toolBars.value(toolbar.id());
|
QWidget *toolBar = toolBars.value(toolbar.id());
|
||||||
QLayout *toolBarLayout = nullptr;
|
QLayout *toolBarLayout = nullptr;
|
||||||
if (!toolBar) {
|
if (!toolBar) {
|
||||||
@@ -1081,7 +1082,8 @@ void ModelEditor::initToolbars()
|
|||||||
toolBarLayout = toolBar->layout();
|
toolBarLayout = toolBar->layout();
|
||||||
QMT_ASSERT(toolBarLayout, continue);
|
QMT_ASSERT(toolBarLayout, continue);
|
||||||
}
|
}
|
||||||
foreach (const qmt::Toolbar::Tool &tool, toolbar.tools()) {
|
const QList<qmt::Toolbar::Tool> tools = toolbar.tools();
|
||||||
|
for (const qmt::Toolbar::Tool &tool : tools) {
|
||||||
switch (tool.m_toolType) {
|
switch (tool.m_toolType) {
|
||||||
case qmt::Toolbar::TooltypeTool:
|
case qmt::Toolbar::TooltypeTool:
|
||||||
{
|
{
|
||||||
@@ -1193,7 +1195,7 @@ void ModelEditor::initToolbars()
|
|||||||
|
|
||||||
// add stretch to all layouts and calculate width of tool bar
|
// add stretch to all layouts and calculate width of tool bar
|
||||||
int maxWidth = 48;
|
int maxWidth = 48;
|
||||||
foreach (QWidget *toolBar, toolBars) {
|
for (QWidget *toolBar : qAsConst(toolBars)) {
|
||||||
QMT_ASSERT(toolBar, continue);
|
QMT_ASSERT(toolBar, continue);
|
||||||
auto layout = qobject_cast<QBoxLayout *>(toolBar->layout());
|
auto layout = qobject_cast<QBoxLayout *>(toolBar->layout());
|
||||||
QMT_ASSERT(layout, continue);
|
QMT_ASSERT(layout, continue);
|
||||||
@@ -1442,13 +1444,14 @@ void ModelEditor::synchronizeDiagramWithBrowser()
|
|||||||
if (currentDiagram()) {
|
if (currentDiagram()) {
|
||||||
bool done = false;
|
bool done = false;
|
||||||
qmt::DocumentController *documentController = d->document->documentController();
|
qmt::DocumentController *documentController = d->document->documentController();
|
||||||
QModelIndexList indexes = d->modelTreeView->selectedSourceModelIndexes();
|
const QModelIndexList indexes = d->modelTreeView->selectedSourceModelIndexes();
|
||||||
if (!indexes.isEmpty()) {
|
if (!indexes.isEmpty()) {
|
||||||
foreach (const QModelIndex &index, indexes) {
|
for (const QModelIndex &index : indexes) {
|
||||||
if (index.isValid()) {
|
if (index.isValid()) {
|
||||||
qmt::MElement *modelElement = documentController->treeModel()->element(index);
|
qmt::MElement *modelElement = documentController->treeModel()->element(index);
|
||||||
if (modelElement) {
|
if (modelElement) {
|
||||||
foreach (qmt::DElement *diagramElement, currentDiagram()->diagramElements()) {
|
const QList<qmt::DElement *> diagramElements = currentDiagram()->diagramElements();
|
||||||
|
for (qmt::DElement *diagramElement : diagramElements) {
|
||||||
if (diagramElement->modelUid() == modelElement->uid()) {
|
if (diagramElement->modelUid() == modelElement->uid()) {
|
||||||
// disconnect temporarily avoiding double update of properties Ui
|
// disconnect temporarily avoiding double update of properties Ui
|
||||||
disconnect(documentController->diagramsManager(), &qmt::DiagramsManager::diagramSelectionChanged,
|
disconnect(documentController->diagramsManager(), &qmt::DiagramsManager::diagramSelectionChanged,
|
||||||
@@ -1479,7 +1482,8 @@ void ModelEditor::synchronizeBrowserWithDiagram(const qmt::MDiagram *diagram)
|
|||||||
qmt::DocumentController *documentController = d->document->documentController();
|
qmt::DocumentController *documentController = d->document->documentController();
|
||||||
qmt::DSelection selection = documentController->diagramsManager()->diagramSceneModel(diagram)->selectedElements();
|
qmt::DSelection selection = documentController->diagramsManager()->diagramSceneModel(diagram)->selectedElements();
|
||||||
if (!selection.isEmpty()) {
|
if (!selection.isEmpty()) {
|
||||||
foreach (qmt::DSelection::Index index, selection.indices()) {
|
const QList<qmt::DSelection::Index> indexes = selection.indices();
|
||||||
|
for (qmt::DSelection::Index index : indexes) {
|
||||||
qmt::DElement *diagramElement = documentController->diagramController()->findElement(index.elementKey(), diagram);
|
qmt::DElement *diagramElement = documentController->diagramController()->findElement(index.elementKey(), diagram);
|
||||||
if (diagramElement) {
|
if (diagramElement) {
|
||||||
qmt::MElement *modelElement = documentController->modelController()->findElement(diagramElement->modelUid());
|
qmt::MElement *modelElement = documentController->modelController()->findElement(diagramElement->modelUid());
|
||||||
|
@@ -431,13 +431,15 @@ void ModelIndexer::scanProject(ProjectExplorer::Project *project)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// remove deleted files from indexed models
|
// remove deleted files from indexed models
|
||||||
foreach (const QString &file, d->indexedModels.keys()) {
|
const QStringList files = d->indexedModels.keys();
|
||||||
|
for (const QString &file : files) {
|
||||||
if (!filesSet.contains(QueuedFile(file, project)))
|
if (!filesSet.contains(QueuedFile(file, project)))
|
||||||
removeModelFile(file, project);
|
removeModelFile(file, project);
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove deleted files from indexed diagrams
|
// remove deleted files from indexed diagrams
|
||||||
foreach (const QString &file, d->indexedDiagramReferences.keys()) {
|
const QStringList deletedFiles = d->indexedDiagramReferences.keys();
|
||||||
|
for (const QString &file : deletedFiles) {
|
||||||
if (!filesSet.contains(QueuedFile(file, project)))
|
if (!filesSet.contains(QueuedFile(file, project)))
|
||||||
removeDiagramReferenceFile(file, project);
|
removeDiagramReferenceFile(file, project);
|
||||||
}
|
}
|
||||||
@@ -468,11 +470,13 @@ QString ModelIndexer::findFirstModel(ProjectExplorer::FolderNode *folderNode,
|
|||||||
{
|
{
|
||||||
if (!mimeType.isValid())
|
if (!mimeType.isValid())
|
||||||
return QString();
|
return QString();
|
||||||
foreach (ProjectExplorer::FileNode *fileNode, folderNode->fileNodes()) {
|
const QList<ProjectExplorer::FileNode *> fileNodes = folderNode->fileNodes();
|
||||||
|
for (const ProjectExplorer::FileNode *fileNode : fileNodes) {
|
||||||
if (mimeType.suffixes().contains(fileNode->filePath().completeSuffix()))
|
if (mimeType.suffixes().contains(fileNode->filePath().completeSuffix()))
|
||||||
return fileNode->filePath().toString();
|
return fileNode->filePath().toString();
|
||||||
}
|
}
|
||||||
foreach (ProjectExplorer::FolderNode *subFolderNode, folderNode->folderNodes()) {
|
const QList<ProjectExplorer::FolderNode *> subFolderNodes = folderNode->folderNodes();
|
||||||
|
for (ProjectExplorer::FolderNode *subFolderNode : subFolderNodes) {
|
||||||
QString modelFileName = findFirstModel(subFolderNode, mimeType);
|
QString modelFileName = findFirstModel(subFolderNode, mimeType);
|
||||||
if (!modelFileName.isEmpty())
|
if (!modelFileName.isEmpty())
|
||||||
return modelFileName;
|
return modelFileName;
|
||||||
|
@@ -167,7 +167,7 @@ void ModelsManager::releaseModel(ExtDocumentController *documentController)
|
|||||||
|
|
||||||
void ModelsManager::openDiagram(const qmt::Uid &modelUid, const qmt::Uid &diagramUid)
|
void ModelsManager::openDiagram(const qmt::Uid &modelUid, const qmt::Uid &diagramUid)
|
||||||
{
|
{
|
||||||
foreach (const ManagedModel &managedModel, d->managedModels) {
|
for (const ManagedModel &managedModel : qAsConst(d->managedModels)) {
|
||||||
if (managedModel.m_documentController->projectController()->project()->uid() == modelUid) {
|
if (managedModel.m_documentController->projectController()->project()->uid() == modelUid) {
|
||||||
qmt::MDiagram *diagram = managedModel.m_documentController->modelController()->findObject<qmt::MDiagram>(diagramUid);
|
qmt::MDiagram *diagram = managedModel.m_documentController->modelController()->findObject<qmt::MDiagram>(diagramUid);
|
||||||
QMT_ASSERT(diagram, continue);
|
QMT_ASSERT(diagram, continue);
|
||||||
@@ -230,7 +230,7 @@ void ModelsManager::onAboutToShowContextMenu(ProjectExplorer::Node *node)
|
|||||||
{
|
{
|
||||||
bool canOpenDiagram = false;
|
bool canOpenDiagram = false;
|
||||||
|
|
||||||
foreach (const ManagedModel &managedModel, d->managedModels) {
|
for (const ManagedModel &managedModel : qAsConst(d->managedModels)) {
|
||||||
if (managedModel.m_documentController->pxNodeController()->hasDiagramForExplorerNode(node)) {
|
if (managedModel.m_documentController->pxNodeController()->hasDiagramForExplorerNode(node)) {
|
||||||
canOpenDiagram = true;
|
canOpenDiagram = true;
|
||||||
break;
|
break;
|
||||||
@@ -248,7 +248,7 @@ void ModelsManager::onOpenDiagramFromProjectExplorer()
|
|||||||
{
|
{
|
||||||
if (ProjectExplorer::ProjectTree::currentNode() == d->contextMenuOwnerNode) {
|
if (ProjectExplorer::ProjectTree::currentNode() == d->contextMenuOwnerNode) {
|
||||||
qmt::MDiagram *diagram = nullptr;
|
qmt::MDiagram *diagram = nullptr;
|
||||||
foreach (const ManagedModel &managedModel, d->managedModels) {
|
for (const ManagedModel &managedModel : qAsConst(d->managedModels)) {
|
||||||
if ((diagram = managedModel.m_documentController->pxNodeController()->findDiagramForExplorerNode(d->contextMenuOwnerNode))) {
|
if ((diagram = managedModel.m_documentController->pxNodeController()->findDiagramForExplorerNode(d->contextMenuOwnerNode))) {
|
||||||
openDiagram(managedModel.m_documentController, diagram);
|
openDiagram(managedModel.m_documentController, diagram);
|
||||||
break;
|
break;
|
||||||
@@ -267,7 +267,7 @@ void ModelsManager::onOpenDefaultModel(const qmt::Uid &modelUid)
|
|||||||
void ModelsManager::openDiagram(ExtDocumentController *documentController,
|
void ModelsManager::openDiagram(ExtDocumentController *documentController,
|
||||||
qmt::MDiagram *diagram)
|
qmt::MDiagram *diagram)
|
||||||
{
|
{
|
||||||
foreach (const ManagedModel &managedModel, d->managedModels) {
|
for (const ManagedModel &managedModel : qAsConst(d->managedModels)) {
|
||||||
if (managedModel.m_documentController == documentController) {
|
if (managedModel.m_documentController == documentController) {
|
||||||
Core::IEditor *editor = Core::EditorManager::activateEditorForDocument(managedModel.m_modelDocument);
|
Core::IEditor *editor = Core::EditorManager::activateEditorForDocument(managedModel.m_modelDocument);
|
||||||
if (auto modelEditor = qobject_cast<ModelEditor *>(editor)) {
|
if (auto modelEditor = qobject_cast<ModelEditor *>(editor)) {
|
||||||
|
@@ -74,7 +74,7 @@ bool ModelUtilities::haveDependency(const qmt::MObject *source,
|
|||||||
bool ModelUtilities::haveDependency(const qmt::MObject *source,
|
bool ModelUtilities::haveDependency(const qmt::MObject *source,
|
||||||
const QList<qmt::MPackage *> &targets)
|
const QList<qmt::MPackage *> &targets)
|
||||||
{
|
{
|
||||||
foreach (const qmt::MPackage *target, targets) {
|
for (const qmt::MPackage *target : targets) {
|
||||||
if (haveDependency(source, target))
|
if (haveDependency(source, target))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -156,11 +156,12 @@ void PxNodeController::addFileSystemEntry(const QString &filePath, int line, int
|
|||||||
auto menu = new QMenu;
|
auto menu = new QMenu;
|
||||||
menu->addAction(new MenuAction(tr("Add Component %1").arg(elementName), elementName,
|
menu->addAction(new MenuAction(tr("Add Component %1").arg(elementName), elementName,
|
||||||
MenuAction::TYPE_ADD_COMPONENT, menu));
|
MenuAction::TYPE_ADD_COMPONENT, menu));
|
||||||
QStringList classNames = Utils::toList(d->classViewController->findClassDeclarations(filePath, line, column));
|
const QStringList classNames = Utils::toList(
|
||||||
|
d->classViewController->findClassDeclarations(filePath, line, column));
|
||||||
if (!classNames.empty()) {
|
if (!classNames.empty()) {
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
int index = 0;
|
int index = 0;
|
||||||
foreach (const QString &className, classNames) {
|
for (const QString &className : classNames) {
|
||||||
auto action = new MenuAction(tr("Add Class %1").arg(className), elementName,
|
auto action = new MenuAction(tr("Add Class %1").arg(className), elementName,
|
||||||
MenuAction::TYPE_ADD_CLASS, index, menu);
|
MenuAction::TYPE_ADD_CLASS, index, menu);
|
||||||
action->className = className;
|
action->className = className;
|
||||||
|
Reference in New Issue
Block a user