Updraft  1.0
Open source glider flight visualisation tool.
mainwindow.h
Go to the documentation of this file.
00001 #ifndef UPDRAFT_SRC_CORE_UI_MAINWINDOW_H_
00002 #define UPDRAFT_SRC_CORE_UI_MAINWINDOW_H_
00003 
00004 #include <QtGui>
00005 #include <osg/Group>
00006 #include <osgEarth/MapNode>
00007 
00008 #include "../../coreinterface.h"
00009 #include "menu.h"
00010 #include "tab.h"
00011 
00012 
00013 namespace Ui { class MainWindow; }
00014 
00015 namespace Updraft {
00016 
00017 namespace Core {
00018 
00019 class MapLayerGroup;
00020 class MapLayer;
00021 
00023 class MainWindow : public QMainWindow {
00024   Q_OBJECT
00025 
00026  public:
00027   explicit MainWindow(QWidget *parent = 0);
00028   ~MainWindow();
00029 
00030   Menu* getSystemMenu(SystemMenu menu);
00031 
00032   Tab* createTab(QWidget* content, QString title);
00033 
00034   Menu* createMenu(QString title);
00035   void removeMenu(Menu* menu);
00036   void setMapWidget(QWidget *widget);
00037   QWidget* getMapWidget();
00038 
00040   MapLayerGroup* getInvisibleRootMapLayerGroup();
00041 
00043   void registerMapLayer(MapLayerInterface* layer);
00044 
00046   void unregisterMapLayer(MapLayerInterface* layer);
00047 
00048  private slots:
00051   void tabCloseRequested(int index);
00052 
00054   void tabRemoved(QWidget* tab);
00055 
00057   void tabSwitch(int index);
00058 
00060   void openFile();
00061 
00063   void appExit();
00064 
00066   void openUserDoc();
00067 
00069   void showAboutDialog();
00070 
00072   void mapLayerItemChanged(QTreeWidgetItem *item);
00073 
00076   void mapLayerContextMenuRequested(const QPoint& pos);
00077 
00078  protected:
00079   // TODO(cestmir): Just a temporary method to test context menu
00080   void contextMenuEvent(QContextMenuEvent* event);
00081 
00082  private:
00085   void standardMenuItems();
00086 
00087   MapLayerGroup *invisibleRootMapLayerGroup;
00088 
00091   void tabsVisibility();
00092 
00093   Ui::MainWindow *ui;
00094 
00095   Menu* menuFile;
00096   Menu* menuView;
00097   Menu* menuTools;
00098   Menu* menuHelp;
00099 
00100   Menu* menuContext;
00101   Menu* menuMapObject;
00102 
00103   Tab* activeTab;
00104 
00105   QSet<Menu*> customMenus;
00106 
00107   QMap<QTreeWidgetItem*, MapLayerInterface *> mapLayers;
00108 };
00109 
00110 }  // End namespace Core
00111 }  // End namespace Updraft
00112 
00113 #endif  // UPDRAFT_SRC_CORE_UI_MAINWINDOW_H_
00114 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines