diff options
author | Darrell Anderson <[email protected]> | 2013-05-17 12:45:40 -0500 |
---|---|---|
committer | Darrell Anderson <[email protected]> | 2013-05-17 12:45:40 -0500 |
commit | 359294c33620c8328d61f67635046d7cc060530c (patch) | |
tree | f2ac08fdad8860f7bc1ac76203e31013a799fda7 /kdelirc/kcmlirc/addaction.cpp | |
parent | 7be7990fc5770d2cbcd937772e8239167b5900c6 (diff) | |
download | tdeutils-359294c33620c8328d61f67635046d7cc060530c.tar.gz tdeutils-359294c33620c8328d61f67635046d7cc060530c.zip |
Rename kdessh -> tdessh and kdelirc -> tdelirc.
Diffstat (limited to 'kdelirc/kcmlirc/addaction.cpp')
-rw-r--r-- | kdelirc/kcmlirc/addaction.cpp | 375 |
1 files changed, 0 insertions, 375 deletions
diff --git a/kdelirc/kcmlirc/addaction.cpp b/kdelirc/kcmlirc/addaction.cpp deleted file mode 100644 index 8a87775..0000000 --- a/kdelirc/kcmlirc/addaction.cpp +++ /dev/null @@ -1,375 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2003 by Gav Wood * - * [email protected] * - * * - * 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. * - ***************************************************************************/ - -#include <tqregexp.h> -#include <tqlabel.h> -#include <tqradiobutton.h> -#include <tqwidgetstack.h> -#include <tqcheckbox.h> -#include <tqbuttongroup.h> - -#include <kdebug.h> -#include <klineedit.h> -#include <tdelistview.h> -#include <tdeapplication.h> -#include <tdemessagebox.h> -#include <knuminput.h> -#include <keditlistbox.h> -#include <tdelocale.h> - -#include <dcopclient.h> -#include <irkick_stub.h> - -#include "prototype.h" -#include "addaction.h" -#include "profileserver.h" -#include "remoteserver.h" - -AddAction::AddAction(TQWidget *parent, const char *name, const Mode &mode): AddActionBase(parent, name), theMode(mode) -{ - connect(this, TQT_SIGNAL( selected(const TQString &) ), TQT_SLOT( updateForPageChange() )); - connect(this, TQT_SIGNAL( selected(const TQString &) ), TQT_SLOT( slotCorrectPage() )); - curPage = 0; - updateProfiles(); - updateButtons(); - updateObjects(); - updateProfileFunctions(); -} - -AddAction::~AddAction() -{ -} - - -void AddAction::slotNextParam() -{ - // TODO: go on to next parameter -} - -void AddAction::slotModeSelected() -{ - theSwitchMode->setChecked(true); -} - -void AddAction::slotCorrectPage() -{ - int lastPage = curPage; - curPage = indexOf(currentPage()); - - if(curPage == 2 && theUseProfile->isChecked()) - showPage(((TQWizard *)this)->page(lastPage > 1 ? 1 : 3)); - if((curPage == 2 || curPage == 5) && theChangeMode->isChecked()) - showPage(((TQWizard *)this)->page(lastPage > 1 ? 1 : 6)); - - if(curPage == 3 && theUseDCOP->isChecked()) - showPage(((TQWizard *)this)->page(lastPage == 4 ? 2 : 4)); - - if(curPage == 4 && ( - (theUseDCOP->isChecked() && theFunctions->currentItem() && !Prototype(theFunctions->currentItem()->text(2)).count()) || - (theUseProfile->isChecked() && (theProfileFunctions->currentItem() && !theProfileFunctions->currentItem()->text(1).toInt() || theJustStart->isChecked())) - )) - showPage(((TQWizard *)this)->page(lastPage == 5 ? (theUseDCOP->isChecked() ? 2 : 3) : 5)); -} - -void AddAction::requestNextPress() -{ - IRKick_stub("irkick", "IRKick").stealNextPress(DCOPClient::mainClient()->appId(), "KCMLirc", "gotButton(TQString, TQString)"); -} - -void AddAction::cancelRequest() -{ - IRKick_stub("irkick", "IRKick").dontStealNextPress(); -} - -void AddAction::updateButton(const TQString &remote, const TQString &button) -{ - if(theMode.remote() == remote) - { // note this isn't the "correct" way of doing it; really i should iterate throughg the items and try to find the item which when put through buttonMap[item] returns the current button name. but i cant be arsed. - theButtons->setCurrentItem(theButtons->findItem(RemoteServer::remoteServer()->getButtonName(remote, button), 0)); - theButtons->ensureItemVisible(theButtons->findItem(RemoteServer::remoteServer()->getButtonName(remote, button), 0)); - } - else - KMessageBox::error(this, i18n( "You did not select a mode of that remote control. Please use %1, " - "or revert back to select a different mode." ).arg( theMode.remoteName() ), - i18n( "Incorrect Remote Control Detected" )); - - if(indexOf(currentPage()) == 1) - requestNextPress(); -} - -void AddAction::updateButtons() -{ - theButtons->clear(); - buttonMap.clear(); - IRKick_stub IRKick("irkick", "IRKick"); - TQStringList buttons = IRKick.buttons(theMode.remote()); - for(TQStringList::iterator j = buttons.begin(); j != buttons.end(); ++j) - buttonMap[new TQListViewItem(theButtons, RemoteServer::remoteServer()->getButtonName(theMode.remote(), *j))] = *j; -} - -void AddAction::updateForPageChange() -{ - if(indexOf(currentPage()) == 1) requestNextPress(); else cancelRequest(); - switch(indexOf(currentPage())) - { case 0: break; - case 1: break; - case 2: break; - case 3: break; - case 4: break; - } - updateButtonStates(); -} - -void AddAction::updateButtonStates() -{ - switch(indexOf(currentPage())) - { case 0: setNextEnabled(currentPage(), theProfiles->currentItem() != 0 || !theUseProfile->isChecked()); break; - case 1: setNextEnabled(currentPage(), theButtons->currentItem() != 0); break; - case 2: setNextEnabled(currentPage(), theFunctions->currentItem() != 0); break; - case 3: setNextEnabled(currentPage(), theProfileFunctions->currentItem() != 0 || theJustStart->isChecked()); break; - case 4: setNextEnabled(currentPage(), true); break; - case 5: setNextEnabled(currentPage(), false); setFinishEnabled(currentPage(), true); break; - case 6: setNextEnabled(currentPage(), false); setFinishEnabled(currentPage(), theModes->currentItem() || !theSwitchMode->isChecked()); break; - } -} - -const TQStringList AddAction::getFunctions(const TQString app, const TQString obj) -{ - TQStringList ret; - DCOPClient *theClient = TDEApplication::kApplication()->dcopClient(); - QCStringList theApps = theClient->remoteFunctions(app.utf8(), obj.utf8()); - for(QCStringList::iterator i = theApps.begin(); i != theApps.end(); ++i) - if( *i != "QCStringList interfaces()" && - *i != "QCStringList functions()" && - *i != "QCStringList objects()" && - *i != "QCStringList find(TQCString)" ) - ret += TQString::fromUtf8(*i); - return ret; -} - -void AddAction::updateProfiles() -{ - ProfileServer *theServer = ProfileServer::profileServer(); - theProfiles->clear(); - profileMap.clear(); - - TQDict<Profile> dict = theServer->profiles(); - TQDictIterator<Profile> i(dict); - for(; i.current(); ++i) - profileMap[new TQListViewItem(theProfiles, i.current()->name())] = i.currentKey(); -} - -void AddAction::updateOptions() -{ - IfMulti im; - if(theUseProfile->isChecked()) - { - ProfileServer *theServer = ProfileServer::profileServer(); - if(!theProfiles->currentItem()) return; - const Profile *p = theServer->profiles()[profileMap[theProfiles->currentItem()]]; - im = p->ifMulti(); - isUnique = p->unique(); - } - else if(theUseDCOP->isChecked()) - { - if(!theObjects->selectedItem()) return; - TQListViewItem* i = theObjects->selectedItem()->parent(); - if(!i) return; - isUnique = uniqueProgramMap[i]; - TQRegExp r("(.*)-[0-9]+"); - program = r.exactMatch(nameProgramMap[i]) ? r.cap(1) : nameProgramMap[i]; - im = IM_DONTSEND; - } - else return; - - theIMLabel->setEnabled(!isUnique); - theIMGroup->setEnabled(!isUnique); - theIMLine->setEnabled(!isUnique); - theIMTop->setEnabled(!isUnique); - theDontSend->setEnabled(!isUnique); - theSendToBottom->setEnabled(!isUnique); - theSendToTop->setEnabled(!isUnique); - theSendToAll->setEnabled(!isUnique); - switch(im) - { case IM_DONTSEND: theDontSend->setChecked(true); break; - case IM_SENDTOTOP: theSendToTop->setChecked(true); break; - case IM_SENDTOBOTTOM: theSendToBottom->setChecked(true); break; - case IM_SENDTOALL: theSendToAll->setChecked(true); break; - } -} - -void AddAction::updateProfileFunctions() -{ - ProfileServer *theServer = ProfileServer::profileServer(); - theProfileFunctions->clear(); - profileFunctionMap.clear(); - if(!theProfiles->currentItem()) return; - - const Profile *p = theServer->profiles()[profileMap[theProfiles->currentItem()]]; - TQDict<ProfileAction> dict = p->actions(); - for(TQDictIterator<ProfileAction> i(dict); i.current(); ++i) - profileFunctionMap[new TQListViewItem(theProfileFunctions, i.current()->name(), TQString().setNum(i.current()->arguments().count()), i.current()->comment())] = i.currentKey(); - updateParameters(); - updateOptions(); -} - -void AddAction::updateParameters() -{ - theParameters->clear(); - theArguments.clear(); - if(theUseDCOP->isChecked() && theFunctions->currentItem()) - { - Prototype p(theFunctions->currentItem()->text(2)); - for(unsigned k = 0; k < p.count(); k++) - { new TDEListViewItem(theParameters, p.name(k).isEmpty() ? i18n( "<anonymous>" ) : p.name(k), "", p.type(k), TQString().setNum(k + 1)); - theArguments.append(TQVariant("")); - theArguments.back().cast(TQVariant::nameToType(p.type(k).utf8())); - } - } - else if(theUseProfile->isChecked() && theProfiles->currentItem()) - { - ProfileServer *theServer = ProfileServer::profileServer(); - - if(!theProfiles->currentItem()) return; - if(!theProfileFunctions->currentItem()) return; - const Profile *p = theServer->profiles()[profileMap[theProfiles->currentItem()]]; - const ProfileAction *pa = p->actions()[profileFunctionMap[theProfileFunctions->currentItem()]]; - - int index = 1; - for(TQValueList<ProfileActionArgument>::const_iterator i = pa->arguments().begin(); i != pa->arguments().end(); ++i, index++) - { theArguments.append(TQVariant((*i).getDefault())); - theArguments.back().cast(TQVariant::nameToType((*i).type().utf8())); - new TQListViewItem(theParameters, (*i).comment(), theArguments.back().toString(), (*i).type(), TQString().setNum(index)); - } - - // quicky update options too... - theRepeat->setChecked(pa->repeat()); - theAutoStart->setChecked(pa->autoStart()); - } - - updateParameter(); -} - -void AddAction::updateParameter() -{ - if(theParameters->currentItem()) - { TQString type = theParameters->currentItem()->text(2); - int index = theParameters->currentItem()->text(3).toInt() - 1; - if(type.find("int") != -1 || type.find("short") != -1 || type.find("long") != -1) - { theValue->raiseWidget(2); - theValueIntNumInput->setValue(theArguments[index].toInt()); - } - else if(type.find("double") != -1 || type.find("float") != -1) - { theValue->raiseWidget(3); - theValueDoubleNumInput->setValue(theArguments[index].toDouble()); - } - else if(type.find("bool") != -1) - { theValue->raiseWidget(1); - theValueCheckBox->setChecked(theArguments[index].toBool()); - } - else if(type.find(TQSTRINGLIST_OBJECT_NAME_STRING) != -1) - { theValue->raiseWidget(4); - TQStringList backup = theArguments[index].toStringList(); - // backup needed because calling clear will kill what ever has been saved. - theValueEditListBox->clear(); - theValueEditListBox->insertStringList(backup); - theArguments[index].asStringList() = backup; - } - else - { theValue->raiseWidget(0); - theValueLineEdit->setText(theArguments[index].toString()); - } - theCurParameter->setText(theParameters->currentItem()->text(0)); - theCurParameter->setEnabled(true); - theValue->setEnabled(true); - } - else - { theCurParameter->setText(""); - theValueLineEdit->setText(""); - theValueCheckBox->setChecked(false); - theValueIntNumInput->setValue(0); - theValueDoubleNumInput->setValue(0.0); - theCurParameter->setEnabled(false); - theValue->setEnabled(false); - } -} - -// called when the textbox/checkbox/whatever changes value -void AddAction::slotParameterChanged() -{ - if(!theParameters->currentItem()) return; - int index = theParameters->currentItem()->text(3).toInt() - 1; - TQString type = theParameters->currentItem()->text(2); - if(type.find("int") != -1 || type.find("short") != -1 || type.find("long") != -1) - theArguments[index].asInt() = theValueIntNumInput->value(); - else if(type.find("double") != -1 || type.find("float") != -1) - theArguments[index].asDouble() = theValueDoubleNumInput->value(); - else if(type.find("bool") != -1) - theArguments[index].asBool() = theValueCheckBox->isChecked(); - else if(type.find(TQSTRINGLIST_OBJECT_NAME_STRING) != -1) - theArguments[index].asStringList() = theValueEditListBox->items(); - else - theArguments[index].asString() = theValueLineEdit->text(); - - theArguments[theParameters->currentItem()->text(3).toInt() - 1].cast(TQVariant::nameToType(theParameters->currentItem()->text(2).utf8())); - updateArgument(theParameters->currentItem()); -} - -// takes theArguments[theIndex] and puts it into theItem -void AddAction::updateArgument(TQListViewItem *theItem) -{ - theItem->setText(1, theArguments[theItem->text(3).toInt() - 1].toString()); -} - -void AddAction::updateObjects() -{ - TQStringList names; - theObjects->clear(); - uniqueProgramMap.clear(); - nameProgramMap.clear(); - - DCOPClient *theClient = TDEApplication::kApplication()->dcopClient(); - QCStringList theApps = theClient->registeredApplications(); - for(QCStringList::iterator i = theApps.begin(); i != theApps.end(); ++i) - { - if(!TQString(*i).find("anonymous")) continue; - if(!TQString(*i).find(i18n( "anonymous" ))) continue; - TQRegExp r("(.*)-[0-9]+"); - TQString name = r.exactMatch(TQString(*i)) ? r.cap(1) : *i; - if(names.contains(name)) continue; - names += name; - - TDEListViewItem *a = new TDEListViewItem(theObjects, name); - uniqueProgramMap[a] = name == TQString(*i); - nameProgramMap[a] = *i; - - QCStringList theObjects = theClient->remoteObjects(*i); - for(QCStringList::iterator j = theObjects.begin(); j != theObjects.end(); ++j) - if(*j != "tdesycoca" && *j != "qt")// && getFunctions(*i, *j).count()) - new TDEListViewItem(a, *j); - } - updateFunctions(); -} - -void AddAction::updateFunctions() -{ - theFunctions->clear(); - if(theObjects->currentItem() && theObjects->currentItem()->parent()) - { TQStringList functions = getFunctions(nameProgramMap[theObjects->currentItem()->parent()], theObjects->currentItem()->text(0)); - for(TQStringList::iterator i = functions.begin(); i != functions.end(); ++i) - { Prototype p((TQString)(*i)); - new TDEListViewItem(theFunctions, p.name(), p.argumentList(), *i); - } - } - updateOptions(); -} - - -#include "addaction.moc" |