| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | #ifndef DOWNLOADFROMDIVECOMPUTER_H
 | 
					
						
							|  |  |  | #define DOWNLOADFROMDIVECOMPUTER_H
 | 
					
						
							| 
									
										
										
										
											2013-05-20 17:58:06 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | #include <QDialog>
 | 
					
						
							|  |  |  | #include <QThread>
 | 
					
						
							| 
									
										
										
										
											2013-05-20 17:58:06 -03:00
										 |  |  | #include <QHash>
 | 
					
						
							| 
									
										
										
										
											2013-05-20 21:55:56 -07:00
										 |  |  | #include <QMap>
 | 
					
						
							|  |  |  | #include "../libdivecomputer.h"
 | 
					
						
							| 
									
										
										
										
											2013-10-03 11:54:24 -07:00
										 |  |  | #include "ui_downloadfromdivecomputer.h"
 | 
					
						
							| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | class DownloadThread : public QThread{ | 
					
						
							|  |  |  | 	Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2013-09-01 11:14:54 -03:00
										 |  |  | 	DownloadThread(QObject* parent, device_data_t* data); | 
					
						
							| 
									
										
										
										
											2013-05-22 21:25:05 -07:00
										 |  |  | 	virtual void run(); | 
					
						
							| 
									
										
										
										
											2013-09-01 11:14:54 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	QString error; | 
					
						
							| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | private: | 
					
						
							|  |  |  | 	device_data_t *data; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-20 17:58:06 -03:00
										 |  |  | class QStringListModel; | 
					
						
							| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | class DownloadFromDCWidget : public QDialog{ | 
					
						
							|  |  |  | 	Q_OBJECT | 
					
						
							|  |  |  | public: | 
					
						
							| 
									
										
										
										
											2013-05-22 21:25:05 -07:00
										 |  |  | 	explicit DownloadFromDCWidget(QWidget* parent = 0, Qt::WindowFlags f = 0); | 
					
						
							| 
									
										
										
										
											2013-05-30 17:58:59 +09:00
										 |  |  | 	static DownloadFromDCWidget *instance(); | 
					
						
							| 
									
										
										
										
											2013-08-25 10:01:59 -03:00
										 |  |  | 	void reject(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-25 19:02:30 -03:00
										 |  |  | 	enum states { | 
					
						
							|  |  |  | 		INITIAL, | 
					
						
							|  |  |  | 		DOWNLOADING, | 
					
						
							|  |  |  | 		CANCELLING, | 
					
						
							|  |  |  | 		CANCELLED, | 
					
						
							| 
									
										
										
										
											2013-09-01 11:14:54 -03:00
										 |  |  | 		ERROR, | 
					
						
							| 
									
										
										
										
											2013-08-25 19:02:30 -03:00
										 |  |  | 		DONE, | 
					
						
							|  |  |  | 	}; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | public slots: | 
					
						
							|  |  |  | 	void on_ok_clicked(); | 
					
						
							|  |  |  | 	void on_cancel_clicked(); | 
					
						
							| 
									
										
										
										
											2013-05-20 17:58:06 -03:00
										 |  |  | 	void on_vendor_currentIndexChanged(const QString& vendor); | 
					
						
							| 
									
										
										
										
											2013-08-25 10:01:59 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-25 19:02:30 -03:00
										 |  |  | 	void onDownloadThreadFinished(); | 
					
						
							|  |  |  | 	void updateProgressBar(); | 
					
						
							|  |  |  | 	void runDialog(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | private: | 
					
						
							| 
									
										
										
										
											2013-08-25 19:02:30 -03:00
										 |  |  | 	void markChildrenAsDisabled(); | 
					
						
							|  |  |  | 	void markChildrenAsEnabled(); | 
					
						
							| 
									
										
										
										
											2013-08-25 10:01:59 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-03 11:54:25 -07:00
										 |  |  | 	Ui::DownloadFromDiveComputer ui; | 
					
						
							| 
									
										
										
										
											2013-08-25 19:02:30 -03:00
										 |  |  | 	DownloadThread *thread; | 
					
						
							| 
									
										
										
										
											2013-05-20 17:02:17 -03:00
										 |  |  | 	bool downloading; | 
					
						
							| 
									
										
										
										
											2013-05-20 17:58:06 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	QStringList vendorList; | 
					
						
							|  |  |  | 	QHash<QString, QStringList> productList; | 
					
						
							| 
									
										
										
										
											2013-05-20 21:55:56 -07:00
										 |  |  | 	QMap<QString, dc_descriptor_t *> descriptorLookup; | 
					
						
							|  |  |  | 	device_data_t data; | 
					
						
							| 
									
										
										
										
											2013-12-08 06:33:46 +01:00
										 |  |  | 	int previousLast; | 
					
						
							| 
									
										
										
										
											2013-05-20 17:58:06 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	QStringListModel *vendorModel; | 
					
						
							|  |  |  | 	QStringListModel *productModel; | 
					
						
							|  |  |  | 	void fill_computer_list(); | 
					
						
							| 
									
										
										
										
											2013-09-16 18:04:42 -03:00
										 |  |  | 	void fill_device_list(); | 
					
						
							| 
									
										
										
										
											2013-08-25 10:01:59 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-25 19:02:30 -03:00
										 |  |  | 	QTimer *timer; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-30 17:58:59 +09:00
										 |  |  | public: | 
					
						
							|  |  |  | 	bool preferDownloaded(); | 
					
						
							| 
									
										
										
										
											2013-08-25 19:02:30 -03:00
										 |  |  | 	void updateState(states state); | 
					
						
							|  |  |  | 	states currentState; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-20 16:43:33 -03:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-20 21:55:56 -07:00
										 |  |  | #endif
 |