From cb1e213c64a66fefed5bf648a10811f0b1fa5464 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 5 Jan 2017 02:19:15 +0100 Subject: [PATCH] refs #849, new column formatter for integer --- src/blackgui/models/columnformatters.cpp | 5 +++++ src/blackgui/models/columnformatters.h | 11 +++++++++++ src/blackgui/models/columns.cpp | 5 +++++ src/blackgui/models/columns.h | 3 +++ 4 files changed, 24 insertions(+) diff --git a/src/blackgui/models/columnformatters.cpp b/src/blackgui/models/columnformatters.cpp index 2165400d6..2fa611c2d 100644 --- a/src/blackgui/models/columnformatters.cpp +++ b/src/blackgui/models/columnformatters.cpp @@ -408,5 +408,10 @@ namespace BlackGui if (!rgbColor.isValid()) { return ""; } return rgbColor.hex(true); } + + CVariant CIntegerFormatter::displayRole(const CVariant &expectedInteger) const + { + return QString::number(expectedInteger.toInt()); + } } // namespace } // namespace diff --git a/src/blackgui/models/columnformatters.h b/src/blackgui/models/columnformatters.h index 1be478aac..afd577c9a 100644 --- a/src/blackgui/models/columnformatters.h +++ b/src/blackgui/models/columnformatters.h @@ -279,6 +279,17 @@ namespace BlackGui QString m_formatString = "yyyy-MM-dd HH:mm"; //!< how the value is displayed }; + //! Formatter when column contains an integer + class CIntegerFormatter : public CDefaultFormatter + { + public: + //! Constructor + CIntegerFormatter(int alignment = alignRightVCenter()) : CDefaultFormatter(alignment, false) {} + + //! \copydoc CDefaultFormatter::displayRole + virtual BlackMisc::CVariant displayRole(const BlackMisc::CVariant &expectedInteger) const override; + }; + //! Formatter when column contains an altitude class CAltitudeFormatter : public CDefaultFormatter { diff --git a/src/blackgui/models/columns.cpp b/src/blackgui/models/columns.cpp index e6fee7609..b764c9809 100644 --- a/src/blackgui/models/columns.cpp +++ b/src/blackgui/models/columns.cpp @@ -97,6 +97,11 @@ namespace BlackGui return CColumn("#", "order", propertyIndex, new CStringFormatter(alignment)); } + CColumn CColumn::standardInteger(const QString &headerName, const QString &toolTip, const CPropertyIndex &propertyIndex, int alignment) + { + return CColumn(headerName, toolTip, propertyIndex, new CIntegerFormatter(alignment)); + } + // --------------- columns ---------------------------------------------- CColumns::CColumns(const QString &translationContext, QObject *parent) : diff --git a/src/blackgui/models/columns.h b/src/blackgui/models/columns.h index 62fc11fcf..03e6448bb 100644 --- a/src/blackgui/models/columns.h +++ b/src/blackgui/models/columns.h @@ -107,6 +107,9 @@ namespace BlackGui //! Get a standard string object formatted column static CColumn orderColumn(const BlackMisc::CPropertyIndex &propertyIndex = BlackMisc::CPropertyIndex::GlobalIndexIOrderable, int alignment = CDefaultFormatter::alignRightVCenter()); + //! Get a standard integer value formatted column + static CColumn standardInteger(const QString &headerName, const QString &toolTip, const BlackMisc::CPropertyIndex &propertyIndex, int alignment = CDefaultFormatter::alignRightVCenter()); + private: QString m_translationContext; QString m_columnName;