Updraft
1.0
Open source glider flight visualisation tool.
|
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