blob: e7e6e5751e1ee9d419a9637f3b1fd1b787204f20 (
plain) (
tree)
|
|
#include<QApplication>
#include "../toolbar/toolbar.h"
#include "../util/util.h"
/* define a macro `clientApp` that can be used anywhere in the program and returns a reference to the current ClientApp instance */
#if defined(clientApp)
#undef clientApp
#endif
#define clientApp (static_cast<ClientApp*>(QCoreApplication::instance()))
/* this class is supposed to (after complete refactoring) to encapsulate all
* state of the application. At the moment, the state is distributed within
* several widgets. With this class information access will also be easier as
* it is possible to access the current ClientApp instance from anywhere with
* the clientApp macro (like qApp) macro */
class ClientApp : public QApplication
{
Q_OBJECT
public:
enum ConnectionMode { None, Auto, Session };
private:
ConnectionMode _connectionMode; /* way of automatically connection to a session on startup*/
bool _examMode;
QString _sessionName; /* only set when _connectionMode == Session */
Toolbar* _toolbar;
QStringList _arguments;
QStringList parseParameters();
public:
ClientApp(int& argc, char** argv);
bool isExamMode() const { return _examMode; };
virtual QStringList arguments();
};
|