Skip to content

Commit

Permalink
Merge pull request #12659 from mitaclaw/qt-debug-font
Browse files Browse the repository at this point in the history
DolphinQt Settings: Signal Debug Font By Const Reference
  • Loading branch information
JMC47 committed Mar 28, 2024
2 parents aa9601a + ae5da02 commit aea1f64
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 17 deletions.
11 changes: 8 additions & 3 deletions Source/Core/DolphinQt/Debugger/CodeViewWidget.cpp
Expand Up @@ -172,9 +172,8 @@ CodeViewWidget::CodeViewWidget()

connect(this, &CodeViewWidget::customContextMenuRequested, this, &CodeViewWidget::OnContextMenu);
connect(this, &CodeViewWidget::itemSelectionChanged, this, &CodeViewWidget::OnSelectionChanged);
connect(&Settings::Instance(), &Settings::DebugFontChanged, this, &QWidget::setFont);
connect(&Settings::Instance(), &Settings::DebugFontChanged, this,
&CodeViewWidget::FontBasedSizing);
&CodeViewWidget::OnDebugFontChanged);

connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this] {
m_address = m_system.GetPPCState().pc;
Expand Down Expand Up @@ -208,7 +207,7 @@ void CodeViewWidget::FontBasedSizing()
// just text width is too small with some fonts, so increase by a bit
constexpr int extra_text_width = 8;

const QFontMetrics fm(Settings::Instance().GetDebugFont());
const QFontMetrics fm(font());

const int rowh = fm.height() + 1;
verticalHeader()->setMaximumSectionSize(rowh);
Expand Down Expand Up @@ -745,6 +744,12 @@ void CodeViewWidget::AutoStep(CodeTrace::AutoStop option)
} while (msgbox.clickedButton() == (QAbstractButton*)run_button);
}

void CodeViewWidget::OnDebugFontChanged(const QFont& font)
{
setFont(font);
FontBasedSizing();
}

void CodeViewWidget::OnCopyAddress()
{
const u32 addr = GetContextAddress();
Expand Down
2 changes: 2 additions & 0 deletions Source/Core/DolphinQt/Debugger/CodeViewWidget.h
Expand Up @@ -10,6 +10,7 @@
#include "Common/CommonTypes.h"
#include "Core/Debugger/CodeTrace.h"

class QFont;
class QKeyEvent;
class QMouseEvent;
class QResizeEvent;
Expand Down Expand Up @@ -78,6 +79,7 @@ class CodeViewWidget : public QTableWidget
void OnContextMenu();

void AutoStep(CodeTrace::AutoStop option = CodeTrace::AutoStop::Always);
void OnDebugFontChanged(const QFont& font);
void OnFollowBranch();
void OnCopyAddress();
void OnCopyTargetAddress();
Expand Down
8 changes: 4 additions & 4 deletions Source/Core/DolphinQt/Debugger/MemoryViewWidget.cpp
Expand Up @@ -202,18 +202,18 @@ MemoryViewWidget::MemoryViewWidget(Core::System& system, QWidget* parent)
connect(&Settings::Instance(), &Settings::ThemeChanged, this, &MemoryViewWidget::Update);

// Also calls create table.
UpdateFont();
UpdateFont(Settings::Instance().GetDebugFont());
}

void MemoryViewWidget::UpdateFont()
void MemoryViewWidget::UpdateFont(const QFont& font)
{
const QFontMetrics fm(Settings::Instance().GetDebugFont());
const QFontMetrics fm(font);
m_font_vspace = fm.lineSpacing() + 4;
// BoundingRect is too unpredictable, a custom one would be needed for each view type. Different
// fonts have wildly different spacing between two characters and horizontalAdvance includes
// spacing.
m_font_width = fm.horizontalAdvance(QLatin1Char('0'));
m_table->setFont(Settings::Instance().GetDebugFont());
m_table->setFont(font);

CreateTable();
}
Expand Down
3 changes: 2 additions & 1 deletion Source/Core/DolphinQt/Debugger/MemoryViewWidget.h
Expand Up @@ -7,6 +7,7 @@

#include "Common/CommonTypes.h"

class QFont;
class QPoint;
class QScrollBar;

Expand Down Expand Up @@ -57,7 +58,7 @@ class MemoryViewWidget final : public QWidget

void CreateTable();
void Update();
void UpdateFont();
void UpdateFont(const QFont& font);
void ToggleBreakpoint(u32 addr, bool row);

std::vector<u8> ConvertTextToBytes(Type type, QStringView input_text) const;
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/DolphinQt/Debugger/RegisterWidget.cpp
Expand Up @@ -106,7 +106,7 @@ void RegisterWidget::ConnectWidgets()
connect(m_table, &QTableWidget::customContextMenuRequested, this,
&RegisterWidget::ShowContextMenu);
connect(m_table, &QTableWidget::itemChanged, this, &RegisterWidget::OnItemChanged);
connect(&Settings::Instance(), &Settings::DebugFontChanged, m_table, &QWidget::setFont);
connect(&Settings::Instance(), &Settings::DebugFontChanged, m_table, &RegisterWidget::setFont);
}

void RegisterWidget::OnItemChanged(QTableWidgetItem* item)
Expand Down
16 changes: 9 additions & 7 deletions Source/Core/DolphinQt/FIFO/FIFOAnalyzer.cpp
Expand Up @@ -51,13 +51,9 @@ FIFOAnalyzer::FIFOAnalyzer(FifoPlayer& fifo_player) : m_fifo_player(fifo_player)
m_search_splitter->restoreState(
settings.value(QStringLiteral("fifoanalyzer/searchsplitter")).toByteArray());

m_detail_list->setFont(Settings::Instance().GetDebugFont());
m_entry_detail_browser->setFont(Settings::Instance().GetDebugFont());

connect(&Settings::Instance(), &Settings::DebugFontChanged, this, [this] {
m_detail_list->setFont(Settings::Instance().GetDebugFont());
m_entry_detail_browser->setFont(Settings::Instance().GetDebugFont());
});
OnDebugFontChanged(Settings::Instance().GetDebugFont());
connect(&Settings::Instance(), &Settings::DebugFontChanged, this,
&FIFOAnalyzer::OnDebugFontChanged);
}

FIFOAnalyzer::~FIFOAnalyzer()
Expand Down Expand Up @@ -779,3 +775,9 @@ void FIFOAnalyzer::UpdateDescription()
object_size - entry_start, callback);
m_entry_detail_browser->setText(callback.text);
}

void FIFOAnalyzer::OnDebugFontChanged(const QFont& font)
{
m_detail_list->setFont(font);
m_entry_detail_browser->setFont(font);
}
3 changes: 3 additions & 0 deletions Source/Core/DolphinQt/FIFO/FIFOAnalyzer.h
Expand Up @@ -10,6 +10,7 @@
#include "Common/CommonTypes.h"

class FifoPlayer;
class QFont;
class QGroupBox;
class QLabel;
class QLineEdit;
Expand Down Expand Up @@ -43,6 +44,8 @@ class FIFOAnalyzer final : public QWidget
void UpdateDetails();
void UpdateDescription();

void OnDebugFontChanged(const QFont& font);

FifoPlayer& m_fifo_player;

QTreeWidget* m_tree_widget;
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/DolphinQt/Settings.h
Expand Up @@ -217,7 +217,7 @@ class Settings final : public QObject
void JITVisibilityChanged(bool visible);
void AssemblerVisibilityChanged(bool visible);
void DebugModeToggled(bool enabled);
void DebugFontChanged(QFont font);
void DebugFontChanged(const QFont& font);
void AutoUpdateTrackChanged(const QString& mode);
void FallbackRegionChanged(const DiscIO::Region& region);
void AnalyticsToggled(bool enabled);
Expand Down

0 comments on commit aea1f64

Please sign in to comment.