-rw-r--r-- | noncore/tools/remote/buttondialog.cpp | 45 | ||||
-rw-r--r-- | noncore/tools/remote/buttondialog.h | 6 |
2 files changed, 34 insertions, 17 deletions
diff --git a/noncore/tools/remote/buttondialog.cpp b/noncore/tools/remote/buttondialog.cpp index 56738d1..7d03f27 100644 --- a/noncore/tools/remote/buttondialog.cpp +++ b/noncore/tools/remote/buttondialog.cpp @@ -1,95 +1,114 @@ /* Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. Copyright (C) 2002 Thomas Stephens This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "buttondialog.h" -ButtonDialog::ButtonDialog(QString buttonName, QWidget *parent, const char*name, bool modal, WFlags f):QDialog(parent, name, modal, f) +ButtonDialog::ButtonDialog(QString buttonName, QString action, QWidget *parent, const char*name, bool modal, WFlags f) +: QDialog(parent, name, modal, f) { setCaption(tr(buttonName)); QVBoxLayout *layout = new QVBoxLayout(this); QHBoxLayout *hlayout1 = new QHBoxLayout(this); QHBoxLayout *hlayout2 = new QHBoxLayout(this); QHBoxLayout *hlayout3 = new QHBoxLayout(this); layout->addSpacing(5); layout->addLayout(hlayout1); layout->addSpacing(5); layout->addLayout(hlayout2); layout->addSpacing(5); layout->addLayout(hlayout3); layout->addSpacing(5); lh = new LircHandler(); remote = new QComboBox(false, this, "remote"); QLabel *remoteLabel = new QLabel(remote, "Remote: ", this, "remoteLabel"); hlayout1->addSpacing(5); hlayout1->addWidget(remoteLabel); hlayout1->addSpacing(5); hlayout1->addWidget(remote); hlayout1->addSpacing(5); - remote->insertItem("Remote "); remote->insertStringList(lh->getRemotes()); connect(remote, SIGNAL(activated(const QString&)), this, SLOT(remoteSelected(const QString&)) ); button = new QComboBox(false, this, "button"); QLabel *buttonLabel = new QLabel(remote, "Button: ", this, "buttonLabel"); hlayout2->addSpacing(5); hlayout2->addWidget(buttonLabel); hlayout2->addSpacing(5); hlayout2->addWidget(button); hlayout2->addSpacing(5); - button->insertItem("Button "); - connect(button, SIGNAL(activated(const QString&)), this, SLOT(buttonSelected(const QString&)) ); label = new QLineEdit(this, "label"); label->setText(buttonName); QLabel *labelLabel = new QLabel(label, "Label: ", this, "labelLabel"); hlayout3->addSpacing(5); hlayout3->addWidget(labelLabel); hlayout3->addSpacing(5); hlayout3->addWidget(label); hlayout3->addSpacing(5); + + QStringList actionArgs = QStringList::split(' ', action); + if(actionArgs.count() > 1) { + // Remote + for(int i=0;i<remote->count();i++) { + if(remote->text(i) == actionArgs[1]) { + remote->setCurrentItem(i); + break; + } + } + } + // Populate the list of buttons + remoteSelected(remote->currentText()); + + if(actionArgs.count() > 2) { + // Button + for(int i=0;i<button->count();i++) { + if(button->text(i) == actionArgs[2]) { + button->setCurrentItem(i); + break; + } + } + } + else { + button->setCurrentItem(-1); + } } ButtonDialog::~ButtonDialog() { delete lh; } void ButtonDialog::remoteSelected(const QString &string) { + button->clear(); button->insertStringList(lh->getButtons(string.latin1()) ); - list="SEND_ONCE"; - list+=string; -} - -void ButtonDialog::buttonSelected(const QString &string) -{ - list+=string; } -QStringList ButtonDialog::getList() +QString ButtonDialog::getAction() { - return list; + QString action("SEND_ONCE " + remote->currentText() + " " + button->currentText()); + return action; } QString ButtonDialog::getLabel() { return label->text(); } diff --git a/noncore/tools/remote/buttondialog.h b/noncore/tools/remote/buttondialog.h index cc697b5..f66903f 100644 --- a/noncore/tools/remote/buttondialog.h +++ b/noncore/tools/remote/buttondialog.h @@ -1,53 +1,51 @@ /* Opie-Remote. emulates remote controlls on an iPaq (and maybe a Zaurus) in Opie. Copyright (C) 2002 Thomas Stephens This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include <qdialog.h> #include <qstring.h> #include <qstringlist.h> #include <qcombobox.h> #include <qlayout.h> #include <qlabel.h> #include <qlineedit.h> #include <qmessagebox.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <sys/types.h> #include <sys/un.h> #include <unistd.h> #include <errno.h> #include "lirchandler.h" class ButtonDialog : public QDialog { Q_OBJECT public: - ButtonDialog(QString buttonName, QWidget *parent=0, const char*name=0, bool modal=FALSE, WFlags f=0); + ButtonDialog(QString buttonName, QString action, QWidget *parent=0, const char*name=0, bool modal=FALSE, WFlags f=0); ~ButtonDialog(); - QStringList getList(); + QString getAction(); QString getLabel(); public slots: void remoteSelected(const QString &string); - void buttonSelected(const QString &string); private: QComboBox *remote; QComboBox *button; - QStringList list; QLineEdit *label; LircHandler *lh; }; |