Exemplo n.º 1
0
// ö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());
}
Exemplo n.º 2
0
// 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;
}