Added PaintGui for textures.

This commit is contained in:
Tats
2014-10-16 17:51:41 +00:00
parent 948a68c8ee
commit fc89b4fb11
3 changed files with 91 additions and 2 deletions
+5 -1
View File
@@ -1532,7 +1532,11 @@ void MainWindow::addPaintItem(uid paintId, const QIcon& icon, const QString& nam
// Create paint gui.
PaintGui::ptr paintGui;
QString paintType = paint->getType();
if (paintType == "color")
if (paintType == "media")
paintGui = PaintGui::ptr(new MediaGui(paint));
else if (paintType == "image")
paintGui = PaintGui::ptr(new ImageGui(paint));
else if (paintType == "color")
paintGui = PaintGui::ptr(new ColorGui(paint));
else
paintGui = PaintGui::ptr(new PaintGui(paint));
+45
View File
@@ -68,3 +68,48 @@ void ColorGui::setValue(QtProperty* property, const QVariant& value) {
emit valueChanged(_paint);
}
}
TextureGui::TextureGui(Paint::ptr paint) : PaintGui(paint) {
}
ImageGui::ImageGui(Paint::ptr paint)
: TextureGui(paint)
{
image = std::tr1::static_pointer_cast<Image>(paint);
Q_CHECK_PTR(image);
_imageFileItem = _variantManager->addProperty(QVariant::String,
QObject::tr("Image file"));
_imageFileItem->setValue(image->getUri());
_topItem->addSubProperty(_imageFileItem);
}
void ImageGui::setValue(QtProperty* property, const QVariant& value) {
if (property == _imageFileItem) {
image->setUri(value.toString());
emit valueChanged(_paint);
}
}
MediaGui::MediaGui(Paint::ptr paint)
: TextureGui(paint)
{
media = std::tr1::static_pointer_cast<Media>(paint);
Q_CHECK_PTR(media);
_mediaFileItem = _variantManager->addProperty(QVariant::String,
QObject::tr("Media file"));
_mediaFileItem->setValue(media->getUri());
_topItem->addSubProperty(_mediaFileItem);
}
void MediaGui::setValue(QtProperty* property, const QVariant& value) {
if (property == _mediaFileItem) {
media->setUri(value.toString());
emit valueChanged(_paint);
}
}
+41 -1
View File
@@ -76,7 +76,6 @@ class ColorGui : public PaintGui {
Q_OBJECT
public:
/// Constructor. A paint gui applies to a paint.
ColorGui(Paint::ptr paint);
virtual ~ColorGui() {}
@@ -88,4 +87,45 @@ protected:
QtVariantProperty* _colorItem;
};
class TextureGui : public PaintGui {
Q_OBJECT
public:
TextureGui(Paint::ptr paint);
virtual ~TextureGui() {}
public slots:
virtual void setValue(QtProperty* property, const QVariant& value) = 0;
};
class ImageGui : public TextureGui {
Q_OBJECT
public:
ImageGui(Paint::ptr paint);
virtual ~ImageGui() {}
public slots:
virtual void setValue(QtProperty* property, const QVariant& value);
protected:
std::tr1::shared_ptr<Image> image;
QtVariantProperty* _imageFileItem;
};
class MediaGui : public TextureGui {
Q_OBJECT
public:
MediaGui(Paint::ptr paint);
virtual ~MediaGui() {}
public slots:
virtual void setValue(QtProperty* property, const QVariant& value);
protected:
std::tr1::shared_ptr<Media> media;
QtVariantProperty* _mediaFileItem;
};
#endif /* PAINTGUI_H_ */