2e320f66f4
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26851 a1c6a512-1295-4272-9138-f99709370657
125 lines
2.7 KiB
C++
125 lines
2.7 KiB
C++
#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"));
|
|
}
|