summaryrefslogtreecommitdiff
authorpaule <paule>2007-01-28 06:43:22 (UTC)
committer paule <paule>2007-01-28 06:43:22 (UTC)
commita70f2692462053c1b76f990919f698a2eaa56fb5 (patch) (side-by-side diff)
treedae72297f0ba8e43385ca0122edf5813bd51faf7
parent8cf13e6845fa0159fb7f864bf5d3c5c0a62188ff (diff)
downloadopie-a70f2692462053c1b76f990919f698a2eaa56fb5.zip
opie-a70f2692462053c1b76f990919f698a2eaa56fb5.tar.gz
opie-a70f2692462053c1b76f990919f698a2eaa56fb5.tar.bz2
Correctly select first remote upon loading configuration; show a warning message if user presses a button that has not been configured
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/remote/remotetab.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/noncore/tools/remote/remotetab.cpp b/noncore/tools/remote/remotetab.cpp
index 84038ca..45995fd 100644
--- a/noncore/tools/remote/remotetab.cpp
+++ b/noncore/tools/remote/remotetab.cpp
@@ -1,96 +1,107 @@
/*
Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie.
Copyright (C) 2002 Thomas Stephens
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 program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#include <qmessagebox.h>
+
#include "remotetab.h"
#include "lirchandler.h"
RemoteTab::RemoteTab(QWidget *parent, const char *name):QWidget(parent,name)
{
QVBoxLayout *layout = new QVBoxLayout(this);
topGroup = new TopGroup(this);
// topGroup->setMaximumHeight(22);
layout->addWidget(topGroup, 0, 0);
printf("%d %d", topGroup->width(), topGroup->height());
layout->addSpacing(1);
dvdGroup = new DVDGroup(this);
// dvdGroup->setMaximumHeight(68);
layout->addWidget(dvdGroup, 0, 0);
layout->addSpacing(1);
vcrGroup = new VCRGroup(this);
layout->addWidget(vcrGroup, 0, 0);
// vcrGroup->setMaximumHeight(45);
layout->addSpacing(1);
channelGroup = new ChannelGroup(this);
// channelGroup->setMaximumHeight(91);
layout->addWidget(channelGroup, 0, 0);
this->setMaximumWidth(240);
}
int RemoteTab::sendIR()
{
const QObject *button = sender();
QString string = cfg->readEntry(button->name());
- string+='\n';
-
- LircHandler lh;
- return lh.sendIR(string.latin1());
+ if(string != "") {
+ string+='\n';
+ LircHandler lh;
+ return lh.sendIR(string.latin1());
+ }
+ else {
+ QMessageBox::warning(this, tr("Error"), tr("This button has not\nbeen configured"), QMessageBox::Ok, QMessageBox::NoButton);
+ return 0;
+ }
}
void RemoteTab::setConfig(Config *newCfg)
{
cfg = newCfg;
cfg->setGroup("Remotes");
topGroup->updateRemotes(cfg);
+
+ QString curr_remote = topGroup->getRemotesText();
+ if(curr_remote != "")
+ remoteSelected(curr_remote);
}
void RemoteTab::remoteSelected(const QString &string)
{
printf("1%s\n", string.latin1() );
cfg->setGroup(string);
const QObject *obj;
const QObjectList *objList = topGroup->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 = dvdGroup->children();
for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
{
if(obj->inherits("QPushButton"))
{
if(cfg->hasKey((QString)obj->name()+"Label"))