author | paule <paule> | 2007-01-28 09:03:16 (UTC) |
---|---|---|
committer | paule <paule> | 2007-01-28 09:03:16 (UTC) |
commit | 0db6862d81bd0444362fa6cd1edf0ae579639daa (patch) (unidiff) | |
tree | 0085f7c9aea9e9e9a7e041a3af9e7d8ac1799e48 | |
parent | 67b8a6e01fd3e47227f8bafa21077506fa55568c (diff) | |
download | opie-0db6862d81bd0444362fa6cd1edf0ae579639daa.zip opie-0db6862d81bd0444362fa6cd1edf0ae579639daa.tar.gz opie-0db6862d81bd0444362fa6cd1edf0ae579639daa.tar.bz2 |
More fixes for remote selection
-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 | |||
@@ -22,64 +22,72 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
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()) |
@@ -128,33 +136,37 @@ void RemoteTab::remoteSelected(const QString &string) | |||
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 | |||
@@ -18,41 +18,54 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
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 | } |