Move time-formatting code into a Util header
authorMilian Wolff <milian.wolff@kdab.com>
Tue, 23 May 2017 15:17:42 +0000 (17:17 +0200)
committerMilian Wolff <milian.wolff@kdab.com>
Tue, 23 May 2017 15:17:42 +0000 (17:17 +0200)
src/analyze/gui/CMakeLists.txt
src/analyze/gui/chartmodel.cpp
src/analyze/gui/chartwidget.cpp
src/analyze/gui/util.cpp [new file with mode: 0644]
src/analyze/gui/util.h [new file with mode: 0644]

index 36bb5f3..4a32334 100644 (file)
@@ -28,6 +28,7 @@ set(SRCFILES
     stacksmodel.cpp
     topproxy.cpp
     callercalleemodel.cpp
+    util.cpp
 )
 
 set(LIBRARIES
index 4fb69e3..2143faa 100644 (file)
@@ -27,6 +27,8 @@
 #include <QDebug>
 #include <QPen>
 
+#include "util.h"
+
 namespace {
 QColor colorForColumn(int column, int columnCount)
 {
@@ -118,7 +120,7 @@ QVariant ChartModel::data(const QModelIndex& index, int role) const
 
     const auto cost = data.cost[column];
     if (role == Qt::ToolTipRole) {
-        const QString time = QString::number(double(data.timeStamp) / 1000, 'g', 3) + QLatin1Char('s');
+        const QString time = Util::formatTime(data.timeStamp);
         auto byteCost = [cost]() -> QString
         {
             KFormat format;
index 5257ea5..388b394 100644 (file)
@@ -37,6 +37,7 @@
 
 #include "chartmodel.h"
 #include "chartproxy.h"
+#include "util.h"
 
 using namespace KChart;
 
@@ -52,8 +53,7 @@ public:
 
     const QString customizedLabel(const QString& label) const override
     {
-        // squeeze large numbers here
-        return QString::number(label.toDouble() / 1000, 'g', 2) + QLatin1Char('s');
+        return Util::formatTime(label.toLongLong());
     }
 };
 
diff --git a/src/analyze/gui/util.cpp b/src/analyze/gui/util.cpp
new file mode 100644 (file)
index 0000000..931c81d
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2017 Milian Wolff <mail@milianw.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include "util.h"
+
+#include <QString>
+
+QString Util::formatTime(qint64 ms)
+{
+    return QString::number(double(ms) / 1000, 'g', 3) + QLatin1Char('s');
+}
diff --git a/src/analyze/gui/util.h b/src/analyze/gui/util.h
new file mode 100644 (file)
index 0000000..f19e227
--- /dev/null
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2017 Milian Wolff <mail@milianw.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef UTIL_H
+#define UTIL_H
+
+#include <qglobal.h>
+
+class QString;
+
+namespace Util {
+
+QString formatTime(qint64 ms);
+
+}
+
+#endif // UTIL_H