summaryrefslogtreecommitdiff
authorpaule <paule>2007-01-28 09:03:16 (UTC)
committer paule <paule>2007-01-28 09:03:16 (UTC)
commit0db6862d81bd0444362fa6cd1edf0ae579639daa (patch) (unidiff)
tree0085f7c9aea9e9e9a7e041a3af9e7d8ac1799e48
parent67b8a6e01fd3e47227f8bafa21077506fa55568c (diff)
downloadopie-0db6862d81bd0444362fa6cd1edf0ae579639daa.zip
opie-0db6862d81bd0444362fa6cd1edf0ae579639daa.tar.gz
opie-0db6862d81bd0444362fa6cd1edf0ae579639daa.tar.bz2
More fixes for remote selection
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/remote/remotetab.cpp12
-rw-r--r--noncore/tools/remote/topgroup.cpp13
2 files changed, 25 insertions, 0 deletions
diff --git a/noncore/tools/remote/remotetab.cpp b/noncore/tools/remote/remotetab.cpp
index 45995fd..c89d8c2 100644
--- a/noncore/tools/remote/remotetab.cpp
+++ b/noncore/tools/remote/remotetab.cpp
@@ -1,160 +1,172 @@
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> 17#include <qmessagebox.h>
18 18
19#include "remotetab.h" 19#include "remotetab.h"
20#include "lirchandler.h" 20#include "lirchandler.h"
21 21
22RemoteTab::RemoteTab(QWidget *parent, const char *name):QWidget(parent,name) 22RemoteTab::RemoteTab(QWidget *parent, const char *name):QWidget(parent,name)
23{ 23{
24 QVBoxLayout *layout = new QVBoxLayout(this); 24 QVBoxLayout *layout = new QVBoxLayout(this);
25 25
26 topGroup = new TopGroup(this); 26 topGroup = new TopGroup(this);
27 //topGroup->setMaximumHeight(22); 27 //topGroup->setMaximumHeight(22);
28 layout->addWidget(topGroup, 0, 0); 28 layout->addWidget(topGroup, 0, 0);
29 printf("%d %d", topGroup->width(), topGroup->height()); 29 printf("%d %d", topGroup->width(), topGroup->height());
30 30
31 layout->addSpacing(1); 31 layout->addSpacing(1);
32 32
33 dvdGroup = new DVDGroup(this); 33 dvdGroup = new DVDGroup(this);
34 //dvdGroup->setMaximumHeight(68); 34 //dvdGroup->setMaximumHeight(68);
35 layout->addWidget(dvdGroup, 0, 0); 35 layout->addWidget(dvdGroup, 0, 0);
36 36
37 layout->addSpacing(1); 37 layout->addSpacing(1);
38 38
39 vcrGroup = new VCRGroup(this); 39 vcrGroup = new VCRGroup(this);
40 layout->addWidget(vcrGroup, 0, 0); 40 layout->addWidget(vcrGroup, 0, 0);
41 //vcrGroup->setMaximumHeight(45); 41 //vcrGroup->setMaximumHeight(45);
42 42
43 layout->addSpacing(1); 43 layout->addSpacing(1);
44 44
45 channelGroup = new ChannelGroup(this); 45 channelGroup = new ChannelGroup(this);
46 //channelGroup->setMaximumHeight(91); 46 //channelGroup->setMaximumHeight(91);
47 layout->addWidget(channelGroup, 0, 0); 47 layout->addWidget(channelGroup, 0, 0);
48 48
49 this->setMaximumWidth(240); 49 this->setMaximumWidth(240);
50} 50}
51 51
52int RemoteTab::sendIR() 52int RemoteTab::sendIR()
53{ 53{
54 QString curr_remote = topGroup->getRemotesText();
55 if(curr_remote != "")
56 cfg->setGroup(curr_remote);
57 else {
58 QMessageBox::warning(this, tr("Error"), tr("Please select or create\na remote layout"), QMessageBox::Ok, QMessageBox::NoButton);
59 return 0;
60 }
61
54 const QObject *button = sender(); 62 const QObject *button = sender();
55 QString string = cfg->readEntry(button->name()); 63 QString string = cfg->readEntry(button->name());
56 if(string != "") { 64 if(string != "") {
57 string+='\n'; 65 string+='\n';
58 LircHandler lh; 66 LircHandler lh;
59 return lh.sendIR(string.latin1()); 67 return lh.sendIR(string.latin1());
60 } 68 }
61 else { 69 else {
62 QMessageBox::warning(this, tr("Error"), tr("This button has not\nbeen configured"), QMessageBox::Ok, QMessageBox::NoButton); 70 QMessageBox::warning(this, tr("Error"), tr("This button has not\nbeen configured"), QMessageBox::Ok, QMessageBox::NoButton);
63 return 0; 71 return 0;
64 } 72 }
65} 73}
66 74
67void RemoteTab::setConfig(Config *newCfg) 75void RemoteTab::setConfig(Config *newCfg)
68{ 76{
69 cfg = newCfg; 77 cfg = newCfg;
70 cfg->setGroup("Remotes"); 78 cfg->setGroup("Remotes");
71 topGroup->updateRemotes(cfg); 79 topGroup->updateRemotes(cfg);
72 80
73 QString curr_remote = topGroup->getRemotesText(); 81 QString curr_remote = topGroup->getRemotesText();
74 if(curr_remote != "") 82 if(curr_remote != "")
75 remoteSelected(curr_remote); 83 remoteSelected(curr_remote);
76} 84}
77 85
78void RemoteTab::remoteSelected(const QString &string) 86void RemoteTab::remoteSelected(const QString &string)
79{ 87{
80 printf("1%s\n", string.latin1() ); 88 printf("1%s\n", string.latin1() );
81 cfg->setGroup(string); 89 cfg->setGroup(string);
82 const QObject *obj; 90 const QObject *obj;
83 91
84 const QObjectList *objList = topGroup->children(); 92 const QObjectList *objList = topGroup->children();
85 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 93 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
86 { 94 {
87 if(obj->inherits("QPushButton")) 95 if(obj->inherits("QPushButton"))
88 { 96 {
89 if(cfg->hasKey((QString)obj->name()+"Label")) 97 if(cfg->hasKey((QString)obj->name()+"Label"))
90 { 98 {
91 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 99 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
92 } 100 }
93 else 101 else
94 { 102 {
95 cfg->setGroup("Default"); 103 cfg->setGroup("Default");
96 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 104 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
97 cfg->setGroup(string); 105 cfg->setGroup(string);
98 } 106 }
99 } 107 }
100 } 108 }
101 109
102 objList = dvdGroup->children(); 110 objList = dvdGroup->children();
103 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 111 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
104 { 112 {
105 if(obj->inherits("QPushButton")) 113 if(obj->inherits("QPushButton"))
106 { 114 {
107 if(cfg->hasKey((QString)obj->name()+"Label")) 115 if(cfg->hasKey((QString)obj->name()+"Label"))
108 { 116 {
109 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 117 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
110 } 118 }
111 else 119 else
112 { 120 {
113 cfg->setGroup("Default"); 121 cfg->setGroup("Default");
114 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 122 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
115 cfg->setGroup(string); 123 cfg->setGroup(string);
116 } 124 }
117 } 125 }
118 } 126 }
119 127
120 objList = vcrGroup->children(); 128 objList = vcrGroup->children();
121 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 129 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
122 { 130 {
123 if(obj->inherits("QPushButton")) 131 if(obj->inherits("QPushButton"))
124 { 132 {
125 if(cfg->hasKey((QString)obj->name()+"Label")) 133 if(cfg->hasKey((QString)obj->name()+"Label"))
126 { 134 {
127 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 135 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
128 } 136 }
129 else 137 else
130 { 138 {
131 cfg->setGroup("Default"); 139 cfg->setGroup("Default");
132 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 140 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
133 cfg->setGroup(string); 141 cfg->setGroup(string);
134 } 142 }
135 } 143 }
136 } 144 }
137 145
138 objList = channelGroup->children(); 146 objList = channelGroup->children();
139 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next()) 147 for(obj = ((QObjectList *)objList)->first(); obj != 0; obj=((QObjectList *)objList)->next())
140 { 148 {
141 if(obj->inherits("QPushButton")) 149 if(obj->inherits("QPushButton"))
142 { 150 {
143 if(cfg->hasKey((QString)obj->name()+"Label")) 151 if(cfg->hasKey((QString)obj->name()+"Label"))
144 { 152 {
145 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 153 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
146 } 154 }
147 else 155 else
148 { 156 {
149 cfg->setGroup("Default"); 157 cfg->setGroup("Default");
150 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") ); 158 ((QPushButton *)obj)->setText(cfg->readEntry((QString)obj->name()+"Label") );
151 cfg->setGroup(string); 159 cfg->setGroup(string);
152 } 160 }
153 } 161 }
154 } 162 }
155} 163}
156 164
157void RemoteTab::updateRemotesList() 165void RemoteTab::updateRemotesList()
158{ 166{
159 topGroup->updateRemotes(cfg); 167 topGroup->updateRemotes(cfg);
168
169 QString curr_remote = topGroup->getRemotesText();
170 if(curr_remote != "")
171 remoteSelected(curr_remote);
160} 172}
diff --git a/noncore/tools/remote/topgroup.cpp b/noncore/tools/remote/topgroup.cpp
index 7f2366b..d4eb6e2 100644
--- a/noncore/tools/remote/topgroup.cpp
+++ b/noncore/tools/remote/topgroup.cpp
@@ -1,58 +1,71 @@
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 "topgroup.h" 17#include "topgroup.h"
18 18
19TopGroup::TopGroup(QWidget *parent, const char *name):QWidget(parent,name) 19TopGroup::TopGroup(QWidget *parent, const char *name):QWidget(parent,name)
20{ 20{
21 QHBoxLayout *layout = new QHBoxLayout(this, 0, -1, 0); 21 QHBoxLayout *layout = new QHBoxLayout(this, 0, -1, 0);
22 22
23 QPushButton *power = new QPushButton("Power",this,"power"); 23 QPushButton *power = new QPushButton("Power",this,"power");
24 layout->addWidget(power); 24 layout->addWidget(power);
25 connect(power, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) ); 25 connect(power, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) );
26 //power->setGeometry(5, 5,40, 20); 26 //power->setGeometry(5, 5,40, 20);
27 27
28 layout->addSpacing(5); 28 layout->addSpacing(5);
29 29
30 QPushButton *source = new QPushButton("Source",this,"source"); 30 QPushButton *source = new QPushButton("Source",this,"source");
31 layout->addWidget(source); 31 layout->addWidget(source);
32 connect(source, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) ); 32 connect(source, SIGNAL(pressed()), this->parentWidget(), SLOT(sendIR()) );
33 //source->setGeometry(50,5,40,20); 33 //source->setGeometry(50,5,40,20);
34 34
35 remotes = new QComboBox(false, this, "remotes"); 35 remotes = new QComboBox(false, this, "remotes");
36 connect(remotes, SIGNAL(activated(const QString&)), this->parentWidget(), SLOT(remoteSelected(const QString&)) ); 36 connect(remotes, SIGNAL(activated(const QString&)), this->parentWidget(), SLOT(remoteSelected(const QString&)) );
37 remotes->insertItem("Select Remote"); 37 remotes->insertItem("Select Remote");
38 //remotes->setGeometry(135,5,95,20); 38 //remotes->setGeometry(135,5,95,20);
39 39
40 QLabel *remoteLabel = new QLabel(remotes, "Remote: ",this,"remoteLabel"); 40 QLabel *remoteLabel = new QLabel(remotes, "Remote: ",this,"remoteLabel");
41 //remoteLabel->setGeometry(90,5,40,20); 41 //remoteLabel->setGeometry(90,5,40,20);
42 remoteLabel->setAlignment(AlignRight | AlignVCenter); 42 remoteLabel->setAlignment(AlignRight | AlignVCenter);
43 43
44 layout->addWidget(remoteLabel); 44 layout->addWidget(remoteLabel);
45 layout->addWidget(remotes); 45 layout->addWidget(remotes);
46} 46}
47 47
48void TopGroup::updateRemotes(Config *cfg) 48void TopGroup::updateRemotes(Config *cfg)
49{ 49{
50 // Save currently selected item if any
51 QString curr_remote = remotes->currentText();
52
50 remotes->clear(); 53 remotes->clear();
51 cfg->setGroup("Remotes"); 54 cfg->setGroup("Remotes");
52 remotes->insertStringList(cfg->readListEntry("remoteList", ',') ); 55 remotes->insertStringList(cfg->readListEntry("remoteList", ',') );
56
57 // Select previously selected item
58 if(curr_remote != "") {
59 for(int i=0;i<remotes->count();i++) {
60 if(remotes->text(i) == curr_remote) {
61 remotes->setCurrentItem(i);
62 break;
63 }
64 }
65 }
53} 66}
54 67
55QString TopGroup::getRemotesText() 68QString TopGroup::getRemotesText()
56{ 69{
57 return remotes->currentText(); 70 return remotes->currentText();
58} 71}