kandy
cmdpropertiesdialog.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <qlistview.h>
00026 #include <qlineedit.h>
00027 #include <qcheckbox.h>
00028
00029 #include <kinputdialog.h>
00030 #include <klocale.h>
00031
00032 #include "atcommand.h"
00033
00034 #include "cmdpropertiesdialog.h"
00035 #include "cmdpropertiesdialog.moc"
00036
00037 class ParameterItem : public QCheckListItem {
00038 public:
00039 ParameterItem(ATParameter *p,QListView *parent) :
00040 QCheckListItem(parent,p->name(),CheckBox),mParameter(p)
00041 {
00042 setText(1,p->value());
00043 setOn(p->userInput());
00044 }
00045
00046 void writeParameter()
00047 {
00048 mParameter->setName(text(0));
00049 mParameter->setValue(text(1));
00050 mParameter->setUserInput(isOn());
00051 }
00052
00053 private:
00054 ATParameter *mParameter;
00055 };
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 CmdPropertiesDialog::CmdPropertiesDialog(ATCommand *cmd, QWidget* parent,
00066 const char* name, bool modal,
00067 WFlags fl )
00068 : CmdPropertiesDialog_base( parent, name, modal, fl )
00069 {
00070 mCmd = cmd;
00071
00072 readCommand();
00073 }
00074
00075 CmdPropertiesDialog::~CmdPropertiesDialog()
00076 {
00077 }
00078
00079 void CmdPropertiesDialog::readCommand()
00080 {
00081 mNameEdit->setText(mCmd->cmdName());
00082 mStringEdit->setText(mCmd->cmdString());
00083 mHexCheck->setChecked(mCmd->hexOutput());
00084
00085 QPtrList<ATParameter> parameters = mCmd->parameters();
00086 for(int i=(int)parameters.count()-1;i>=0;--i) {
00087 ATParameter *p = parameters.at(i);
00088 new ParameterItem(p,mParameterList);
00089 }
00090 }
00091
00092 void CmdPropertiesDialog::writeCommand()
00093 {
00094 mCmd->setCmdName(mNameEdit->text());
00095 mCmd->setCmdString(mStringEdit->text());
00096 mCmd->setHexOutput(mHexCheck->isChecked());
00097 ParameterItem *item = (ParameterItem *)mParameterList->firstChild();
00098 while (item) {
00099 item->writeParameter();
00100 item = (ParameterItem *)item->nextSibling();
00101 }
00102 }
00103
00104 void CmdPropertiesDialog::editParameterName(QListViewItem *item)
00105 {
00106 bool ok = false;
00107
00108 QString newName = KInputDialog::getText(QString::null,
00109 i18n("Enter parameter name:"),item->text(0),&ok,this);
00110
00111 if (ok) {
00112 item->setText(0,newName);
00113 }
00114 }
00115
00116 void CmdPropertiesDialog::slotAccept()
00117 {
00118 writeCommand();
00119 accept();
00120 }
|