00001 #include "lftvideoanalysedialog.h"
00002 #include <qlineedit.h>
00003 #include <qlabel.h>
00004 #include <qpushbutton.h>
00005 #include <qtable.h>
00006
00007
00008 LFTVideoAnalyseDialog::LFTVideoAnalyseDialog( QWidget* parent, const char* name, bool modal, WFlags f )
00009 : LFTVideoAnalyseDialogBase( parent, name, modal, f )
00010 {
00011
00012 TextLabelTitel->setText("LFT Video Analyse Tool (v0.96)");
00013
00014 Verlauf=new RatingVerlauf();
00015 Auswertung=new VerlaufsAuswertung();
00016
00017
00018 TabSum->horizontalHeader()->setLabel(0,"Anzahl(#)");
00019 TabSum->horizontalHeader()->setLabel(1,"Anzahl(%)");
00020 TabSum->horizontalHeader()->setLabel(2,"TeilAnzahl(%)");
00021 TabSum->horizontalHeader()->setLabel(3,"UnterAnzahl(%)");
00022
00023 TabSum->horizontalHeader()->setLabel(4,"Dauer(sec)");
00024 TabSum->horizontalHeader()->setLabel(5,"Dauer(%)");
00025 TabSum->horizontalHeader()->setLabel(6,"TeilDauer(%)");
00026 TabSum->horizontalHeader()->setLabel(7,"UnterDauer(%)");
00027
00028 TabSum->setText(0,2," ");
00029 TabSum->item(0,2)->setSpan(3,1);
00030 TabSum->setText(3,2," ");
00031 TabSum->item(3,2)->setSpan(3,1);
00032
00033 TabSum->setText(0,6," ");
00034 TabSum->item(0,6)->setSpan(3,1);
00035 TabSum->setText(3,6," ");
00036 TabSum->item(3,6)->setSpan(3,1);
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 connect((QObject*)(this->ButtonDatenEinlesen), SIGNAL(pressed()),
00048 this, SLOT(DatenEinlesen()));
00049
00050 connect((QObject*)(this->ButtonVerkuerze), SIGNAL(pressed()),
00051 this, SLOT(DatensatzVerkuerzen()));
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 QString text;
00079 int i, k;
00080 for (i=1; i<=7; i++){
00081 TabRatingSkala->setText(i-1,0,RatingSkalaKurz[i]);
00082 TabRatingSkala->setText(i-1,1,RatingSkalaLang[i]);
00083 for (k=1; k<=7; k++){
00084 text="%1>%2"; text=text.arg(i).arg(k);
00085 TabUew2->verticalHeader()->setLabel((k-1)*7 + i-1, text);
00086 TabUew2Prozent->verticalHeader()->setLabel((k-1)*7 + i-1, text);
00087 }
00088 }
00089 TabRatingSkala->adjustColumn(0);
00090 TabRatingSkala->adjustColumn(1);
00091
00092 TabVerlauf->horizontalHeader()->setLabel(0,"Zeit");
00093 TabVerlauf->horizontalHeader()->setLabel(1,"Einsch_VorVorher");
00094 TabVerlauf->horizontalHeader()->setLabel(2,"Einsch_Vorher");
00095 TabVerlauf->horizontalHeader()->setLabel(3,"Einsch_Ende");
00096 TabVerlauf->horizontalHeader()->setLabel(4,"Dauer");
00097
00098 TabVerlaufAlt->horizontalHeader()->setLabel(0,"Zeit");
00099 TabVerlaufAlt->horizontalHeader()->setLabel(1,"Einsch_VorVorher");
00100 TabVerlaufAlt->horizontalHeader()->setLabel(2,"Einsch_Vorher");
00101 TabVerlaufAlt->horizontalHeader()->setLabel(3,"Einsch_Ende");
00102 TabVerlaufAlt->horizontalHeader()->setLabel(4,"Dauer");
00103
00104 connect((QObject*)(this->TabUew2Prozent), SIGNAL(contentsMoving ( int , int ) ),
00105 this, SLOT(DreiertabelleScrollen ( int , int )));
00106 }
00107
00108 void LFTVideoAnalyseDialog::DreiertabelleScrollen(int x, int y){
00109 TabUew2->setContentsPos(x,y);
00110 }
00111
00112 void LFTVideoAnalyseDialog::DatenEinlesen(){
00113 if (Rater->text()=="" || Klient->text()=="") {
00114 EinlesenInfoLabel->setText("Bitte zunächst Klientencode und Ratername eingeben.");
00115 return;
00116 }
00117 EinlesenInfoLabel->setText("");
00118
00119 Speicherer = new VerlaufSpeichern();
00120 QString dateiname=Speicherer->gibFilename(Klient->text(), Rater->text());
00121 Speicherer->setzePointerAufDaten(Verlauf);
00122
00123 bool erfolgreich = Speicherer->leseDaten(dateiname,"Rating Verlauf");
00124 if (! erfolgreich) {
00125 EinlesenInfoLabel->setText(tr("%1 konnte nicht eingelesen werden").arg(dateiname));
00126 ButtonDatenEinlesen->setDown(false);
00127 return;
00128 } else {
00129 EinlesenInfoLabel
00130 ->setText(tr("%1 wurde erfolgreich eingelesen und die Auswertung gespeichert.").arg(dateiname));
00131 }
00132
00133 delete Speicherer;
00134
00135 Auswertung->DatenAnalysieren(Verlauf);
00136 Auswertung->DatenAnzeigen(this);
00137
00138 SpeichereAuswertung("Auswertung");
00139 }
00140
00141 void LFTVideoAnalyseDialog::DatensatzVerkuerzen(){
00142
00143
00144
00145
00146
00147
00148
00149 int numRows=TabVerlauf->numRows();
00150 int numCols=TabVerlauf->numCols();
00151 TabVerlaufAlt->setNumRows(numRows);
00152 TabVerlaufAlt->setNumCols(numCols);
00153 int i, j;
00154 for (i=0; i<numRows; i++){
00155 for (j=0; j<numCols; j++){
00156 TabVerlaufAlt->setText(i,j, TabVerlauf->text(i,j) );
00157 }
00158 }
00159
00160 long umWieviel=Verlauf->verkuerzeUmAufeinanderfolgendGleiche();
00161 VerkuerzenInfoLabel->
00162 setText(tr("Datensatz wurde um %1 Sinneinheiten verkürzt "
00163 "und die neue Auswertung(verkuerzt) gespeichert.").arg(umWieviel));
00164
00165 Auswertung->DatenAnalysieren(Verlauf);
00166 Auswertung->DatenAnzeigen(this);
00167
00168 SpeichereAuswertung("Auswertung(verkuerzt)");
00169
00170
00171
00172
00173
00174 }
00175
00176 void LFTVideoAnalyseDialog::AuswertungSpeichernV09(){
00177 int r,c;
00178 QString temp;
00179
00180 temp+=tr("%1\t").arg(DauerGesamt->text());
00181 temp+=tr("%1\t").arg(DauerTherapeut->text());
00182 temp+=tr("%1\n").arg(DauerKlient->text());
00183 temp+=tr("%1\t").arg(AnzahlGesamt->text());
00184 temp+=tr("%1\t").arg(AnzahlTherapeut->text());
00185 temp+=tr("%1\n").arg(AnzahlKlient->text());
00186 temp+=tr("%1\t").arg(mittlereDauerGesamt->text());
00187 temp+=tr("%1\t").arg(mittlereDauerTherapeut->text());
00188 temp+=tr("%1\n\n").arg(mittlereDauerKlient->text());
00189
00190 for ( r=0; r<=6; r++){
00191 temp+=tr("%1\t").arg(r+1);
00192 for ( c=0; c<=7; c++){
00193 temp+=TabSum->text(r,c);
00194 temp+='\t';
00195 }
00196 temp+='\n';
00197 };
00198
00199 QStringSpeichern* AuswertungsSpeicherer = new QStringSpeichern();
00200 AuswertungsSpeicherer->merkDirDaten(temp, "AuswertungV09");
00201 QString fname=AuswertungsSpeicherer->gibFilename(Klient->text(), Rater->text());
00202 AuswertungsSpeicherer->speichereDaten(fname, "AuswertungV09");
00203 delete AuswertungsSpeicherer ;
00204 }
00205
00206
00207 void LFTVideoAnalyseDialog::SpeichereAuswertung(QString dieEndung){
00208
00209
00210 AuswertungSpeichern* AuswSpeicherer;
00211 AuswSpeicherer= new AuswertungSpeichern();
00212 AuswSpeicherer->merkDirDaten(Auswertung, dieEndung);
00213
00214 QString fname=AuswSpeicherer->gibFilename(Klient->text(), Rater->text());
00215 AuswSpeicherer->speichereDaten(fname, dieEndung);
00216 delete AuswSpeicherer;
00217
00218
00219
00220 QString temp, uebergaenge="";
00221 QString id=Klient->text() + '\t' + Rater->text() + '\t';
00222 int i, j;
00223
00224 for (i=1; i<=7; i++){
00225 for (j=1; j<=7; j++){
00226 temp="%1"; temp=temp.arg(Auswertung->uew[i][j]);
00227 uebergaenge += temp + '\t';
00228 }
00229 temp="%1"; temp=temp.arg(i);
00230 uebergaenge += id + temp + '\n';
00231 }
00232
00233 QStringSpeichern* UeWSpeicherer;
00234 UeWSpeicherer= new QStringSpeichern();
00235 UeWSpeicherer->merkDirDaten(uebergaenge, dieEndung+"_UeW");
00236
00237 fname=UeWSpeicherer->gibFilename(Klient->text(), Rater->text());
00238 UeWSpeicherer->speichereDaten(fname, dieEndung);
00239 delete UeWSpeicherer;
00240
00241
00242 uebergaenge="";
00243 int k;
00244 for (i=1; i<=7; i++){
00245 for (j=1; j<=7; j++){
00246 for (k=1; k<=7; k++){
00247
00248 temp="%1"; temp=temp.arg(Auswertung->uew2[j][i][k]);
00249 uebergaenge += temp + '\t';
00250 }
00251 temp="%1\t%2"; temp=temp.arg(j).arg(i);
00252 uebergaenge += id + temp + '\n';
00253 }
00254 }
00255
00256 QStringSpeichern* UeW2Speicherer;
00257 UeW2Speicherer= new QStringSpeichern();
00258 UeW2Speicherer->merkDirDaten(uebergaenge, dieEndung+"_UeW2");
00259
00260 fname=UeW2Speicherer->gibFilename(Klient->text(), Rater->text());
00261 UeW2Speicherer->speichereDaten(fname, dieEndung);
00262 delete UeW2Speicherer;
00263
00264 }