-rw-r--r-- | noncore/tools/remote/configtab.cpp | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/noncore/tools/remote/configtab.cpp b/noncore/tools/remote/configtab.cpp index 17cdc6a..ebfba2e 100644 --- a/noncore/tools/remote/configtab.cpp +++ b/noncore/tools/remote/configtab.cpp @@ -68,89 +68,105 @@ void ConfigTab::setConfig(Config *newCfg) { cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text()); } } } objList = vcrGroupConf->children(); for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) { if(obj->inherits("QPushButton")) { if(!cfg->hasKey((QString)obj->name()+"Label")) { cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text()); } } } objList = channelGroupConf->children(); for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) { if(obj->inherits("QPushButton")) { if(!cfg->hasKey((QString)obj->name()+"Label")) { cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text()); } } } cfg->write(); cfg->setGroup("Remotes"); + + QString curr_remote = topGroupConf->getRemotesText(); + if(curr_remote != "") + remoteSelected(curr_remote); } /* void ConfigTab::savePressed() { cfg->setGroup(remotes->currentText()); ButtonDialog *bd = new ButtonDialog(this, "BD", true, 0); if( bd->exec() == 1) { printf("%s\n", bd->getList().join(" ").latin1()); } } */ void ConfigTab::newPressed() { QStringList list; - cfg->setGroup("Remotes"); - list=cfg->readListEntry("remoteList", ','); - list+=topGroupConf->getRemotesText(); - cfg->writeEntry("remoteList", list, ','); - cfg->setGroup(topGroupConf->getRemotesText()); - topGroupConf->updateRemotes(QStringList(topGroupConf->getRemotesText()) ); - cfg->write(); - emit remotesChanged(); - remoteSelected(topGroupConf->getRemotesText()); + QString newname = topGroupConf->getRemotesText(); + if(newname=="Remotes") + QMessageBox::warning(this, tr("Error"), tr("The name 'Remotes' is not allowed"), QMessageBox::Ok, QMessageBox::NoButton); + else { + cfg->setGroup("Remotes"); + list=cfg->readListEntry("remoteList", ','); + if(list.findIndex(newname) == -1) { + list+=newname; + cfg->writeEntry("remoteList", list, ','); + cfg->setGroup(newname); + topGroupConf->updateRemotes(QStringList(newname) ); + cfg->write(); + emit remotesChanged(); + remoteSelected(newname); + } + else { + QMessageBox::warning(this, tr("Already exists"), tr("A layout named %1\nalready exists").arg(newname), QMessageBox::Ok, QMessageBox::NoButton); + // Re-select existing layout + remoteSelected(newname); + } + } } void ConfigTab::remoteSelected(const QString &string) { cfg->setGroup(string); const QObject *obj; const QObjectList *objList = topGroupConf->children(); for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) { if(obj->inherits("QPushButton")) { if(cfg->hasKey((QString)obj->name()+"Label")) { ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); } else { cfg->setGroup("Default"); ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); cfg->setGroup(string); } } } objList = dvdGroupConf->children(); for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) { if(obj->inherits("QPushButton")) { if(cfg->hasKey((QString)obj->name()+"Label")) { @@ -177,42 +193,46 @@ void ConfigTab::remoteSelected(const QString &string) else { cfg->setGroup("Default"); ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); cfg->setGroup(string); } } } objList = channelGroupConf->children(); for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) { if(obj->inherits("QPushButton")) { if(cfg->hasKey((QString)obj->name()+"Label")) { ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); } else { cfg->setGroup("Default"); ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); cfg->setGroup(string); } } } } void ConfigTab::buttonPressed() { const QObject *button = sender(); QString string = button->name(); - - ButtonDialog *bd = new ButtonDialog(((QPushButton *)button)->text(), this, "BD", true, 0); + + QString action = cfg->readEntry(string); + + ButtonDialog *bd = new ButtonDialog(((QPushButton *)button)->text(), action, this, "BD", true, 0); if( bd->exec() == 1) { - cfg->writeEntry(string, bd->getList().join(" ").latin1()); + cfg->writeEntry(string, bd->getAction().latin1()); cfg->writeEntry(string+"Label", bd->getLabel().latin1()); + cfg->write(); + ((QPushButton *)button)->setText(bd->getLabel()); } - cfg->write(); - ((QPushButton *)button)->setText(bd->getLabel()); + + delete bd; } |