• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

marble

  • sources
  • kde-4.14
  • kdeedu
  • marble
  • src
  • apps
  • marble-qt
QtMainWindow.h
Go to the documentation of this file.
1 //
2 // This file is part of the Marble Virtual Globe.
3 //
4 // This program is free software licensed under the GNU LGPL. You can
5 // find a copy of this license in LICENSE.txt in the top directory of
6 // the source code.
7 //
8 // Copyright 2006-2010 Torsten Rahn <tackat@kde.org>
9 // Copyright 2007 Inge Wallin <ingwa@kde.org>
10 // Copyright 2010-2013 Bernhard Beschow <bbeschow@cs.tu-berlin.de>
11 //
12 
13 
14 #ifndef MARBLE_MAINWINDOW_H
15 #define MARBLE_MAINWINDOW_H
16 
17 
18 #include <QMainWindow>
19 #include <QDateTime>
20 #include <QVariantMap>
21 #include "ControlView.h"
22 
23 class QActionGroup;
24 class QAction;
25 class QLabel;
26 class QMenu;
27 class QPrinter;
28 class QProgressBar;
29 
30 namespace Marble
31 {
32 
33 class MarbleWidget;
34 class SunControlWidget;
35 class TimeControlWidget;
36 class QtMarbleConfigDialog;
37 class DownloadRegionDialog;
38 class MovieCaptureDialog;
39 
40 class MainWindow : public QMainWindow
41 {
42  Q_OBJECT
43 
44 public:
45  explicit MainWindow(const QString& marbleDataPath = QString(),
46  const QVariantMap& cmdLineSettings = QVariantMap(),
47  QWidget *parent=0);
48  ~MainWindow();
49 
50 
51  ControlView* marbleControl() {
52  return m_controlView;
53  }
54  MarbleWidget* marbleWidget() {
55  return m_controlView->marbleWidget();
56  }
57 
58  void addGeoDataFile( const QString &fileName );
59 
60 protected:
61  void closeEvent(QCloseEvent *event);
62 
63 private:
64  void createActions();
65  void createMenus( const QList<QAction*> &panelActions );
66  void createStatusBar();
67 
68  static QString readMarbleDataPath();
69  void readSettings(const QVariantMap& overrideSettings = QVariantMap());
70  void writeSettings();
71 
72 private Q_SLOTS:
73  void showPosition( const QString& position);
74  void showDistance( const QString& position);
75  void showZoom( int );
76  void showDateTime();
77 
78  void initObject(const QVariantMap& cmdLineSettings);
79  void editSettings();
80  void updateSettings();
81 
82  void fallBackToDefaultTheme();
83 
84  void changeRecordingState();
85 
86  // File Menu
87  void openFile();
88  void openMapDialog();
89  void exportMapScreenShot();
90  void showDownloadRegionDialog();
91  void printMapScreenShot();
92  void workOffline( bool );
93  void showMapWizard();
94 
95  // Edit Menu
96  void copyMap();
97  void copyCoordinates();
98  void updateMapEditButtonVisibility( const QString &mapTheme );
99  void showMovieCaptureDialog();
100  void stopRecording();
101 
102  // View Menu
103  void lockPosition( bool );
104  void createPluginsMenus();
105  void createPluginMenus();
106  void showClouds( bool );
107  void controlSun();
108  void controlTime();
109  void showSun( bool );
110  void reload();
111 
112  // Settings Menu
113  void changeViewSize( QAction* );
114  void showFullScreen( bool );
115  void showStatusBar( bool );
116  void setupStatusBar();
117  void setupDownloadProgressBar();
118 
119  // Help Menu
120  void enterWhatsThis();
121  void aboutMarble();
122  void handbook();
123 
124  //Bookmark Menu
125  void openEditBookmarkDialog();
126  void setHome();
127  void createBookmarksListMenu( QMenu *bookmarksListMenu, const GeoDataContainer *container );
128  void lookAtBookmark( QAction * action );
129  void manageBookmarks();
130  void createBookmarkMenu();
131  void createFolderList( QMenu *bookmarksListMenu, const GeoDataContainer *container );
132  void showBookmarks( bool show );
133 
134  // Download region dialog
135  void downloadRegion();
136 
137  void showZoomLevel( bool show );
138 
139  void handleProgress( int, int );
140  void removeProgressItem();
141 
142 private:
143  ControlView *m_controlView;
144  QSize m_savedSize;
145  SunControlWidget* m_sunControlDialog;
146  TimeControlWidget* m_timeControlDialog;
147  QtMarbleConfigDialog *m_configDialog;
148  DownloadRegionDialog* m_downloadRegionDialog;
149  MovieCaptureDialog* m_movieCaptureDialog;
150 
152  QList<QToolBar*> m_pluginToolbars;
154  QList<QAction*> m_pluginMenus;
155 
156  QMenu *m_fileMenu;
157  QMenu *m_viewMenu;
158  QMenu *m_helpMenu;
159  QMenu *m_settingsMenu;
160  QMenu *m_panelMenu;
161  QMenu *m_viewSizeMenu;
162  QMenu *m_infoBoxesMenu;
163  QMenu *m_onlineServicesMenu;
164  QMenu *m_bookmarkMenu;
165  // File Menu
166  QAction *m_openAction;
167  QAction *m_exportMapAction;
168  QAction *m_downloadAction;
169  QAction *m_downloadRegionAction;
170  QAction *m_printPreviewAction;
171  QAction *m_printAction;
172  QAction *m_workOfflineAction;
173  QAction *m_quitAction;
174  QAction *m_mapWizardAction;
175 
176  // Edit Menu
177  QAction *m_copyMapAction;
178  QAction *m_copyCoordinatesAction;
179  QAction *m_osmEditAction;
180  QAction *m_recordMovieAction;
181  QAction *m_stopRecordingAction;
182 
183  // View Menu
184  QAction *m_showCloudsAction;
185  QAction *m_controlSunAction;
186  QAction *m_controlTimeAction;
187  QAction *m_reloadAction;
188 
189  // Settings Menu
190  QAction *m_fullScreenAction;
191  QAction *m_statusBarAction;
192  QAction *m_configDialogAction;
193  QActionGroup *m_viewSizeActsGroup;
194 
195  // Help Menu
196  QAction *m_whatsThisAction;
197  QAction *m_aboutMarbleAction;
198  QAction *m_aboutQtAction;
199  QAction *m_lockFloatItemsAction;
200  QAction *m_handbookAction;
201 
202  // Status Bar
203  QString m_position;
204  QString m_distance;
205  QString m_zoom;
206  QString m_clock;
207  QLabel *m_positionLabel;
208  QLabel *m_distanceLabel;
209  QLabel *m_zoomLabel;
210  QLabel *m_clockLabel;
211  QProgressBar *m_downloadProgressBar;
212  QAction *m_toggleTileLevelAction;
213  void updateStatusBar();
214 
215  //Bookmark Menu
216  QAction *m_addBookmarkAction;
217  QAction *m_setHomeAction;
218  QAction *m_toggleBookmarkDisplayAction;
219  QAction *m_manageBookmarksAction;
220 
221  QString m_lastFileOpenPath;
222  QStringList m_commandlineFilePaths;
223 };
224 
225 } // namespace Marble
226 
227 #endif
Marble::TimeControlWidget
Definition: TimeControlWidget.h:31
QProgressBar
QWidget
Marble::MainWindow::closeEvent
void closeEvent(QCloseEvent *event)
Definition: MobileMainWindow.cpp:285
QActionGroup
QPrinter
Marble::SunControlWidget
Definition: SunControlWidget.h:31
Marble::GeoDataContainer
A base class that can hold GeoDataFeatures.
Definition: GeoDataContainer.h:47
Marble::QtMarbleConfigDialog
Definition: QtMarbleConfigDialog.h:29
Marble::MainWindow::~MainWindow
~MainWindow()
Definition: KdeMainWindow.cpp:142
Marble::MainWindow::marbleControl
ControlView * marbleControl()
Definition: QtMainWindow.h:51
Marble::MainWindow::MainWindow
MainWindow(const QString &marbleDataPath=QString(), QWidget *parent=0)
Definition: KdeMainWindow.cpp:40
Marble::MarbleWidget
A widget class that displays a view of the earth.
Definition: MarbleWidget.h:104
QCloseEvent
Marble::MovieCaptureDialog
Definition: MovieCaptureDialog.h:27
QMainWindow::event
virtual bool event(QEvent *event)
Marble::MainWindow::marbleWidget
MarbleWidget * marbleWidget()
Definition: QtMainWindow.h:54
QString
QList< QAction * >
QStringList
QMainWindow
QMenu
QSize
Marble::DownloadRegionDialog
Definition: DownloadRegionDialog.h:31
QAction
QWidget::showFullScreen
void showFullScreen()
QWidget::show
void show()
ControlView.h
MarbleWidget
Wraps a Marble::MarbleWidget, providing access to important properties and methods.
Definition: MarbleDeclarativeWidget.h:50
Marble::MainWindow::changeViewSize
void changeViewSize(QAction *)
Definition: KdeMainWindow.cpp:166
Marble::ControlView::marbleWidget
MarbleWidget * marbleWidget()
Definition: ControlView.h:60
QLabel
QObject::parent
QObject * parent() const
Marble::ControlView
Definition: ControlView.h:46
Marble::MainWindow::addGeoDataFile
void addGeoDataFile(const QString &path)
Definition: MobileMainWindow.cpp:197
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:13:41 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

marble

Skip menu "marble"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal