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:
parent
9616389377
commit
e174a8ad8d
7 changed files with 136 additions and 28 deletions
|
@ -60,6 +60,7 @@ void EditorWindow::setupUI()
|
||||||
/* Connecting the buttons */
|
/* Connecting the buttons */
|
||||||
QObject::connect(ui->fromTree, SIGNAL(pressed()),
|
QObject::connect(ui->fromTree, SIGNAL(pressed()),
|
||||||
this, SLOT(updateCode()));
|
this, SLOT(updateCode()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditorWindow::setupMenus()
|
void EditorWindow::setupMenus()
|
||||||
|
@ -71,15 +72,17 @@ void EditorWindow::setupMenus()
|
||||||
this, SLOT(showPanel()));
|
this, SLOT(showPanel()));
|
||||||
QObject::connect(ui->actionPreview_Panel, SIGNAL(triggered()),
|
QObject::connect(ui->actionPreview_Panel, SIGNAL(triggered()),
|
||||||
this, SLOT(showPanel()));
|
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()
|
void EditorWindow::showPanel()
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
|
|
||||||
#include "parsetreemodel.h"
|
#include "parsetreemodel.h"
|
||||||
#include "skinhighlighter.h"
|
#include "skinhighlighter.h"
|
||||||
|
#include "skindocument.h"
|
||||||
|
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
class EditorWindow;
|
class EditorWindow;
|
||||||
|
@ -41,9 +42,8 @@ protected:
|
||||||
virtual void closeEvent(QCloseEvent* event);
|
virtual void closeEvent(QCloseEvent* event);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void updateCode();
|
|
||||||
void codeChanged();
|
|
||||||
void showPanel();
|
void showPanel();
|
||||||
|
void newTab();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/* Setup functions */
|
/* Setup functions */
|
||||||
|
@ -52,8 +52,6 @@ private:
|
||||||
void setupMenus();
|
void setupMenus();
|
||||||
|
|
||||||
Ui::EditorWindow *ui;
|
Ui::EditorWindow *ui;
|
||||||
SkinHighlighter* highlighter;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // EDITORWINDOW_H
|
#endif // EDITORWINDOW_H
|
||||||
|
|
|
@ -21,9 +21,6 @@
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="editorTabs">
|
<widget class="QTabWidget" name="editorTabs">
|
||||||
<property name="tabPosition">
|
|
||||||
<enum>QTabWidget::North</enum>
|
|
||||||
</property>
|
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>-1</number>
|
<number>-1</number>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
@ -41,19 +41,5 @@ int main(int argc, char* argv[])
|
||||||
|
|
||||||
return app.exec();
|
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);
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
63
utils/themeeditor/skindocument.cpp
Normal file
63
utils/themeeditor/skindocument.cpp
Normal 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());
|
||||||
|
}
|
59
utils/themeeditor/skindocument.h
Normal file
59
utils/themeeditor/skindocument.h
Normal 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
|
|
@ -12,7 +12,8 @@ HEADERS += tag_table.h \
|
||||||
parsetreemodel.h \
|
parsetreemodel.h \
|
||||||
parsetreenode.h \
|
parsetreenode.h \
|
||||||
editorwindow.h \
|
editorwindow.h \
|
||||||
skinhighlighter.h
|
skinhighlighter.h \
|
||||||
|
skindocument.h
|
||||||
SOURCES += tag_table.c \
|
SOURCES += tag_table.c \
|
||||||
skin_parser.c \
|
skin_parser.c \
|
||||||
skin_scan.c \
|
skin_scan.c \
|
||||||
|
@ -21,7 +22,8 @@ SOURCES += tag_table.c \
|
||||||
parsetreemodel.cpp \
|
parsetreemodel.cpp \
|
||||||
parsetreenode.cpp \
|
parsetreenode.cpp \
|
||||||
editorwindow.cpp \
|
editorwindow.cpp \
|
||||||
skinhighlighter.cpp
|
skinhighlighter.cpp \
|
||||||
|
skindocument.cpp
|
||||||
OTHER_FILES += README \
|
OTHER_FILES += README \
|
||||||
resources/windowicon.png \
|
resources/windowicon.png \
|
||||||
resources/appicon.xcf
|
resources/appicon.xcf
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue