mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-31 02:34:11 +01: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
 | ||||
| // Refer to the license.txt file included.
 | ||||
| 
 | ||||
| #include <array> | ||||
| #include <fmt/format.h> | ||||
| 
 | ||||
| #include "yuzu/debugger/wait_tree.h" | ||||
| #include "yuzu/uisettings.h" | ||||
| #include "yuzu/util/util.h" | ||||
| 
 | ||||
| #include "common/assert.h" | ||||
| @ -19,11 +21,37 @@ | ||||
| #include "core/hle/kernel/thread.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; | ||||
| 
 | ||||
| QColor WaitTreeItem::GetColor() const { | ||||
|     return QColor(Qt::GlobalColor::black); | ||||
|     if (IsDarkTheme()) { | ||||
|         return QColor(Qt::GlobalColor::white); | ||||
|     } else { | ||||
|         return QColor(Qt::GlobalColor::black); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeItem::GetChildren() const { | ||||
| @ -263,36 +291,38 @@ QString WaitTreeThread::GetText() const { | ||||
| } | ||||
| 
 | ||||
| QColor WaitTreeThread::GetColor() const { | ||||
|     const std::size_t color_index = IsDarkTheme() ? 1 : 0; | ||||
| 
 | ||||
|     const auto& thread = static_cast<const Kernel::Thread&>(object); | ||||
|     switch (thread.GetStatus()) { | ||||
|     case Kernel::ThreadStatus::Running: | ||||
|         return QColor(Qt::GlobalColor::darkGreen); | ||||
|         return QColor(WaitTreeColors[0][color_index]); | ||||
|     case Kernel::ThreadStatus::Ready: | ||||
|         if (!thread.IsPaused()) { | ||||
|             if (thread.WasRunning()) { | ||||
|                 return QColor(Qt::GlobalColor::darkGreen); | ||||
|                 return QColor(WaitTreeColors[1][color_index]); | ||||
|             } else { | ||||
|                 return QColor(Qt::GlobalColor::darkBlue); | ||||
|                 return QColor(WaitTreeColors[2][color_index]); | ||||
|             } | ||||
|         } else { | ||||
|             return QColor(Qt::GlobalColor::lightGray); | ||||
|             return QColor(WaitTreeColors[3][color_index]); | ||||
|         } | ||||
|     case Kernel::ThreadStatus::Paused: | ||||
|         return QColor(Qt::GlobalColor::lightGray); | ||||
|         return QColor(WaitTreeColors[4][color_index]); | ||||
|     case Kernel::ThreadStatus::WaitHLEEvent: | ||||
|     case Kernel::ThreadStatus::WaitIPC: | ||||
|         return QColor(Qt::GlobalColor::darkRed); | ||||
|         return QColor(WaitTreeColors[5][color_index]); | ||||
|     case Kernel::ThreadStatus::WaitSleep: | ||||
|         return QColor(Qt::GlobalColor::darkYellow); | ||||
|         return QColor(WaitTreeColors[6][color_index]); | ||||
|     case Kernel::ThreadStatus::WaitSynch: | ||||
|     case Kernel::ThreadStatus::WaitMutex: | ||||
|     case Kernel::ThreadStatus::WaitCondVar: | ||||
|     case Kernel::ThreadStatus::WaitArb: | ||||
|         return QColor(Qt::GlobalColor::red); | ||||
|         return QColor(WaitTreeColors[7][color_index]); | ||||
|     case Kernel::ThreadStatus::Dormant: | ||||
|         return QColor(Qt::GlobalColor::darkCyan); | ||||
|         return QColor(WaitTreeColors[8][color_index]); | ||||
|     case Kernel::ThreadStatus::Dead: | ||||
|         return QColor(Qt::GlobalColor::gray); | ||||
|         return QColor(WaitTreeColors[9][color_index]); | ||||
|     default: | ||||
|         return WaitTreeItem::GetColor(); | ||||
|     } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user