Revision 1 (by moose, 2006/03/06 10:35:57) Initial Import
#ifndef SciQApp_H_GUARD
#define SciQApp_H_GUARD

#include <QApplication>
#include <QHash>
#include <QList>
#include <QIcon>

#include "SciQSettings.h"
#include "SciQUtil.h"
#include "SciQWorkspace.h"

class QToolBar;

class SciQMWBase;
class SciQDockWindow;
class SciQDockWindowFactory;
class SciQWorkspace;
class SciQSettingsDialog;
class SciQToolBar;
class SciQX11TrayIcon;
class QTcpServer;
class QTcpSocket;

class SciQApp : public QApplication {
	Q_OBJECT

	public:
		~SciQApp();
		SciQMWBase *mainWindow() { return mw; }

		SciQWorkspace *newWorkspace(QString);
		SciQWorkspace *getWorkspace(int i) { return items[i]->asWorkspace(); }


		static SciQApp *getInstance(int argc = 0, char **argv = 0);

//	public slots:
//		bool applySettings();

		SciQSettingsDialog *sd;

		SciQDockWindow *getDockWindowInstance(QString &s, SciQMWBase *mw);
		QList<QString> getDockWindowNames();

		SciQToolBar *getToolBarInstance(QString &s, SciQMWBase *mw);
		QList<QString> getToolBarNames();

		SciQSettings &qSettings() { return qs; }

		static QIcon getIcon(QString);

		static QString getDataPath(QString append = QString());

		static void addResourcePath(QString p);

		static QString getResourcePath(QString p);
		template <typename T>
		static T findResource(QString name) { return T(getResourcePath(name)); }

/** DocTypes ...
	public:
		QList<QString> getMimeTypes();
		QList<QString> getMimeExtensions(QString);
		QString getExtensionType(QString);

		SciQDocumentType *getDocType(QString path);

	private:
		QMultiHash<QString,

*/

	static QString Sequence(QString o);

	public slots:
		void newConnection();
		void connected();

	private:
		SciQApp(int &argc, char **argv);

		QHash<QString, SciQDockWindowFactory *> dockhash;

		static QStringList resourcePath;
		void initResourcePath();

		//
		QList<SciQWorkspaceItem *> items;

		QTcpServer *sess;
		QTcpSocket *sock;
		SciQSettings qs;
		SciQMWBase *mw;
		SciQX11TrayIcon *tray;
		static SciQApp *instance;
		static int _argc;
		static char **_argv;
};

#endif /* SciQApp_H_GUARD */