QSqlTable: ist eine Zeile bereits gelöscht?

Alles rund um die Programmierung mit Qt
Antworten
Al_
Beiträge: 17
Registriert: 10. Januar 2009 15:27
Wohnort: Schweiz

QSqlTable: ist eine Zeile bereits gelöscht?

Beitrag von Al_ »

QSqlTable: ist eine Zeile bereits gelöscht, aber die Löschung noch nicht in die Datenbank submitted?

Ich sollte herausfinden, ob eine Tabellenzeile (respektive der zugehörige QSqlRecord oder QModelIndex) bereits gelöscht ist, aber noch nicht submitted. Dies tritt bei OnManualSubmit auf, wenn der Benutzer eine Zeile löscht, was meine Applikation in tableModel->removeRow(...) übersetzt.

Ein QTableView zeigt solche gelöschte Zeilen mit einerm '!' anstelle der Zeilennummer an. Wo finde ich diese Information programmatisch? Zum Beispiel, um solche Zeilen mit tableView->setRowHidden(...) auszublenden oder in einem anderen Font (strike-through) darzustellen?

Vergleiche zu einem verwandten Thema auch http://www.qtforum.de/forum/viewtopic.php?t=13208

Al_
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Code: Alles auswählen

bool QSqlTableModel::isDirty ( const QModelIndex & index ) const
reicht nicht?
Al_
Beiträge: 17
Registriert: 10. Januar 2009 15:27
Wohnort: Schweiz

Beitrag von Al_ »

@upsala:
QSqlTableModel::isDirty gibt true zurück, wenn etwas an der Zeile geändert wurde, nicht nur, wenn die Zeile gelöscht wurde. Deshalb genügt diese Funktion leider nicht.

Al_
Al_
Beiträge: 17
Registriert: 10. Januar 2009 15:27
Wohnort: Schweiz

Beitrag von Al_ »

In einem englischen Forum http://www.qtcentre.org/threads/27353-d ... QTableView habe ich gefunden, dass man auf das undokumentierte '!' zurückgreifen muss. Was mir allerdings noch nicht weiter hilft: ich muss in einem model, nicht in einem view wissen, ob die Zeile gelöscht ist.

Al_
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Dann frag halt headerData() deines QSqlTableModel ab.
Al_
Beiträge: 17
Registriert: 10. Januar 2009 15:27
Wohnort: Schweiz

[GELÖST] QSqlTable: ist eine Zeile bereits gelöscht?

Beitrag von Al_ »

Danke. Funktioniert! :D

Da bei einem QSqlTableModel die Zeilentitel nicht geändert werden können (nur die Spaltentitel), kann auch niemand das '!' löschen.

Al_
Antworten