mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-16 06:38:03 +08:00
Tree-based message logging and toggleable trace printing (#728)
* Log message tree * Log when message execution deferred * Tree structure in traces * Fix ordering when queue partially consumed * Change some log settings and wording * Revert default max log level to debug * Change messages to On/Names/Contents as log::info, change trace to toggle, rename GlobalMessage to DebugMessage * DebugPrintDocument cleanup Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
committed by
Keavon Chambers
parent
a0c22d20b6
commit
db82cf69a4
52
editor/src/debug/debug_message_handler.rs
Normal file
52
editor/src/debug/debug_message_handler.rs
Normal file
@@ -0,0 +1,52 @@
|
||||
use crate::debug::debug_message::LoggingMessages;
|
||||
use crate::message_prelude::*;
|
||||
|
||||
use std::collections::VecDeque;
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct DebugMessageHandler {
|
||||
pub logging_messages_mode: LoggingMessages,
|
||||
}
|
||||
|
||||
impl MessageHandler<DebugMessage, ()> for DebugMessageHandler {
|
||||
#[remain::check]
|
||||
fn process_action(&mut self, message: DebugMessage, _data: (), responses: &mut VecDeque<Message>) {
|
||||
match message {
|
||||
DebugMessage::ToggleTraceLogs => {
|
||||
if let log::LevelFilter::Debug = log::max_level() {
|
||||
log::set_max_level(log::LevelFilter::Trace);
|
||||
} else {
|
||||
log::set_max_level(log::LevelFilter::Debug);
|
||||
}
|
||||
|
||||
// Refresh the checkmark beside the menu entry for this
|
||||
responses.push_back(MenuBarMessage::SendLayout.into());
|
||||
}
|
||||
DebugMessage::MessageOff => {
|
||||
self.logging_messages_mode = LoggingMessages::Off;
|
||||
|
||||
// Refresh the checkmark beside the menu entry for this
|
||||
responses.push_back(MenuBarMessage::SendLayout.into());
|
||||
}
|
||||
DebugMessage::MessageNames => {
|
||||
self.logging_messages_mode = LoggingMessages::Names;
|
||||
|
||||
// Refresh the checkmark beside the menu entry for this
|
||||
responses.push_back(MenuBarMessage::SendLayout.into());
|
||||
}
|
||||
DebugMessage::MessageContents => {
|
||||
self.logging_messages_mode = LoggingMessages::Contents;
|
||||
|
||||
// Refresh the checkmark beside the menu entry for this
|
||||
responses.push_back(MenuBarMessage::SendLayout.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
advertise_actions!(DebugMessageDiscriminant;
|
||||
ToggleTraceLogs,
|
||||
MessageOff,
|
||||
MessageNames,
|
||||
MessageContents,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user