#include <lftvideodialog.h>
Klassendiagramm für LFTVideoDialog:


Öffentliche Slots | |
| void | openKonfigDialog () |
Öffentliche Methoden | |
| LFTVideoDialog (QWidget *parent=0, const char *name=0, bool modal=FALSE, WFlags f=0) | |
| ~LFTVideoDialog () | |
| void | initNullSetzungen () |
| double | vergangeneZeitInSekunden () |
| double | vergangeneSekunden () |
| int | vergangeneMinuten () |
Öffentliche Attribute | |
| SitzungsKonfigurationDialog * | KonfigDialog |
| QTime * | zaehlwerk |
|
||||||||||||||||||||
|
Definiert in Zeile 21 der Datei lftvideodialog.cpp. Benutzt LFTVideoDialogBase::BtGrpRating, LFTVideoDialogBase::BtKlient_NLF, LFTVideoDialogBase::BtKonfiguration, LFTVideoDialogBase::BtKorrigieren, LFTVideoDialogBase::BtRun, LFTVideoDialogBase::BtSave, LFTVideoDialogBase::BtTherapeut_NLF, initNullSetzungen(), KonfigDialog, openKonfigDialog(), LFTVideoDialogBase::PushButtonCountdown, LFTVideoDialogBase::SldMins, LFTVideoDialogBase::SldSecs und zaehlwerk.
00023 : LFTVideoDialogBase( parent, name, modal, f ) 00024 { 00025 this->setProperty( "caption", tr( "v1.76 LFTVideo" ) ); 00026 00027 KonfigDialog=new SitzungsKonfigurationDialog ( this, "KonfigDialog", TRUE, 00028 Qt::WStyle_Customize | Qt::WStyle_Title | Qt::WStyle_SysMenu); 00029 00030 QFont *dialog_font=new QFont ( KonfigDialog->font() ); 00031 dialog_font->setFamily( "Arial" ); 00032 dialog_font->setPointSize( 8 ); 00033 KonfigDialog->setFont ( *dialog_font, TRUE) ; 00034 BtTherapeut_NLF->setText("nicht\nLös.Sprache (6)"); 00035 BtTherapeut_NLF->setProperty( "accel", 268435510 ); 00036 BtKlient_NLF->setText("nicht\nLös.Sprache (3)"); 00037 BtKlient_NLF->setProperty( "accel", 268435507 ); 00038 00039 // signals and slots connections for buttons 00040 connect( (const QObject*) BtKonfiguration, SIGNAL(clicked() ), 00041 this, SLOT(openKonfigDialog() ) ); 00042 connect( (const QObject*) BtRun, SIGNAL(toggled(bool) ), 00043 this, SLOT(RatingBeginnOderPause(bool) ) ); 00044 connect ((const QObject*) BtGrpRating, SIGNAL(pressed(int)), 00045 this, SLOT(SpeichereRatingButton(int)) ); 00046 connect ((const QObject*) BtSave, SIGNAL(pressed()), 00047 this, SLOT(RatingEnde()) ); 00048 connect ((const QObject*) BtKorrigieren, SIGNAL(toggled(bool)), 00049 this, SLOT(KorrigierenSchalter(bool)) ); 00050 connect ((const QObject*) PushButtonCountdown, SIGNAL(toggled(bool)), 00051 this, SLOT(CountdownStart(bool)) ); 00052 // Countdown Timer: 00053 CountdownTimer=new QTimer(); 00054 connect( CountdownTimer, SIGNAL(timeout()), 00055 this, SLOT(Countdown()) ); 00056 00057 // der LCD update Timer: 00058 zaehlwerk=new QTime(); 00059 SekundenTimer=new QTimer(); 00060 connect( SekundenTimer, SIGNAL(timeout()), 00061 this, SLOT(aktualisiereZeitanzeige()) ); 00062 connect( SldSecs, SIGNAL(valueChanged(int)), 00063 this, SLOT(SliderCheckFaerbung()) ); 00064 connect( SldMins, SIGNAL(valueChanged(int)), 00065 this, SLOT(SliderCheckFaerbung()) ); 00066 00067 // Neubeginn Speicher und GUI: 00068 initNullSetzungen(); // NEW RatingVerlauf, weitergeführt=false, 00069 // Anzahl->0, Dauer->0, letzteEinsch->0 00070 // Sld->0, Run->disabled, Counter->disabled, 00071 // KonfigOK->disabled, KonfigKlient->"" 00072 }; |
|
|
Definiert in Zeile 404 der Datei lftvideodialog.cpp. Benutzt RatingVerlauf::BisherLetzterMoment(), InfoSpeichern::gibFilename(), VerlaufSpeichern::gibFilename(), giveDateStamp(), giveTimeStamp(), KonfigDialog, InfoSpeichern::merkDirDaten(), MinSec(), VerlaufSpeichern::setzePointerAufDaten(), RatingVerlauf::Sinneinheiten, LFTVideoDialogBase::TextLabelAnzahl, LFTVideoDialogBase::TextLabelMittlereDauer und MinSec::toQString().
00408 {
00409 int verloren=Verlauf->Sinneinheiten.size();
00410 MinSec arbeitszeit=Verlauf->BisherLetzterMoment();
00411
00412 if (verloren>1)
00413 {
00414 QString dasDatum="SIKO_"; dasDatum+=giveDateStamp();
00415 QString dieZeit=giveTimeStamp();
00416 QString filename1=(dasDatum + "_" + dieZeit +"_info.dat").lower();
00417 QString filename2=(dasDatum + "_" + dieZeit +"_verlauf.dat").lower();
00418
00419 QString temp="Vor dem Beenden dieses Programmes müssen die Daten IMMER "
00420 "manuell per 'Ende'-Taste abge-SPEICHER-t werden.\n\nFast wären "
00421 "die wertvollen %1 Sinneinheiten verloren gewesen, die in "
00422 "mühseliger %2 dauernden Arbeitszeit eingegeben wurden.\n"
00423 "Also: Bitte immer als letztes 'Ende' drücken, dann erst das "
00424 "Programm schliessen!\n\nIch werde nun versuchen, eine "
00425 "Sicherheitskopie der Daten abzuspeichern unter: \n%3\n%4\n\n"
00426 "Nach Kopieren und manuellem Umbenennen ins normale Schema "
00427 "können die Daten dann einfach\nmittels "
00428 "'angefangene Sitzung weiterführen' eingelesen und neu "
00429 "abgespeichert werden.\n\n"
00430 "Vielleicht nochmal Glück gehabt? Schaun wir mal, ob das "
00431 "Speichern nun klappt ...";
00432 temp=temp.arg(verloren)
00433 .arg(arbeitszeit.toQString())
00434 .arg(filename1).arg(filename2);
00435 QMessageBox::critical( this, "LFTVideo - so beenden ist VERBOTEN!",
00436 temp);
00437
00438 VerlaufSpeichern *Speicherer=new VerlaufSpeichern (this);
00439 Speicherer->setzePointerAufDaten(Verlauf);
00440 QString filenameVerlauf=Speicherer->gibFilename(dasDatum, dieZeit);
00441 bool erfolgreichVerlauf = Speicherer->
00442 speichereDaten(filenameVerlauf,"Rating Verlauf");
00443 delete Speicherer;
00444 qDebug("Verlauf Speichern war erfolgreich: %d",erfolgreichVerlauf);
00445
00446 InfoSpeichern *InfoSpeicherer=new InfoSpeichern (this);
00447 InfoSpeicherer->merkDirDaten(TextLabelAnzahl->text(),
00448 TextLabelMittlereDauer->text(),
00449 Verlauf->BisherLetzterMoment(),
00450 weitergefuehrteSession,
00451 PauseGedrueckt);
00452 QString filenameInfo= InfoSpeicherer->gibFilename(dasDatum, dieZeit);
00453 bool erfolgreichInfo;
00454 erfolgreichInfo = InfoSpeicherer->
00455 speichereDaten(filenameInfo,"Rating Verlauf");
00456 delete InfoSpeicherer;
00457 qDebug("InfoSpeichern war erfolgreich: %d",erfolgreichInfo);
00458 }
00459
00460 // zerstöre Daten:
00461 Verlauf->Sinneinheiten.clear(); delete Verlauf;
00462 delete KonfigDialog, CountdownTimer, SekundenTimer;
00463
00464 // no need to delete child widgets, Qt does it all for us
00465 }
|
|
|
Definiert in Zeile 93 der Datei lftvideodialog.cpp. Benutzt SitzungsKonfigurationDialogBase::buttonOk, LFTVideoDialogBase::FrmCounter, LFTVideoDialogBase::FrmRun, KonfigDialog, SitzungsKonfigurationDialogBase::LineEditKlient, MinSec(), LFTVideoDialogBase::SldMins, LFTVideoDialogBase::SldSecs, LFTVideoDialogBase::TextLabelAnzahl und LFTVideoDialogBase::TextLabelMittlereDauer. Wird benutzt von LFTVideoDialog().
00093 {
00094
00095 Verlauf=new RatingVerlauf();
00096 weitergefuehrteSession=false;
00097 PauseGedrueckt=false;
00098 TextLabelAnzahl->setText("0");
00099 TextLabelMittlereDauer->setText("00:00");
00100 letzterEinschaetzungsZeitpunkt=MinSec(0,0);
00101 // resette Zaehlwerk
00102 SldSecs->setValue(0);
00103 SldMins->setValue(0);
00104 // zuerst muss immer Konfiguration ausgefüllt werden, sonst geht gar nix:
00105 FrmRun->setEnabled(false);
00106 FrmCounter->setEnabled(false);
00107 KonfigDialog->buttonOk->setEnabled(false);
00108 KonfigDialog->LineEditKlient->setText("");
00109 }
|
|
|
Definiert in Zeile 341 der Datei lftvideodialog.cpp. Benutzt RatingVerlauf::BisherLetzterMoment(), SitzungsKonfigurationDialogBase::buttonOk, LFTVideoDialogBase::FrmCounter, LFTVideoDialogBase::FrmRun, VerlaufSpeichern::gibFilename(), LFTVideoDialogBase::infoline1, SitzungsKonfigurationDialogBase::ja, KonfigDialog, DatenSpeichern::leseDaten(), SitzungsKonfigurationDialogBase::LineEditDatum, SitzungsKonfigurationDialogBase::LineEditKlient, SitzungsKonfigurationDialogBase::LineEditRater, SitzungsKonfigurationDialogBase::LineEditUhrzeit, MinSec::mins(), MinSec(), MinSec::secs(), VerlaufSpeichern::setzePointerAufDaten(), RatingVerlauf::Sinneinheiten, LFTVideoDialogBase::SldMins, LFTVideoDialogBase::SldSecs, LFTVideoDialogBase::TextLabelAnzahl, SitzungsKonfigurationDialogBase::TextLabelExistiert, LFTVideoDialogBase::TextLabelMittlereDauer und MinSec::toSecs(). Wird benutzt von LFTVideoDialog().
00341 {
00342
00343 // TODO / EVTL:
00344 // Im Falle von Cancel die alten Einträge wiederherstellen?
00345
00346 KonfigDialog->LineEditDatum->setText(QDate::currentDate().toString());
00347 KonfigDialog->LineEditUhrzeit->setText(QTime::currentTime().toString());
00348 KonfigDialog->show();
00349
00350 // wenn's geht mit alten Daten weitermachen
00351 if ( KonfigDialog->ja->isChecked()
00352 && KonfigDialog->TextLabelExistiert->text()=="schon")
00353 {
00354 VerlaufSpeichern *Speicherer=new VerlaufSpeichern (this);
00355 Speicherer->setzePointerAufDaten(Verlauf);
00356 QString filename= Speicherer->gibFilename(
00357 KonfigDialog->LineEditKlient->text(),
00358 KonfigDialog->LineEditRater->text());
00359 bool erfolgreich = Speicherer->leseDaten(filename,"Rating Verlauf");
00360 if (erfolgreich) {
00361 weitergefuehrteSession=true;
00362
00363 if (MinSec(0,0) < Verlauf->BisherLetzterMoment()) // schon Daten da?
00364 PauseGedrueckt=true; // TODO: Die ist vereinfachend.
00365 // Besser wäre dies aus _Info auszulesen
00366 // Denn nur einlesen und sofort wieder speichern
00367 // macht nix kaputt an Zeitkohärenz...
00368 }
00369 delete Speicherer;
00370 QString infotext="Daten wurden";
00371 infotext+=(erfolgreich?" ":" NICHT ");
00372 infotext+="erfolgreich aus ";
00373 infotext+=filename;
00374 infotext+=" eingelesen";
00375 infoline1->setText(infotext);
00376
00377 letzterEinschaetzungsZeitpunkt=Verlauf->BisherLetzterMoment();
00378 SldMins->setValue(letzterEinschaetzungsZeitpunkt.mins());
00379 SldSecs->setValue(letzterEinschaetzungsZeitpunkt.secs());
00380
00381 // Anzahl-Anzeige
00382 int anz=Verlauf->Sinneinheiten.size()-1 ; // -1 wegen Nullpunkt
00383 QString temp="%1";
00384 temp=temp.arg(anz);
00385 TextLabelAnzahl->setText(temp);
00386 // Durchschnittsdauer-Anzeige
00387 double dauer= letzterEinschaetzungsZeitpunkt.toSecs() / (double) anz;
00388 temp=MinSec(0, dauer).toQString();
00389 TextLabelMittlereDauer->setText(temp);
00390 }
00391
00392 if (KonfigDialog->buttonOk->isEnabled()){
00393 infoline1->setText("OK. Es kann losgehen...");
00394 FrmRun->setEnabled(true);
00395 FrmCounter->setEnabled(true);
00396 }else {
00397 infoline1->setText("Zuerst die Sitzung konfigurieren");
00398 FrmRun->setEnabled(false);
00399 FrmCounter->setEnabled(false);
00400 }
00401 };
|
|
|
Definiert in Zeile 290 der Datei lftvideodialog.cpp. Benutzt vergangeneZeitInSekunden().
00290 {
00291 int mins=vergangeneZeitInSekunden()/60;
00292 return mins;
00293 }
|
|
|
Definiert in Zeile 284 der Datei lftvideodialog.cpp. Benutzt nachkomma() und vergangeneZeitInSekunden().
00284 {
00285 double secs=vergangeneZeitInSekunden();
00286 int nurSecs=((int) secs) % 60;
00287 return nurSecs + nachkomma(secs);
00288 }
|
|
|
Definiert in Zeile 275 der Datei lftvideodialog.cpp. Benutzt zaehlwerk. Wird benutzt von vergangeneMinuten() und vergangeneSekunden().
00275 {
00276 double secs = StartLCDSekunden+StartLCDMinuten*60;
00277 // vergangene MILLIsekunden sind nur im laufenden Timer gespeichert
00278 if (SekundenTimer->isActive())
00279 secs += ((double) zaehlwerk->elapsed()) / (double) 1000;
00280 return secs;
00281 }
|
|
|
Definiert in Zeile 28 der Datei lftvideodialog.h. Wird benutzt von initNullSetzungen(), LFTVideoDialog(), openKonfigDialog() und ~LFTVideoDialog(). |
|
|
Definiert in Zeile 29 der Datei lftvideodialog.h. Wird benutzt von LFTVideoDialog() und vergangeneZeitInSekunden(). |
1.3.2