QXRD  0.11.16
qxrdapplication.h
Go to the documentation of this file.
1 #ifndef QXRDAPPLICATION_H
2 #define QXRDAPPLICATION_H
3 
4 #include "qcepmacros.h"
5 #include "qcepproperty.h"
6 
7 #include "qcepapplication.h"
8 #include <QSettings>
9 #include "qxrdresponsetimer.h"
11 #include "qcepallocator-ptr.h"
12 #include "qxrdexperiment.h"
13 #include "qxrdexperiment-ptr.h"
14 #include "qxrdexperimentthread.h"
16 #include "qxrdwelcomewindow-ptr.h"
19 #include "qcepsettingssaver.h"
20 #include "qxrdsplashscreen-ptr.h"
21 #include "qcepdataobject-ptr.h"
22 
23 #ifdef HAVE_PERKIN_ELMER
25 #endif
26 
28 {
29  Q_OBJECT
30 
31 public:
32  QxrdApplication(int &argc, char **argv);
33  virtual ~QxrdApplication();
34 
35  bool init(QxrdApplicationWPtr app, int &argc, char **argv);
36 
38 
39 #ifdef HAVE_PERKIN_ELMER
40  QxrdPerkinElmerPluginInterfacePtr perkinElmerPlugin();
41 #endif
42 
44 
45  void loadPlugins();
46 
47  void tiffWarning(const char* module, const char *msg);
48  void tiffError(const char* module, const char *msg);
49 
50 // static QxrdApplicationPtr application();
51 
52  bool event(QEvent *ev);
53 
54  QStringList makeStringListFromArgs(int argc, char **argv);
55 
56 // QWidget* window();
57 
58  void readDefaultSettings();
59  void writeDefaultSettings();
60  void appendRecentExperiment(QString path);
61 
62  QString normalizeExperimentName(QString filename);
63  void setNewExperimentSettings(QSettings &settings, int type, QString filename);
64 
65 public slots:
66  void finish();
67 
68  void chooseNewExperiment();
70  void openRecentExperiment(QString path);
71 
72  void activateExperiment(QString path);
73  void openExperiment(QString path);
75 
78  QList<QxrdExperimentWPtr> &experiments();
79 
81 
82  void openWelcomeWindow();
83  void closeWelcomeWindow();
84 
85  void doAboutQxrd();
86  void doOpenQXRDWebPage();
87  void doOpenURL(QString url);
88 
89  void possiblyQuit();
90  void editGlobalPreferences();
91  void debugChanged(qint64 newValue);
92 
93  void readSettings();
94  void writeSettings();
95  void readSettings(QSettings *settings, QString section);
96  void writeSettings(QSettings *settings, QString section);
97 
98  void doSavePreferences();
99  void doLoadPreferences();
100 
101  void loadPreferences(QString path);
102  void savePreferences(QString path);
103 
104  void splashMessage(QString msg);
105  void logMessage(QString msg);
106  void warningMessage(QString msg, QDateTime ts=QDateTime::currentDateTime());
107  void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime());
108  void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime());
109  void criticalMessage(QString msg, QDateTime ts=QDateTime::currentDateTime());
110 
111  void processEventCounter();
112 
113  QString homePath();
114  QString currentPath();
115  QString rootPath();
116 
117  void lockerTimerElapsed();
118 
119  virtual void setDefaultObjectData(QcepDataObject *obj);
120 
121 public:
122  bool wantToQuit();
123 
124  void incLockerCount();
125 
126 private slots:
127  void hideSplash();
128 
129 private:
130 
131  void setupTiffHandlers();
132 
133 private:
136 
137 public:
138  Q_PROPERTY(QStringList recentExperiments READ get_RecentExperiments WRITE set_RecentExperiments)
139  QCEP_STRING_LIST_PROPERTY(RecentExperiments)
140 
141  Q_PROPERTY(int recentExperimentsSize READ get_RecentExperimentsSize WRITE set_RecentExperimentsSize)
142  QCEP_INTEGER_PROPERTY(RecentExperimentsSize)
143 
144  Q_PROPERTY(QString currentExperiment READ get_CurrentExperiment WRITE set_CurrentExperiment)
145  QCEP_STRING_PROPERTY(CurrentExperiment)
146 
147  Q_PROPERTY(QString currentDirectory READ get_CurrentDirectory WRITE set_CurrentDirectory)
148  QCEP_STRING_PROPERTY(CurrentDirectory)
149 
150 // Q_PROPERTY(bool openDirectly READ get_OpenDirectly WRITE set_OpenDirectly)
151 // QCEP_BOOLEAN_PROPERTY(OpenDirectly)
152 
153  Q_PROPERTY(qint64 debug READ get_Debug WRITE set_Debug)
155 
156  Q_PROPERTY(int freshStart READ get_FreshStart WRITE set_FreshStart STORED false)
157  QCEP_INTEGER_PROPERTY(FreshStart)
158 
159  Q_PROPERTY(int fileBrowserLimit READ get_FileBrowserLimit WRITE set_FileBrowserLimit)
160  QCEP_INTEGER_PROPERTY(FileBrowserLimit)
161 
162  Q_PROPERTY(int messageWindowLines READ get_MessageWindowLines WRITE set_MessageWindowLines)
163  QCEP_INTEGER_PROPERTY(MessageWindowLines)
164 
165  Q_PROPERTY(int updateIntervalMsec READ get_UpdateIntervalMsec WRITE set_UpdateIntervalMsec)
166  QCEP_INTEGER_PROPERTY(UpdateIntervalMsec)
167 
168  Q_PROPERTY(int argc READ get_Argc WRITE set_Argc STORED false)
170 
171  Q_PROPERTY(QStringList argv READ get_Argv WRITE set_Argv STORED false)
173 
174  Q_PROPERTY(int guiWanted READ get_GuiWanted WRITE set_GuiWanted STORED false)
175  QCEP_INTEGER_PROPERTY(GuiWanted)
176 
177  Q_PROPERTY(int startDetectors READ get_StartDetectors WRITE set_StartDetectors STORED false)
178  QCEP_INTEGER_PROPERTY(StartDetectors)
179 
180  Q_PROPERTY(QStringList cmdList READ get_CmdList WRITE set_CmdList STORED false)
182 
183  Q_PROPERTY(QStringList fileList READ get_FileList WRITE set_FileList STORED false)
184  QCEP_STRING_LIST_PROPERTY(FileList)
185 
186  Q_PROPERTY(int lockerCount READ get_LockerCount WRITE set_LockerCount STORED false)
187  QCEP_INTEGER_PROPERTY(LockerCount)
188 
189  Q_PROPERTY(double lockerRate READ get_LockerRate WRITE set_LockerRate STORED false)
190  QCEP_DOUBLE_PROPERTY(LockerRate)
191 
192 private:
196 
199 
204 #ifdef HAVE_PERKIN_ELMER
205  QxrdPerkinElmerPluginInterfacePtr m_PerkinElmerPluginInterface;
206 #endif
208 
210 
214 };
215 
216 #endif
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
void tiffError(const char *module, const char *msg)
QcepAllocatorWPtr m_Allocator
QStringList cmdList
virtual ~QxrdApplication()
void appendRecentExperiment(QString path)
QxrdApplication(int &argc, char **argv)
void activateExperiment(QString path)
QString currentDirectory
QxrdExperimentPtr experiment(int i)
bool init(QxrdApplicationWPtr app, int &argc, char **argv)
void doOpenURL(QString url)
#define QCEP_DOUBLE_PROPERTY(propname)
Definition: qcepproperty.h:629
void savePreferences(QString path)
void chooseExistingExperiment()
QList< QxrdExperimentWPtr > m_Experiments
bool event(QEvent *ev)
QString currentExperiment
QSharedPointer< QxrdPerkinElmerPluginInterface > QxrdPerkinElmerPluginInterfacePtr
void debugChanged(qint64 newValue)
QList< QxrdExperimentWPtr > & experiments()
QxrdResponseTimer * m_ResponseTimer
QxrdApplicationWPtr m_Application
QStringList argv
QStringList makeStringListFromArgs(int argc, char **argv)
void openedExperiment(QxrdExperimentThreadPtr expthrdw)
void logMessage(QString msg)
QWeakPointer< QxrdApplication > QxrdApplicationWPtr
void tiffWarning(const char *module, const char *msg)
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
void openRecentExperiment(QString path)
#define QCEP_STRING_LIST_PROPERTY(propname)
Definition: qcepproperty.h:941
QxrdWelcomeWindowPtr m_WelcomeWindow
QcepObjectNamer m_ObjectNamer
QSharedPointer< QcepAllocatorThread > QcepAllocatorThreadPtr
QStringList recentExperiments
QSharedPointer< QxrdExperimentThread > QxrdExperimentThreadPtr
QxrdNIDAQPluginInterfacePtr nidaqPlugin()
QcepAllocatorThreadPtr m_AllocatorThread
#define QCEP_INTEGER_PROPERTY(propname)
Definition: qcepproperty.h:698
QString normalizeExperimentName(QString filename)
void warningMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
void splashMessage(QString msg)
void setNewExperimentSettings(QSettings &settings, int type, QString filename)
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
#define QCEP_STRING_PROPERTY(propname)
Definition: qcepproperty.h:664
void loadPreferences(QString path)
QWeakPointer< QcepAllocator > QcepAllocatorWPtr
QSharedPointer< QcepSettingsSaver > QcepSettingsSaverPtr
QSharedPointer< QxrdNIDAQPluginInterface > QxrdNIDAQPluginInterfacePtr
#define QCEP_INTEGER64_PROPERTY(propname)
void statusMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
virtual void setDefaultObjectData(QcepDataObject *obj)
void closedExperiment(QxrdExperimentThreadPtr expthrdw)
void criticalMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
QList< QxrdExperimentThreadPtr > m_ExperimentThreads
QSharedPointer< QxrdSplashScreen > QxrdSplashScreenPtr
QStringList fileList
QcepAllocatorWPtr allocator() const
QxrdNIDAQPluginInterfacePtr m_NIDAQPluginInterface
void closeExperiment(QxrdExperimentWPtr exp)
void openExperiment(QString path)
QxrdSplashScreenPtr m_Splash
QcepSettingsSaverPtr m_Saver