// öffnet einen Dialog mit dem neue Verben erfasst werden können. void KVerbosApp::slotEditErfassen() { spanishVerbList* pList = getDocument()->getList(); KErfassen* pDlgErfassen = new KErfassen(*pList, -1, this, "erfassen", true); pDlgErfassen->exec(); if (pDlgErfassen->wasChanged()) { *pList = pDlgErfassen->getList(); doc->setModified(); }; delete pDlgErfassen; pDlgErfassen = 0; // Anzahl in der Statuszeile anpassen emit testAnzahl(doc->getAnzahl()); }
// Ein Verb in der Liste bearbeiten oder neue Verben in die Liste aufnehmen. // Feststellen welches Verb in der Liste markiert ist und dieses Verb aus der Liste suchen. // An den Dialog wird ein Listeniterator bergeben. void KVerbEdit::slotEditVerb() { QListViewItem* pi = ListView1->selectedItem(); // it's a sorted list, so binary search works. // v is not a real verb it is only used for the search. v doesn't have any forms but // that isn't important to compare. int m = -1; if (pi != 0) { verbSpanish v; v.setSpanish(pi->text(0)); v.setForeign(pi->text(1)); int left = 0; int right = list.count() -1; m = 0; while (!(v == list[m])&&(left <= right)) { m = (left + right) / 2; if (v < list[m]) { right = m - 1; } else { left = m + 1; }; }; // It shouldn't occur that the verb doesn't exist. if (!(v == list[m])) m = -1; }; KErfassen* pDlgErfassen = new KErfassen(list, m, this, "erfassen", true); pDlgErfassen->exec(); changed = changed || pDlgErfassen->wasChanged(); if (pDlgErfassen->wasChanged()) { list = pDlgErfassen->getList(); listToView(); }; delete pDlgErfassen; pDlgErfassen = 0; }