diff options
author | Knud Dollereder <knud.dollereder@qt.io> | 2019-06-18 15:12:21 +0200 |
---|---|---|
committer | Knud Dollereder <knud.dollereder@qt.io> | 2019-06-19 09:22:31 +0000 |
commit | 376c6b9d59cef608448acc6cec30c32e3836c4dd (patch) | |
tree | c1b33ae9f63c20260d6d2cd892585b5feb65e295 /src/plugins/qmldesigner/components/texttool | |
parent | a0852cf62ba5d3e79c91a5878cb2eaa5633ccbc4 (diff) | |
download | qt-creator-376c6b9d59cef608448acc6cec30c32e3836c4dd.tar.gz |
Add curve editor
Moved qmldesignerextension into component
Updated build systems
Change-Id: I8d2d0757a1639a472d426b66c0c8ae6fb84cc3d2
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/texttool')
7 files changed, 707 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/components/texttool/textedititem.cpp b/src/plugins/qmldesigner/components/texttool/textedititem.cpp new file mode 100644 index 0000000000..1ce3244cbc --- /dev/null +++ b/src/plugins/qmldesigner/components/texttool/textedititem.cpp @@ -0,0 +1,98 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "textedititem.h" + +#include <formeditorscene.h> +#include <nodemetainfo.h> +#include <rewritingexception.h> + +#include <QLineEdit> +#include <QTextEdit> + +namespace QmlDesigner { + +TextEditItem::TextEditItem(FormEditorScene* scene) + : TextEditItemWidget(scene) + , m_formEditorItem(nullptr) +{ + connect(lineEdit(), &QLineEdit::returnPressed, this, &TextEditItem::returnPressed); +} + +TextEditItem::~TextEditItem() +{ + m_formEditorItem = nullptr; +} + +void TextEditItem::writeTextToProperty() +{ + if (m_formEditorItem) { + try { + if (text().isEmpty()) + m_formEditorItem->qmlItemNode().removeProperty("text"); + else if (m_formEditorItem->qmlItemNode().isTranslatableText("text")) + m_formEditorItem->qmlItemNode().setBindingProperty("text", QmlObjectNode::generateTranslatableText(text())); + else + m_formEditorItem->qmlItemNode().setVariantProperty("text", text()); + } + catch (const RewritingException &e) { + e.showException(); + } + } +} + +void TextEditItem::setFormEditorItem(FormEditorItem *formEditorItem) +{ + m_formEditorItem = formEditorItem; + QRectF rect = formEditorItem->qmlItemNode().instancePaintedBoundingRect().united(formEditorItem->qmlItemNode().instanceBoundingRect()).adjusted(-12, -4, 12 ,4); + setGeometry(rect); + + NodeMetaInfo metaInfo = m_formEditorItem->qmlItemNode().modelNode().metaInfo(); + if (metaInfo.isValid() && + (metaInfo.isSubclassOf("QtQuick.TextEdit") + || metaInfo.isSubclassOf("QtQuick.Controls.TextArea"))) { + QSize maximumSize = rect.size().toSize(); + activateTextEdit(maximumSize); + } else { + activateLineEdit(); + } + + setTransform(formEditorItem->sceneTransform()); + updateText(); +} + +FormEditorItem *TextEditItem::formEditorItem() const +{ + return m_formEditorItem; +} + +void TextEditItem::updateText() +{ + if (formEditorItem()) { + TextEditItemWidget::updateText(formEditorItem()->qmlItemNode(). + stripedTranslatableText("text")); + } +} +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/texttool/textedititem.h b/src/plugins/qmldesigner/components/texttool/textedititem.h new file mode 100644 index 0000000000..5497dadbe1 --- /dev/null +++ b/src/plugins/qmldesigner/components/texttool/textedititem.h @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ +#pragma once + +#include "textedititemwidget.h" + +namespace QmlDesigner { + +class FormEditorScene; +class FormEditorItem; + +class TextEditItem : public TextEditItemWidget +{ + Q_OBJECT +public: + TextEditItem(FormEditorScene* scene); + ~TextEditItem() override; + int type() const override; + + void setFormEditorItem(FormEditorItem *formEditorItem); + FormEditorItem *formEditorItem() const; + + void updateText(); + void writeTextToProperty(); + +signals: + void returnPressed(); +private: + FormEditorItem *m_formEditorItem; +}; + +inline int TextEditItem::type() const +{ + return 0xEAAB; +} +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/texttool/textedititemwidget.cpp b/src/plugins/qmldesigner/components/texttool/textedititemwidget.cpp new file mode 100644 index 0000000000..40efb67e77 --- /dev/null +++ b/src/plugins/qmldesigner/components/texttool/textedititemwidget.cpp @@ -0,0 +1,125 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ +#include "textedititemwidget.h" + +#include <utils/theme/theme.h> + +#include <QLineEdit> +#include <QGraphicsScene> +#include <QPainter> +#include <QTextEdit> + +namespace QmlDesigner { + +TextEditItemWidget::TextEditItemWidget(QGraphicsScene* scene) +{ + scene->addItem(this); + setFlag(QGraphicsItem::ItemIsMovable, false); + activateLineEdit(); +} + +TextEditItemWidget::~TextEditItemWidget() +{ + setWidget(nullptr); +} + +void TextEditItemWidget::paint(QPainter *painter, const QStyleOptionGraphicsItem * /*option*/, QWidget * /*widget*/) +{ + painter->fillRect(boundingRect(), Qt::white); + + /* Cursor painting is broken. + * QGraphicsProxyWidget::paint(painter, option, widget); + * We draw manually instead. + */ + + QPixmap pixmap = widget()->grab(); + painter->drawPixmap(0, 0, pixmap); +} + +QLineEdit* TextEditItemWidget::lineEdit() const +{ + if (m_lineEdit.isNull()) { + m_lineEdit.reset(new QLineEdit); + m_lineEdit->setAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + QPalette palette = m_lineEdit->palette(); + static QColor selectionColor = Utils::creatorTheme()->color(Utils::Theme::QmlDesigner_FormEditorSelectionColor); + palette.setColor(QPalette::Highlight, selectionColor); + palette.setColor(QPalette::HighlightedText, Qt::white); + palette.setColor(QPalette::Base, Qt::white); + palette.setColor(QPalette::Text, Qt::black); + m_lineEdit->setPalette(palette); + } + return m_lineEdit.data(); +} + +QTextEdit* TextEditItemWidget::textEdit() const +{ + if (m_textEdit.isNull()) { + m_textEdit.reset(new QTextEdit); + QPalette palette = m_textEdit->palette(); + static QColor selectionColor = Utils::creatorTheme()->color(Utils::Theme::QmlDesigner_FormEditorSelectionColor); + palette.setColor(QPalette::Highlight, selectionColor); + palette.setColor(QPalette::HighlightedText, Qt::white); + palette.setColor(QPalette::Base, Qt::white); + palette.setColor(QPalette::Text, Qt::black); + m_textEdit->setPalette(palette); + } + + return m_textEdit.data(); +} + +void TextEditItemWidget::activateTextEdit(const QSize &maximumSize) +{ + textEdit()->setMaximumSize(maximumSize); + textEdit()->setFocus(); + setWidget(textEdit()); +} + +void TextEditItemWidget::activateLineEdit() +{ + lineEdit()->setFocus(); + setWidget(lineEdit()); +} + +QString TextEditItemWidget::text() const +{ + if (widget() == m_lineEdit.data()) + return m_lineEdit->text(); + else if (widget() == m_textEdit.data()) + return m_textEdit->toPlainText(); + return QString(); +} + +void TextEditItemWidget::updateText(const QString &text) +{ + if (widget() == m_lineEdit.data()) { + m_lineEdit->setText(text); + m_lineEdit->selectAll(); + } else if (widget() == m_textEdit.data()) { + m_textEdit->setText(text); + m_textEdit->selectAll(); + } +} +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/texttool/textedititemwidget.h b/src/plugins/qmldesigner/components/texttool/textedititemwidget.h new file mode 100644 index 0000000000..7ff2909919 --- /dev/null +++ b/src/plugins/qmldesigner/components/texttool/textedititemwidget.h @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ +#pragma once + +#include <QGraphicsProxyWidget> +#include <QScopedPointer> + +QT_BEGIN_NAMESPACE +class QTextEdit; +class QLineEdit; +class QGraphicsScene; +QT_END_NAMESPACE + +namespace QmlDesigner { + +class TextEditItemWidget : public QGraphicsProxyWidget +{ + Q_OBJECT +public: + TextEditItemWidget(QGraphicsScene *scene); + ~TextEditItemWidget() override; + + void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override; + + void activateTextEdit(const QSize &maximumSize); + void activateLineEdit(); + void updateText(const QString &text); + +protected: + QLineEdit* lineEdit() const; + QTextEdit* textEdit() const; + + QString text() const; +private: + mutable QScopedPointer<QLineEdit> m_lineEdit; + mutable QScopedPointer<QTextEdit> m_textEdit; +}; +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/components/texttool/texttool.cpp b/src/plugins/qmldesigner/components/texttool/texttool.cpp new file mode 100644 index 0000000000..76dc414c03 --- /dev/null +++ b/src/plugins/qmldesigner/components/texttool/texttool.cpp @@ -0,0 +1,270 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#include "texttool.h" + +#include "formeditorscene.h" +#include "formeditorview.h" +#include "formeditorwidget.h" +#include "itemutilfunctions.h" +#include "formeditoritem.h" + +#include "resizehandleitem.h" +#include "textedititem.h" + +#include "nodemetainfo.h" +#include "qmlitemnode.h" +#include <qmldesignerplugin.h> + +#include <abstractaction.h> +#include <designeractionmanager.h> + +#include <QApplication> +#include <QGraphicsSceneMouseEvent> +#include <QAction> +#include <QDebug> +#include <QPair> + +namespace QmlDesigner { + +class TextToolAction : public AbstractAction +{ +public: + TextToolAction() : AbstractAction(QCoreApplication::translate("TextToolAction","Edit Text")) {} + + QByteArray category() const override + { + return QByteArray(); + } + + QByteArray menuId() const override + { + return "TextTool"; + } + + int priority() const override + { + return CustomActionsPriority; + } + + Type type() const override + { + return ContextMenuAction; + } + +protected: + bool isVisible(const SelectionContext &selectionContext) const override + { + if (selectionContext.scenePosition().isNull()) + return false; + + if (selectionContext.singleNodeIsSelected()) + return selectionContext.currentSingleSelectedNode().metaInfo().hasProperty("text"); + + return false; + } + + bool isEnabled(const SelectionContext &selectionContext) const override + { + return isVisible(selectionContext); + } +}; + +TextTool::TextTool() +{ + auto textToolAction = new TextToolAction; + QmlDesignerPlugin::instance()->designerActionManager().addDesignerAction(textToolAction); + connect(textToolAction->action(), &QAction::triggered, [=]() { + view()->changeCurrentToolTo(this); + }); +} + +TextTool::~TextTool() = default; + +void TextTool::clear() +{ + if (textItem()) { + textItem()->clearFocus(); + textItem()->deleteLater(); + } + + AbstractFormEditorTool::clear(); +} + +void TextTool::mousePressEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneMouseEvent *event) +{ + event->setPos(textItem()->mapFromScene(event->scenePos())); + event->setLastPos(textItem()->mapFromScene(event->lastScenePos())); + scene()->sendEvent(textItem(), event); + AbstractFormEditorTool::mousePressEvent(itemList, event); +} + +void TextTool::mouseMoveEvent(const QList<QGraphicsItem*> & /*itemList*/, + QGraphicsSceneMouseEvent *event) +{ event->setPos(textItem()->mapFromScene(event->scenePos())); + event->setLastPos(textItem()->mapFromScene(event->lastScenePos())); + scene()->sendEvent(textItem(), event); +} + +void TextTool::hoverMoveEvent(const QList<QGraphicsItem*> & /*itemList*/, + QGraphicsSceneMouseEvent * event) +{ + event->setPos(textItem()->mapFromScene(event->scenePos())); + event->setLastPos(textItem()->mapFromScene(event->lastScenePos())); + scene()->sendEvent(textItem(), event); +} + +void TextTool::keyPressEvent(QKeyEvent *keyEvent) +{ + if (keyEvent->key() == Qt::Key_Escape) { + textItem()->writeTextToProperty(); + keyEvent->accept(); + } else { + scene()->sendEvent(textItem(), keyEvent); + } +} + +void TextTool::keyReleaseEvent(QKeyEvent *keyEvent) +{ + if (keyEvent->key() == Qt::Key_Escape) { + keyEvent->accept(); + view()->changeToSelectionTool(); + } else { + scene()->sendEvent(textItem(), keyEvent); + } +} + +void TextTool::dragLeaveEvent(const QList<QGraphicsItem*> &/*itemList*/, QGraphicsSceneDragDropEvent * /*event*/) +{ + +} + +void TextTool::dragMoveEvent(const QList<QGraphicsItem*> &/*itemList*/, QGraphicsSceneDragDropEvent * /*event*/) +{ + +} + +void TextTool::mouseReleaseEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneMouseEvent *event) +{ + if (!itemList.contains(textItem())) { + textItem()->writeTextToProperty(); + view()->changeToSelectionTool(); + } + AbstractFormEditorTool::mouseReleaseEvent(itemList, event); +} + + +void TextTool::mouseDoubleClickEvent(const QList<QGraphicsItem*> & /*itemList*/, QGraphicsSceneMouseEvent *event) +{ + if (textItem() && !textItem()->boundingRect().contains(textItem()->mapFromScene(event->scenePos()))) { + textItem()->writeTextToProperty(); + view()->changeToSelectionTool(); + } else { + event->setPos(textItem()->mapFromScene(event->scenePos())); + event->setLastPos(textItem()->mapFromScene(event->lastScenePos())); + scene()->sendEvent(textItem(), event); + } +} + +void TextTool::itemsAboutToRemoved(const QList<FormEditorItem*> &removedItemList) +{ + if (textItem() == nullptr) + return; + + if (removedItemList.contains(textItem()->formEditorItem())) + view()->changeToSelectionTool(); +} + +void TextTool::selectedItemsChanged(const QList<FormEditorItem*> &itemList) +{ + if (textItem()) { + textItem()->writeTextToProperty(); + view()->changeToSelectionTool(); + } + if (!itemList.isEmpty()) { + FormEditorItem *formEditorItem = itemList.constFirst(); + m_textItem = new TextEditItem(scene()); + textItem()->setParentItem(scene()->manipulatorLayerItem()); + textItem()->setFormEditorItem(formEditorItem); + connect(textItem(), &TextEditItem::returnPressed, [this] { + textItem()->writeTextToProperty(); + view()->changeToSelectionTool(); + }); + } else { + view()->changeToSelectionTool(); + } +} + +void TextTool::instancesCompleted(const QList<FormEditorItem*> & /*itemList*/) +{ +} + +void TextTool::instancesParentChanged(const QList<FormEditorItem *> & /*itemList*/) +{ +} + +void TextTool::instancePropertyChange(const QList<QPair<ModelNode, PropertyName> > &propertyList) +{ + using ModelNodePropertyNamePair = QPair<ModelNode, PropertyName>; + foreach (const ModelNodePropertyNamePair &propertyPair, propertyList) { + if (propertyPair.first == textItem()->formEditorItem()->qmlItemNode().modelNode() + && propertyPair.second == "text") + textItem()->updateText(); + } +} + +void TextTool::formEditorItemsChanged(const QList<FormEditorItem*> & /*itemList*/) +{ +} + +int TextTool::wantHandleItem(const ModelNode &modelNode) const +{ + if (modelNode.metaInfo().hasProperty("text")) + return 20; + + return 0; +} + +QString TextTool::name() const +{ + return QCoreApplication::translate("TextTool", "Text Tool"); +} + +void TextTool::focusLost() +{ + if (textItem()) { + textItem()->writeTextToProperty(); + view()->changeToSelectionTool(); + } +} + +TextEditItem *TextTool::textItem() const +{ + return m_textItem.data(); +} + +} diff --git a/src/plugins/qmldesigner/components/texttool/texttool.h b/src/plugins/qmldesigner/components/texttool/texttool.h new file mode 100644 index 0000000000..b7c352c917 --- /dev/null +++ b/src/plugins/qmldesigner/components/texttool/texttool.h @@ -0,0 +1,89 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +****************************************************************************/ + +#pragma once + +#include "abstractcustomtool.h" +#include "selectionindicator.h" + +#include <QHash> +#include <QPointer> +#include <QColorDialog> + +namespace QmlDesigner { + +class TextEditItem; + +class TextTool : public QObject, public AbstractCustomTool +{ + Q_OBJECT +public: + TextTool(); + ~TextTool() override; + + void mousePressEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneMouseEvent *event) override; + void mouseMoveEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneMouseEvent *event) override; + void mouseReleaseEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneMouseEvent *event) override; + void mouseDoubleClickEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneMouseEvent *event) override; + void hoverMoveEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneMouseEvent *event) override; + void keyPressEvent(QKeyEvent *event) override; + void keyReleaseEvent(QKeyEvent *keyEvent) override; + + void dragLeaveEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneDragDropEvent * event) override; + void dragMoveEvent(const QList<QGraphicsItem*> &itemList, + QGraphicsSceneDragDropEvent * event) override; + + void itemsAboutToRemoved(const QList<FormEditorItem*> &itemList) override; + + void selectedItemsChanged(const QList<FormEditorItem*> &itemList) override; + + void instancesCompleted(const QList<FormEditorItem*> &itemList) override; + void instancesParentChanged(const QList<FormEditorItem *> &itemList) override; + void instancePropertyChange(const QList<QPair<ModelNode, PropertyName> > &propertyList) override; + + void clear() override; + + void formEditorItemsChanged(const QList<FormEditorItem*> &itemList) override; + + int wantHandleItem(const ModelNode &modelNode) const override; + + QString name() const override; + + void focusLost() override; + +protected: + TextEditItem *textItem() const; + +private: + QPointer<TextEditItem> m_textItem; +}; + +} diff --git a/src/plugins/qmldesigner/components/texttool/texttool.pri b/src/plugins/qmldesigner/components/texttool/texttool.pri new file mode 100644 index 0000000000..0cfdfb7629 --- /dev/null +++ b/src/plugins/qmldesigner/components/texttool/texttool.pri @@ -0,0 +1,7 @@ +HEADERS += $$PWD/texttool.h +HEADERS += $$PWD/textedititem.h +HEADERS += $$PWD/textedititemwidget.h + +SOURCES += $$PWD/texttool.cpp +SOURCES += $$PWD/textedititem.cpp +SOURCES += $$PWD/textedititemwidget.cpp |