summaryrefslogtreecommitdiff
path: root/noncore/tools/remote
authorpaule <paule>2007-01-28 09:03:16 (UTC)
committer paule <paule>2007-01-28 09:03:16 (UTC)
commit0db6862d81bd0444362fa6cd1edf0ae579639daa (patch) (unidiff)
tree0085f7c9aea9e9e9a7e041a3af9e7d8ac1799e48 /noncore/tools/remote
parent67b8a6e01fd3e47227f8bafa21077506fa55568c (diff)
downloadopie-0db6862d81bd0444362fa6cd1edf0ae579639daa.zip
opie-0db6862d81bd0444362fa6cd1edf0ae579639daa.tar.gz
opie-0db6862d81bd0444362fa6cd1edf0ae579639daa.tar.bz2
More fixes for remote selection
Diffstat (limited to 'noncore/tools/remote') (more/less context) (show 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
@@ -30,48 +30,56 @@ RemoteTab::RemoteTab(QWidget *parent, const char *name):QWidget(parent,name)
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
@@ -136,25 +144,29 @@ void RemoteTab::remoteSelected(const QString &string)
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
@@ -26,33 +26,46 @@ TopGroup::TopGroup(QWidget *parent, const char *name):QWidget(parent,name)
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}