mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +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
					
				@ -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 New Issue
	
	Block a user