-rw-r--r-- | noncore/tools/remote/remotetab.cpp | 12 | ||||
-rw-r--r-- | noncore/tools/remote/topgroup.cpp | 13 |
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 | /* |
2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. | 2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. |
3 | Copyright (C) 2002 Thomas Stephens | 3 | Copyright (C) 2002 Thomas Stephens |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public | 5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public |
6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later | 6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later |
7 | version. | 7 | version. |
8 | 8 | ||
9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | 9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the |
10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | 10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
11 | Public License for more details. | 11 | Public License for more details. |
12 | 12 | ||
13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free | 13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free |
14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 14 | Software 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 | ||
22 | RemoteTab::RemoteTab(QWidget *parent, const char *name):QWidget(parent,name) | 22 | RemoteTab::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 | ||
52 | int RemoteTab::sendIR() | 52 | int 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 | ||
67 | void RemoteTab::setConfig(Config *newCfg) | 75 | void 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 | ||
78 | void RemoteTab::remoteSelected(const QString &string) | 86 | void 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 | ||
157 | void RemoteTab::updateRemotesList() | 165 | void 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 | /* |
2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. | 2 | Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. |
3 | Copyright (C) 2002 Thomas Stephens | 3 | Copyright (C) 2002 Thomas Stephens |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public | 5 | This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public |
6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later | 6 | License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later |
7 | version. | 7 | version. |
8 | 8 | ||
9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the | 9 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the |
10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General | 10 | implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General |
11 | Public License for more details. | 11 | Public License for more details. |
12 | 12 | ||
13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free | 13 | You should have received a copy of the GNU General Public License along with this program; if not, write to the Free |
14 | Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 14 | Software 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 | ||
19 | TopGroup::TopGroup(QWidget *parent, const char *name):QWidget(parent,name) | 19 | TopGroup::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 | ||
48 | void TopGroup::updateRemotes(Config *cfg) | 48 | void 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 | ||
55 | QString TopGroup::getRemotesText() | 68 | QString TopGroup::getRemotesText() |
56 | { | 69 | { |
57 | return remotes->currentText(); | 70 | return remotes->currentText(); |
58 | } | 71 | } |