MainWindow.qt.H
00001 #ifndef MAINWINDOW_H
00002 #define MAINWINDOW_H
00003
00004 #include <Qt/qapplication.h>
00005 #include <QtGui/qgroupbox.h>
00006 #include <QtGui/qgraphicsscene.h>
00007 #include <QtGui/qgraphicsview.h>
00008 #include <QtGui/qtableview.h>
00009 #include <QtGui/qslider.h>
00010 #include <QtGui/qboxlayout.h>
00011 #include <QtGui/qmainwindow.h>
00012 #include <QtGui/qpushbutton.h>
00013 #include <QtGui/qmenubar.h>
00014 #include <QtGui/qmenu.h>
00015 #include <QtGui/qfiledialog.h>
00016 #include <QtGui/qmessagebox.h>
00017 #include <QtGui/qtoolbar.h>
00018 #include <QtCore/qtimeline.h>
00019
00020
00021 #include "Component/ModelManager.H"
00022 #include "Component/ModelComponent.H"
00023 #include "Media/FrameSeries.H"
00024 #include "Image/Image.H"
00025 #include "Image/PixelsTypes.H"
00026 #include "QtUtil/ImageConvert4.H"
00027 #include "Qt4/ImageGraphicsItem.qt.H"
00028 #include "NeovisionII/NeoAnnotate/CachedFrameLoader.H"
00029 #include "NeovisionII/NeoAnnotate/MainDisplay.qt.H"
00030 #include "NeovisionII/NeoAnnotate/AnnotationObjectManager.qt.H"
00031 #include "NeovisionII/NeoAnnotate/DBManager.qt.H"
00032 #include "NeovisionII/NeoAnnotate/PreferencesDialog.qt.H"
00033
00034 class MainWindow : public QMainWindow
00035 {
00036 Q_OBJECT
00037
00038 public:
00039
00040 MainWindow();
00041
00042
00043
00044
00045
00046 void buildWindow();
00047
00048 bool eventFilter(QObject * watched, QEvent * event);
00049
00050 void setDBStatusLabel(QString text);
00051 void setAnnotatorLabel(QString text);
00052 FrameRange getFrameRange() { return itsCachedFrameLoader->getFrameRange(); }
00053 MainDisplay* getMainDisplay() { return itsMainDisplay; }
00054 QTimeLine* getTimeline() { return itsTimeline; }
00055
00056 public slots:
00057
00058 void updateFrame(int frameNum);
00059
00060
00061 void addObject();
00062
00063 void playPushed();
00064
00065 void changeTime(int frameNum);
00066
00067 void animationViewPopup(const QPoint & pos);
00068
00069 void animationFrameSelected(const QModelIndex &);
00070
00071
00072
00073
00074
00075
00076
00077
00078 void openVideo();
00079
00080 void openVideo(QString fileName);
00081
00082
00083 void sliderPressed();
00084
00085
00086 void sliderReleased();
00087
00088 void saveAnnotationToDB();
00089
00090 void openAnnotationFromDB();
00091
00092 void createDBEntry();
00093
00094 QString getFileName() { return itsFileName; }
00095
00096 AnnotationObjectManager* getObjectManager() { return itsObjectManager; }
00097
00098 void openPrefsDialog();
00099
00100 signals:
00101
00102 void pausePlayback(bool);
00103
00104 void frameIndexChanged(int);
00105
00106 private:
00107
00108
00109 void saveAnnotationToXML(QString directoryName, std::map<int, std::map<int, AnnotationObjectFrame > > animation);
00110
00111
00112 void loadAnnotationFromXML(QString Directory);
00113 */
00114
00115
00116 void createMenuBar();
00117
00118
00119 void createTimeline();
00120
00121
00122
00123
00124 void createToolbar();
00125
00126
00127 QGroupBox* createTransport();
00128
00129
00130 QWidget* createObjectList();
00131
00132 QTableView* createAnimationControls();
00133
00134
00135 QTimeLine *itsTimeline;
00136
00137
00138 QSlider *itsProgressBar;
00139
00140
00141 QLabel *itsFrameLabel;
00142
00143 QPushButton *itsPlayButton;
00144
00145 QTableView *itsAnimationView;
00146
00147
00148 MainDisplay *itsMainDisplay;
00149
00150
00151 AnnotationObjectManager *itsObjectManager;
00152
00153 DBManager itsDBManager;
00154
00155
00156 nub::ref<CachedFrameLoader> itsCachedFrameLoader;
00157
00158
00159 float itsFramerate;
00160
00161
00162 int itsCurrentFrame;
00163
00164 bool timelineWasRunning;
00165
00166 QString itsFileName;
00167
00168 QLabel itsDBStatusLabel;
00169 QLabel itsAnnotatorLabel;
00170
00171 PreferencesDialog itsPrefsDialog;
00172 QSettings *itsSettings;
00173 };
00174
00175 #endif //MAINWINDOW_H
00176