summaryrefslogtreecommitdiff
authorpaule <paule>2007-01-31 09:12:36 (UTC)
committer paule <paule>2007-01-31 09:12:36 (UTC)
commite9c5c237e27d908c890779215b19c22a3706b614 (patch) (unidiff)
tree246a2447df7b7a1e4236d8dd8bd589041734a6a9
parent3a2db1ba1395a6d33de421ed5f3b04df53ced5bc (diff)
downloadopie-e9c5c237e27d908c890779215b19c22a3706b614.zip
opie-e9c5c237e27d908c890779215b19c22a3706b614.tar.gz
opie-e9c5c237e27d908c890779215b19c22a3706b614.tar.bz2
Don't allow configuring buttons with no remote layout selected
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/remote/configtab.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/noncore/tools/remote/configtab.cpp b/noncore/tools/remote/configtab.cpp
index af2b5ff..7951772 100644
--- a/noncore/tools/remote/configtab.cpp
+++ b/noncore/tools/remote/configtab.cpp
@@ -1,229 +1,237 @@
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 "configtab.h" 17#include "configtab.h"
18 18
19ConfigTab::ConfigTab(QWidget *parent, const char *name):QWidget(parent,name) 19ConfigTab::ConfigTab(QWidget *parent, const char *name):QWidget(parent,name)
20{ 20{
21 21
22 QVBoxLayout *layout = new QVBoxLayout(this); 22 QVBoxLayout *layout = new QVBoxLayout(this);
23 23
24 topGroupConf = new TopGroupConf(this, "topGroupConf"); 24 topGroupConf = new TopGroupConf(this, "topGroupConf");
25 layout->addWidget(topGroupConf, 1); 25 layout->addWidget(topGroupConf, 1);
26 layout->addSpacing(1); 26 layout->addSpacing(1);
27 27
28 dvdGroupConf = new DVDGroupConf(this, "dvdGroupConf"); 28 dvdGroupConf = new DVDGroupConf(this, "dvdGroupConf");
29 layout->addWidget(dvdGroupConf, 1); 29 layout->addWidget(dvdGroupConf, 1);
30 layout->addSpacing(1); 30 layout->addSpacing(1);
31 31
32 vcrGroupConf = new VCRGroupConf(this, "vcrGroupConf"); 32 vcrGroupConf = new VCRGroupConf(this, "vcrGroupConf");
33 layout->addWidget(vcrGroupConf, 1); 33 layout->addWidget(vcrGroupConf, 1);
34 layout->addSpacing(1); 34 layout->addSpacing(1);
35 35
36 channelGroupConf = new ChannelGroupConf(this, "channelGroupConf"); 36 channelGroupConf = new ChannelGroupConf(this, "channelGroupConf");
37 layout->addWidget(channelGroupConf, 1); 37 layout->addWidget(channelGroupConf, 1);
38 38
39 39
40} 40}
41 41
42void ConfigTab::setConfig(Config *newCfg) 42void ConfigTab::setConfig(Config *newCfg)
43{ 43{
44 cfg = newCfg; 44 cfg = newCfg;
45 cfg->setGroup("Remotes"); 45 cfg->setGroup("Remotes");
46 topGroupConf->updateRemotes(cfg->readListEntry("remoteList", ',') ); 46 topGroupConf->updateRemotes(cfg->readListEntry("remoteList", ',') );
47 cfg->setGroup("Default"); 47 cfg->setGroup("Default");
48 const QObject *obj; 48 const QObject *obj;
49 49
50 const QObjectList *objList = topGroupConf->children(); 50 const QObjectList *objList = topGroupConf->children();
51 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 51 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
52 { 52 {
53 if(obj->inherits("QPushButton")) 53 if(obj->inherits("QPushButton"))
54 { 54 {
55 if(!cfg->hasKey((QString)obj->name()+"Label")) 55 if(!cfg->hasKey((QString)obj->name()+"Label"))
56 { 56 {
57 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text()); 57 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text());
58 } 58 }
59 } 59 }
60 } 60 }
61 61
62 objList = dvdGroupConf->children(); 62 objList = dvdGroupConf->children();
63 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 63 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
64 { 64 {
65 if(obj->inherits("QPushButton")) 65 if(obj->inherits("QPushButton"))
66 { 66 {
67 if(!cfg->hasKey((QString)obj->name()+"Label")) 67 if(!cfg->hasKey((QString)obj->name()+"Label"))
68 { 68 {
69 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text()); 69 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text());
70 } 70 }
71 } 71 }
72 } 72 }
73 73
74 objList = vcrGroupConf->children(); 74 objList = vcrGroupConf->children();
75 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 75 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
76 { 76 {
77 if(obj->inherits("QPushButton")) 77 if(obj->inherits("QPushButton"))
78 { 78 {
79 if(!cfg->hasKey((QString)obj->name()+"Label")) 79 if(!cfg->hasKey((QString)obj->name()+"Label"))
80 { 80 {
81 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text()); 81 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text());
82 } 82 }
83 } 83 }
84 } 84 }
85 85
86 objList = channelGroupConf->children(); 86 objList = channelGroupConf->children();
87 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 87 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
88 { 88 {
89 if(obj->inherits("QPushButton")) 89 if(obj->inherits("QPushButton"))
90 { 90 {
91 if(!cfg->hasKey((QString)obj->name()+"Label")) 91 if(!cfg->hasKey((QString)obj->name()+"Label"))
92 { 92 {
93 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text()); 93 cfg->writeEntry((QString)obj->name()+"Label", ((QPushButton *)obj)->text());
94 } 94 }
95 } 95 }
96 } 96 }
97 cfg->write(); 97 cfg->write();
98 98
99 cfg->setGroup("Remotes"); 99 cfg->setGroup("Remotes");
100 100
101 QString curr_remote = topGroupConf->getRemotesText(); 101 QString curr_remote = topGroupConf->getRemotesText();
102 if(curr_remote != "") 102 if(curr_remote != "")
103 remoteSelected(curr_remote); 103 remoteSelected(curr_remote);
104} 104}
105 105
106void ConfigTab::newPressed() 106void ConfigTab::newPressed()
107{ 107{
108 QStringList list; 108 QStringList list;
109 QString newname = topGroupConf->getRemotesText(); 109 QString newname = topGroupConf->getRemotesText();
110 if(newname.stripWhiteSpace()=="") 110 if(newname.stripWhiteSpace()=="")
111 QMessageBox::warning(this, tr("Error"), tr("Please enter a name\nfirst"), QMessageBox::Ok, QMessageBox::NoButton); 111 QMessageBox::warning(this, tr("Error"), tr("Please enter a name\nfirst"), QMessageBox::Ok, QMessageBox::NoButton);
112 else if(newname=="Remotes") 112 else if(newname=="Remotes")
113 QMessageBox::warning(this, tr("Error"), tr("The name 'Remotes' is\nnot allowed"), QMessageBox::Ok, QMessageBox::NoButton); 113 QMessageBox::warning(this, tr("Error"), tr("The name 'Remotes' is\nnot allowed"), QMessageBox::Ok, QMessageBox::NoButton);
114 else { 114 else {
115 cfg->setGroup("Remotes"); 115 cfg->setGroup("Remotes");
116 list=cfg->readListEntry("remoteList", ','); 116 list=cfg->readListEntry("remoteList", ',');
117 if(list.findIndex(newname) == -1) { 117 if(list.findIndex(newname) == -1) {
118 list+=newname; 118 list+=newname;
119 cfg->writeEntry("remoteList", list, ','); 119 cfg->writeEntry("remoteList", list, ',');
120 cfg->setGroup(newname); 120 cfg->setGroup(newname);
121 topGroupConf->updateRemotes(QStringList(newname) ); 121 topGroupConf->updateRemotes(QStringList(newname) );
122 cfg->write(); 122 cfg->write();
123 emit remotesChanged(); 123 emit remotesChanged();
124 remoteSelected(newname); 124 remoteSelected(newname);
125 } 125 }
126 else { 126 else {
127 QMessageBox::warning(this, tr("Already exists"), tr("A layout named %1\nalready exists").arg(newname), QMessageBox::Ok, QMessageBox::NoButton); 127 QMessageBox::warning(this, tr("Already exists"), tr("A layout named %1\nalready exists").arg(newname), QMessageBox::Ok, QMessageBox::NoButton);
128 // Re-select existing layout 128 // Re-select existing layout
129 remoteSelected(newname); 129 remoteSelected(newname);
130 } 130 }
131 } 131 }
132} 132}
133 133
134void ConfigTab::remoteSelected(const QString &string) 134void ConfigTab::remoteSelected(const QString &string)
135{ 135{
136 cfg->setGroup(string); 136 cfg->setGroup(string);
137 const QObject *obj; 137 const QObject *obj;
138 138
139 const QObjectList *objList = topGroupConf->children(); 139 const QObjectList *objList = topGroupConf->children();
140 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 140 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
141 { 141 {
142 if(obj->inherits("QPushButton")) 142 if(obj->inherits("QPushButton"))
143 { 143 {
144 if(cfg->hasKey((QString)obj->name()+"Label")) 144 if(cfg->hasKey((QString)obj->name()+"Label"))
145 { 145 {
146 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 146 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
147 } 147 }
148 else 148 else
149 { 149 {
150 cfg->setGroup("Default"); 150 cfg->setGroup("Default");
151 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 151 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
152 cfg->setGroup(string); 152 cfg->setGroup(string);
153 } 153 }
154 } 154 }
155 } 155 }
156 156
157 objList = dvdGroupConf->children(); 157 objList = dvdGroupConf->children();
158 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 158 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
159 { 159 {
160 if(obj->inherits("QPushButton")) 160 if(obj->inherits("QPushButton"))
161 { 161 {
162 if(cfg->hasKey((QString)obj->name()+"Label")) 162 if(cfg->hasKey((QString)obj->name()+"Label"))
163 { 163 {
164 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 164 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
165 } 165 }
166 else 166 else
167 { 167 {
168 cfg->setGroup("Default"); 168 cfg->setGroup("Default");
169 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 169 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
170 cfg->setGroup(string); 170 cfg->setGroup(string);
171 } 171 }
172 } 172 }
173 } 173 }
174 174
175 objList = vcrGroupConf->children(); 175 objList = vcrGroupConf->children();
176 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 176 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
177 { 177 {
178 if(obj->inherits("QPushButton")) 178 if(obj->inherits("QPushButton"))
179 { 179 {
180 if(cfg->hasKey((QString)obj->name()+"Label")) 180 if(cfg->hasKey((QString)obj->name()+"Label"))
181 { 181 {
182 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 182 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
183 } 183 }
184 else 184 else
185 { 185 {
186 cfg->setGroup("Default"); 186 cfg->setGroup("Default");
187 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 187 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
188 cfg->setGroup(string); 188 cfg->setGroup(string);
189 } 189 }
190 } 190 }
191 } 191 }
192 192
193 objList = channelGroupConf->children(); 193 objList = channelGroupConf->children();
194 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 194 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
195 { 195 {
196 if(obj->inherits("QPushButton")) 196 if(obj->inherits("QPushButton"))
197 { 197 {
198 if(cfg->hasKey((QString)obj->name()+"Label")) 198 if(cfg->hasKey((QString)obj->name()+"Label"))
199 { 199 {
200 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 200 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
201 } 201 }
202 else 202 else
203 { 203 {
204 cfg->setGroup("Default"); 204 cfg->setGroup("Default");
205 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 205 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
206 cfg->setGroup(string); 206 cfg->setGroup(string);
207 } 207 }
208 } 208 }
209 } 209 }
210} 210}
211 211
212void ConfigTab::buttonPressed() 212void ConfigTab::buttonPressed()
213{ 213{
214 QString curr_remote = topGroupConf->getRemotesText();
215 if(curr_remote != "")
216 cfg->setGroup(curr_remote);
217 else {
218 QMessageBox::warning(this, tr("Error"), tr("Please select or create\na remote layout"), QMessageBox::Ok, QMessageBox::NoButton);
219 return;
220 }
221
214 const QObject *button = sender(); 222 const QObject *button = sender();
215 QString string = button->name(); 223 QString string = button->name();
216 224
217 QString action = cfg->readEntry(string); 225 QString action = cfg->readEntry(string);
218 226
219 ButtonDialog *bd = new ButtonDialog(((QPushButton *)button)->text(), action, this, "BD", true, 0); 227 ButtonDialog *bd = new ButtonDialog(((QPushButton *)button)->text(), action, this, "BD", true, 0);
220 if( bd->exec() == 1) 228 if( bd->exec() == 1)
221 { 229 {
222 cfg->writeEntry(string, bd->getAction().latin1()); 230 cfg->writeEntry(string, bd->getAction().latin1());
223 cfg->writeEntry(string+"Label", bd->getLabel().latin1()); 231 cfg->writeEntry(string+"Label", bd->getLabel().latin1());
224 cfg->write(); 232 cfg->write();
225 ((QPushButton *)button)->setText(bd->getLabel()); 233 ((QPushButton *)button)->setText(bd->getLabel());
226 } 234 }
227 235
228 delete bd; 236 delete bd;
229} 237}