]> rtime.felk.cvut.cz Git - eurobot/public.git/commitdiff
robomon2: close and delete correctly all ORTE stuffs.
authorTran Duy Khanh <trandk1@fel.cvut.cz>
Sat, 26 Apr 2008 20:41:02 +0000 (22:41 +0200)
committerTran Duy Khanh <trandk1@fel.cvut.cz>
Sat, 26 Apr 2008 20:41:02 +0000 (22:41 +0200)
src/robomon/src2/RobomonExplorer.cpp
src/robomon/src2/RobomonExplorer.h
src/robomon/src2/RobomonRecycling.cpp
src/robomon/src2/RobomonRecycling.h
src/robomon/src2/RobomonTuning.cpp
src/robomon/src2/RobomonTuning.h
src/robomon/src2/SimMcl.cpp
src/robomon/src2/SimMcl.h

index 01f89cf48330040f63c0c1953aea6f6f39d7576a..a44e992aa4e6c2205d88504ff6f55c1ebc4fec58 100644 (file)
@@ -875,7 +875,9 @@ bool RobomonExplorer::event(QEvent *event)
                        emit powerVoltageReceivedSignal();
                        break;
                default:
-                       if (event->type() == QEvent::KeyPress)
+                       if (event->type() == QEvent::Close)
+                               closeEvent((QCloseEvent *)event);
+                       else if (event->type() == QEvent::KeyPress)
                                keyPressEvent((QKeyEvent *)event);
                        else if (event->type() == QEvent::KeyRelease)
                                keyReleaseEvent((QKeyEvent *)event);
@@ -997,6 +999,12 @@ void RobomonExplorer::keyReleaseEvent(QKeyEvent *event)
        event->accept();
 }
 
+void RobomonExplorer::closeEvent(QCloseEvent *event)
+{
+       generic_roboorte_destroy(&orte_generic);
+       eb2008_roboorte_destroy(&orte_eb2008);
+}
+
 /**********************************************************************
  * ORTE
  **********************************************************************/
index 2d63946fea8fbcdf7165788c27c9f17b201c4973..484c2c9cae05bae237489faaf411f757aaa91ef1 100644 (file)
@@ -55,6 +55,7 @@ protected:
        bool event(QEvent *event);
        void keyPressEvent(QKeyEvent *event);
        void keyReleaseEvent(QKeyEvent *event);
+       void closeEvent(QCloseEvent *event);
 
 signals:
        void motionStatusReceivedSignal();
index 1e38e60c684c539aba5c55b6ba106b264a4d75a9..25a3524d8a373446a937f1acf61153111f0c2eca 100644 (file)
@@ -800,7 +800,9 @@ bool RobomonRecycling::event(QEvent *event)
                        emit accumulatorReceivedSignal();
                        break;
                default:
-                       if (event->type() == QEvent::KeyPress)
+                       if (event->type() == QEvent::Close)
+                               closeEvent((QCloseEvent *)event);
+                       else if (event->type() == QEvent::KeyPress)
                                keyPressEvent((QKeyEvent *)event);
                        else if (event->type() == QEvent::KeyRelease)
                                keyReleaseEvent((QKeyEvent *)event);
@@ -938,6 +940,12 @@ void RobomonRecycling::keyReleaseEvent(QKeyEvent *event)
        event->accept();
 }
 
+void RobomonRecycling::closeEvent(QCloseEvent *event)
+{
+       generic_roboorte_destroy(&orte_generic);
+       eb2007_roboorte_destroy(&orte_eb2007);
+}
+
 /**********************************************************************
  * ORTE
  **********************************************************************/
@@ -950,7 +958,6 @@ void RobomonRecycling::createOrte()
        generic_roboorte_init(&orte_generic);
        eb2007_roboorte_init(&orte_eb2007);
 
-
        generic_publisher_motion_speed_create(&orte_generic, NULL, NULL);
        generic_publisher_joy_data_create(&orte_generic, NULL, NULL);
 
index 0ca9e1e25483e069ad2e4e378030fd86d2b1a987..54612834ee4105b976db01f537c2a63fe7799d6d 100644 (file)
@@ -56,6 +56,7 @@ protected:
        bool event(QEvent *event);
        void keyPressEvent(QKeyEvent *event);
        void keyReleaseEvent(QKeyEvent *event);
+       void closeEvent(QCloseEvent *event);
 
 signals:
        void motionStatusReceivedSignal();
index 853c25b6cc41bd3149402a2675a754d7fd6e499c..f593204ecd0397b5385edf4ac2bc882154ad8603 100644 (file)
@@ -307,7 +307,9 @@ bool RobomonTuning::event(QEvent *event)
                case QEVENT(QEV_POWER_VOLTAGE):
                        break;
                default:
-                       if (event->type() == QEvent::KeyPress)
+                       if (event->type() == QEvent::Close)
+                               closeEvent((QCloseEvent *)event);
+                       else if (event->type() == QEvent::KeyPress)
                                keyPressEvent((QKeyEvent *)event);
                        else if (event->type() == QEvent::KeyRelease)
                                keyReleaseEvent((QKeyEvent *)event);
@@ -429,6 +431,12 @@ void RobomonTuning::keyReleaseEvent(QKeyEvent *event)
        event->accept();
 }
 
+void RobomonTuning::closeEvent(QCloseEvent *event)
+{
+       generic_roboorte_destroy(&orte_generic);
+       eb2008_roboorte_destroy(&orte_eb2008);
+}
+
 /**********************************************************************
  * ORTE
  **********************************************************************/
index 8094413e5664cfca9ebf326cf87635e943c150cd..a02749c5cd483a32420ea1dff482d8e74fd2299c 100644 (file)
@@ -50,6 +50,7 @@ protected:
        bool event(QEvent *event);
        void keyPressEvent(QKeyEvent *event);
        void keyReleaseEvent(QKeyEvent *event);
+       void closeEvent(QCloseEvent *event);
 
 signals:
 
index 87572c6cec98aa7531dd125f6ee53edcf411115e..8b98fe8b0818fdc7106c459aa0b25e2d23dc7428 100644 (file)
@@ -729,7 +729,9 @@ bool SimMcl::event(QEvent *event)
                        emit motionIrcReceivedSignal();
                        break;
                default:
-                       if (event->type() == QEvent::KeyPress)
+                       if (event->type() == QEvent::Close)
+                               closeEvent((QCloseEvent *)event);
+                       else if (event->type() == QEvent::KeyPress)
                                keyPressEvent((QKeyEvent *)event);
                        else if (event->type() == QEvent::KeyRelease)
                                keyReleaseEvent((QKeyEvent *)event);
@@ -800,6 +802,12 @@ void SimMcl::keyReleaseEvent(QKeyEvent *event)
        event->accept();
 }
 
+void SimMcl::closeEvent(QCloseEvent *event)
+{
+       generic_roboorte_destroy(&orte_generic);
+       eb2008_roboorte_destroy(&orte_eb2008);
+}
+
 /**********************************************************************
  * ORTE
  **********************************************************************/
index 22935eee3622f59c63233decf43ff649157b6e5a..cdf75b3d7d1f88f8a024d75059217bf158204f71 100644 (file)
@@ -50,6 +50,7 @@ protected:
        bool event(QEvent *event);
        void keyPressEvent(QKeyEvent *event);
        void keyReleaseEvent(QKeyEvent *event);
+       void closeEvent(QCloseEvent *event);
 
 signals:
        void laserDataReceivedSignal();