BALL  1.4.1
testFramework.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 
00005 #ifndef BALL_VIEW_WIDGETS_TESTFRAMEWORK_H
00006 #define BALL_VIEW_WIDGETS_TESTFRAMEWORK_H
00007 
00008 #ifndef BALL_VIEW_WIDGETS_DOCKWIDGET_H
00009 # include <BALL/VIEW/WIDGETS/dockWidget.h>
00010 #endif
00011 
00012 #ifndef BALL_SYSTEM_FILE_H
00013 # include <BALL/SYSTEM/file.h>
00014 #endif
00015 
00016 #ifndef BALL_SYSTEM_TIMER_H
00017 # include <BALL/SYSTEM/timer.h>
00018 #endif
00019 
00020 #include <QtCore/QThread>
00021 
00022 class QAction;
00023 
00024 namespace BALL
00025 {
00026   namespace VIEW
00027   {
00058     class BALL_VIEW_EXPORT TestFramework
00059       : public QWidget,
00060         public ModularWidget
00061     {
00062       Q_OBJECT
00063 
00064       class MyMouseEvent
00065         : public QMouseEvent
00066       {
00067         public:
00068 
00069           MyMouseEvent(Type type, const QPoint & position, Qt::MouseButton button, 
00070                        Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers)
00071             : QMouseEvent(type, position, button, buttons, modifiers) {}
00072       };
00073 
00074       class MyEventThread
00075         : public QThread
00076       {
00077         public:
00078 
00079           MyEventThread();
00080 
00081           virtual void run();
00082 
00083           TestFramework* tf;
00084           MainControl* mc;
00085       };
00086 
00087       friend class MyEventThread;
00088 
00089       public:
00090 
00091       BALL_EMBEDDABLE(TestFramework,DockWidget)
00092     
00093       
00094       TestFramework(QWidget *parent = 0, const char *name = 0);
00095 
00097       virtual ~TestFramework();
00098 
00099       //
00100       virtual void initializeWidget(MainControl& main_control);
00101 
00103       void setFilename(const String& filename);
00104       
00106       void checkMenu(MainControl& main_control);
00107 
00109       virtual bool canHandle(const String& fileformat) const;
00110 
00112       virtual bool openFile(const String& filename);
00113 
00114       public slots:
00115 
00117       void startTest();
00118 
00120       void stopTest();
00121 
00123       void runTest();
00124 
00126       void abortTest();
00127 
00129       void saveFile();
00130 
00132       void loadFile();
00133 
00135       virtual bool eventFilter(QObject*, QEvent* e);
00136 
00138       virtual void timeOut();
00139 
00141       void switchRecordMove();
00142       
00143       protected:
00144 
00145       virtual bool event(QEvent* e);
00146     
00147       void storeEvent(QEvent& e);
00148 
00149       void processEvent_();
00150 
00151       QAction* start_recording, *stop_recording, *run_test, *abort_test, 
00152                *save_file, *load_file, *switch_move;
00153       QAction* action_;
00154 
00155       File        outfile_;
00156       File        infile_;
00157       String      filename_;
00158       Timer       timer_, runtime_;
00159       list<String>lines_;
00160       QWidget*    widget_, *last_widget_;
00161       float       time_;
00162       bool        event_busy_;
00163       Index       x_, y_;
00164       int         modifiers_, type_, our_type_, button_, buttons_;
00165       bool        test_running_, recording_;
00166       String      last_event_string_, last_names_, shortcut_;
00167       String      python_line_;
00168       String      expected_result_;
00169       MyEventThread thread_;
00170       Size        errors_;
00171       QEvent*     last_event_;
00172       bool        is_command_line_;
00173       float       max_run_time_;
00174       Position    line_nr_;
00175     };
00176     
00177 } } // namespaces
00178 
00179 #endif // BALL_VIEW_WIDGETS_TESTFRAMEWORK_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines