新增了ColorPicker类和StrokeStyleListView类
parent
744ae58743
commit
28df3d47c5
|
@ -104,6 +104,7 @@
|
||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="src\Editor\EditorWidgetComponent\ColorPicker.cpp" />
|
||||||
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp" />
|
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp" />
|
||||||
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp" />
|
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp" />
|
||||||
<ClCompile Include="src\Editor\EditorWidget.cpp" />
|
<ClCompile Include="src\Editor\EditorWidget.cpp" />
|
||||||
|
@ -145,12 +146,14 @@
|
||||||
<ClCompile Include="src\Renderer\Painting\MaterialStyleStroke.cpp" />
|
<ClCompile Include="src\Renderer\Painting\MaterialStyleStroke.cpp" />
|
||||||
<ClCompile Include="src\Renderer\Painting\Painting.cpp" />
|
<ClCompile Include="src\Renderer\Painting\Painting.cpp" />
|
||||||
<ClCompile Include="src\Renderer\PaintingMesh.cpp" />
|
<ClCompile Include="src\Renderer\PaintingMesh.cpp" />
|
||||||
|
<ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp" />
|
||||||
<ClCompile Include="src\Renderer\RendererGLWidget.cpp" />
|
<ClCompile Include="src\Renderer\RendererGLWidget.cpp" />
|
||||||
<ClCompile Include="src\Renderer\RendererWidget.cpp" />
|
<ClCompile Include="src\Renderer\RendererWidget.cpp" />
|
||||||
<ClCompile Include="src\Renderer\Painting\ShortCutTree.cpp" />
|
<ClCompile Include="src\Renderer\Painting\ShortCutTree.cpp" />
|
||||||
<ClCompile Include="src\Renderer\Painting\StraightLine.cpp" />
|
<ClCompile Include="src\Renderer\Painting\StraightLine.cpp" />
|
||||||
<ClCompile Include="src\Renderer\VirtualTextureManager.cpp" />
|
<ClCompile Include="src\Renderer\VirtualTextureManager.cpp" />
|
||||||
<ClCompile Include="src\SvgParser.cpp" />
|
<ClCompile Include="src\SvgParser.cpp" />
|
||||||
|
<ClCompile Include="src\Editor\EditorWidgetComponent\StrokeStyleListView.cpp" />
|
||||||
<QtUic Include="EditorWidget.ui" />
|
<QtUic Include="EditorWidget.ui" />
|
||||||
<QtUic Include="EditorWidgetItem.ui" />
|
<QtUic Include="EditorWidgetItem.ui" />
|
||||||
<QtUic Include="MainWindow.ui" />
|
<QtUic Include="MainWindow.ui" />
|
||||||
|
@ -186,12 +189,14 @@
|
||||||
<None Include="res\Shaders\ssgi.comp" />
|
<None Include="res\Shaders\ssgi.comp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<QtMoc Include="src\Editor\EditorWidgetComponent\StrokeStyleListView.h" />
|
||||||
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h" />
|
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h" />
|
||||||
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h" />
|
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h" />
|
||||||
<QtMoc Include="src\MainWindow.h" />
|
<QtMoc Include="src\MainWindow.h" />
|
||||||
<QtMoc Include="src\Editor\EditorWidget.h" />
|
<QtMoc Include="src\Editor\EditorWidget.h" />
|
||||||
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h" />
|
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h" />
|
||||||
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h" />
|
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h" />
|
||||||
|
<QtMoc Include="src\Editor\EditorWidgetComponent\ColorPicker.h" />
|
||||||
<ClInclude Include="src\Editor\ElementManager.h" />
|
<ClInclude Include="src\Editor\ElementManager.h" />
|
||||||
<QtMoc Include="src\Editor\ElementPoolWidget.h" />
|
<QtMoc Include="src\Editor\ElementPoolWidget.h" />
|
||||||
<ClInclude Include="src\Editor\GraphicElement.h" />
|
<ClInclude Include="src\Editor\GraphicElement.h" />
|
||||||
|
|
|
@ -59,9 +59,18 @@
|
||||||
<Filter Include="Source Files\Editor\util">
|
<Filter Include="Source Files\Editor\util">
|
||||||
<UniqueIdentifier>{96f98afe-4250-44cb-a505-682a1d5932c3}</UniqueIdentifier>
|
<UniqueIdentifier>{96f98afe-4250-44cb-a505-682a1d5932c3}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Source Files\Renderer\Preview">
|
||||||
|
<UniqueIdentifier>{2a8e109f-7791-46ad-8c86-fe22a651cbe7}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
<Filter Include="Header Files\Renderer\Preview">
|
<Filter Include="Header Files\Renderer\Preview">
|
||||||
<UniqueIdentifier>{7ead1a66-586a-4584-ae80-9e7a4e667364}</UniqueIdentifier>
|
<UniqueIdentifier>{7ead1a66-586a-4584-ae80-9e7a4e667364}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Header Files\Editor\Style">
|
||||||
|
<UniqueIdentifier>{be3f4585-c8ba-410f-8619-2adcd4349f02}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="Source Files\Editor\Style">
|
||||||
|
<UniqueIdentifier>{b9732a33-aa2e-4f8d-886f-1b1730c66519}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<QtUic Include="MainWindow.ui">
|
<QtUic Include="MainWindow.ui">
|
||||||
|
@ -108,9 +117,6 @@
|
||||||
<ClCompile Include="src\Renderer\RendererWidget.cpp">
|
<ClCompile Include="src\Renderer\RendererWidget.cpp">
|
||||||
<Filter>Source Files\Renderer</Filter>
|
<Filter>Source Files\Renderer</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\NavigationBarWidget.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="src\Renderer\Painting\BvhTree.cpp">
|
<ClCompile Include="src\Renderer\Painting\BvhTree.cpp">
|
||||||
<Filter>Source Files\Renderer\Painting</Filter>
|
<Filter>Source Files\Renderer\Painting</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -153,12 +159,6 @@
|
||||||
<ClCompile Include="src\Renderer\Painting\CubicBezierSignedDistance.cpp">
|
<ClCompile Include="src\Renderer\Painting\CubicBezierSignedDistance.cpp">
|
||||||
<Filter>Source Files\Renderer\Painting</Filter>
|
<Filter>Source Files\Renderer\Painting</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\Editor\RightBar\LayerTreeWidget.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="src\Editor\RightBar\InfoDisplayWidget.cpp">
|
|
||||||
<Filter>Source Files</Filter>
|
|
||||||
</ClCompile>
|
|
||||||
<ClCompile Include="src\Renderer\Painting\ElementStyle.cpp">
|
<ClCompile Include="src\Renderer\Painting\ElementStyle.cpp">
|
||||||
<Filter>Source Files\Renderer\Painting</Filter>
|
<Filter>Source Files\Renderer\Painting</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -183,8 +183,8 @@
|
||||||
<ClCompile Include="src\Editor\util\PainterPathUtil.cpp">
|
<ClCompile Include="src\Editor\util\PainterPathUtil.cpp">
|
||||||
<Filter>Source Files\Editor\util</Filter>
|
<Filter>Source Files\Editor\util</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\Editor\LayerStyle.cpp">
|
<ClCompile Include="src\Renderer\Preview\ElementRenderer.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files\Renderer\Preview</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\Renderer\IblUtils.cpp">
|
<ClCompile Include="src\Renderer\IblUtils.cpp">
|
||||||
<Filter>Source Files\Renderer</Filter>
|
<Filter>Source Files\Renderer</Filter>
|
||||||
|
@ -210,11 +210,29 @@
|
||||||
<ClCompile Include="src\Editor\util\PaintingUtil.cpp">
|
<ClCompile Include="src\Editor\util\PaintingUtil.cpp">
|
||||||
<Filter>Source Files\Editor\util</Filter>
|
<Filter>Source Files\Editor\util</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp">
|
<ClCompile Include="src\Editor\LayerStyle.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files\Editor\Style</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp">
|
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.cpp">
|
||||||
<Filter>Source Files</Filter>
|
<Filter>Source Files\Editor\Style</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\Editor\EditorWidgetComponent\StrokeStyleListView.cpp">
|
||||||
|
<Filter>Source Files\Editor\Style</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\Editor\RightBar\InfoDisplayWidget.cpp">
|
||||||
|
<Filter>Source Files\Editor</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.cpp">
|
||||||
|
<Filter>Source Files\Editor</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\Editor\RightBar\LayerTreeWidget.cpp">
|
||||||
|
<Filter>Source Files\Editor</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\NavigationBarWidget.cpp">
|
||||||
|
<Filter>Source Files\Editor</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="src\Editor\EditorWidgetComponent\ColorPicker.cpp">
|
||||||
|
<Filter>Source Files\Editor</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -227,35 +245,41 @@
|
||||||
<QtMoc Include="src\Renderer\RendererWidget.h">
|
<QtMoc Include="src\Renderer\RendererWidget.h">
|
||||||
<Filter>Header Files\Renderer</Filter>
|
<Filter>Header Files\Renderer</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
<QtMoc Include="src\NavigationBarWidget.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</QtMoc>
|
|
||||||
<QtMoc Include="src\MainWindow.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</QtMoc>
|
|
||||||
<QtMoc Include="src\Editor\PreviewWindow.h">
|
<QtMoc Include="src\Editor\PreviewWindow.h">
|
||||||
<Filter>Header Files\Editor</Filter>
|
<Filter>Header Files\Editor</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</QtMoc>
|
|
||||||
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</QtMoc>
|
|
||||||
<QtMoc Include="src\Editor\EditorWidget.h">
|
|
||||||
<Filter>Header Files</Filter>
|
|
||||||
</QtMoc>
|
|
||||||
<QtMoc Include="src\Editor\ElementPoolWidget.h">
|
<QtMoc Include="src\Editor\ElementPoolWidget.h">
|
||||||
<Filter>Header Files\Editor</Filter>
|
<Filter>Header Files\Editor</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
<QtMoc Include="src\FluentMenu.h">
|
<QtMoc Include="src\FluentMenu.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h">
|
<QtMoc Include="src\Editor\EditorWidgetComponent\StrokeStyleListView.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files\Editor\Style</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h">
|
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerStyleDialog.h">
|
||||||
<Filter>Header Files</Filter>
|
<Filter>Header Files\Editor\Style</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
<QtMoc Include="src\Editor\RightBar\InfoDisplayWidget.h">
|
||||||
|
<Filter>Header Files\Editor</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
<QtMoc Include="src\Editor\EditorWidgetComponent\LayerCreateWidget.h">
|
||||||
|
<Filter>Header Files\Editor</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
<QtMoc Include="src\Editor\EditorWidget.h">
|
||||||
|
<Filter>Header Files\Editor</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
<QtMoc Include="src\Editor\RightBar\LayerTreeWidget.h">
|
||||||
|
<Filter>Header Files\Editor</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
<QtMoc Include="src\MainWindow.h">
|
||||||
|
<Filter>Header Files\Editor</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
<QtMoc Include="src\NavigationBarWidget.h">
|
||||||
|
<Filter>Header Files\Editor</Filter>
|
||||||
|
</QtMoc>
|
||||||
|
<QtMoc Include="src\Editor\EditorWidgetComponent\ColorPicker.h">
|
||||||
|
<Filter>Header Files\Editor</Filter>
|
||||||
</QtMoc>
|
</QtMoc>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -451,7 +475,7 @@
|
||||||
<Filter>Header Files\Editor\util</Filter>
|
<Filter>Header Files\Editor\util</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="src\Editor\LayerStyle.h">
|
<ClInclude Include="src\Editor\LayerStyle.h">
|
||||||
<Filter>Header Files\Editor</Filter>
|
<Filter>Header Files\Editor\Style</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
#include "ColorPicker.h"
|
||||||
|
#include <QColorDialog>
|
||||||
|
|
||||||
|
QString getStyleSheet(const QColor& color)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
"QPushButton#colorPicker {"
|
||||||
|
" border-style: solid;"
|
||||||
|
" border-width: 1px;"
|
||||||
|
" border-color: black;"
|
||||||
|
" background-color: " + color.name() + ";"
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
|
||||||
|
ColorPicker::ColorPicker(const QColor& color, QWidget* parent) : QPushButton(parent), color(color)
|
||||||
|
{
|
||||||
|
this->setObjectName("colorPicker");
|
||||||
|
this->setStyleSheet(getStyleSheet(color));
|
||||||
|
connect(this, &QPushButton::clicked, this, &ColorPicker::onClicked);
|
||||||
|
}
|
||||||
|
|
||||||
|
QColor ColorPicker::getColor() const
|
||||||
|
{
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ColorPicker::onClicked()
|
||||||
|
{
|
||||||
|
QColorDialog dialog(this->color, this);
|
||||||
|
dialog.exec();
|
||||||
|
QColor newColor = dialog.selectedColor();
|
||||||
|
if (newColor.isValid() && this->color != newColor)
|
||||||
|
{
|
||||||
|
this->color = newColor;
|
||||||
|
this->setStyleSheet(getStyleSheet(newColor));
|
||||||
|
emit colorChanged(newColor);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
#pragma once
|
||||||
|
#include <QPushButton>
|
||||||
|
class ColorPicker : public QPushButton
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
QColor color;
|
||||||
|
public:
|
||||||
|
ColorPicker(const QColor& color, QWidget* parent = nullptr);
|
||||||
|
QColor getColor() const;
|
||||||
|
public slots:
|
||||||
|
void onClicked();
|
||||||
|
signals:
|
||||||
|
void colorChanged(QColor newColor);
|
||||||
|
};
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
#include "StrokeStyleListView.h"
|
||||||
|
#include "ColorPicker.h"
|
||||||
|
|
||||||
|
constexpr int COLUMN_WIDTH = 0;
|
||||||
|
constexpr int COLUMN_COLOR = 1;
|
||||||
|
constexpr int COLUMN_METALLIC = 2;
|
||||||
|
constexpr int COLUMN_ROUGHNESS = 3;
|
||||||
|
|
||||||
|
StrokeStyleListView::StrokeStyleListView(
|
||||||
|
std::shared_ptr<Renderer::StrokeRadialGradient> stroke,
|
||||||
|
QWidget* parent
|
||||||
|
) : QTableWidget(parent), stroke(stroke)
|
||||||
|
{
|
||||||
|
this->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContentsOnFirstShow);
|
||||||
|
this->setColumnCount(4);
|
||||||
|
this->setRowCount(stroke->materialMap.size());
|
||||||
|
QStringList headers;
|
||||||
|
headers.append(QStringLiteral("×ÜÏß¿íÕ¼±È"));
|
||||||
|
headers.append(QStringLiteral("ÑÕÉ«"));
|
||||||
|
headers.append(QStringLiteral("½ðÊô¶È"));
|
||||||
|
headers.append(QStringLiteral("´Ö²Ú¶È"));
|
||||||
|
this->setHorizontalHeaderLabels(headers);
|
||||||
|
for (int row = 0; auto& strokePair : stroke->materialMap)
|
||||||
|
{
|
||||||
|
QTableWidgetItem* widthItem = new QTableWidgetItem;
|
||||||
|
widthItem->setData(Qt::EditRole, strokePair.first);
|
||||||
|
this->setItem(row, COLUMN_WIDTH, widthItem);
|
||||||
|
|
||||||
|
QColor* colorPtr = &(strokePair.second.color);
|
||||||
|
QTableWidgetItem* colorItem = new QTableWidgetItem;
|
||||||
|
colorItem->setData(Qt::DisplayRole, *colorPtr);
|
||||||
|
this->setItem(row, COLUMN_COLOR, colorItem);
|
||||||
|
ColorPicker* colorPicker = new ColorPicker(*colorPtr, this);
|
||||||
|
this->setCellWidget(row, COLUMN_COLOR, colorPicker);
|
||||||
|
connect(colorPicker, &ColorPicker::colorChanged, [this, colorPtr](QColor color) {
|
||||||
|
*colorPtr = color;
|
||||||
|
this->update();
|
||||||
|
});
|
||||||
|
|
||||||
|
QTableWidgetItem* metallicItem = new QTableWidgetItem;
|
||||||
|
metallicItem->setData(Qt::EditRole, strokePair.second.metallic);
|
||||||
|
this->setItem(row, COLUMN_METALLIC, metallicItem);
|
||||||
|
|
||||||
|
QTableWidgetItem* roughnessItem = new QTableWidgetItem;
|
||||||
|
roughnessItem->setData(Qt::EditRole, strokePair.second.roughness);
|
||||||
|
this->setItem(row, COLUMN_ROUGHNESS, roughnessItem);
|
||||||
|
|
||||||
|
row++;
|
||||||
|
}
|
||||||
|
connect(this, &StrokeStyleListView::currentItemChanged, this, &StrokeStyleListView::onCurrentItemChanged);
|
||||||
|
connect(this, &StrokeStyleListView::cellChanged, this, &StrokeStyleListView::onCellChanged);
|
||||||
|
this->adjustSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
void StrokeStyleListView::onCurrentItemChanged(QTableWidgetItem* current, QTableWidgetItem* previous)
|
||||||
|
{
|
||||||
|
int column = current->column();
|
||||||
|
if (column != COLUMN_COLOR)
|
||||||
|
{
|
||||||
|
this->currentItemValue = current->text();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void StrokeStyleListView::onCellChanged(int row, int column)
|
||||||
|
{
|
||||||
|
auto changedItem = this->item(row, column);
|
||||||
|
auto changedItemValue = changedItem->text().toFloat();
|
||||||
|
if (changedItemValue < 0 || 1 < changedItemValue)
|
||||||
|
{
|
||||||
|
changedItem->setData(Qt::EditRole, this->currentItemValue.toFloat());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
auto changedWidth = this->item(row, COLUMN_WIDTH)->text().toFloat();
|
||||||
|
switch (row)
|
||||||
|
{
|
||||||
|
case COLUMN_WIDTH:
|
||||||
|
{
|
||||||
|
float oldWidth = this->currentItemValue.toFloat();
|
||||||
|
auto node = stroke->materialMap.extract(oldWidth);
|
||||||
|
node.key() = changedWidth;
|
||||||
|
stroke->materialMap.insert(std::move(node));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case COLUMN_METALLIC:
|
||||||
|
{
|
||||||
|
stroke->materialMap[changedWidth].metallic = changedItemValue;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case COLUMN_ROUGHNESS:
|
||||||
|
{
|
||||||
|
stroke->materialMap[changedWidth].roughness = changedItemValue;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
#pragma once
|
||||||
|
#include "LayerStyle.h"
|
||||||
|
#include "../Renderer/Painting/MaterialStyleStroke.h"
|
||||||
|
#include <QListView>
|
||||||
|
#include <QListWidget>
|
||||||
|
#include <QTableWidget>
|
||||||
|
class StrokeStyleListView : public QTableWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
private:
|
||||||
|
QString currentItemValue;
|
||||||
|
|
||||||
|
public:
|
||||||
|
StrokeStyleListView(std::shared_ptr<Renderer::StrokeRadialGradient> stroke, QWidget* parent = nullptr);
|
||||||
|
std::shared_ptr<Renderer::StrokeRadialGradient> stroke;
|
||||||
|
|
||||||
|
protected slots:
|
||||||
|
void onCurrentItemChanged(QTableWidgetItem* current, QTableWidgetItem* previous);
|
||||||
|
void onCellChanged(int row, int column);
|
||||||
|
};
|
||||||
|
|
Loading…
Reference in New Issue