1
0
Fork 0
forked from len0rd/rockbox

Theme Editor: Began implementing tabbing

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26541 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-06-04 07:57:19 +00:00
parent 9616389377
commit e174a8ad8d
7 changed files with 136 additions and 28 deletions

View file

@ -60,6 +60,7 @@ void EditorWindow::setupUI()
/* Connecting the buttons */
QObject::connect(ui->fromTree, SIGNAL(pressed()),
this, SLOT(updateCode()));
}
void EditorWindow::setupMenus()
@ -71,15 +72,17 @@ void EditorWindow::setupMenus()
this, SLOT(showPanel()));
QObject::connect(ui->actionPreview_Panel, SIGNAL(triggered()),
this, SLOT(showPanel()));
/* Connecting the document opening/closing actions */
QObject::connect(ui->actionNew_Document, SIGNAL(triggered()),
this, SLOT(newTab()));
}
void EditorWindow::codeChanged()
{
ui->parseTree->expandAll();
}
void EditorWindow::updateCode()
void EditorWindow::newTab()
{
SkinDocument* doc = new SkinDocument;
ui->editorTabs->addTab(doc, doc->getTitle());
}
void EditorWindow::showPanel()

View file

@ -26,6 +26,7 @@
#include "parsetreemodel.h"
#include "skinhighlighter.h"
#include "skindocument.h"
namespace Ui {
class EditorWindow;
@ -41,9 +42,8 @@ protected:
virtual void closeEvent(QCloseEvent* event);
private slots:
void updateCode();
void codeChanged();
void showPanel();
void newTab();
private:
/* Setup functions */
@ -52,8 +52,6 @@ private:
void setupMenus();
Ui::EditorWindow *ui;
SkinHighlighter* highlighter;
};
#endif // EDITORWINDOW_H

View file

@ -21,9 +21,6 @@
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="editorTabs">
<property name="tabPosition">
<enum>QTabWidget::North</enum>
</property>
<property name="currentIndex">
<number>-1</number>
</property>

View file

@ -41,19 +41,5 @@ int main(int argc, char* argv[])
return app.exec();
/*
struct skin_element* test = skin_parse(doc);
ParseTreeModel tree(doc);
std::cout << "----" << std::endl;
if(std::string(doc) == tree.genCode().toStdString())
std::cout << "Code in/out matches" << std::endl;
else
std::cout << "Match error" << std::endl;
skin_free_tree(test);
*/
}

View file

@ -0,0 +1,63 @@
/***************************************************************************
* __________ __ ___.
* 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 "skindocument.h"
SkinDocument::SkinDocument(QWidget *parent) :
QWidget(parent)
{
setupUI();
title = "Untitled";
}
SkinDocument::~SkinDocument()
{
delete highlighter;
delete model;
}
void SkinDocument::setupUI()
{
/* Setting up the text edit */
layout = new QHBoxLayout;
editor = new QPlainTextEdit(this);
layout->addWidget(editor);
setLayout(layout);
/* Attaching the syntax highlighter */
highlighter = new SkinHighlighter(QColor(0,180,0), QColor(255,0,0),
QColor(0,0,255), QColor(120,120,120),
editor->document());
/* Setting up the model */
model = new ParseTreeModel("");
/* Connecting the editor's signal */
QObject::connect(editor, SIGNAL(textChanged()),
this, SLOT(codeChanged()));
}
void SkinDocument::codeChanged()
{
model->changeTree(editor->document()->toPlainText().toAscii());
}

View file

@ -0,0 +1,59 @@
/***************************************************************************
* __________ __ ___.
* 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 SKINDOCUMENT_H
#define SKINDOCUMENT_H
#include <QWidget>
#include <QHBoxLayout>
#include <QPlainTextEdit>
#include "skinhighlighter.h"
#include "parsetreemodel.h"
class SkinDocument : public QWidget
{
Q_OBJECT
public:
SkinDocument(QWidget *parent = 0);
virtual ~SkinDocument();
ParseTreeModel* getModel(){ return model; }
QString getTitle(){ return title; }
signals:
private slots:
void codeChanged();
private:
void setupUI();
QString title;
QLayout* layout;
QPlainTextEdit* editor;
SkinHighlighter* highlighter;
ParseTreeModel* model;
};
#endif // SKINDOCUMENT_H

View file

@ -12,7 +12,8 @@ HEADERS += tag_table.h \
parsetreemodel.h \
parsetreenode.h \
editorwindow.h \
skinhighlighter.h
skinhighlighter.h \
skindocument.h
SOURCES += tag_table.c \
skin_parser.c \
skin_scan.c \
@ -21,7 +22,8 @@ SOURCES += tag_table.c \
parsetreemodel.cpp \
parsetreenode.cpp \
editorwindow.cpp \
skinhighlighter.cpp
skinhighlighter.cpp \
skindocument.cpp
OTHER_FILES += README \
resources/windowicon.png \
resources/appicon.xcf