mirror of
https://github.com/mapmapteam/mapmap.git
synced 2026-06-16 12:33:19 +02:00
Added PaintGui for textures.
This commit is contained in:
+5
-1
@@ -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));
|
||||
|
||||
@@ -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
@@ -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_ */
|
||||
|
||||
Reference in New Issue
Block a user