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),
|
||||
node(pNode), doc(info.document())
|
||||
{
|
||||
setFlags(ItemIsSelectable | ItemIsMovable | ItemSendsGeometryChanges);
|
||||
|
||||
if(!node->tag)
|
||||
{
|
||||
/* Default viewport takes up the entire screen */
|
||||
|
|
|
@ -342,8 +342,9 @@ QGraphicsScene* ParseTreeModel::render(ProjectModel* project,
|
|||
sbsInfo = RBRenderInfo(sbsModel, project, doc, &settings,
|
||||
device, sbsScreen);
|
||||
sbsModel->root->render(sbsInfo);
|
||||
}
|
||||
|
||||
setChildrenUnselectable(sbsScreen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -384,3 +385,14 @@ QModelIndex ParseTreeModel::indexFromPointer(ParseTreeNode *p)
|
|||
return QModelIndex();
|
||||
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);
|
||||
|
||||
private:
|
||||
void setChildrenUnselectable(QGraphicsItem* root);
|
||||
|
||||
ParseTreeNode* root;
|
||||
ParseTreeModel* sbsModel;
|
||||
struct skin_element* tree;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue