forked from len0rd/rockbox
Theme Editor: Renderer now allows multiple viewports to share an identifier
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27112 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d7ee0fe076
commit
481bcf2632
2 changed files with 33 additions and 13 deletions
|
@ -70,8 +70,11 @@ RBScreen::~RBScreen()
|
||||||
|
|
||||||
QMap<int, RBFont*>::iterator i;
|
QMap<int, RBFont*>::iterator i;
|
||||||
for(i = fonts.begin(); i != fonts.end(); i++)
|
for(i = fonts.begin(); i != fonts.end(); i++)
|
||||||
if(*i)
|
|
||||||
delete (*i);
|
delete (*i);
|
||||||
|
|
||||||
|
QMap<QString, QList<RBViewport*>*>::iterator it;
|
||||||
|
for(it = namedViewports.begin(); it != namedViewports.end(); it++)
|
||||||
|
delete (*it);
|
||||||
}
|
}
|
||||||
|
|
||||||
QPainterPath RBScreen::shape() const
|
QPainterPath RBScreen::shape() const
|
||||||
|
@ -99,13 +102,30 @@ void RBScreen::paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void RBScreen::loadViewport(QString name, RBViewport *view)
|
||||||
|
{
|
||||||
|
QList<RBViewport*>* list;
|
||||||
|
if(namedViewports.value(name, 0) == 0)
|
||||||
|
{
|
||||||
|
list = new QList<RBViewport*>;
|
||||||
|
list->append(view);
|
||||||
|
namedViewports.insert(name, list);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
list = namedViewports.value(name, 0);
|
||||||
|
list->append(view);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void RBScreen::showViewport(QString name)
|
void RBScreen::showViewport(QString name)
|
||||||
{
|
{
|
||||||
if(namedViewports.value(name, 0) == 0)
|
if(namedViewports.value(name, 0) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
namedViewports.value(name)->show();
|
QList<RBViewport*>* list = namedViewports.value(name, 0);
|
||||||
update();
|
for(int i = 0; i < list->count(); i++)
|
||||||
|
list->at(i)->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void RBScreen::loadFont(int id, RBFont* font)
|
void RBScreen::loadFont(int id, RBFont* font)
|
||||||
|
@ -143,11 +163,14 @@ void RBScreen::makeCustomUI(QString id)
|
||||||
{
|
{
|
||||||
if(namedViewports.value(id, 0) != 0)
|
if(namedViewports.value(id, 0) != 0)
|
||||||
{
|
{
|
||||||
QMap<QString, RBViewport*>::iterator i;
|
QMap<QString, QList<RBViewport*>*>::iterator i;
|
||||||
for(i = namedViewports.begin(); i != namedViewports.end(); i++)
|
for(i = namedViewports.begin(); i != namedViewports.end(); i++)
|
||||||
(*i)->clearCustomUI();
|
for(int j = 0; j < (*i)->count(); j++)
|
||||||
namedViewports.value(id)->makeCustomUI();
|
(*i)->at(j)->clearCustomUI();
|
||||||
namedViewports.value(id)->show();
|
for(int i = 0; i < namedViewports.value(id)->count(); i++)
|
||||||
|
namedViewports.value(id)->at(i)->makeCustomUI();
|
||||||
|
for(int i = 0; i < namedViewports.value(id)->count(); i++)
|
||||||
|
namedViewports.value(id)->at(i)->show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,10 +46,7 @@ public:
|
||||||
int getWidth() const{ return width; }
|
int getWidth() const{ return width; }
|
||||||
int getHeight() const{ return height; }
|
int getHeight() const{ return height; }
|
||||||
|
|
||||||
void loadViewport(QString name, RBViewport* view)
|
void loadViewport(QString name, RBViewport* view);
|
||||||
{
|
|
||||||
namedViewports.insert(name, view);
|
|
||||||
}
|
|
||||||
void showViewport(QString name);
|
void showViewport(QString name);
|
||||||
|
|
||||||
void loadImage(QString name, RBImage* image)
|
void loadImage(QString name, RBImage* image)
|
||||||
|
@ -78,7 +75,7 @@ private:
|
||||||
|
|
||||||
ProjectModel* project;
|
ProjectModel* project;
|
||||||
|
|
||||||
QMap<QString, RBViewport*> namedViewports;
|
QMap<QString, QList<RBViewport*>*> namedViewports;
|
||||||
QMap<QString, RBImage*> images;
|
QMap<QString, RBImage*> images;
|
||||||
QMap<QString, QString>* settings;
|
QMap<QString, QString>* settings;
|
||||||
QMap<int, RBFont*> fonts;
|
QMap<int, RBFont*> fonts;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue