Bridge no longer needs depends on the UI. All interaction occurs via the callback
More cleanups FossilOrigin-Name: 3d1e269fee5acd4b65025024f701319c3e993e97
This commit is contained in:
		
							
								
								
									
										18
									
								
								manifest
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								manifest
									
									
									
									
									
								
							| @@ -1,5 +1,5 @@ | |||||||
| C Transitioned\sto\snew\sfossil\sbridge | C Bridge\sno\slonger\sneeds\sdepends\son\sthe\sUI.\sAll\sinteraction\soccurs\svia\sthe\scallback\nMore\scleanups | ||||||
| D 2015-04-27T19:31:43.310 | D 2015-04-27T19:54:01.466 | ||||||
| F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35 | F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35 | ||||||
| F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b | F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b | ||||||
| F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b | F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b | ||||||
| @@ -184,8 +184,8 @@ F rsrc/icons/fuel.icns 81e535004b62db801a02f3e15d0a33afc9d4070b | |||||||
| F rsrc/icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038 | F rsrc/icons/fuel.ico eb529ab3332a17b9302ef3e851db5b9ebce2a038 | ||||||
| F rsrc/icons/fuel.png 40daf53b7f6bdcdd0d6aa5ef433d078ec5ea4342 | F rsrc/icons/fuel.png 40daf53b7f6bdcdd0d6aa5ef433d078ec5ea4342 | ||||||
| F rsrc/resources.qrc 4098be128fd6c045db933d041fe8844b14643a6f | F rsrc/resources.qrc 4098be128fd6c045db933d041fe8844b14643a6f | ||||||
| F src/Bridge.cpp 00a460d33624258b29ad194297569c53cb10810f | F src/Bridge.cpp a0661a0a68799140c7e0d9b185e64c266c882c98 | ||||||
| F src/Bridge.h b121493715dd0bed15658b326a70af57f2252db7 | F src/Bridge.h 33cea48e72c4c1a8dc8bd41c0bdd972454ca9240 | ||||||
| F src/BrowserWidget.cpp 8b8f545cdff4a4188edc698a1b4777f5df46f056 | F src/BrowserWidget.cpp 8b8f545cdff4a4188edc698a1b4777f5df46f056 | ||||||
| F src/BrowserWidget.h 764d66aa9a93b890298bd0301097739cb4e16597 | F src/BrowserWidget.h 764d66aa9a93b890298bd0301097739cb4e16597 | ||||||
| F src/CloneDialog.cpp 812ef7d361c16da21540b7047c9d4d5e74f18539 | F src/CloneDialog.cpp 812ef7d361c16da21540b7047c9d4d5e74f18539 | ||||||
| @@ -200,8 +200,8 @@ F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 | |||||||
| F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df | F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df | ||||||
| F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c | F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c | ||||||
| F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 | F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261 | ||||||
| F src/MainWindow.cpp 8f20a49621c42bfa7ee5f6018900a9f6ef08f6c8 | F src/MainWindow.cpp 5a66bf80a0af7c2f1255a7e567f108466dd4eba8 | ||||||
| F src/MainWindow.h 045b784735d86cef7ed415ca46dccf9b6a005c39 | F src/MainWindow.h c593f74f3b7d0b8f6d29288c6badd6b350fcb25f | ||||||
| F src/SettingsDialog.cpp a46cff5e5dd425e3dbdd15632abfd5829f5562b4 | F src/SettingsDialog.cpp a46cff5e5dd425e3dbdd15632abfd5829f5562b4 | ||||||
| F src/SettingsDialog.h 4e2790f581e991c744ae9f86580f1972b8c7ff43 | F src/SettingsDialog.h 4e2790f581e991c744ae9f86580f1972b8c7ff43 | ||||||
| F src/Utils.cpp f78728e0817b1db23007ba0d2c5c26980ee7ebca | F src/Utils.cpp f78728e0817b1db23007ba0d2c5c26980ee7ebca | ||||||
| @@ -215,7 +215,7 @@ F ui/CommitDialog.ui 6200f6cabdcf40a20812e811be28e0793f82516f | |||||||
| F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d | F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d | ||||||
| F ui/MainWindow.ui 8677f5c8bca5bf7561d5f64bfdd0cef5157c6ac7 | F ui/MainWindow.ui 8677f5c8bca5bf7561d5f64bfdd0cef5157c6ac7 | ||||||
| F ui/SettingsDialog.ui 2b7c2870e0054b0f4106f495d85d02c0b814df8b | F ui/SettingsDialog.ui 2b7c2870e0054b0f4106f495d85d02c0b814df8b | ||||||
| P e2b03b2a965ec50382ea89d374ece4a6a56b72b5 | P c5b0a1a62a9607f434ac6426401fd40c94d6a2d8 | ||||||
| R 7230e39179ffadefe20ce40a0176c6fa | R f57a18f9cee5453e9453dfa80c854856 | ||||||
| U kostas | U kostas | ||||||
| Z 1c155b4c26131deaf429fe2b750502dc | Z 7bfd61383d77ec4c7853ed5119f2785e | ||||||
|   | |||||||
| @@ -1 +1 @@ | |||||||
| c5b0a1a62a9607f434ac6426401fd40c94d6a2d8 | 3d1e269fee5acd4b65025024f701319c3e993e97 | ||||||
| @@ -4,7 +4,6 @@ | |||||||
| #include <LoggedProcess.h> | #include <LoggedProcess.h> | ||||||
| #include <QTextCodec> | #include <QTextCodec> | ||||||
| #include <QDebug> | #include <QDebug> | ||||||
| #include <QMessageBox> |  | ||||||
| #include <QDir> | #include <QDir> | ||||||
| #include <QTemporaryFile> | #include <QTemporaryFile> | ||||||
| #include <QUrl> | #include <QUrl> | ||||||
| @@ -529,7 +528,10 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi | |||||||
| 	final_args = &run_args; | 	final_args = &run_args; | ||||||
|  |  | ||||||
| 	// Create fossil process | 	// Create fossil process | ||||||
| 	LoggedProcess process(parentWidget); | 	// FIXME: when we are sure this works delete this | ||||||
|  | 	// LoggedProcess process(parentWidget*/); | ||||||
|  | 	LoggedProcess process(0); | ||||||
|  |  | ||||||
| 	process.setWorkingDirectory(wkdir); | 	process.setWorkingDirectory(wkdir); | ||||||
|  |  | ||||||
| 	process.start(fossil, *final_args); | 	process.start(fossil, *final_args); | ||||||
| @@ -557,6 +559,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi | |||||||
| 	QTextDecoder *decoder = codec->makeDecoder(); | 	QTextDecoder *decoder = codec->makeDecoder(); | ||||||
| 	Q_ASSERT(decoder); | 	Q_ASSERT(decoder); | ||||||
|  |  | ||||||
|  | 	Q_ASSERT(uiCallback); | ||||||
| #ifdef QT_DEBUG | #ifdef QT_DEBUG | ||||||
| 	size_t input_index = 0; | 	size_t input_index = 0; | ||||||
| #endif | #endif | ||||||
| @@ -673,7 +676,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi | |||||||
| 			if(have_acyn_query) | 			if(have_acyn_query) | ||||||
| 				buttons |= QMessageBox::Apply; | 				buttons |= QMessageBox::Apply; | ||||||
|  |  | ||||||
| 			QMessageBox::StandardButton res = DialogQuery(parentWidget, "Fossil", query, buttons); | 			QMessageBox::StandardButton res = uiCallback->Query("Fossil", query, buttons); | ||||||
| 			if(res==QMessageBox::Yes) | 			if(res==QMessageBox::Yes) | ||||||
| 			{ | 			{ | ||||||
| 				process.write(ans_yes.toLatin1()); | 				process.write(ans_yes.toLatin1()); | ||||||
| @@ -700,7 +703,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi | |||||||
| 		{ | 		{ | ||||||
| 			log(last_line); | 			log(last_line); | ||||||
| 			QString query = ParseFossilQuery(last_line); | 			QString query = ParseFossilQuery(last_line); | ||||||
| 			QMessageBox::StandardButton res = DialogQuery(parentWidget, "Fossil", query); | 			QMessageBox::StandardButton res = uiCallback->Query("Fossil", query, QMessageBox::Yes|QMessageBox::No); | ||||||
|  |  | ||||||
| 			if(res==QMessageBox::Yes) | 			if(res==QMessageBox::Yes) | ||||||
| 			{ | 			{ | ||||||
| @@ -719,7 +722,7 @@ bool Bridge::runFossilRaw(const QStringList &args, QStringList *output, int *exi | |||||||
| 		{ | 		{ | ||||||
| 			log(last_line); | 			log(last_line); | ||||||
| 			QString query = ParseFossilQuery(last_line); | 			QString query = ParseFossilQuery(last_line); | ||||||
| 			QMessageBox::StandardButton res = DialogQuery(parentWidget, "Fossil", query, QMessageBox::YesToAll|QMessageBox::No); | 			QMessageBox::StandardButton res = uiCallback->Query("Fossil", query, QMessageBox::YesToAll|QMessageBox::No); | ||||||
| 			if(res==QMessageBox::YesAll) | 			if(res==QMessageBox::YesAll) | ||||||
| 			{ | 			{ | ||||||
| 				process.write(ans_always.toLatin1()); | 				process.write(ans_always.toLatin1()); | ||||||
| @@ -802,7 +805,9 @@ bool Bridge::startUI(const QString &httpPort) | |||||||
| 		return true; | 		return true; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	fossilUI.setParent(parentWidget); | 	// FIXME: when we are sure this works delete this | ||||||
|  | 	//fossilUI.setParent(parentWidget); | ||||||
|  |  | ||||||
| 	fossilUI.setProcessChannelMode(QProcess::MergedChannels); | 	fossilUI.setProcessChannelMode(QProcess::MergedChannels); | ||||||
| 	fossilUI.setWorkingDirectory(getCurrentWorkspace()); | 	fossilUI.setWorkingDirectory(getCurrentWorkspace()); | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								src/Bridge.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								src/Bridge.h
									
									
									
									
									
								
							| @@ -5,6 +5,7 @@ class QStringList; | |||||||
| #include <QString> | #include <QString> | ||||||
| #include <QObject> | #include <QObject> | ||||||
| #include <QProcess> | #include <QProcess> | ||||||
|  | #include <QMessageBox> | ||||||
|  |  | ||||||
| typedef QMap<QString, QString> stashmap_t; | typedef QMap<QString, QString> stashmap_t; | ||||||
|  |  | ||||||
| @@ -35,22 +36,20 @@ public: | |||||||
| 		virtual void logText(const QString &text, bool isHTML)=0; | 		virtual void logText(const QString &text, bool isHTML)=0; | ||||||
| 		virtual void beginProcess(const QString &text)=0; | 		virtual void beginProcess(const QString &text)=0; | ||||||
| 		virtual void endProcess()=0; | 		virtual void endProcess()=0; | ||||||
|  | 		virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons)=0; | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  |  | ||||||
| 	Bridge() | 	Bridge() | ||||||
| 	: QObject(0) | 	: QObject(0) | ||||||
| 	, parentWidget(0) |  | ||||||
| 	, abortOperation(false) | 	, abortOperation(false) | ||||||
| 	, uiCallback(0) | 	, uiCallback(0) | ||||||
| 	{ | 	{ | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	void Init(QWidget *parent, UICallback *callback, const QString &fossPath, const QString &workspace) | 	void Init(UICallback *callback, const QString &fossPath, const QString &workspace) | ||||||
| 	{ | 	{ | ||||||
| 		parentWidget = parent; |  | ||||||
| 		uiCallback = callback; | 		uiCallback = callback; | ||||||
|  |  | ||||||
| 		fossilPath = fossPath; | 		fossilPath = fossPath; | ||||||
| 		currentWorkspace = workspace; | 		currentWorkspace = workspace; | ||||||
| 	} | 	} | ||||||
| @@ -129,12 +128,9 @@ private: | |||||||
| 			uiCallback->logText(text, isHTML); | 			uiCallback->logText(text, isHTML); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
| 	QString	getFossilPath(); | 	QString	getFossilPath(); | ||||||
|  |  | ||||||
| 	QWidget				*parentWidget;	// fixme |  | ||||||
| 	bool				abortOperation;	// FIXME: No GUI for it yet | 	bool				abortOperation;	// FIXME: No GUI for it yet | ||||||
|  |  | ||||||
| 	UICallback			*uiCallback; | 	UICallback			*uiCallback; | ||||||
| 	QString				currentWorkspace; | 	QString				currentWorkspace; | ||||||
| 	QString				fossilPath;		// The value from the settings | 	QString				fossilPath;		// The value from the settings | ||||||
|   | |||||||
| @@ -190,7 +190,7 @@ MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspaceP | |||||||
|  |  | ||||||
| 	uiCallback.init(this); | 	uiCallback.init(this); | ||||||
| 	// Need to be before applySettings which sets the last workspace | 	// Need to be before applySettings which sets the last workspace | ||||||
| 	bridge.Init(this, &uiCallback, "", ""); | 	bridge.Init(&uiCallback, "", ""); | ||||||
|  |  | ||||||
| 	applySettings(); | 	applySettings(); | ||||||
|  |  | ||||||
| @@ -577,8 +577,8 @@ bool MainWindow::refresh() | |||||||
| 	setStatus(""); | 	setStatus(""); | ||||||
| 	enableActions(true); | 	enableActions(true); | ||||||
|  |  | ||||||
| 	if(!getProjectName().isEmpty()) | 	if(!bridge.getProjectName().isEmpty()) | ||||||
| 		title += " - " + getProjectName(); | 		title += " - " + bridge.getProjectName(); | ||||||
|  |  | ||||||
| 	setWindowTitle(title); | 	setWindowTitle(title); | ||||||
| 	return true; | 	return true; | ||||||
| @@ -635,7 +635,7 @@ void MainWindow::scanWorkspace() | |||||||
| 			QString fullpath = it->absoluteFilePath(); | 			QString fullpath = it->absoluteFilePath(); | ||||||
|  |  | ||||||
| 			// Skip fossil files | 			// Skip fossil files | ||||||
| 			if(filename == FOSSIL_CHECKOUT1 || filename == FOSSIL_CHECKOUT2 || (!getRepositoryFile().isEmpty() && QFileInfo(fullpath) == QFileInfo(getRepositoryFile()))) | 			if(filename == FOSSIL_CHECKOUT1 || filename == FOSSIL_CHECKOUT2 || (!bridge.getRepositoryFile().isEmpty() && QFileInfo(fullpath) == QFileInfo(bridge.getRepositoryFile()))) | ||||||
| 				continue; | 				continue; | ||||||
|  |  | ||||||
| 			RepoFile *rf = new RepoFile(*it, RepoFile::TYPE_UNKNOWN, wkdir); | 			RepoFile *rf = new RepoFile(*it, RepoFile::TYPE_UNKNOWN, wkdir); | ||||||
| @@ -777,7 +777,7 @@ void MainWindow::updateDirView() | |||||||
| 	header << tr("Folders"); | 	header << tr("Folders"); | ||||||
| 	repoDirModel.setHorizontalHeaderLabels(header); | 	repoDirModel.setHorizontalHeaderLabels(header); | ||||||
|  |  | ||||||
| 	QStandardItem *root = new QStandardItem(QIcon(":icons/icons/My Documents-01.png"), getProjectName()); | 	QStandardItem *root = new QStandardItem(QIcon(":icons/icons/My Documents-01.png"), bridge.getProjectName()); | ||||||
| 	root->setData(""); // Empty Path | 	root->setData(""); // Empty Path | ||||||
| 	root->setEditable(false); | 	root->setEditable(false); | ||||||
|  |  | ||||||
| @@ -2189,3 +2189,9 @@ void MainWindow::MainWinUICallback::endProcess() | |||||||
| 	mainWindow->ui->statusBar->clearMessage(); | 	mainWindow->ui->statusBar->clearMessage(); | ||||||
| 	mainWindow->progressBar->setHidden(true); | 	mainWindow->progressBar->setHidden(true); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | //------------------------------------------------------------------------------ | ||||||
|  | QMessageBox::StandardButton MainWindow::MainWinUICallback::Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons) | ||||||
|  | { | ||||||
|  | 	return DialogQuery(mainWindow, title, query, buttons); | ||||||
|  | } | ||||||
|   | |||||||
| @@ -230,6 +230,8 @@ private: | |||||||
| 		virtual void logText(const QString& text, bool isHTML); | 		virtual void logText(const QString& text, bool isHTML); | ||||||
| 		virtual void beginProcess(const QString& text); | 		virtual void beginProcess(const QString& text); | ||||||
| 		virtual void endProcess(); | 		virtual void endProcess(); | ||||||
|  | 		virtual QMessageBox::StandardButton Query(const QString &title, const QString &query, QMessageBox::StandardButtons buttons); | ||||||
|  |  | ||||||
|  |  | ||||||
| 	private: | 	private: | ||||||
| 		class MainWindow *mainWindow; | 		class MainWindow *mainWindow; | ||||||
| @@ -242,7 +244,6 @@ private: | |||||||
| 		MAX_RECENT=5 | 		MAX_RECENT=5 | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  |  | ||||||
| 	Ui::MainWindow		*ui; | 	Ui::MainWindow		*ui; | ||||||
| 	QStandardItemModel	repoFileModel; | 	QStandardItemModel	repoFileModel; | ||||||
| 	QStandardItemModel	repoDirModel; | 	QStandardItemModel	repoDirModel; | ||||||
| @@ -258,10 +259,6 @@ private: | |||||||
|  |  | ||||||
| 	MainWinUICallback	uiCallback; | 	MainWinUICallback	uiCallback; | ||||||
| 	Bridge				bridge; | 	Bridge				bridge; | ||||||
| 	const QString &		getProjectName() const { return bridge.getProjectName(); } |  | ||||||
| 	const QString &		getRepositoryFile() const { return bridge.getRepositoryFile(); } |  | ||||||
| 	void				setRepositoryFile(const QString &filename) { bridge.setRepositoryFile(filename); } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	ViewMode			viewMode; | 	ViewMode			viewMode; | ||||||
| 	stringset_t			selectedDirs;	// The directory selected in the tree | 	stringset_t			selectedDirs;	// The directory selected in the tree | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user