1 #include "qnstgraphicsmedia.h"
10 setnstType(Qnst::Media);
22 setTop(parent->getHeight()/2 - DEFAULT_MEDIA_HEIGHT/2);
23 setLeft(parent->getWidth()/2 - DEFAULT_MEDIA_WIDTH/2);
31 setWidth(DEFAULT_MEDIA_WIDTH);
32 setHeight(DEFAULT_MEDIA_HEIGHT);
35 QnstGraphicsMedia::~QnstGraphicsMedia()
40 QString QnstGraphicsMedia::getIcon()
const
45 QString QnstGraphicsMedia::getSource()
const
50 void QnstGraphicsMedia::setSource(QString source)
52 this->source = source;
55 void QnstGraphicsMedia::setnstType(QnstType type)
57 QnstGraphicsNode::setnstType(type);
62 void QnstGraphicsMedia::updateToolTip()
65 QString name = (getnstId() !=
"" ? getnstId() :
"?");
70 tip +=
"Image ("+name+
")";
74 tip +=
"Audio ("+name+
")";
78 tip +=
"Text ("+name+
")";
82 tip +=
"Video ("+name+
")";
86 tip +=
"NCLua ("+name+
")";
90 tip +=
"HTML ("+name+
")";
94 tip +=
"NCL ("+name+
")";
98 tip +=
"Settings ("+name+
")";
102 tip +=
"Media ("+name+
")";
107 tip +=
" - Error: " + erroMsg;
108 else if (getSource().isEmpty())
109 tip +=
" - Alert: Missing 'src' attribute";
114 QString QnstGraphicsMedia::getRefer()
const
119 void QnstGraphicsMedia::setRefer(QString refer)
124 QString QnstGraphicsMedia::getReferUID()
const
129 void QnstGraphicsMedia::setReferUID(QString refetUID)
131 this->referUID = refetUID;
134 QString QnstGraphicsMedia::getInstance()
const
139 void QnstGraphicsMedia::setInstance(QString instance)
141 this->instance = instance;
144 void QnstGraphicsMedia::createObjects()
147 menu->actionCut->setEnabled(
true);
148 menu->actionCopy->setEnabled(
true);
150 menu->actionDelete->setEnabled(
true);
152 menu->actionExport->setEnabled(
true);
154 menu->menuInsert->setEnabled(
true);
155 menu->actionAddArea->setEnabled(
true);
156 menu->actionAddProperty->setEnabled(
true);
159 void QnstGraphicsMedia::createConnections()
164 connect(menu, SIGNAL(cutRequested()), SIGNAL(cutRequested()));
165 connect(menu, SIGNAL(copyRequested()), SIGNAL(copyRequested()));
166 connect(menu, SIGNAL(pasteRequested()), SIGNAL(pasteRequested()));
168 connect(menu, SIGNAL(deleteRequested()), SIGNAL(deleteRequested()));
170 connect(menu, SIGNAL(exportRequested()), SIGNAL(exportRequested()));
172 connect(menu, SIGNAL(menuAddEntityTriggered(Qnst::EntityType)),
173 SLOT(createEntity(Qnst::EntityType)));
175 connect(menu, SIGNAL(zoominRequested()), SIGNAL(zoominRequested()));
176 connect(menu, SIGNAL(zoomoutRequested()), SIGNAL(zoomoutRequested()));
177 connect(menu, SIGNAL(zoomresetRequested()), SIGNAL(zoomresetRequested()));
178 connect(menu, SIGNAL(fullscreenRequested()), SIGNAL(fullscreenRequested()));
181 void QnstGraphicsMedia::draw(QPainter* painter)
183 painter->setRenderHint(QPainter::SmoothPixmapTransform,
true);
185 painter->drawPixmap(4 + 8/2, 4 + 8/2, getWidth()-8, getHeight()-16-8, QPixmap(icon));
188 if (!isSelected() && hasMouseHover())
190 painter->setBrush(Qt::NoBrush);
191 painter->setPen(QPen(QBrush(QColor(
"#999999")), 0, Qt::DashLine));
193 painter->drawRect(4, 4, getWidth(), getHeight());
196 painter->setPen(QPen(QBrush(Qt::black),0));
200 painter->drawPixmap((getWidth()-8)/2 + 12, (getHeight()-8)/2 + 4, 12, 12, QPixmap(
":/icon/delete"));
202 else if (getSource().isEmpty())
204 painter->drawPixmap((getWidth()-8)/2 + 12, (getHeight()-8)/2 + 4, 12, 12, QPixmap(
":/icon/alert"));
207 if(!getReferUID().isEmpty() && !getReferUID().isEmpty())
209 painter->drawPixmap(8, getHeight()-40, 32, 32, QPixmap(
":/icon/alias"));
212 QString localid = (getnstId() !=
"" ? getnstId() :
"?");
214 if (localid.length() > 5)
216 localid = getnstId().replace(3,getnstId().length()-3,
"...");
225 painter->drawText(4 + 8/2, 4 + 8/2 + getHeight()-16-8, getWidth()-8, 16, Qt::AlignCenter, localid);
230 painter->setBrush(Qt::NoBrush);
231 painter->setPen(QPen(QBrush(Qt::black), 0));
233 painter->setRenderHint(QPainter::Antialiasing,
false);
234 painter->drawRect(getMoveLeft()+4-getLeft(), getMoveTop()+4-getTop(), getWidth()-1, getHeight()-1);
238 void QnstGraphicsMedia::delineate(QPainterPath* painter)
const
240 painter->addRect(4, 4, getWidth(), getHeight());
244 void QnstGraphicsMedia::mousePressEvent(QGraphicsSceneMouseEvent *event)
246 qDebug() <<
"QnstGraphicsMedia::mousePressEvent" << isDraggable();
249 QMimeData *data =
new QMimeData;
250 data->setColorData(Qt::green);
251 data->setData(
"nclcomposer/mediaid", getnstId().toAscii());
252 data->setData(
"nclcomposer/qnstuid", getnstUid().toAscii());
254 QDrag *drag =
new QDrag(event->widget());
255 drag->setMimeData(data);
259 QnstGraphicsNode::mousePressEvent(event);
262 void QnstGraphicsMedia::setProperties(
const QMap<QString, QString> &properties)
264 QnstGraphicsNode::setProperties(properties);
266 setSource(properties[
"src"]);
267 setRefer(properties[
"refer"]);
268 setReferUID(properties[
"referUID"]);
269 setInstance(properties[
"instance"]);
272 void QnstGraphicsMedia::getProperties(QMap<QString, QString> &properties)
274 QnstGraphicsNode::getProperties(properties);
276 properties[
"src"] = getSource();
277 properties[
"refer"] = getRefer();
278 properties[
"referUID"] = getReferUID();
279 properties[
"instance"] = getInstance();