[elvystrac] r1841 - make sure statistical events are propagated when exiting

  • From: elvys@xxxxxxxxxxxxxxxxxxxxxx
  • To: elvystrac@xxxxxxxxxxxxx
  • Date: Wed, 24 Feb 2010 10:19:53 +0100

Author: JirkaH
Date: 2010-02-24 10:19:52 +0100 (Wed, 24 Feb 2010)
New Revision: 1841

Modified:
   trunk/client/elvys-client/Makefile
   trunk/client/elvys-client/bin/appconfig.xml
   trunk/client/elvys-client/bin/appconfig.xml.static
   trunk/client/elvys-client/elvys-client.pro.user
   trunk/client/elvys-client/src/elvys.cpp
   trunk/client/elvys-client/src/elvys.h
   trunk/client/elvys-client/src/main.cpp
   trunk/client/elvys-client/src/statisticsdata.cpp
Log:
make sure statistical events are propagated when exiting


Modified: trunk/client/elvys-client/Makefile
===================================================================
--- trunk/client/elvys-client/Makefile  2010-02-24 01:45:49 UTC (rev 1840)
+++ trunk/client/elvys-client/Makefile  2010-02-24 09:19:52 UTC (rev 1841)
@@ -1,9 +1,9 @@
 #############################################################################
 # Makefile for building: elvys-client
-# Generated by qmake (2.01a) (Qt 4.5.3) on: Wed Feb 17 09:52:32 2010
+# Generated by qmake (2.01a) (Qt 4.5.3) on: Tue Feb 23 20:39:27 2010
 # Project:  elvys-client.pro
 # Template: subdirs
-# Command: /usr/bin/qmake -spec /usr/share/qt4/mkspecs/linux-g++ -unix 
CONFIG+=debug_and_release -o Makefile elvys-client.pro
+# Command: /usr/bin/qmake -spec /usr/share/qt4/mkspecs/linux-g++ -unix 
CONFIG+=release -o Makefile elvys-client.pro
 #############################################################################
 
 first: make_default
@@ -29,10 +29,10 @@
 
 src/$(MAKEFILE): 
        @$(CHK_DIR_EXISTS) src/ || $(MKDIR) src/ 
-       cd src/ && $(QMAKE) src.pro -spec /usr/share/qt4/mkspecs/linux-g++ 
-unix CONFIG+=debug_and_release -o $(MAKEFILE)
+       cd src/ && $(QMAKE) src.pro -spec /usr/share/qt4/mkspecs/linux-g++ 
-unix CONFIG+=release -o $(MAKEFILE)
 sub-src-qmake_all:  FORCE
        @$(CHK_DIR_EXISTS) src/ || $(MKDIR) src/ 
-       cd src/ && $(QMAKE) src.pro -spec /usr/share/qt4/mkspecs/linux-g++ 
-unix CONFIG+=debug_and_release -o $(MAKEFILE)
+       cd src/ && $(QMAKE) src.pro -spec /usr/share/qt4/mkspecs/linux-g++ 
-unix CONFIG+=release -o $(MAKEFILE)
 sub-src: src/$(MAKEFILE) FORCE
        cd src/ && $(MAKE) -f $(MAKEFILE)
 sub-src-make_default: src/$(MAKEFILE) FORCE
@@ -58,8 +58,7 @@
                /usr/share/qt4/mkspecs/features/qt_config.prf \
                /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
                /usr/share/qt4/mkspecs/features/default_pre.prf \
-               /usr/share/qt4/mkspecs/features/debug.prf \
-               /usr/share/qt4/mkspecs/features/debug_and_release.prf \
+               /usr/share/qt4/mkspecs/features/release.prf \
                /usr/share/qt4/mkspecs/features/default_post.prf \
                /usr/share/qt4/mkspecs/features/unix/thread.prf \
                /usr/share/qt4/mkspecs/features/qt.prf \
@@ -70,7 +69,7 @@
                /usr/share/qt4/mkspecs/features/yacc.prf \
                /usr/share/qt4/mkspecs/features/lex.prf \
                /usr/share/qt4/mkspecs/features/include_source_dir.prf
-       $(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix 
CONFIG+=debug_and_release -o Makefile elvys-client.pro
+       $(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=release 
-o Makefile elvys-client.pro
 /usr/share/qt4/mkspecs/common/g++.conf:
 /usr/share/qt4/mkspecs/common/unix.conf:
 /usr/share/qt4/mkspecs/common/linux.conf:
@@ -79,8 +78,7 @@
 /usr/share/qt4/mkspecs/features/qt_config.prf:
 /usr/share/qt4/mkspecs/features/exclusive_builds.prf:
 /usr/share/qt4/mkspecs/features/default_pre.prf:
-/usr/share/qt4/mkspecs/features/debug.prf:
-/usr/share/qt4/mkspecs/features/debug_and_release.prf:
+/usr/share/qt4/mkspecs/features/release.prf:
 /usr/share/qt4/mkspecs/features/default_post.prf:
 /usr/share/qt4/mkspecs/features/unix/thread.prf:
 /usr/share/qt4/mkspecs/features/qt.prf:
@@ -92,7 +90,7 @@
 /usr/share/qt4/mkspecs/features/lex.prf:
 /usr/share/qt4/mkspecs/features/include_source_dir.prf:
 qmake: qmake_all FORCE
-       @$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix 
CONFIG+=debug_and_release -o Makefile elvys-client.pro
+       @$(QMAKE) -spec /usr/share/qt4/mkspecs/linux-g++ -unix CONFIG+=release 
-o Makefile elvys-client.pro
 
 qmake_all: sub-src-qmake_all FORCE
 
@@ -105,14 +103,6 @@
 install_subtargets: sub-src-install_subtargets FORCE
 uninstall_subtargets: sub-src-uninstall_subtargets FORCE
 
-sub-src-sub_Debug: src/$(MAKEFILE)
-       cd src/ && $(MAKE) debug
-debug: sub-src-sub_Debug
-
-sub-src-sub_Release: src/$(MAKEFILE)
-       cd src/ && $(MAKE) release
-release: sub-src-sub_Release
-
 mocclean: compiler_moc_header_clean compiler_moc_source_clean
 
 mocables: compiler_moc_header_make_all compiler_moc_source_make_all

Modified: trunk/client/elvys-client/bin/appconfig.xml
===================================================================
--- trunk/client/elvys-client/bin/appconfig.xml 2010-02-24 01:45:49 UTC (rev 
1840)
+++ trunk/client/elvys-client/bin/appconfig.xml 2010-02-24 09:19:52 UTC (rev 
1841)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <a:app_config elvysVersion="1.0-b1" xmlns:a="cz/elvys/jaxbgen/app">
-    <a:machine_id>19</a:machine_id>
+    <a:machine_id>13</a:machine_id>
     <a:data_url>
         
<a:http_address>http://elvys.farm.particle.cz/dataIntegrationNew/4</a:http_address>
     </a:data_url>

Modified: trunk/client/elvys-client/bin/appconfig.xml.static
===================================================================
--- trunk/client/elvys-client/bin/appconfig.xml.static  2010-02-24 01:45:49 UTC 
(rev 1840)
+++ trunk/client/elvys-client/bin/appconfig.xml.static  2010-02-24 09:19:52 UTC 
(rev 1841)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <app_config elvysVersion="1.0-b1">
-    <machine_id>19</machine_id>
+    <machine_id>13</machine_id>
     <data_url>
         
<http_address>http://elvys.farm.particle.cz/dataIntegration/4</http_address>
     </data_url>

Modified: trunk/client/elvys-client/elvys-client.pro.user
===================================================================
--- trunk/client/elvys-client/elvys-client.pro.user     2010-02-24 01:45:49 UTC 
(rev 1840)
+++ trunk/client/elvys-client/elvys-client.pro.user     2010-02-24 09:19:52 UTC 
(rev 1841)
@@ -6,7 +6,7 @@
  </data>
  <data>
   <variable>RunConfiguration0-Executable</variable>
-  <value type="QString" 
>/home/keruom/elvys/branches/client/pdf-presentation-branch/elvys-client/bin/elvys-client</value>
+  <value type="QString" 
>/home/keruom/elvys/trunk/client/elvys-client/bin/elvys-client</value>
  </data>
  <data>
   <variable>RunConfiguration0-RunConfiguration.name</variable>
@@ -30,7 +30,7 @@
  </data>
  <data>
   <variable>RunConfiguration0-WorkingDirectory</variable>
-  <value type="QString" 
>/home/keruom/elvys/branches/client/pdf-presentation-branch/elvys-client/bin</value>
+  <value type="QString" 
>/home/keruom/elvys/trunk/client/elvys-client/bin/</value>
  </data>
  <data>
   <variable>RunConfiguration0-type</variable>
@@ -52,7 +52,7 @@
    <value key="ToolChain" type="int" >0</value>
    <value key="addQDumper" type="" ></value>
    <value key="buildConfiguration" type="int" >2</value>
-   <value key="buildDirectory" type="QString" 
>/home/keruom/elvys/branches/client/pdf-presentation-branch/elvys-client</value>
+   <value key="buildDirectory" type="QString" 
>/home/keruom/elvys/trunk/client/elvys-client</value>
   </valuemap>
  </data>
  <data>
@@ -88,7 +88,7 @@
     <value type="QString" >CONFIG_PROTECT=/usr/share/X11/xkb /var/lib/hsqldb 
/usr/share/config</value>
     <value type="QString" >CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ 
/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ 
/etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf 
/etc/gconf /etc/terminfo /etc/ca-certificates.conf /etc/texmf/web2c 
/etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d 
/etc/revdep-rebuild</value>
     <value type="QString" >CVS_RSH=ssh</value>
-    <value type="QString" 
>DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-A0hB8LLrnq,guid=2030e7ed54f71619069908f64b74ffdf</value>
+    <value type="QString" 
>DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sGyA4WPq8u,guid=6187b8040a596a0e2810236f4b816c47</value>
     <value type="QString" >DESKTOP_SESSION=KDE-4</value>
     <value type="QString" >DESKTOP_STARTUP_ID=</value>
     <value type="QString" >DISPLAY=:0.0</value>
@@ -127,7 +127,7 @@
     <value type="QString" 
>QT_PLUGIN_PATH=/home/keruom/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/</value>
     <value type="QString" >RUBYOPT=-rauto_gem</value>
     <value type="QString" >R_HOME=/usr/lib/R</value>
-    <value type="QString" 
>SESSION_MANAGER=local/LenR61:@/tmp/.ICE-unix/6926,unix/LenR61:/tmp/.ICE-unix/6926</value>
+    <value type="QString" 
>SESSION_MANAGER=local/LenR61:@/tmp/.ICE-unix/6953,unix/LenR61:/tmp/.ICE-unix/6953</value>
     <value type="QString" 
>SGML_CATALOG_FILES=/etc/sgml/sgml-lite.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/sgml-docbook.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/sgml-ent.cat</value>
     <value type="QString" >SHELL=/bin/bash</value>
     <value type="QString" >SHLVL=1</value>
@@ -138,21 +138,21 @@
     <value type="QString" >XCURSOR_THEME=Oxygen_Black</value>
     <value type="QString" >XDG_CONFIG_DIRS=/etc/xdg</value>
     <value type="QString" 
>XDG_DATA_DIRS=/usr/share:/usr/local/share:/usr/share</value>
-    <value type="QString" 
>XDG_SESSION_COOKIE=d9adc4154425c11fe992e29e4870ae75-1265958879.158627-1510381767</value>
+    <value type="QString" 
>XDG_SESSION_COOKIE=d9adc4154425c11fe992e29e4870ae75-1266773062.893431-986904659</value>
     <value type="QString" >XDM_MANAGED=method=classic</value>
     <value type="QString" >_=/usr/bin/kdeinit4</value>
    </valuelist>
    <valuelist key="abstractProcess.arguments" type="QVariantList" >
-    <value type="QString" 
>/home/keruom/elvys/branches/client/pdf-presentation-branch/elvys-client/elvys-client.pro</value>
+    <value type="QString" 
>/home/keruom/elvys/trunk/client/elvys-client/elvys-client.pro</value>
     <value type="QString" >-spec</value>
     <value type="QString" >/usr/share/qt4/mkspecs/linux-g++</value>
     <value type="QString" >-r</value>
-    <value type="QString" >CONFIG+=debug_and_release</value>
+    <value type="QString" >CONFIG+=release</value>
    </valuelist>
    <value key="abstractProcess.command" type="QString" >/usr/bin/qmake</value>
    <value key="abstractProcess.enabled" type="bool" >false</value>
-   <value key="abstractProcess.workingDirectory" type="QString" 
>/home/keruom/elvys/branches/client/pdf-presentation-branch/elvys-client</value>
-   <value key="buildConfiguration" type="" ></value>
+   <value key="abstractProcess.workingDirectory" type="QString" 
>/home/keruom/elvys/trunk/client/elvys-client</value>
+   <value key="buildConfiguration" type="int" >0</value>
   </valuemap>
  </data>
  <data>
@@ -165,7 +165,7 @@
     <value type="QString" >CONFIG_PROTECT=/usr/share/X11/xkb /var/lib/hsqldb 
/usr/share/config</value>
     <value type="QString" >CONFIG_PROTECT_MASK=/etc/sandbox.d /etc/env.d/java/ 
/etc/php/cli-php5/ext-active/ /etc/php/cgi-php5/ext-active/ 
/etc/php/apache2-php5/ext-active/ /etc/udev/rules.d /etc/fonts/fonts.conf 
/etc/gconf /etc/terminfo /etc/ca-certificates.conf /etc/texmf/web2c 
/etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d 
/etc/revdep-rebuild</value>
     <value type="QString" >CVS_RSH=ssh</value>
-    <value type="QString" 
>DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-A0hB8LLrnq,guid=2030e7ed54f71619069908f64b74ffdf</value>
+    <value type="QString" 
>DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sGyA4WPq8u,guid=6187b8040a596a0e2810236f4b816c47</value>
     <value type="QString" >DESKTOP_SESSION=KDE-4</value>
     <value type="QString" >DESKTOP_STARTUP_ID=</value>
     <value type="QString" >DISPLAY=:0.0</value>
@@ -204,7 +204,7 @@
     <value type="QString" 
>QT_PLUGIN_PATH=/home/keruom/.kde4/lib/kde4/plugins/:/usr/lib/kde4/plugins/</value>
     <value type="QString" >RUBYOPT=-rauto_gem</value>
     <value type="QString" >R_HOME=/usr/lib/R</value>
-    <value type="QString" 
>SESSION_MANAGER=local/LenR61:@/tmp/.ICE-unix/6926,unix/LenR61:/tmp/.ICE-unix/6926</value>
+    <value type="QString" 
>SESSION_MANAGER=local/LenR61:@/tmp/.ICE-unix/6953,unix/LenR61:/tmp/.ICE-unix/6953</value>
     <value type="QString" 
>SGML_CATALOG_FILES=/etc/sgml/sgml-lite.cat:/etc/sgml/openjade-1.3.2.cat:/etc/sgml/dsssl-docbook-stylesheets.cat:/etc/sgml/sgml-docbook.cat:/etc/sgml/sgml-docbook-3.1.cat:/etc/sgml/sgml-ent.cat</value>
     <value type="QString" >SHELL=/bin/bash</value>
     <value type="QString" >SHLVL=1</value>
@@ -215,7 +215,7 @@
     <value type="QString" >XCURSOR_THEME=Oxygen_Black</value>
     <value type="QString" >XDG_CONFIG_DIRS=/etc/xdg</value>
     <value type="QString" 
>XDG_DATA_DIRS=/usr/share:/usr/local/share:/usr/share</value>
-    <value type="QString" 
>XDG_SESSION_COOKIE=d9adc4154425c11fe992e29e4870ae75-1265958879.158627-1510381767</value>
+    <value type="QString" 
>XDG_SESSION_COOKIE=d9adc4154425c11fe992e29e4870ae75-1266773062.893431-986904659</value>
     <value type="QString" >XDM_MANAGED=method=classic</value>
     <value type="QString" >_=/usr/bin/kdeinit4</value>
    </valuelist>
@@ -225,7 +225,7 @@
    </valuelist>
    <value key="abstractProcess.command" type="QString" >/usr/bin/make</value>
    <value key="abstractProcess.enabled" type="bool" >true</value>
-   <value key="abstractProcess.workingDirectory" type="QString" 
>/home/keruom/elvys/branches/client/pdf-presentation-branch/elvys-client</value>
+   <value key="abstractProcess.workingDirectory" type="QString" 
>/home/keruom/elvys/trunk/client/elvys-client</value>
   </valuemap>
  </data>
  <data>
@@ -263,7 +263,6 @@
     <value type="QString" >KDE_SESSION_VERSION=4</value>
     <value type="QString" >LADSPA_PATH=/usr/lib/ladspa</value>
     <value type="QString" >LANG=en_US.UTF-8</value>
-    <value type="QString" >LANGUAGE=</value>
     <value type="QString" >LC_CTYPE=en_US.UTF-8</value>
     <value type="QString" >LESS=-R -M --shift 5</value>
     <value type="QString" >LESSOPEN=|lesspipe.sh %s</value>
@@ -300,7 +299,7 @@
    </valuelist>
    <value key="abstractProcess.command" type="QString" >/usr/bin/make</value>
    <value key="abstractProcess.enabled" type="bool" >true</value>
-   <value key="abstractProcess.workingDirectory" type="QString" 
>/home/keruom/elvys/branches/client/pdf-presentation-branch/elvys-client</value>
+   <value key="abstractProcess.workingDirectory" type="QString" 
>/home/keruom/elvys/trunk/client/elvys-client</value>
    <value key="cleanConfig" type="bool" >true</value>
    <valuelist key="makeargs" type="QVariantList" >
     <value type="QString" >clean</value>

Modified: trunk/client/elvys-client/src/elvys.cpp
===================================================================
--- trunk/client/elvys-client/src/elvys.cpp     2010-02-24 01:45:49 UTC (rev 
1840)
+++ trunk/client/elvys-client/src/elvys.cpp     2010-02-24 09:19:52 UTC (rev 
1841)
@@ -7,17 +7,37 @@
 #include "serialcontrols.h"
 #include "categorymanager.h"
 
-Elvys::~Elvys() {
-       //give documents some time to exit properly - to emit statistics 
related signals correctly
+Elvys::~Elvys() {      
+       cleanUpBeforeExit();
+}
 
-       delete catManager;
-       delete appMaint;
-       delete screenS;
-       sleep(1);
-       timer->stop();
-       delete timer;
-       delete deleter;
-       delete timeStamper;
+
+void Elvys::cleanUpBeforeExit() {
+       if ( catManager != NULL) {
+               delete catManager;
+               catManager = NULL;
+       }
+       if ( appMaint != NULL ) {
+               delete appMaint;
+               appMaint = NULL;
+       }
+       if (screenS != NULL) {
+               delete screenS;
+               screenS = NULL;
+       }
+       if (timer != NULL) {
+               timer->stop();
+               delete timer;
+               timer = NULL;
+       }
+       if (deleter != NULL) {
+               delete deleter;
+               deleter = NULL;
+       }
+       if (timeStamper != NULL) {
+               delete timeStamper;
+               timeStamper=NULL;
+       }
 }
 
 void Elvys::checkAvailableSpace() {
@@ -30,7 +50,7 @@
 }
 
 
-Elvys::Elvys() {
+Elvys::Elvys() {       
        //qDebug() << "Creating elvys class...";
        layout = new QVBoxLayout();
 
@@ -91,7 +111,8 @@
        switch( event->key()) {
                case Qt::Key_Q:
                        qDebug() << "Quit requested, closing";
-                       QApplication::exit();
+                       cleanUpBeforeExit();
+                       
QCoreApplication::postEvent(QCoreApplication::instance(), new QCloseEvent());   
                
                        break;
                default:
                        event->ignore();

Modified: trunk/client/elvys-client/src/elvys.h
===================================================================
--- trunk/client/elvys-client/src/elvys.h       2010-02-24 01:45:49 UTC (rev 
1840)
+++ trunk/client/elvys-client/src/elvys.h       2010-02-24 09:19:52 UTC (rev 
1841)
@@ -28,9 +28,11 @@
 
        public slots:
                void checkAvailableSpace();
+               void cleanUpBeforeExit();
 
        protected:
                void keyPressEvent ( QKeyEvent * event );
+
        private:        
                AppMaintainer * appMaint;
                CategoryManager * catManager;

Modified: trunk/client/elvys-client/src/main.cpp
===================================================================
--- trunk/client/elvys-client/src/main.cpp      2010-02-24 01:45:49 UTC (rev 
1840)
+++ trunk/client/elvys-client/src/main.cpp      2010-02-24 09:19:52 UTC (rev 
1841)
@@ -5,13 +5,11 @@
 #include <QString>
 #include <QObject>
 #include <QList>
-#include <QtGui/QMainWindow>
 #include <QPainter>
 #include <QTimer>
 #include <QPushButton>
 #include <QStyleFactory>
 #include <QPlastiqueStyle>
-#include <QPrintDialog>
 #include <QObject>
 #include <XpdfRasterizer.h>
 #include <iostream>
@@ -56,6 +54,8 @@
 
        Elvys elvys;
 
+       QObject::connect(&app, SIGNAL(aboutToQuit()), &elvys, 
SLOT(cleanUpBeforeExit()));
+
        QString style;
        QString fileName =  QCoreApplication::applicationDirPath() + 
"/data/style.css";
        QFile file(fileName);

Modified: trunk/client/elvys-client/src/statisticsdata.cpp
===================================================================
--- trunk/client/elvys-client/src/statisticsdata.cpp    2010-02-24 01:45:49 UTC 
(rev 1840)
+++ trunk/client/elvys-client/src/statisticsdata.cpp    2010-02-24 09:19:52 UTC 
(rev 1841)
@@ -164,6 +164,7 @@
                 } else if (e->subType() == ElvysNs::exhibitStartEvent) {
                         exhibitStartHandler(docId, layoutId, posId, panelId, 
catId);
                 } else if (e->subType() == ElvysNs::exhibitFinishedEvent) {
+                        qDebug() << "finish event";
                         exhibitCompleteHandler(docId, layoutId, posId, 
panelId, catId);
                 }
 


Other related posts:

  • » [elvystrac] r1841 - make sure statistical events are propagated when exiting - elvys