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:
parent
1d4dc9b3b0
commit
2e320f66f4
13 changed files with 435 additions and 46 deletions
125
utils/themeeditor/configdocument.cpp
Normal file
125
utils/themeeditor/configdocument.cpp
Normal 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"));
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue