From 56023426130d4b5fb932abc421dd8b6778d817c0 Mon Sep 17 00:00:00 2001 From: Robert Bieber Date: Thu, 12 Aug 2010 05:30:31 +0000 Subject: Theme Editor: Added a warning console to the renderer, but haven't made any rendering classes use it yet git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27775 a1c6a512-1295-4272-9138-f99709370657 --- utils/themeeditor/graphics/rbscene.cpp | 28 +++++++++++++++++++++++++--- utils/themeeditor/graphics/rbscene.h | 26 ++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) (limited to 'utils/themeeditor/graphics') diff --git a/utils/themeeditor/graphics/rbscene.cpp b/utils/themeeditor/graphics/rbscene.cpp index 206f68f..c80cb23 100644 --- a/utils/themeeditor/graphics/rbscene.cpp +++ b/utils/themeeditor/graphics/rbscene.cpp @@ -21,16 +21,38 @@ #include #include - -#include +#include #include "rbscene.h" +#include "rbconsole.h" RBScene::RBScene(QObject* parent) - : QGraphicsScene(parent) + : QGraphicsScene(parent), consoleProxy(0), console(0) { } RBScene::~RBScene() { + if(console) + console->deleteLater(); + + if(consoleProxy) + consoleProxy->deleteLater(); +} + +void RBScene::clear() +{ + QGraphicsScene::clear(); + + console = new RBConsole(); + consoleProxy = addWidget(console); + consoleProxy->setZValue(1000); + consoleProxy->resize(screen.width(), screen.height()); + consoleProxy->hide(); +} + +void RBScene::addWarning(QString warning) +{ + console->addWarning(warning); + console->show(); } diff --git a/utils/themeeditor/graphics/rbscene.h b/utils/themeeditor/graphics/rbscene.h index 4cb0dfc..33c641d 100644 --- a/utils/themeeditor/graphics/rbscene.h +++ b/utils/themeeditor/graphics/rbscene.h @@ -23,8 +23,10 @@ #define RBSCENE_H #include +#include class RBScreen; +class RBConsole; class RBScene : public QGraphicsScene { @@ -36,8 +38,32 @@ public: void moveMouse(QString position){ emit mouseMoved(position); } + void setScreenSize(qreal w, qreal h) + { + screen = QRectF(0, 0, w, h); + if(consoleProxy) + consoleProxy->resize(screen.width(), screen.height()); + } + + void setScreenSize(QRectF screen){ + this->screen = screen; + if(consoleProxy) + consoleProxy->resize(screen.width(), screen.height()); + } + + void addWarning(QString warning); + +public slots: + void clear(); + signals: void mouseMoved(QString position); + +private: + QGraphicsProxyWidget* consoleProxy; + RBConsole* console; + + QRectF screen; }; #endif // RBSCENE_H -- cgit v1.1