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 +++++++++++ utils/themeeditor/gui/rbconsole.cpp | 41 +++++++++++++++++ utils/themeeditor/gui/rbconsole.h | 43 ++++++++++++++++++ utils/themeeditor/gui/rbconsole.ui | 69 +++++++++++++++++++++++++++++ utils/themeeditor/models/parsetreemodel.cpp | 2 + utils/themeeditor/themeeditor.pro | 9 ++-- 7 files changed, 212 insertions(+), 6 deletions(-) create mode 100644 utils/themeeditor/gui/rbconsole.cpp create mode 100644 utils/themeeditor/gui/rbconsole.h create mode 100644 utils/themeeditor/gui/rbconsole.ui diff --git a/utils/themeeditor/graphics/rbscene.cpp b/utils/themeeditor/graphics/rbscene.cpp index 206f68f184..c80cb2357d 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 4cb0dfc2a4..33c641dcb0 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 diff --git a/utils/themeeditor/gui/rbconsole.cpp b/utils/themeeditor/gui/rbconsole.cpp new file mode 100644 index 0000000000..51af64a812 --- /dev/null +++ b/utils/themeeditor/gui/rbconsole.cpp @@ -0,0 +1,41 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Robert Bieber + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include "rbconsole.h" +#include "ui_rbconsole.h" + +RBConsole::RBConsole(QWidget *parent) : + QWidget(parent), + ui(new Ui::RBConsole) +{ + ui->setupUi(this); +} + +RBConsole::~RBConsole() +{ + delete ui; +} + +void RBConsole::addWarning(QString warning) +{ + ui->output->appendHtml("" + warning + + ""); +} diff --git a/utils/themeeditor/gui/rbconsole.h b/utils/themeeditor/gui/rbconsole.h new file mode 100644 index 0000000000..b6f38cc56e --- /dev/null +++ b/utils/themeeditor/gui/rbconsole.h @@ -0,0 +1,43 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 Robert Bieber + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#ifndef RBCONSOLE_H +#define RBCONSOLE_H + +#include + +namespace Ui { + class RBConsole; +} + +class RBConsole : public QWidget { + Q_OBJECT +public: + RBConsole(QWidget *parent = 0); + ~RBConsole(); + + void addWarning(QString warning); + +private: + Ui::RBConsole *ui; +}; + +#endif // RBCONSOLE_H diff --git a/utils/themeeditor/gui/rbconsole.ui b/utils/themeeditor/gui/rbconsole.ui new file mode 100644 index 0000000000..c3f9ff179d --- /dev/null +++ b/utils/themeeditor/gui/rbconsole.ui @@ -0,0 +1,69 @@ + + + RBConsole + + + + 0 + 0 + 300 + 200 + + + + Form + + + + + + true + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Okay + + + + + + + + + + + okayButton + clicked() + RBConsole + close() + + + 247 + 176 + + + 149 + 99 + + + + + diff --git a/utils/themeeditor/models/parsetreemodel.cpp b/utils/themeeditor/models/parsetreemodel.cpp index a7f46acd5f..e456797a4d 100644 --- a/utils/themeeditor/models/parsetreemodel.cpp +++ b/utils/themeeditor/models/parsetreemodel.cpp @@ -358,6 +358,8 @@ RBScene* ParseTreeModel::render(ProjectModel* project, scene->addItem(screen); } + scene->setScreenSize(screen->boundingRect()); + info = RBRenderInfo(this, project, doc, &settings, device, screen); diff --git a/utils/themeeditor/themeeditor.pro b/utils/themeeditor/themeeditor.pro index 0cecd2d96b..b8d1dd3523 100644 --- a/utils/themeeditor/themeeditor.pro +++ b/utils/themeeditor/themeeditor.pro @@ -108,7 +108,8 @@ HEADERS += models/parsetreemodel.h \ gui/targetdownloader.h \ gui/syntaxcompleter.h \ graphics/rbmovable.h \ - graphics/rbscene.h + graphics/rbscene.h \ + gui/rbconsole.h SOURCES += main.cpp \ models/parsetreemodel.cpp \ models/parsetreenode.cpp \ @@ -151,7 +152,8 @@ SOURCES += main.cpp \ gui/targetdownloader.cpp \ gui/syntaxcompleter.cpp \ graphics/rbmovable.cpp \ - graphics/rbscene.cpp + graphics/rbscene.cpp \ + gui/rbconsole.cpp OTHER_FILES += README \ resources/windowicon.png \ resources/appicon.xcf \ @@ -196,7 +198,8 @@ FORMS += gui/editorwindow.ui \ qtfindreplacedialog/findreplaceform.ui \ qtfindreplacedialog/findreplacedialog.ui \ gui/projectexporter.ui \ - gui/targetdownloader.ui + gui/targetdownloader.ui \ + gui/rbconsole.ui RESOURCES += resources.qrc win32:RC_FILE = themeeditor.rc macx { -- cgit v1.2.3