summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-12 06:48:51 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-12 10:21:16 -0700
commitef95bd9a2784db7468df01bebf0166f73179e7a4 (patch)
tree5be3eec97240e182a4e199c996b3493fc5cdaf68
parent57f2c81125f45b1f07122ad9c0295a6c76a5e4fe (diff)
downloadsubsurface-ef95bd9a2784db7468df01bebf0166f73179e7a4.tar.gz
Indicate that there are unsaved changes with a '*' in the window title
This seems to be a fairly common way to indicate this property. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--divelist.c2
-rw-r--r--qt-ui/mainwindow.cpp3
-rw-r--r--qt-ui/mainwindow.h2
-rw-r--r--qthelper.cpp6
-rw-r--r--qthelperfromc.h1
5 files changed, 12 insertions, 2 deletions
diff --git a/divelist.c b/divelist.c
index 773f52713..468373591 100644
--- a/divelist.c
+++ b/divelist.c
@@ -43,6 +43,7 @@
#include "divelist.h"
#include "display.h"
#include "planner.h"
+#include "qthelperfromc.h"
static short dive_list_changed = false;
@@ -920,6 +921,7 @@ void combine_trips(struct dive_trip *trip_a, struct dive_trip *trip_b)
void mark_divelist_changed(int changed)
{
dive_list_changed = changed;
+ updateWindowTitle();
}
int unsaved_changes()
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 80f9fc9f1..571eb15f1 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -1429,7 +1429,8 @@ void MainWindow::setTitle(enum MainWindowTitleFormat format)
QFile f(existing_filename);
QFileInfo fileInfo(f);
QString fileName(fileInfo.fileName());
- setWindowTitle("Subsurface: " + fileName);
+ QString unsaved = (unsaved_changes() ? " *" : "");
+ setWindowTitle("Subsurface: " + fileName + unsaved);
break;
}
}
diff --git a/qt-ui/mainwindow.h b/qt-ui/mainwindow.h
index 6a5f95921..9bed1d05f 100644
--- a/qt-ui/mainwindow.h
+++ b/qt-ui/mainwindow.h
@@ -72,7 +72,7 @@ public:
DivePlannerWidget *divePlannerWidget();
PlannerSettingsWidget *divePlannerSettingsWidget();
LocationInformationWidget *locationInformationWidget();
- void setTitle(enum MainWindowTitleFormat format);
+ void setTitle(enum MainWindowTitleFormat format = MWTF_FILENAME);
// Some shortcuts like "change DC" or "copy/paste dive components"
// should only be enabled when the profile's visible.
diff --git a/qthelper.cpp b/qthelper.cpp
index e476df429..5434bcd20 100644
--- a/qthelper.cpp
+++ b/qthelper.cpp
@@ -34,6 +34,7 @@
#include <QtConcurrent>
#include "divepicturewidget.h"
#include "subsurfacewebservices.h"
+#include "mainwindow.h"
#include <libxslt/documents.h>
@@ -1057,3 +1058,8 @@ extern "C" bool canReachCloudServer()
{
return CheckCloudConnection::checkServer();
}
+
+extern "C" void updateWindowTitle()
+{
+ MainWindow::instance()->setTitle();
+}
diff --git a/qthelperfromc.h b/qthelperfromc.h
index 039d9252d..d7ba6f1b7 100644
--- a/qthelperfromc.h
+++ b/qthelperfromc.h
@@ -3,5 +3,6 @@
bool getProxyString(char **buffer);
bool canReachCloudServer();
+void updateWindowTitle();
#endif // QTHELPERFROMC_H