1
0
Fork 0
forked from len0rd/rockbox

Theme Editor: Changed color to colour in preferences. Made parse tree viewer alternate line colors and auto-scroll/expand with cursor in editor window. Implemented TabContent abstract class so that more than just skin documents can be loaded in tabs. Made SkinDocument implement TabContent. Began implementing ConfigDocument for editing configuration files.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26851 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Robert Bieber 2010-06-15 06:54:58 +00:00
parent 1d4dc9b3b0
commit 2e320f66f4
13 changed files with 435 additions and 46 deletions

View file

@ -0,0 +1,125 @@
#include "configdocument.h"
#include "ui_configdocument.h"
ConfigDocument::ConfigDocument(QMap<QString, QString>& settings, QString file,
QWidget *parent)
: TabContent(parent),
ui(new Ui::ConfigDocument),
filePath(file)
{
ui->setupUi(this);
QMap<QString, QString>::iterator i;
for(i = settings.begin(); i != settings.end(); i++)
addRow(i.key(), i.value());
saved = toPlainText();
QObject::connect(ui->addKeyButton, SIGNAL(pressed()),
this, SLOT(addClicked()));
}
ConfigDocument::~ConfigDocument()
{
delete ui;
}
void ConfigDocument::changeEvent(QEvent *e)
{
QWidget::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
QString ConfigDocument::title() const
{
QStringList decompose = filePath.split("/");
return decompose.last();
}
void ConfigDocument::save()
{
}
void ConfigDocument::saveAs()
{
}
bool ConfigDocument::requestClose()
{
}
QString ConfigDocument::toPlainText() const
{
QString buffer = "";
for(int i = 0; i < keys.count(); i++)
{
buffer += keys[i]->text();
buffer += ":";
buffer += values[i]->text();
buffer += "\n";
}
return buffer;
}
void ConfigDocument::addRow(QString key, QString value)
{
QHBoxLayout* layout = new QHBoxLayout();
QLineEdit* keyEdit = new QLineEdit(key, this);
QLineEdit* valueEdit = new QLineEdit(value, this);
QPushButton* delButton = new QPushButton(tr("-"), this);
layout->addWidget(keyEdit);
layout->addWidget(valueEdit);
layout->addWidget(delButton);
delButton->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed);
delButton->setMaximumWidth(35);
QObject::connect(delButton, SIGNAL(clicked()),
this, SLOT(deleteClicked()));
ui->configBoxes->addLayout(layout);
containers.append(layout);
keys.append(keyEdit);
values.append(valueEdit);
deleteButtons.append(delButton);
}
void ConfigDocument::deleteClicked()
{
QPushButton* button = dynamic_cast<QPushButton*>(sender());
int row = deleteButtons.indexOf(button);
deleteButtons[row]->deleteLater();
keys[row]->deleteLater();
values[row]->deleteLater();
containers[row]->deleteLater();
deleteButtons.removeAt(row);
keys.removeAt(row);
values.removeAt(row);
containers.removeAt(row);
if(saved != toPlainText())
emit titleChanged(title() + "*");
else
emit titleChanged(title());
}
void ConfigDocument::addClicked()
{
addRow(tr("Key"), tr("Value"));
}