classoptions.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #ifndef CLASSOPTIONS_H
  2. #define CLASSOPTIONS_H
  3. #include <QDialog>
  4. #include <QListWidgetItem>
  5. #include "sequenz.h"
  6. namespace Ui
  7. {
  8. class ClassOptions;
  9. }
  10. /*
  11. * Verwaltet den GUI Dialog, welcher zur Verwaltung der Objekt Klassen verwendet
  12. *wird
  13. */
  14. class ClassOptions : public QDialog
  15. {
  16. Q_OBJECT
  17. /*
  18. * Ein Eintrag in der Editierbaren Liste mit Klassen
  19. */
  20. struct ListItem
  21. {
  22. int id; // Die Id der Klasse des Eintrags
  23. QListWidgetItem *item; // Der Listeneintrag
  24. };
  25. public:
  26. // erstellt den DIalog
  27. // seq: Die Sequenz, welche momentan annotiert wird
  28. // parent: Das Eltern QWidget von Qt
  29. explicit ClassOptions(Sequenz *seq,
  30. QWidget *parent = 0);
  31. ~ClassOptions();
  32. private slots:
  33. // Erstellt eine neue Klasse von Objekten
  34. void on_newClass_clicked();
  35. // Löscht eine Klasse von Objekten
  36. void on_removeClass_clicked();
  37. // Erlaubt das Klicken auf Löschen
  38. void on_classList_itemSelectionChanged();
  39. // Benennt die ausgewählte Klasse um
  40. void on_classList_itemChanged(QListWidgetItem *item);
  41. // Beendet das Verwalten der Klassen
  42. void on_fertig_clicked();
  43. private:
  44. // Gibt den Index einer Klasse aus der Liste zurück
  45. int getItemId(QListWidgetItem *item);
  46. Sequenz *seq; // Ein zeiger auf die annotierte Bildsequenz
  47. QList<ListItem> items; // Eine Liste mit Listeneinträgen
  48. Ui::ClassOptions *ui; // Ein Zeiger auf alle in classoptions.ui spezifizierten Objekte
  49. };
  50. #endif // CLASSOPTIONS_H