mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	main.cpp -> {android-main, desktop-main}
This is needed to compile both in a single call to make. Also it will help removing some of the mistakes in the current android version: it always created the mainwindow, even without using it for anything, so tons of memory will be freed now for the android version, making it snappier and smoother. This is a necessary move so we don't need to #ifdef all over the place for the two different versions, and imo the changes needed to keep both versions will not be that huge if we keep things in subsurface-core sane. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
		
							parent
							
								
									e49d6213ad
								
							
						
					
					
						commit
						45c9764073
					
				
					 5 changed files with 175 additions and 41 deletions
				
			
		
							
								
								
									
										97
									
								
								subsurface-desktop-main.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								subsurface-desktop-main.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | |||
| /* main.c */ | ||||
| #include <locale.h> | ||||
| #include <stdio.h> | ||||
| #include <string.h> | ||||
| #include <stdlib.h> | ||||
| #include <time.h> | ||||
| 
 | ||||
| #include "dive.h" | ||||
| #include "qt-gui.h" | ||||
| #include "subsurfacestartup.h" | ||||
| #include "desktop-widgets/mainwindow.h" | ||||
| #include "desktop-widgets/diveplanner.h" | ||||
| #include "subsurface-core/color.h" | ||||
| #include "qthelper.h" | ||||
| 
 | ||||
| #include <QStringList> | ||||
| #include <QApplication> | ||||
| #include <QLoggingCategory> | ||||
| #include <git2.h> | ||||
| 
 | ||||
| QTranslator *qtTranslator, *ssrfTranslator; | ||||
| 
 | ||||
| int main(int argc, char **argv) | ||||
| { | ||||
| 	int i; | ||||
| 	bool no_filenames = true; | ||||
| 	QLoggingCategory::setFilterRules(QStringLiteral("qt.bluetooth* = true")); | ||||
| 	QApplication *application = new QApplication(argc, argv); | ||||
| 	QStringList files; | ||||
| 	QStringList importedFiles; | ||||
| 	QStringList arguments = QCoreApplication::arguments(); | ||||
| 
 | ||||
| 	bool dedicated_console = arguments.length() > 1 && | ||||
| 				 (arguments.at(1) == QString("--win32console")); | ||||
| 	subsurface_console_init(dedicated_console); | ||||
| 
 | ||||
| 	const char *default_directory = system_default_directory(); | ||||
| 	const char *default_filename = system_default_filename(); | ||||
| 	subsurface_mkdir(default_directory); | ||||
| 
 | ||||
| 	for (i = 1; i < arguments.length(); i++) { | ||||
| 		QString a = arguments.at(i); | ||||
| 		if (a.isEmpty()) | ||||
| 			continue; | ||||
| 		if (a.at(0) == '-') { | ||||
| 			parse_argument(a.toLocal8Bit().data()); | ||||
| 			continue; | ||||
| 		} | ||||
| 		if (imported) { | ||||
| 			importedFiles.push_back(a); | ||||
| 		} else { | ||||
| 			no_filenames = false; | ||||
| 			files.push_back(a); | ||||
| 		} | ||||
| 	} | ||||
| #if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR < 22 | ||||
| 	git_threads_init(); | ||||
| #else | ||||
| 	git_libgit2_init(); | ||||
| #endif | ||||
| 	setup_system_prefs(); | ||||
| 	copy_prefs(&default_prefs, &prefs); | ||||
| 	fill_profile_color(); | ||||
| 	parse_xml_init(); | ||||
| 	taglist_init_global(); | ||||
| 	init_ui(); | ||||
| 	if (no_filenames) { | ||||
| 		if (prefs.default_file_behavior == LOCAL_DEFAULT_FILE) { | ||||
| 			QString defaultFile(prefs.default_filename); | ||||
| 			if (!defaultFile.isEmpty()) | ||||
| 				files.push_back(QString(prefs.default_filename)); | ||||
| 		} else if (prefs.default_file_behavior == CLOUD_DEFAULT_FILE) { | ||||
| 			QString cloudURL; | ||||
| 			if (getCloudURL(cloudURL) == 0) | ||||
| 				files.push_back(cloudURL); | ||||
| 		} | ||||
| 	} | ||||
| 	MainWindow *m = MainWindow::instance(); | ||||
| 	m->setLoadedWithFiles(!files.isEmpty() || !importedFiles.isEmpty()); | ||||
| 	m->loadFiles(files); | ||||
| 	m->importFiles(importedFiles); | ||||
| 	// in case something has gone wrong make sure we show the error message
 | ||||
| 	m->showError(); | ||||
| 
 | ||||
| 	if (verbose > 0) | ||||
| 		print_files(); | ||||
| 	if (!quit) | ||||
| 		run_ui(); | ||||
| 	exit_ui(); | ||||
| 	taglist_free(g_tag_list); | ||||
| 	parse_xml_exit(); | ||||
| 	free((void *)default_directory); | ||||
| 	free((void *)default_filename); | ||||
| 	subsurface_console_exit(); | ||||
| 	free_prefs(); | ||||
| 	return 0; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue