mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Add infrastructure to emit progress from threads
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									ba525df766
								
							
						
					
					
						commit
						1d67bae745
					
				
					 2 changed files with 23 additions and 0 deletions
				
			
		|  | @ -1393,6 +1393,26 @@ DeviceThread::DeviceThread(QObject *parent, device_data_t *data) : QThread(paren | |||
| { | ||||
| } | ||||
| 
 | ||||
| void DeviceThread::progressCB(int percent) | ||||
| { | ||||
| 	emit progress(percent); | ||||
| } | ||||
| 
 | ||||
| void DeviceThread::event_cb(dc_device_t *device, dc_event_type_t event, const void *data, void *userdata) | ||||
| { | ||||
| 	const dc_event_progress_t *progress = (dc_event_progress_t *) data; | ||||
| 	DeviceThread *dt = static_cast<DeviceThread*>(userdata); | ||||
| 
 | ||||
| 	switch (event) { | ||||
| 	case DC_EVENT_PROGRESS: | ||||
| 		dt->progressCB(100.0 * (double)progress->current / (double)progress->maximum); | ||||
| 		break; | ||||
| 	default: | ||||
| 		emit dt->error("Unexpected event recived"); | ||||
| 		break; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| ReadSettingsThread::ReadSettingsThread(QObject *parent, device_data_t *data) : DeviceThread(parent, data) | ||||
| { | ||||
| } | ||||
|  |  | |||
|  | @ -18,8 +18,11 @@ public: | |||
| signals: | ||||
| 	void error(QString err); | ||||
| 	void message(QString msg); | ||||
| 	void progress(int value); | ||||
| protected: | ||||
| 	device_data_t *m_data; | ||||
| 	void progressCB(int value); | ||||
| 	static void event_cb(dc_device_t *device, dc_event_type_t event, const void *data, void *userdata); | ||||
| }; | ||||
| 
 | ||||
| class ReadSettingsThread : public DeviceThread { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue