summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Bieber <robby@bieberphoto.com>2010-08-12 05:30:31 +0000
committerRobert Bieber <robby@bieberphoto.com>2010-08-12 05:30:31 +0000
commit56023426130d4b5fb932abc421dd8b6778d817c0 (patch)
treea1cea91722a3b9d994337c754c8ddf4899f7cc76
parent209020ceb1403ff2d3d50c3a9cc82e9d35b885f5 (diff)
downloadrockbox-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.cpp28
-rw-r--r--utils/themeeditor/graphics/rbscene.h26
-rw-r--r--utils/themeeditor/gui/rbconsole.cpp41
-rw-r--r--utils/themeeditor/gui/rbconsole.h43
-rw-r--r--utils/themeeditor/gui/rbconsole.ui69
-rw-r--r--utils/themeeditor/models/parsetreemodel.cpp2
-rw-r--r--utils/themeeditor/themeeditor.pro9
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 {