Merge pull request #12659 from mitaclaw/qt-debug-font

DolphinQt Settings: Signal Debug Font By Const Reference
This commit is contained in:
JMC47 2024-03-28 13:04:39 -04:00 committed by GitHub
commit aea1f64873
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 30 additions and 17 deletions

View File

@ -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;
@ -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);
@ -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();

View File

@ -10,6 +10,7 @@
#include "Common/CommonTypes.h"
#include "Core/Debugger/CodeTrace.h"
class QFont;
class QKeyEvent;
class QMouseEvent;
class QResizeEvent;
@ -78,6 +79,7 @@ private:
void OnContextMenu();
void AutoStep(CodeTrace::AutoStop option = CodeTrace::AutoStop::Always);
void OnDebugFontChanged(const QFont& font);
void OnFollowBranch();
void OnCopyAddress();
void OnCopyTargetAddress();

View File

@ -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();
}

View File

@ -7,6 +7,7 @@
#include "Common/CommonTypes.h"
class QFont;
class QPoint;
class QScrollBar;
@ -57,7 +58,7 @@ public:
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;

View File

@ -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)

View File

@ -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()
@ -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);
}

View File

@ -10,6 +10,7 @@
#include "Common/CommonTypes.h"
class FifoPlayer;
class QFont;
class QGroupBox;
class QLabel;
class QLineEdit;
@ -43,6 +44,8 @@ private:
void UpdateDetails();
void UpdateDescription();
void OnDebugFontChanged(const QFont& font);
FifoPlayer& m_fifo_player;
QTreeWidget* m_tree_widget;

View File

@ -217,7 +217,7 @@ signals:
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);