gui.cpp

changeset 127
a6e2067bb2f1
parent 125
7ee7aa5e28be
child 132
577e8e89d8de
--- a/gui.cpp	Mon Apr 22 14:14:36 2013 +0300
+++ b/gui.cpp	Mon Apr 22 16:06:41 2013 +0300
@@ -453,22 +453,25 @@
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 // =============================================================================
 void ForgeWindow::setTitle () {
-	str zTitle = APPNAME_DISPLAY " v" VERSION_STRING;
+	str title = APPNAME_DISPLAY " v" VERSION_STRING;
 	
 	// Append our current file if we have one
 	if (g_CurrentFile) {
-		zTitle.appendformat (": %s", basename (g_CurrentFile->zFileName.chars()));
+		title += format (": %s", basename (g_CurrentFile->zFileName.chars()));
 		
 		if (g_CurrentFile->objects.size() > 0 &&
 			g_CurrentFile->objects[0]->getType() == OBJ_Comment)
 		{
 			// Append title
 			LDComment* comm = static_cast<LDComment*> (g_CurrentFile->objects[0]);
-			zTitle.appendformat (": %s", comm->zText.chars());
+			title += format (": %s", comm->zText.chars());
 		}
+		
+		if (History::pos () != g_CurrentFile->savePos)
+			title += '*';
 	}
 	
-	setWindowTitle (zTitle.chars());
+	setWindowTitle (title);
 }
 
 // =============================================================================
@@ -861,6 +864,21 @@
 // =============================================================================
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 // =============================================================================
+void ForgeWindow::closeEvent (QCloseEvent* ev) {
+	// Check whether it's safe to close all files.
+	for (OpenFile* f : g_LoadedFiles) {
+		if (!f->safeToClose ()) {
+			ev->ignore ();
+			return;
+		}
+	}
+	
+	ev->accept ();
+}
+
+// =============================================================================
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+// =============================================================================
 std::vector<LDObject*>& ForgeWindow::selection () {
 	return paSelection;
 }
@@ -873,7 +891,11 @@
 }
 
 // =============================================================================
-bool confirm (str zMessage) {
-	return QMessageBox::question (g_ForgeWindow, "Confirm", zMessage,
+bool confirm (str msg) {
+	return confirm ("Confirm", msg);
+}
+
+bool confirm (str title, str msg) {
+	return QMessageBox::question (g_ForgeWindow, title, msg,
 		(QMessageBox::Yes | QMessageBox::No), QMessageBox::No) == QMessageBox::Yes;
 }
\ No newline at end of file

mercurial