forked from len0rd/rockbox
Theme Editor: Made SBS elements in WPS documents non-interactive, which makes it a little more difficult to crash the editor
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27734 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
6063e9138b
commit
d505bc0119
3 changed files with 15 additions and 3 deletions
|
@ -48,8 +48,6 @@ RBViewport::RBViewport(skin_element* node, const RBRenderInfo& info,
|
||||||
leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0),
|
leftGraphic(0), centerGraphic(0), rightGraphic(0), scrollTime(0),
|
||||||
node(pNode), doc(info.document())
|
node(pNode), doc(info.document())
|
||||||
{
|
{
|
||||||
setFlags(ItemIsSelectable | ItemIsMovable | ItemSendsGeometryChanges);
|
|
||||||
|
|
||||||
if(!node->tag)
|
if(!node->tag)
|
||||||
{
|
{
|
||||||
/* Default viewport takes up the entire screen */
|
/* Default viewport takes up the entire screen */
|
||||||
|
|
|
@ -342,8 +342,9 @@ QGraphicsScene* ParseTreeModel::render(ProjectModel* project,
|
||||||
sbsInfo = RBRenderInfo(sbsModel, project, doc, &settings,
|
sbsInfo = RBRenderInfo(sbsModel, project, doc, &settings,
|
||||||
device, sbsScreen);
|
device, sbsScreen);
|
||||||
sbsModel->root->render(sbsInfo);
|
sbsModel->root->render(sbsInfo);
|
||||||
}
|
|
||||||
|
|
||||||
|
setChildrenUnselectable(sbsScreen);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -384,3 +385,14 @@ QModelIndex ParseTreeModel::indexFromPointer(ParseTreeNode *p)
|
||||||
return QModelIndex();
|
return QModelIndex();
|
||||||
return index(p->getRow(), 0, indexFromPointer(p->getParent()));
|
return index(p->getRow(), 0, indexFromPointer(p->getParent()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ParseTreeModel::setChildrenUnselectable(QGraphicsItem *root)
|
||||||
|
{
|
||||||
|
root->setFlag(QGraphicsItem::ItemIsSelectable, false);
|
||||||
|
root->setFlag(QGraphicsItem::ItemIsMovable, false);
|
||||||
|
|
||||||
|
QList<QGraphicsItem*> children = root->children();
|
||||||
|
for(QList<QGraphicsItem*>::iterator i = children.begin()
|
||||||
|
; i != children.end(); i++)
|
||||||
|
setChildrenUnselectable(*i);
|
||||||
|
}
|
||||||
|
|
|
@ -80,6 +80,8 @@ public:
|
||||||
QModelIndex indexFromPointer(ParseTreeNode* p);
|
QModelIndex indexFromPointer(ParseTreeNode* p);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void setChildrenUnselectable(QGraphicsItem* root);
|
||||||
|
|
||||||
ParseTreeNode* root;
|
ParseTreeNode* root;
|
||||||
ParseTreeModel* sbsModel;
|
ParseTreeModel* sbsModel;
|
||||||
struct skin_element* tree;
|
struct skin_element* tree;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue