mirror of
https://github.com/yuzu-emu/yuzu.git
synced 2024-11-14 08:04:57 +00:00
Merge pull request #4376 from ogniK5377/dark-wait-tree
frontend: Improve wait tree readability for dark themes
This commit is contained in:
commit
ad0b295125
1 changed files with 41 additions and 11 deletions
|
@ -2,9 +2,11 @@
|
||||||
// Licensed under GPLv2 or any later version
|
// Licensed under GPLv2 or any later version
|
||||||
// Refer to the license.txt file included.
|
// Refer to the license.txt file included.
|
||||||
|
|
||||||
|
#include <array>
|
||||||
#include <fmt/format.h>
|
#include <fmt/format.h>
|
||||||
|
|
||||||
#include "yuzu/debugger/wait_tree.h"
|
#include "yuzu/debugger/wait_tree.h"
|
||||||
|
#include "yuzu/uisettings.h"
|
||||||
#include "yuzu/util/util.h"
|
#include "yuzu/util/util.h"
|
||||||
|
|
||||||
#include "common/assert.h"
|
#include "common/assert.h"
|
||||||
|
@ -19,12 +21,38 @@
|
||||||
#include "core/hle/kernel/thread.h"
|
#include "core/hle/kernel/thread.h"
|
||||||
#include "core/memory.h"
|
#include "core/memory.h"
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
|
||||||
|
constexpr std::array<std::array<Qt::GlobalColor, 2>, 10> WaitTreeColors{{
|
||||||
|
{Qt::GlobalColor::darkGreen, Qt::GlobalColor::green},
|
||||||
|
{Qt::GlobalColor::darkGreen, Qt::GlobalColor::green},
|
||||||
|
{Qt::GlobalColor::darkBlue, Qt::GlobalColor::cyan},
|
||||||
|
{Qt::GlobalColor::lightGray, Qt::GlobalColor::lightGray},
|
||||||
|
{Qt::GlobalColor::lightGray, Qt::GlobalColor::lightGray},
|
||||||
|
{Qt::GlobalColor::darkRed, Qt::GlobalColor::red},
|
||||||
|
{Qt::GlobalColor::darkYellow, Qt::GlobalColor::yellow},
|
||||||
|
{Qt::GlobalColor::red, Qt::GlobalColor::red},
|
||||||
|
{Qt::GlobalColor::darkCyan, Qt::GlobalColor::cyan},
|
||||||
|
{Qt::GlobalColor::gray, Qt::GlobalColor::gray},
|
||||||
|
}};
|
||||||
|
|
||||||
|
bool IsDarkTheme() {
|
||||||
|
const auto& theme = UISettings::values.theme;
|
||||||
|
return theme == QStringLiteral("qdarkstyle") || theme == QStringLiteral("colorful_dark");
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
WaitTreeItem::WaitTreeItem() = default;
|
WaitTreeItem::WaitTreeItem() = default;
|
||||||
WaitTreeItem::~WaitTreeItem() = default;
|
WaitTreeItem::~WaitTreeItem() = default;
|
||||||
|
|
||||||
QColor WaitTreeItem::GetColor() const {
|
QColor WaitTreeItem::GetColor() const {
|
||||||
|
if (IsDarkTheme()) {
|
||||||
|
return QColor(Qt::GlobalColor::white);
|
||||||
|
} else {
|
||||||
return QColor(Qt::GlobalColor::black);
|
return QColor(Qt::GlobalColor::black);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeItem::GetChildren() const {
|
std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeItem::GetChildren() const {
|
||||||
return {};
|
return {};
|
||||||
|
@ -263,36 +291,38 @@ QString WaitTreeThread::GetText() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
QColor WaitTreeThread::GetColor() const {
|
QColor WaitTreeThread::GetColor() const {
|
||||||
|
const std::size_t color_index = IsDarkTheme() ? 1 : 0;
|
||||||
|
|
||||||
const auto& thread = static_cast<const Kernel::Thread&>(object);
|
const auto& thread = static_cast<const Kernel::Thread&>(object);
|
||||||
switch (thread.GetStatus()) {
|
switch (thread.GetStatus()) {
|
||||||
case Kernel::ThreadStatus::Running:
|
case Kernel::ThreadStatus::Running:
|
||||||
return QColor(Qt::GlobalColor::darkGreen);
|
return QColor(WaitTreeColors[0][color_index]);
|
||||||
case Kernel::ThreadStatus::Ready:
|
case Kernel::ThreadStatus::Ready:
|
||||||
if (!thread.IsPaused()) {
|
if (!thread.IsPaused()) {
|
||||||
if (thread.WasRunning()) {
|
if (thread.WasRunning()) {
|
||||||
return QColor(Qt::GlobalColor::darkGreen);
|
return QColor(WaitTreeColors[1][color_index]);
|
||||||
} else {
|
} else {
|
||||||
return QColor(Qt::GlobalColor::darkBlue);
|
return QColor(WaitTreeColors[2][color_index]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return QColor(Qt::GlobalColor::lightGray);
|
return QColor(WaitTreeColors[3][color_index]);
|
||||||
}
|
}
|
||||||
case Kernel::ThreadStatus::Paused:
|
case Kernel::ThreadStatus::Paused:
|
||||||
return QColor(Qt::GlobalColor::lightGray);
|
return QColor(WaitTreeColors[4][color_index]);
|
||||||
case Kernel::ThreadStatus::WaitHLEEvent:
|
case Kernel::ThreadStatus::WaitHLEEvent:
|
||||||
case Kernel::ThreadStatus::WaitIPC:
|
case Kernel::ThreadStatus::WaitIPC:
|
||||||
return QColor(Qt::GlobalColor::darkRed);
|
return QColor(WaitTreeColors[5][color_index]);
|
||||||
case Kernel::ThreadStatus::WaitSleep:
|
case Kernel::ThreadStatus::WaitSleep:
|
||||||
return QColor(Qt::GlobalColor::darkYellow);
|
return QColor(WaitTreeColors[6][color_index]);
|
||||||
case Kernel::ThreadStatus::WaitSynch:
|
case Kernel::ThreadStatus::WaitSynch:
|
||||||
case Kernel::ThreadStatus::WaitMutex:
|
case Kernel::ThreadStatus::WaitMutex:
|
||||||
case Kernel::ThreadStatus::WaitCondVar:
|
case Kernel::ThreadStatus::WaitCondVar:
|
||||||
case Kernel::ThreadStatus::WaitArb:
|
case Kernel::ThreadStatus::WaitArb:
|
||||||
return QColor(Qt::GlobalColor::red);
|
return QColor(WaitTreeColors[7][color_index]);
|
||||||
case Kernel::ThreadStatus::Dormant:
|
case Kernel::ThreadStatus::Dormant:
|
||||||
return QColor(Qt::GlobalColor::darkCyan);
|
return QColor(WaitTreeColors[8][color_index]);
|
||||||
case Kernel::ThreadStatus::Dead:
|
case Kernel::ThreadStatus::Dead:
|
||||||
return QColor(Qt::GlobalColor::gray);
|
return QColor(WaitTreeColors[9][color_index]);
|
||||||
default:
|
default:
|
||||||
return WaitTreeItem::GetColor();
|
return WaitTreeItem::GetColor();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue