void EditCommand::undo() { kDebug() << "Setting old value" << mOldValue << "in bk" << mAddress << "col" << mCol; KBookmark bk = m_model->bookmarkManager()->findByAddress(mAddress); if(mCol==-2) { bk.internalElement().setAttribute("toolbar", mOldValue); } else if(mCol==-1) { bk.setIcon(mOldValue); } else if(mCol==0) { bk.setFullText(mOldValue); } else if(mCol==1) { bk.setUrl(KUrl(mOldValue)); } else if(mCol==2) { bk.setDescription(mOldValue); } m_model->emitDataChanged(bk); }
void EditCommand::redo() { KBookmark bk = m_model->bookmarkManager()->findByAddress(mAddress); if(mCol==-2) { if (mOldValue.isEmpty()) mOldValue = bk.internalElement().attribute("toolbar"); bk.internalElement().setAttribute("toolbar", mNewValue); } else if(mCol==-1) { if (mOldValue.isEmpty()) mOldValue = bk.icon(); bk.setIcon(mNewValue); } else if(mCol==0) { if (mOldValue.isEmpty()) // only the first time, not when compressing changes in modify() mOldValue = bk.fullText(); kDebug() << "mOldValue=" << mOldValue; bk.setFullText(mNewValue); } else if(mCol==1) { if (mOldValue.isEmpty()) mOldValue = bk.url().prettyUrl(); const KUrl newUrl(mNewValue); if (!(newUrl.isEmpty() && !mNewValue.isEmpty())) // prevent emptied line if the currently entered url is invalid bk.setUrl(newUrl); } else if(mCol==2) { if (mOldValue.isEmpty()) mOldValue = bk.description(); bk.setDescription(mNewValue); } m_model->emitDataChanged(bk); }