1
0
Fork 0
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:
Robert Bieber 2010-08-06 05:34:01 +00:00
parent 6063e9138b
commit d505bc0119
3 changed files with 15 additions and 3 deletions

View file

@ -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 */

View file

@ -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);
}

View file

@ -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;