1
0
Fork 0
forked from len0rd/rockbox

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
This commit is contained in:
Robert Bieber 2010-08-12 05:30:31 +00:00
parent 209020ceb1
commit 5602342613
7 changed files with 212 additions and 6 deletions

View file

@ -21,16 +21,38 @@
#include <QGraphicsSceneMouseEvent> #include <QGraphicsSceneMouseEvent>
#include <QGraphicsItem> #include <QGraphicsItem>
#include <QGraphicsProxyWidget>
#include <QDebug>
#include "rbscene.h" #include "rbscene.h"
#include "rbconsole.h"
RBScene::RBScene(QObject* parent) RBScene::RBScene(QObject* parent)
: QGraphicsScene(parent) : QGraphicsScene(parent), consoleProxy(0), console(0)
{ {
} }
RBScene::~RBScene() 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();
} }

View file

@ -23,8 +23,10 @@
#define RBSCENE_H #define RBSCENE_H
#include <QGraphicsScene> #include <QGraphicsScene>
#include <QGraphicsProxyWidget>
class RBScreen; class RBScreen;
class RBConsole;
class RBScene : public QGraphicsScene class RBScene : public QGraphicsScene
{ {
@ -36,8 +38,32 @@ public:
void moveMouse(QString position){ emit mouseMoved(position); } 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: signals:
void mouseMoved(QString position); void mouseMoved(QString position);
private:
QGraphicsProxyWidget* consoleProxy;
RBConsole* console;
QRectF screen;
}; };
#endif // RBSCENE_H #endif // RBSCENE_H

View file

@ -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>");
}

View file

@ -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

View file

@ -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>

View file

@ -358,6 +358,8 @@ RBScene* ParseTreeModel::render(ProjectModel* project,
scene->addItem(screen); scene->addItem(screen);
} }
scene->setScreenSize(screen->boundingRect());
info = RBRenderInfo(this, project, doc, &settings, device, screen); info = RBRenderInfo(this, project, doc, &settings, device, screen);

View file

@ -108,7 +108,8 @@ HEADERS += models/parsetreemodel.h \
gui/targetdownloader.h \ gui/targetdownloader.h \
gui/syntaxcompleter.h \ gui/syntaxcompleter.h \
graphics/rbmovable.h \ graphics/rbmovable.h \
graphics/rbscene.h graphics/rbscene.h \
gui/rbconsole.h
SOURCES += main.cpp \ SOURCES += main.cpp \
models/parsetreemodel.cpp \ models/parsetreemodel.cpp \
models/parsetreenode.cpp \ models/parsetreenode.cpp \
@ -151,7 +152,8 @@ SOURCES += main.cpp \
gui/targetdownloader.cpp \ gui/targetdownloader.cpp \
gui/syntaxcompleter.cpp \ gui/syntaxcompleter.cpp \
graphics/rbmovable.cpp \ graphics/rbmovable.cpp \
graphics/rbscene.cpp graphics/rbscene.cpp \
gui/rbconsole.cpp
OTHER_FILES += README \ OTHER_FILES += README \
resources/windowicon.png \ resources/windowicon.png \
resources/appicon.xcf \ resources/appicon.xcf \
@ -196,7 +198,8 @@ FORMS += gui/editorwindow.ui \
qtfindreplacedialog/findreplaceform.ui \ qtfindreplacedialog/findreplaceform.ui \
qtfindreplacedialog/findreplacedialog.ui \ qtfindreplacedialog/findreplacedialog.ui \
gui/projectexporter.ui \ gui/projectexporter.ui \
gui/targetdownloader.ui gui/targetdownloader.ui \
gui/rbconsole.ui
RESOURCES += resources.qrc RESOURCES += resources.qrc
win32:RC_FILE = themeeditor.rc win32:RC_FILE = themeeditor.rc
macx { macx {