From bb9bc4eb5da7210c6fac4fcea493732f7a6ecc7d Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 7 Jul 2015 00:48:52 +0200 Subject: [PATCH] added helper method for generating window title --- misc/dialogutils.cpp | 32 ++++++++++++++++++++++++++++++++ misc/dialogutils.h | 24 ++++++++++++++++++++++++ qtutilities.pro | 6 ++++-- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 misc/dialogutils.cpp create mode 100644 misc/dialogutils.h diff --git a/misc/dialogutils.cpp b/misc/dialogutils.cpp new file mode 100644 index 0000000..0b0c66f --- /dev/null +++ b/misc/dialogutils.cpp @@ -0,0 +1,32 @@ +#include "dialogutils.h" + +#include +#include +#include + +namespace Dialogs { + +QString generateWindowTitle(DocumentStatus documentStatus, const QString &documentPath) +{ + switch(documentStatus) { + case DocumentStatus::Saved: + if(documentPath.isEmpty()) { + return QCoreApplication::translate("Utilities::windowTitle", "Unsaved - %1").arg(QCoreApplication::applicationName()); + } else { + QFileInfo file(documentPath); + return QCoreApplication::translate("Utilities::windowTitle", "%1 - %2 - %3").arg(file.fileName(), file.dir().path(), QCoreApplication::applicationName()); + } + case DocumentStatus::Unsaved: + if(documentPath.isEmpty()) { + return QCoreApplication::translate("Utilities::windowTitle", "*Unsaved - %1").arg(QCoreApplication::applicationName()); + } else { + QFileInfo file(documentPath); + return QCoreApplication::translate("Utilities::windowTitle", "*%1 - %2 - %3").arg(file.fileName(), file.dir().path(), QCoreApplication::applicationName()); + } + case DocumentStatus::NoDocument: + return QCoreApplication::applicationName(); + } +} + +} // namespace Dialogs + diff --git a/misc/dialogutils.h b/misc/dialogutils.h new file mode 100644 index 0000000..9a1434a --- /dev/null +++ b/misc/dialogutils.h @@ -0,0 +1,24 @@ +#ifndef DIALOGS_DIALOGUTILS_H +#define DIALOGS_DIALOGUTILS_H + +#include + +#include + +QT_BEGIN_NAMESPACE +class QString; +QT_END_NAMESPACE + +namespace Dialogs { + +enum class DocumentStatus { + NoDocument, + Saved, + Unsaved +}; + +QString LIB_EXPORT generateWindowTitle(DocumentStatus documentStatus, const QString &documentPath); + +} // namespace Dialogs + +#endif // DIALOGS_DIALOGUTILS_H diff --git a/qtutilities.pro b/qtutilities.pro index 32938b7..ebf90b0 100644 --- a/qtutilities.pro +++ b/qtutilities.pro @@ -28,7 +28,8 @@ contains(DEFINES, PLATFORM_SPECIFIC_CAPSLOCK_DETECTION) { SOURCES += resources/resources.cpp \ models/checklistmodel.cpp \ - resources/qtconfigarguments.cpp + resources/qtconfigarguments.cpp \ + misc/dialogutils.cpp contains(DEFINES, GUI_QTWIDGETS) { SOURCES += aboutdialog/aboutdialog.cpp \ @@ -52,7 +53,8 @@ contains(DEFINES, GUI_QTWIDGETS) { HEADERS += resources/resources.h \ models/checklistmodel.h \ - resources/qtconfigarguments.h + resources/qtconfigarguments.h \ + misc/dialogutils.h contains(DEFINES, GUI_QTWIDGETS) { HEADERS += aboutdialog/aboutdialog.h \