diff options
author | Robert Bieber <robby@bieberphoto.com> | 2010-08-12 05:30:31 +0000 |
---|---|---|
committer | Robert Bieber <robby@bieberphoto.com> | 2010-08-12 05:30:31 +0000 |
commit | 56023426130d4b5fb932abc421dd8b6778d817c0 (patch) | |
tree | a1cea91722a3b9d994337c754c8ddf4899f7cc76 | |
parent | 209020ceb1403ff2d3d50c3a9cc82e9d35b885f5 (diff) | |
download | rockbox-56023426130d4b5fb932abc421dd8b6778d817c0.tar.gz rockbox-56023426130d4b5fb932abc421dd8b6778d817c0.zip |
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
-rw-r--r-- | utils/themeeditor/graphics/rbscene.cpp | 28 | ||||
-rw-r--r-- | utils/themeeditor/graphics/rbscene.h | 26 | ||||
-rw-r--r-- | utils/themeeditor/gui/rbconsole.cpp | 41 | ||||
-rw-r--r-- | utils/themeeditor/gui/rbconsole.h | 43 | ||||
-rw-r--r-- | utils/themeeditor/gui/rbconsole.ui | 69 | ||||
-rw-r--r-- | utils/themeeditor/models/parsetreemodel.cpp | 2 | ||||
-rw-r--r-- | utils/themeeditor/themeeditor.pro | 9 |
7 files changed, 212 insertions, 6 deletions
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 <QGraphicsSceneMouseEvent> #include <QGraphicsItem> - -#include <QDebug> +#include <QGraphicsProxyWidget> #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 <QGraphicsScene> +#include <QGraphicsProxyWidget> 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("<span style = \"color:orange\">" + warning + + "</span>"); +} 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 <QWidget> + +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 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>RBConsole</class> + <widget class="QWidget" name="RBConsole"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>300</width> + <height>200</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QPlainTextEdit" name="output"> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QPushButton" name="okayButton"> + <property name="text"> + <string>Okay</string> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>okayButton</sender> + <signal>clicked()</signal> + <receiver>RBConsole</receiver> + <slot>close()</slot> + <hints> + <hint type="sourcelabel"> + <x>247</x> + <y>176</y> + </hint> + <hint type="destinationlabel"> + <x>149</x> + <y>99</y> + </hint> + </hints> + </connection> + </connections> +</ui> 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 { |