From c7745408f77a17771c1a26efb981d79aa66c9f66 Mon Sep 17 00:00:00 2001
From: Yuri Kunde Schlesner <yuriks@yuriks.net>
Date: Wed, 19 Aug 2015 17:00:56 -0300
Subject: [PATCH] citra-qt: Add helper function to get a monospace QFont

---
 src/citra_qt/CMakeLists.txt                      |  2 ++
 src/citra_qt/debugger/graphics.cpp               |  4 +++-
 src/citra_qt/debugger/graphics_cmdlists.cpp      |  6 +++---
 src/citra_qt/debugger/graphics_vertex_shader.cpp |  4 +++-
 src/citra_qt/util/util.cpp                       | 13 +++++++++++++
 src/citra_qt/util/util.h                         |  8 ++++++++
 6 files changed, 32 insertions(+), 5 deletions(-)
 create mode 100644 src/citra_qt/util/util.cpp
 create mode 100644 src/citra_qt/util/util.h

diff --git a/src/citra_qt/CMakeLists.txt b/src/citra_qt/CMakeLists.txt
index 0c05150542..a82e8a85bb 100644
--- a/src/citra_qt/CMakeLists.txt
+++ b/src/citra_qt/CMakeLists.txt
@@ -18,6 +18,7 @@ set(SRCS
             debugger/ramview.cpp
             debugger/registers.cpp
             util/spinbox.cpp
+            util/util.cpp
             bootmanager.cpp
             hotkeys.cpp
             main.cpp
@@ -42,6 +43,7 @@ set(HEADERS
             debugger/ramview.h
             debugger/registers.h
             util/spinbox.h
+            util/util.h
             bootmanager.h
             hotkeys.h
             main.h
diff --git a/src/citra_qt/debugger/graphics.cpp b/src/citra_qt/debugger/graphics.cpp
index 7424671f18..7d15028f09 100644
--- a/src/citra_qt/debugger/graphics.cpp
+++ b/src/citra_qt/debugger/graphics.cpp
@@ -7,6 +7,8 @@
 #include <QVBoxLayout>
 #include <QDebug>
 
+#include "citra_qt/util/util.h"
+
 extern GraphicsDebugger g_debugger;
 
 GPUCommandStreamItemModel::GPUCommandStreamItemModel(QObject* parent) : QAbstractListModel(parent), command_count(0)
@@ -79,7 +81,7 @@ GPUCommandStreamWidget::GPUCommandStreamWidget(QWidget* parent) : QDockWidget(tr
 
     QListView* command_list = new QListView;
     command_list->setModel(command_model);
-    command_list->setFont(QFont("monospace"));
+    command_list->setFont(GetMonospaceFont());
 
     setWidget(command_list);
 }
diff --git a/src/citra_qt/debugger/graphics_cmdlists.cpp b/src/citra_qt/debugger/graphics_cmdlists.cpp
index 35a3140b22..025434687c 100644
--- a/src/citra_qt/debugger/graphics_cmdlists.cpp
+++ b/src/citra_qt/debugger/graphics_cmdlists.cpp
@@ -14,6 +14,8 @@
 #include <QSpinBox>
 #include <QComboBox>
 
+#include "citra_qt/util/util.h"
+
 #include "common/vector_math.h"
 
 #include "video_core/debug_utils/debug_utils.h"
@@ -303,9 +305,7 @@ GPUCommandListWidget::GPUCommandListWidget(QWidget* parent) : QDockWidget(tr("Pi
 
     list_widget = new QTreeView;
     list_widget->setModel(model);
-    QFont font("monospace");
-    font.setStyleHint(QFont::Monospace); // Automatic fallback to a monospace font on on platforms without a font called "monospace"
-    list_widget->setFont(font);
+    list_widget->setFont(GetMonospaceFont());
     list_widget->setRootIsDecorated(false);
     list_widget->setUniformRowHeights(true);
 
diff --git a/src/citra_qt/debugger/graphics_vertex_shader.cpp b/src/citra_qt/debugger/graphics_vertex_shader.cpp
index 0c17edee09..1d9a00e899 100644
--- a/src/citra_qt/debugger/graphics_vertex_shader.cpp
+++ b/src/citra_qt/debugger/graphics_vertex_shader.cpp
@@ -15,6 +15,8 @@
 #include <QSpinBox>
 #include <QTreeView>
 
+#include "citra_qt/util/util.h"
+
 #include "video_core/shader/shader.h"
 
 #include "graphics_vertex_shader.h"
@@ -245,7 +247,7 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con
     }
 
     case Qt::FontRole:
-        return QFont("monospace");
+        return GetMonospaceFont();
 
     case Qt::BackgroundRole:
         // Highlight instructions which have no debug data associated to them
diff --git a/src/citra_qt/util/util.cpp b/src/citra_qt/util/util.cpp
new file mode 100644
index 0000000000..2cb939af1c
--- /dev/null
+++ b/src/citra_qt/util/util.cpp
@@ -0,0 +1,13 @@
+// Copyright 2015 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "util.h"
+
+QFont GetMonospaceFont() {
+    QFont font("monospace");
+    // Automatic fallback to a monospace font on on platforms without a font called "monospace"
+    font.setStyleHint(QFont::Monospace);
+    font.setFixedPitch(true);
+    return font;
+}
diff --git a/src/citra_qt/util/util.h b/src/citra_qt/util/util.h
new file mode 100644
index 0000000000..0787f9eb7b
--- /dev/null
+++ b/src/citra_qt/util/util.h
@@ -0,0 +1,8 @@
+// Copyright 2015 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <QFont>
+
+/// Returns a QFont object appropriate to use as a monospace font for debugging widgets, etc.
+QFont GetMonospaceFont();