bool LineOfSymbols::backspace(unsigned char pos) { if((pos>0)&&(pos<length)) { if(isVarHere(pos-1)) { QMessageBox msg; msg.setIcon(QMessageBox::Question); msg.setWindowTitle("Подтверждение операции"); msg.setText("Удалить переменную из строки?"); msg.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); msg.setDefaultButton(QMessageBox::Cancel); int ret = msg.exec(); if(ret==QMessageBox::Ok) deleteVar(pos-1); else return false; } else { symbols.remove(pos-1); symbols += 0x20; //shift variables for(int i=0;i<vars.count();i++) { unsigned char x = vars[i].view.getPosition(); if((x >= pos)&&(x>0)) vars[i].view.setPosition(x -1); } } } return true; }
void addVar(char* var, char* value) { int i = searchEnviron(var); // if variable exists if(i >= 0) { deleteVar(i); } if(size+1<MAX_VARS) { char* entry = malloc((strlen(var)+strlen(value)+2)*sizeof(char)); strcpy(entry,var); env[size++] = strcat(strcat(entry,"="),value); env[size] = NULL; printf("%s\n", env[size-1]); fflush(stdout); } }
VariablesListViewItem::~VariablesListViewItem() { deleteVar(); }