mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Delay Qt ui construction
The Qt ui will need to read the dive_table to populate widgets with dives. Gtk functionality in init_ui is required to parse the dives. Split init_ui to allow parsing to proceed and complete before Qt ui mainwindow constructor is called. Play with qDebug()'s printf style (Thiago!) Signed-off-by: Amit Chaudhuri <amit.k.chaudhuri@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									115ee47bfc
								
							
						
					
					
						commit
						073be111f4
					
				
					 5 changed files with 17 additions and 9 deletions
				
			
		
							
								
								
									
										1
									
								
								dive.h
									
										
									
									
									
								
							
							
						
						
									
										1
									
								
								dive.h
									
										
									
									
									
								
							|  | @ -602,6 +602,7 @@ extern void add_event(struct divecomputer *dc, int time, int type, int flags, in | |||
| /* UI related protopypes */ | ||||
| 
 | ||||
| extern void init_ui(int *argcp, char ***argvp); | ||||
| extern void init_qt_ui(int *argcp, char ***argvp); | ||||
| 
 | ||||
| extern void run_ui(void); | ||||
| extern void exit_ui(void); | ||||
|  |  | |||
|  | @ -492,7 +492,6 @@ void get_suit(struct dive *dive, char **str) | |||
| /*
 | ||||
|  * helper functions for dive_trip handling | ||||
|  */ | ||||
| 
 | ||||
| #ifdef DEBUG_TRIP | ||||
| void dump_trip_list(void) | ||||
| { | ||||
|  |  | |||
							
								
								
									
										7
									
								
								main.c
									
										
									
									
									
								
							
							
						
						
									
										7
									
								
								main.c
									
										
									
									
									
								
							|  | @ -335,7 +335,7 @@ int main(int argc, char **argv) | |||
| 	subsurface_command_line_init(&argc, &argv); | ||||
| 	parse_xml_init(); | ||||
| 
 | ||||
| 	init_ui(&argc, &argv); | ||||
| 	init_ui(&argc, &argv); /* the gtk stuff is needed for parsing below */ | ||||
| 
 | ||||
| 	for (i = 1; i < argc; i++) { | ||||
| 		const char *a = argv[i]; | ||||
|  | @ -372,12 +372,13 @@ int main(int argc, char **argv) | |||
| 	report_dives(imported, FALSE); | ||||
| 	if (dive_table.nr == 0) | ||||
| 		show_dive_info(NULL); | ||||
| 	run_ui(); | ||||
| 	exit_ui(); | ||||
| 
 | ||||
| 	parse_xml_exit(); | ||||
| 	subsurface_command_line_exit(&argc, &argv); | ||||
| 
 | ||||
| 	init_qt_ui(&argc, &argv); /* qt bit delayed until dives are parsed */ | ||||
| 	run_ui(); | ||||
| 	exit_ui(); | ||||
| #ifdef DEBUGFILE | ||||
| 	if (debugfile) | ||||
| 		fclose(debugfile); | ||||
|  |  | |||
							
								
								
									
										13
									
								
								qt-gui.cpp
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								qt-gui.cpp
									
										
									
									
									
								
							|  | @ -1864,6 +1864,14 @@ QStringList MainWindow::fileNameFilters() const | |||
| } | ||||
| #endif /* NEEDS_TO_MOVE_TO_QT_UI */ | ||||
| 
 | ||||
| void init_qt_ui(int *argcp, char ***argvp) | ||||
| { | ||||
| 	application = new QApplication(*argcp, *argvp); | ||||
| 	application->installTranslator(new Translator(application)); | ||||
| 	MainWindow *window = new MainWindow(); | ||||
| 	window->show(); | ||||
| } | ||||
| 
 | ||||
| void init_ui(int *argcp, char ***argvp) | ||||
| { | ||||
| 	GtkWidget *win; | ||||
|  | @ -1877,11 +1885,6 @@ void init_ui(int *argcp, char ***argvp) | |||
| 	GtkSettings *settings; | ||||
| 	GtkUIManager *ui_manager; | ||||
| 
 | ||||
| 	application = new QApplication(*argcp, *argvp); | ||||
| 	application->installTranslator(new Translator(application)); | ||||
| 	MainWindow *window = new MainWindow(); | ||||
| 	window->show(); | ||||
| 
 | ||||
| 	gtk_init(argcp, argvp); | ||||
| 	settings = gtk_settings_get_default(); | ||||
| 	gtk_settings_set_long_property(settings, "gtk-tooltip-timeout", 10, "subsurface setting"); | ||||
|  |  | |||
|  | @ -46,6 +46,10 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()) | |||
| 		dive = new DiveItem(1,QString("01/03/13"),14.2, 29.0,QString("Wraysbury"),root); | ||||
| 
 | ||||
| 		Q_UNUSED(dive) | ||||
| 
 | ||||
| 		qDebug("dive_table checks - number of dives is %d", dive_table.nr); | ||||
| 		qDebug("# allocated dives = %d, pre-existing = %d", | ||||
| 		       dive_table.allocated, dive_table.preexisting); | ||||
| 	} | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue