forked from qt-creator/qt-creator
EffectComposer: Add copy button for the uniform id in editor
Task-number: QDS-14124 Change-Id: If73f0ba40b672c1761c54765c8415fb498873b2a Reviewed-by: Shrief Gabr <shrief.gabr@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io> Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
@@ -88,6 +88,38 @@ ColumnLayout {
|
|||||||
text: labelView.text
|
text: labelView.text
|
||||||
enabled: labelView.truncated
|
enabled: labelView.truncated
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loader {
|
||||||
|
active: dataScope.canCopy
|
||||||
|
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
|
||||||
|
sourceComponent: MouseArea {
|
||||||
|
id: hoverArea
|
||||||
|
|
||||||
|
width: 15
|
||||||
|
hoverEnabled: true
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
Row {
|
||||||
|
anchors.fill: parent
|
||||||
|
visible: hoverArea.containsMouse
|
||||||
|
|
||||||
|
StudioControls.AbstractButton {
|
||||||
|
width: iconSize
|
||||||
|
height: iconSize
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
buttonIcon: StudioTheme.Constants.copy_small
|
||||||
|
backgroundVisible: false
|
||||||
|
onClicked: rootView.copyText(dataScope.display)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToDo: Add a button for placing the value to the editor
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -140,6 +172,7 @@ ColumnLayout {
|
|||||||
required property bool editing
|
required property bool editing
|
||||||
required property bool selected
|
required property bool selected
|
||||||
required property bool current
|
required property bool current
|
||||||
|
required property bool canCopy
|
||||||
|
|
||||||
color: tableView.currentRow === row ? StudioTheme.Values.themeTableCellCurrent : StudioTheme.Values.themePanelBackground
|
color: tableView.currentRow === row ? StudioTheme.Values.themeTableCellCurrent : StudioTheme.Values.themePanelBackground
|
||||||
implicitWidth: StudioTheme.Values.cellWidth
|
implicitWidth: StudioTheme.Values.cellWidth
|
||||||
|
@@ -179,6 +179,7 @@ QHash<int, QByteArray> EffectComposerUniformsTableModel::roleNames() const
|
|||||||
{Qt::DisplayRole, "display"},
|
{Qt::DisplayRole, "display"},
|
||||||
{Role::ValueRole, "value"},
|
{Role::ValueRole, "value"},
|
||||||
{Role::ValueTypeRole, "valueType"},
|
{Role::ValueTypeRole, "valueType"},
|
||||||
|
{Role::CanCopyRole, "canCopy"},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -206,6 +207,9 @@ QVariant EffectComposerUniformsTableModel::data(const QModelIndex &index, int ro
|
|||||||
if (role == Role::ValueTypeRole)
|
if (role == Role::ValueTypeRole)
|
||||||
return mapToSource(index).valueTypeString();
|
return mapToSource(index).valueTypeString();
|
||||||
|
|
||||||
|
if (role == Role::CanCopyRole)
|
||||||
|
return mapToSource(index).role == UniformRole::NameRole;
|
||||||
|
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -30,6 +30,7 @@ public:
|
|||||||
enum Role {
|
enum Role {
|
||||||
ValueRole = Qt::UserRole + 1,
|
ValueRole = Qt::UserRole + 1,
|
||||||
ValueTypeRole,
|
ValueTypeRole,
|
||||||
|
CanCopyRole,
|
||||||
};
|
};
|
||||||
|
|
||||||
explicit EffectComposerUniformsTableModel(
|
explicit EffectComposerUniformsTableModel(
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
#include <qmljseditor/qmljseditordocument.h>
|
#include <qmljseditor/qmljseditordocument.h>
|
||||||
|
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
|
#include <QClipboard>
|
||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QSplitter>
|
#include <QSplitter>
|
||||||
@@ -174,6 +175,11 @@ void EffectShadersCodeEditor::setUniformsModel(EffectComposerUniformsModel *unif
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EffectShadersCodeEditor::copyText(const QString &text)
|
||||||
|
{
|
||||||
|
qApp->clipboard()->setText(text);
|
||||||
|
}
|
||||||
|
|
||||||
EffectCodeEditorWidget *EffectShadersCodeEditor::createJSEditor()
|
EffectCodeEditorWidget *EffectShadersCodeEditor::createJSEditor()
|
||||||
{
|
{
|
||||||
static EffectCodeEditorFactory f;
|
static EffectCodeEditorFactory f;
|
||||||
|
@@ -41,6 +41,8 @@ public:
|
|||||||
bool isOpened() const;
|
bool isOpened() const;
|
||||||
void setUniformsModel(EffectComposerUniformsModel *uniforms);
|
void setUniformsModel(EffectComposerUniformsModel *uniforms);
|
||||||
|
|
||||||
|
Q_INVOKABLE void copyText(const QString &text);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void liveUpdateChanged(bool);
|
void liveUpdateChanged(bool);
|
||||||
void fragmentValueChanged();
|
void fragmentValueChanged();
|
||||||
|
Reference in New Issue
Block a user