Diffstat (limited to 'noncore/tools/remote/buttondialog.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/tools/remote/buttondialog.cpp | 45 |
1 files changed, 32 insertions, 13 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 @@ -13,13 +13,14 @@ 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); @@ -40,56 +41,74 @@ ButtonDialog::ButtonDialog(QString buttonName, QWidget *parent, const char*name, 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(); } |