| 
									
										
										
										
											2013-04-13 20:44:02 -07:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * mainwindow.h | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * header file for the main window of Subsurface | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | #ifndef MAINWINDOW_H
 | 
					
						
							|  |  |  | #define MAINWINDOW_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <QMainWindow>
 | 
					
						
							| 
									
										
										
										
											2013-05-12 06:54:34 -07:00
										 |  |  | #include <QAction>
 | 
					
						
							| 
									
										
										
										
											2013-12-05 14:02:25 +02:00
										 |  |  | #include <QUrl>
 | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-03 11:54:24 -07:00
										 |  |  | #include "ui_mainwindow.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-19 00:09:36 -03:00
										 |  |  | struct DiveList; | 
					
						
							| 
									
										
										
										
											2013-04-25 20:44:06 -03:00
										 |  |  | class QSortFilterProxyModel; | 
					
						
							| 
									
										
										
										
											2013-04-12 08:24:07 +01:00
										 |  |  | class DiveTripModel; | 
					
						
							| 
									
										
										
										
											2013-04-09 09:35:44 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | class DiveInfo; | 
					
						
							|  |  |  | class DiveNotes; | 
					
						
							|  |  |  | class Stats; | 
					
						
							|  |  |  | class Equipment; | 
					
						
							| 
									
										
										
										
											2013-05-03 21:49:40 -03:00
										 |  |  | class QItemSelection; | 
					
						
							| 
									
										
										
										
											2013-05-19 00:09:36 -03:00
										 |  |  | class DiveListView; | 
					
						
							|  |  |  | class GlobeGPS; | 
					
						
							|  |  |  | class MainTab; | 
					
						
							|  |  |  | class ProfileGraphicsView; | 
					
						
							| 
									
										
										
										
											2013-08-22 16:20:47 -03:00
										 |  |  | class QWebView; | 
					
						
							| 
									
										
										
										
											2014-03-17 20:55:50 +01:00
										 |  |  | class QSettings; | 
					
						
							| 
									
										
										
										
											2014-04-02 22:41:39 +03:00
										 |  |  | class UpdateManager; | 
					
						
							| 
									
										
										
										
											2014-06-30 17:45:52 -03:00
										 |  |  | class UserManual; | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | enum MainWindowTitleFormat { | 
					
						
							|  |  |  | 	MWTF_DEFAULT, | 
					
						
							|  |  |  | 	MWTF_FILENAME | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2013-06-26 15:13:06 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | class MainWindow : public QMainWindow { | 
					
						
							|  |  |  | 	Q_OBJECT | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | 	enum { | 
					
						
							|  |  |  | 		COLLAPSED, | 
					
						
							|  |  |  | 		EXPANDED | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 	enum InfoWidgetIndexes { | 
					
						
							|  |  |  | 		MAINTAB, | 
					
						
							|  |  |  | 		PLANNERWIDGET | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 	enum CurrentState { | 
					
						
							|  |  |  | 		VIEWALL, | 
					
						
							|  |  |  | 		GLOBE_MAXIMIZED, | 
					
						
							|  |  |  | 		INFO_MAXIMIZED, | 
					
						
							|  |  |  | 		PROFILE_MAXIMIZED, | 
					
						
							|  |  |  | 		LIST_MAXIMIZED | 
					
						
							|  |  |  | 	}; | 
					
						
							| 
									
										
										
										
											2013-06-12 15:54:55 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | 	MainWindow(); | 
					
						
							| 
									
										
										
										
											2014-02-12 15:22:54 +01:00
										 |  |  | 	virtual ~MainWindow(); | 
					
						
							|  |  |  | 	static MainWindow *instance(); | 
					
						
							| 
									
										
										
										
											2013-05-19 00:09:36 -03:00
										 |  |  | 	MainTab *information(); | 
					
						
							| 
									
										
										
										
											2014-02-13 22:48:07 +01:00
										 |  |  | 	void loadRecentFiles(QSettings *s); | 
					
						
							|  |  |  | 	void addRecentFile(const QStringList &newFiles); | 
					
						
							| 
									
										
										
										
											2014-02-28 12:04:00 +03:00
										 |  |  | 	void removeRecentFile(QStringList failedFiles); | 
					
						
							| 
									
										
										
										
											2013-05-19 00:09:36 -03:00
										 |  |  | 	DiveListView *dive_list(); | 
					
						
							|  |  |  | 	GlobeGPS *globe(); | 
					
						
							| 
									
										
										
										
											2013-05-21 23:13:45 -07:00
										 |  |  | 	void showError(QString message); | 
					
						
							| 
									
										
										
										
											2013-06-26 15:13:06 +03:00
										 |  |  | 	void setTitle(enum MainWindowTitleFormat format); | 
					
						
							| 
									
										
										
										
											2013-04-09 09:35:44 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-07-04 12:30:05 -03:00
										 |  |  | 	// The 'Change DC Shortcuts' should only be enabled
 | 
					
						
							|  |  |  | 	// when the profile's visible.
 | 
					
						
							|  |  |  | 	void disableDcShortcuts(); | 
					
						
							|  |  |  | 	void enableDcShortcuts(); | 
					
						
							| 
									
										
										
										
											2013-09-09 05:59:03 -03:00
										 |  |  | 	void loadFiles(const QStringList files); | 
					
						
							|  |  |  | 	void importFiles(const QStringList importFiles); | 
					
						
							| 
									
										
										
										
											2014-05-28 09:55:46 +03:00
										 |  |  | 	void importTxtFiles(const QStringList fileNames); | 
					
						
							| 
									
										
										
										
											2013-09-22 22:24:28 -07:00
										 |  |  | 	void cleanUpEmpty(); | 
					
						
							| 
									
										
										
										
											2014-03-11 18:30:58 +02:00
										 |  |  | 	void setToolButtonsEnabled(bool enabled); | 
					
						
							| 
									
										
										
										
											2014-03-07 12:42:13 -03:00
										 |  |  | 	ProfileWidget2 *graphics() const; | 
					
						
							| 
									
										
										
										
											2014-03-11 18:54:28 -03:00
										 |  |  | 	void setLoadedWithFiles(bool filesFromCommandLine); | 
					
						
							|  |  |  | 	bool filesFromCommandLine() const; | 
					
						
							| 
									
										
										
										
											2014-05-31 21:14:44 -07:00
										 |  |  | 	void setPlanNotes(const char *notes); | 
					
						
							| 
									
										
										
										
											2014-06-03 10:06:18 +02:00
										 |  |  | 	void printPlan(); | 
					
						
							| 
									
										
										
										
											2014-06-13 10:56:46 -07:00
										 |  |  | 	void checkSurvey(QSettings *s); | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | private | 
					
						
							|  |  |  | slots: | 
					
						
							| 
									
										
										
										
											2013-04-09 17:26:23 +01:00
										 |  |  | 	/* file menu action */ | 
					
						
							| 
									
										
										
										
											2014-02-13 22:48:07 +01:00
										 |  |  | 	void recentFileTriggered(bool checked); | 
					
						
							| 
									
										
										
										
											2013-04-09 09:35:44 +01:00
										 |  |  | 	void on_actionNew_triggered(); | 
					
						
							| 
									
										
										
										
											2013-04-09 17:26:23 +01:00
										 |  |  | 	void on_actionOpen_triggered(); | 
					
						
							|  |  |  | 	void on_actionSave_triggered(); | 
					
						
							|  |  |  | 	void on_actionSaveAs_triggered(); | 
					
						
							|  |  |  | 	void on_actionClose_triggered(); | 
					
						
							|  |  |  | 	void on_actionPrint_triggered(); | 
					
						
							|  |  |  | 	void on_actionPreferences_triggered(); | 
					
						
							|  |  |  | 	void on_actionQuit_triggered(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* log menu actions */ | 
					
						
							|  |  |  | 	void on_actionDownloadDC_triggered(); | 
					
						
							|  |  |  | 	void on_actionDownloadWeb_triggered(); | 
					
						
							| 
									
										
										
										
											2013-10-24 23:02:59 -02:00
										 |  |  | 	void on_actionDivelogs_de_triggered(); | 
					
						
							| 
									
										
										
										
											2013-04-09 17:26:23 +01:00
										 |  |  | 	void on_actionEditDeviceNames_triggered(); | 
					
						
							|  |  |  | 	void on_actionAddDive_triggered(); | 
					
						
							|  |  |  | 	void on_actionRenumber_triggered(); | 
					
						
							|  |  |  | 	void on_actionAutoGroup_triggered(); | 
					
						
							|  |  |  | 	void on_actionYearlyStatistics_triggered(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* view menu actions */ | 
					
						
							|  |  |  | 	void on_actionViewList_triggered(); | 
					
						
							|  |  |  | 	void on_actionViewProfile_triggered(); | 
					
						
							|  |  |  | 	void on_actionViewInfo_triggered(); | 
					
						
							| 
									
										
										
										
											2013-06-12 15:54:55 -03:00
										 |  |  | 	void on_actionViewGlobe_triggered(); | 
					
						
							| 
									
										
										
										
											2013-04-09 17:26:23 +01:00
										 |  |  | 	void on_actionViewAll_triggered(); | 
					
						
							|  |  |  | 	void on_actionPreviousDC_triggered(); | 
					
						
							|  |  |  | 	void on_actionNextDC_triggered(); | 
					
						
							| 
									
										
										
										
											2014-01-14 18:36:07 +01:00
										 |  |  | 	void on_actionFullScreen_triggered(bool checked); | 
					
						
							| 
									
										
										
										
											2013-04-09 17:26:23 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	/* other menu actions */ | 
					
						
							|  |  |  | 	void on_actionAboutSubsurface_triggered(); | 
					
						
							|  |  |  | 	void on_actionUserManual_triggered(); | 
					
						
							| 
									
										
										
										
											2013-06-20 18:48:21 -03:00
										 |  |  | 	void on_actionDivePlanner_triggered(); | 
					
						
							| 
									
										
										
										
											2014-08-19 15:03:53 -05:00
										 |  |  | 	void on_actionReplanDive_triggered(); | 
					
						
							| 
									
										
										
										
											2014-04-02 22:41:39 +03:00
										 |  |  | 	void on_action_Check_for_Updates_triggered(); | 
					
						
							| 
									
										
										
										
											2013-04-09 09:35:44 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-14 08:18:26 -03:00
										 |  |  | 	void current_dive_changed(int divenr); | 
					
						
							| 
									
										
										
										
											2013-06-04 21:40:09 +09:00
										 |  |  | 	void initialUiSetup(); | 
					
						
							| 
									
										
										
										
											2013-05-14 08:18:26 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-12-29 18:11:20 +02:00
										 |  |  | 	void on_actionImportDiveLog_triggered(); | 
					
						
							| 
									
										
										
										
											2013-10-16 22:05:19 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-06 11:38:28 -02:00
										 |  |  | 	/* TODO: Move those slots below to it's own class */ | 
					
						
							| 
									
										
										
										
											2014-08-22 22:26:07 -03:00
										 |  |  | 	void on_profCalcAllTissues_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profCalcCeiling_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profDcCeiling_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profEad_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profIncrement3m_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profMod_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profNdl_tts_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profPO2_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profPhe_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profPn2_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profHR_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profRuler_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profSAC_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profScaled_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profTogglePicture_triggered(bool triggered); | 
					
						
							|  |  |  | 	void on_profTankbar_triggered(bool triggered); | 
					
						
							| 
									
										
										
										
											2014-09-15 14:09:00 +02:00
										 |  |  | 	void on_profTissues_triggered(bool triggered); | 
					
						
							| 
									
										
										
										
											2014-05-20 19:33:32 +03:00
										 |  |  | 	void on_actionExport_triggered(); | 
					
						
							| 
									
										
										
										
											2014-08-16 09:32:23 -06:00
										 |  |  | 	void on_copy_triggered(); | 
					
						
							|  |  |  | 	void on_paste_triggered(); | 
					
						
							| 
									
										
										
										
											2014-09-17 14:50:41 -03:00
										 |  |  | 	void on_actionFilterTags_triggered(); | 
					
						
							| 
									
										
										
										
											2014-05-29 18:54:19 +03:00
										 |  |  | 	void on_actionConfigure_Dive_Computer_triggered(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-27 10:09:57 +01:00
										 |  |  | protected: | 
					
						
							|  |  |  | 	void closeEvent(QCloseEvent *); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | public | 
					
						
							|  |  |  | slots: | 
					
						
							| 
									
										
										
										
											2014-06-04 13:41:50 -07:00
										 |  |  | 	void turnOffNdlTts(); | 
					
						
							| 
									
										
										
										
											2013-05-26 11:33:45 -07:00
										 |  |  | 	void readSettings(); | 
					
						
							| 
									
										
										
										
											2014-05-18 19:08:58 +09:00
										 |  |  | 	void refreshDisplay(bool doRecreateDiveList = true); | 
					
						
							|  |  |  | 	void recreateDiveList(); | 
					
						
							| 
									
										
										
										
											2013-06-27 14:48:03 -03:00
										 |  |  | 	void showProfile(); | 
					
						
							| 
									
										
										
										
											2013-11-01 11:48:34 -04:00
										 |  |  | 	void editCurrentDive(); | 
					
						
							| 
									
										
										
										
											2014-05-28 15:43:32 -03:00
										 |  |  | 	void planCanceled(); | 
					
						
							| 
									
										
										
										
											2014-05-28 15:54:04 -03:00
										 |  |  | 	void planCreated(); | 
					
						
							| 
									
										
										
										
											2014-08-04 12:58:21 -03:00
										 |  |  | 	void setEnabledToolbar(bool arg1); | 
					
						
							| 
									
										
										
										
											2013-05-26 11:33:45 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2013-10-03 11:54:25 -07:00
										 |  |  | 	Ui::MainWindow ui; | 
					
						
							| 
									
										
										
										
											2013-05-12 06:54:34 -07:00
										 |  |  | 	QAction *actionNextDive; | 
					
						
							|  |  |  | 	QAction *actionPreviousDive; | 
					
						
							| 
									
										
										
										
											2014-06-30 17:45:52 -03:00
										 |  |  | 	UserManual *helpView; | 
					
						
							| 
									
										
										
										
											2013-11-07 11:37:27 -05:00
										 |  |  | 	CurrentState state; | 
					
						
							| 
									
										
										
										
											2013-04-13 10:17:59 -03:00
										 |  |  | 	QString filter(); | 
					
						
							| 
									
										
										
										
											2014-02-12 15:22:54 +01:00
										 |  |  | 	static MainWindow *m_Instance; | 
					
						
							| 
									
										
										
										
											2013-04-13 10:17:59 -03:00
										 |  |  | 	bool askSaveChanges(); | 
					
						
							| 
									
										
										
										
											2014-06-08 19:46:43 -07:00
										 |  |  | 	bool okToClose(QString message); | 
					
						
							|  |  |  | 	void closeCurrentFile(); | 
					
						
							| 
									
										
										
										
											2013-04-27 10:09:57 +01:00
										 |  |  | 	void writeSettings(); | 
					
						
							| 
									
										
										
										
											2014-03-14 10:19:23 -07:00
										 |  |  | 	int file_save(); | 
					
						
							|  |  |  | 	int file_save_as(); | 
					
						
							| 
									
										
										
										
											2013-11-07 11:37:27 -05:00
										 |  |  | 	void beginChangeState(CurrentState s); | 
					
						
							|  |  |  | 	void saveSplitterSizes(); | 
					
						
							| 
									
										
										
										
											2013-11-14 13:42:26 -02:00
										 |  |  | 	QString lastUsedDir(); | 
					
						
							| 
									
										
										
										
											2014-02-27 20:09:57 -08:00
										 |  |  | 	void updateLastUsedDir(const QString &s); | 
					
						
							| 
									
										
										
										
											2014-03-11 18:54:28 -03:00
										 |  |  | 	bool filesAsArguments; | 
					
						
							| 
									
										
										
										
											2014-04-02 22:41:39 +03:00
										 |  |  | 	UpdateManager *updateManager; | 
					
						
							| 
									
										
										
										
											2014-05-25 15:19:36 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	bool plannerStateClean(); | 
					
						
							| 
									
										
										
										
											2014-07-04 07:14:16 -07:00
										 |  |  | 	void setupForAddAndPlan(const char *model); | 
					
						
							| 
									
										
										
										
											2014-06-13 10:56:46 -07:00
										 |  |  | 	QDialog *survey; | 
					
						
							| 
									
										
										
										
											2014-08-16 09:32:23 -06:00
										 |  |  | 	struct dive copyPasteDive; | 
					
						
							|  |  |  | 	struct dive_components what; | 
					
						
							| 
									
										
										
										
											2014-09-17 15:39:49 -07:00
										 |  |  | 	QList<QAction *> profileToolbarActions; | 
					
						
							| 
									
										
										
										
											2013-04-07 15:20:43 -07:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-02-11 19:14:46 +01:00
										 |  |  | #endif // MAINWINDOW_H
 |