void AddTabDesignerAction::addNewTab() { QString tabName = AddTabToTabViewDialog::create(QStringLiteral("Tab"), Core::ICore::mainWindow()); if (!tabName.isEmpty()) { QString directoryPath = QFileInfo(selectionContext().view()->model()->fileUrl().toLocalFile()).absolutePath(); QString newFilePath = directoryPath +QStringLiteral("/") + tabName + QStringLiteral(".qml"); if (QFileInfo::exists(newFilePath)) { Core::AsynchronousMessageBox::warning(tr("Naming Error"), tr("Component already exists.")); } else { const QString sourceString = QStringLiteral("import QtQuick 2.1\nimport QtQuick.Controls 1.0\n\nItem {\n anchors.fill: parent\n}"); bool fileCreated = DocumentManager::createFile(newFilePath, sourceString); if (fileCreated) { DocumentManager::addFileToVersionControl(directoryPath, newFilePath); ModelNode tabViewModelNode = findTabViewModelNode(selectionContext().currentSingleSelectedNode()); PropertyListType propertyList; propertyList.append(QPair<PropertyName, QVariant>("source", QString(tabName + QStringLiteral(".qml")))); propertyList.append(QPair<PropertyName, QVariant>("title", tabName)); ModelNode newTabModelNode = selectionContext().view()->createModelNode("QtQuick.Controls.Tab", tabViewModelNode.majorVersion(), tabViewModelNode.minorVersion(), propertyList); newTabModelNode.setIdWithRefactoring(newTabModelNode.view()->generateNewId(tabName)); tabViewModelNode.defaultNodeAbstractProperty().reparentHere(newTabModelNode); } } } }
void TabViewDesignerAction::addNewTab() { QString tabName = AddTabToTabViewDialog::create(QLatin1String("Tab"), Core::ICore::mainWindow()); if (!tabName.isEmpty()) { QString directoryPath = QFileInfo(selectionContext().view()->model()->fileUrl().toLocalFile()).absolutePath(); QString newFilePath = directoryPath +QLatin1String("/") + tabName + QLatin1String(".qml"); if (QFileInfo(newFilePath).exists()) { QMessageBox::warning(Core::ICore::mainWindow(), tr("Naming Error"), tr("Component already exists.")); } else { bool fileCreated = createFile(newFilePath); if (fileCreated) { addNewFileToVersionControl(directoryPath, newFilePath); ModelNode tabViewModelNode = findTabViewModelNode(selectionContext().currentSingleSelectedNode()); PropertyListType propertyList; propertyList.append(QPair<PropertyName, QVariant>("source", QString(tabName + QLatin1String(".qml")))); propertyList.append(QPair<PropertyName, QVariant>("title", tabName)); ModelNode newTabModelNode = selectionContext().view()->createModelNode("QtQuick.Controls.Tab", tabViewModelNode.majorVersion(), tabViewModelNode.minorVersion(), propertyList); newTabModelNode.setId(newTabModelNode.view()->generateNewId(tabName)); tabViewModelNode.defaultNodeAbstractProperty().reparentHere(newTabModelNode); } } } }