summaryrefslogtreecommitdiff
authorpaule <paule>2007-01-28 06:43:22 (UTC)
committer paule <paule>2007-01-28 06:43:22 (UTC)
commita70f2692462053c1b76f990919f698a2eaa56fb5 (patch) (unidiff)
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,149 +1,160 @@
1/* 1/*
2Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. 2Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie.
3Copyright (C) 2002 Thomas Stephens 3Copyright (C) 2002 Thomas Stephens
4 4
5This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public 5This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
6License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later 6License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later
7version. 7version.
8 8
9This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the 9This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
10implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General 10implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
11Public License for more details. 11Public License for more details.
12 12
13You should have received a copy of the GNU General Public License along with this program; if not, write to the Free 13You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
14Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 14Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
15*/ 15*/
16 16
17#include <qmessagebox.h>
18
17#include "remotetab.h" 19#include "remotetab.h"
18#include "lirchandler.h" 20#include "lirchandler.h"
19 21
20RemoteTab::RemoteTab(QWidget *parent, const char *name):QWidget(parent,name) 22RemoteTab::RemoteTab(QWidget *parent, const char *name):QWidget(parent,name)
21{ 23{
22 QVBoxLayout *layout = new QVBoxLayout(this); 24 QVBoxLayout *layout = new QVBoxLayout(this);
23 25
24 topGroup = new TopGroup(this); 26 topGroup = new TopGroup(this);
25 //topGroup->setMaximumHeight(22); 27 //topGroup->setMaximumHeight(22);
26 layout->addWidget(topGroup, 0, 0); 28 layout->addWidget(topGroup, 0, 0);
27 printf("%d %d", topGroup->width(), topGroup->height()); 29 printf("%d %d", topGroup->width(), topGroup->height());
28 30
29 layout->addSpacing(1); 31 layout->addSpacing(1);
30 32
31 dvdGroup = new DVDGroup(this); 33 dvdGroup = new DVDGroup(this);
32 //dvdGroup->setMaximumHeight(68); 34 //dvdGroup->setMaximumHeight(68);
33 layout->addWidget(dvdGroup, 0, 0); 35 layout->addWidget(dvdGroup, 0, 0);
34 36
35 layout->addSpacing(1); 37 layout->addSpacing(1);
36 38
37 vcrGroup = new VCRGroup(this); 39 vcrGroup = new VCRGroup(this);
38 layout->addWidget(vcrGroup, 0, 0); 40 layout->addWidget(vcrGroup, 0, 0);
39 //vcrGroup->setMaximumHeight(45); 41 //vcrGroup->setMaximumHeight(45);
40 42
41 layout->addSpacing(1); 43 layout->addSpacing(1);
42 44
43 channelGroup = new ChannelGroup(this); 45 channelGroup = new ChannelGroup(this);
44 //channelGroup->setMaximumHeight(91); 46 //channelGroup->setMaximumHeight(91);
45 layout->addWidget(channelGroup, 0, 0); 47 layout->addWidget(channelGroup, 0, 0);
46 48
47 this->setMaximumWidth(240); 49 this->setMaximumWidth(240);
48} 50}
49 51
50int RemoteTab::sendIR() 52int RemoteTab::sendIR()
51{ 53{
52 const QObject *button = sender(); 54 const QObject *button = sender();
53 QString string = cfg->readEntry(button->name()); 55 QString string = cfg->readEntry(button->name());
54 string+='\n'; 56 if(string != "") {
55 57 string+='\n';
56 LircHandler lh; 58 LircHandler lh;
57 return lh.sendIR(string.latin1()); 59 return lh.sendIR(string.latin1());
60 }
61 else {
62 QMessageBox::warning(this, tr("Error"), tr("This button has not\nbeen configured"), QMessageBox::Ok, QMessageBox::NoButton);
63 return 0;
64 }
58} 65}
59 66
60void RemoteTab::setConfig(Config *newCfg) 67void RemoteTab::setConfig(Config *newCfg)
61{ 68{
62 cfg = newCfg; 69 cfg = newCfg;
63 cfg->setGroup("Remotes"); 70 cfg->setGroup("Remotes");
64 topGroup->updateRemotes(cfg); 71 topGroup->updateRemotes(cfg);
72
73 QString curr_remote = topGroup->getRemotesText();
74 if(curr_remote != "")
75 remoteSelected(curr_remote);
65} 76}
66 77
67void RemoteTab::remoteSelected(const QString &string) 78void RemoteTab::remoteSelected(const QString &string)
68{ 79{
69 printf("1%s\n", string.latin1() ); 80 printf("1%s\n", string.latin1() );
70 cfg->setGroup(string); 81 cfg->setGroup(string);
71 const QObject *obj; 82 const QObject *obj;
72 83
73 const QObjectList *objList = topGroup->children(); 84 const QObjectList *objList = topGroup->children();
74 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 85 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
75 { 86 {
76 if(obj->inherits("QPushButton")) 87 if(obj->inherits("QPushButton"))
77 { 88 {
78 if(cfg->hasKey((QString)obj->name()+"Label")) 89 if(cfg->hasKey((QString)obj->name()+"Label"))
79 { 90 {
80 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 91 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
81 } 92 }
82 else 93 else
83 { 94 {
84 cfg->setGroup("Default"); 95 cfg->setGroup("Default");
85 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 96 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
86 cfg->setGroup(string); 97 cfg->setGroup(string);
87 } 98 }
88 } 99 }
89 } 100 }
90 101
91 objList = dvdGroup->children(); 102 objList = dvdGroup->children();
92 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 103 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
93 { 104 {
94 if(obj->inherits("QPushButton")) 105 if(obj->inherits("QPushButton"))
95 { 106 {
96 if(cfg->hasKey((QString)obj->name()+"Label")) 107 if(cfg->hasKey((QString)obj->name()+"Label"))
97 { 108 {
98 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 109 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
99 } 110 }
100 else 111 else
101 { 112 {
102 cfg->setGroup("Default"); 113 cfg->setGroup("Default");
103 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 114 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
104 cfg->setGroup(string); 115 cfg->setGroup(string);
105 } 116 }
106 } 117 }
107 } 118 }
108 119
109 objList = vcrGroup->children(); 120 objList = vcrGroup->children();
110 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 121 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
111 { 122 {
112 if(obj->inherits("QPushButton")) 123 if(obj->inherits("QPushButton"))
113 { 124 {
114 if(cfg->hasKey((QString)obj->name()+"Label")) 125 if(cfg->hasKey((QString)obj->name()+"Label"))
115 { 126 {
116 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 127 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
117 } 128 }
118 else 129 else
119 { 130 {
120 cfg->setGroup("Default"); 131 cfg->setGroup("Default");
121 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 132 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
122 cfg->setGroup(string); 133 cfg->setGroup(string);
123 } 134 }
124 } 135 }
125 } 136 }
126 137
127 objList = channelGroup->children(); 138 objList = channelGroup->children();
128 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 139 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
129 { 140 {
130 if(obj->inherits("QPushButton")) 141 if(obj->inherits("QPushButton"))
131 { 142 {
132 if(cfg->hasKey((QString)obj->name()+"Label")) 143 if(cfg->hasKey((QString)obj->name()+"Label"))
133 { 144 {
134 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 145 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
135 } 146 }
136 else 147 else
137 { 148 {
138 cfg->setGroup("Default"); 149 cfg->setGroup("Default");
139 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 150 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
140 cfg->setGroup(string); 151 cfg->setGroup(string);
141 } 152 }
142 } 153 }
143 } 154 }
144} 155}
145 156
146void RemoteTab::updateRemotesList() 157void RemoteTab::updateRemotesList()
147{ 158{
148 topGroup->updateRemotes(cfg); 159 topGroup->updateRemotes(cfg);
149} 160}