mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-25 10:58:11 +08:00
Restructure the entire editor codebase to consistently match the message hierarchy
Closes #744
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
use crate::messages::prelude::*;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[impl_message(Message, Debug)]
|
||||
#[derive(PartialEq, Eq, Clone, Debug, Hash, Serialize, Deserialize)]
|
||||
pub enum DebugMessage {
|
||||
ToggleTraceLogs,
|
||||
MessageOff,
|
||||
MessageNames,
|
||||
MessageContents,
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
use super::utility_types::MessageLoggingVerbosity;
|
||||
use crate::messages::prelude::*;
|
||||
|
||||
use std::collections::VecDeque;
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
pub struct DebugMessageHandler {
|
||||
pub message_logging_verbosity: MessageLoggingVerbosity,
|
||||
}
|
||||
|
||||
impl MessageHandler<DebugMessage, ()> for DebugMessageHandler {
|
||||
#[remain::check]
|
||||
fn process_message(&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.message_logging_verbosity = MessageLoggingVerbosity::Off;
|
||||
|
||||
// Refresh the checkmark beside the menu entry for this
|
||||
responses.push_back(MenuBarMessage::SendLayout.into());
|
||||
}
|
||||
DebugMessage::MessageNames => {
|
||||
self.message_logging_verbosity = MessageLoggingVerbosity::Names;
|
||||
|
||||
// Refresh the checkmark beside the menu entry for this
|
||||
responses.push_back(MenuBarMessage::SendLayout.into());
|
||||
}
|
||||
DebugMessage::MessageContents => {
|
||||
self.message_logging_verbosity = MessageLoggingVerbosity::Contents;
|
||||
|
||||
// Refresh the checkmark beside the menu entry for this
|
||||
responses.push_back(MenuBarMessage::SendLayout.into());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
advertise_actions!(DebugMessageDiscriminant;
|
||||
ToggleTraceLogs,
|
||||
MessageOff,
|
||||
MessageNames,
|
||||
MessageContents,
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
mod debug_message;
|
||||
mod debug_message_handler;
|
||||
|
||||
pub mod utility_types;
|
||||
|
||||
#[doc(inline)]
|
||||
pub use debug_message::{DebugMessage, DebugMessageDiscriminant};
|
||||
#[doc(inline)]
|
||||
pub use debug_message_handler::DebugMessageHandler;
|
||||
@@ -0,0 +1,7 @@
|
||||
#[derive(Debug, Default, Clone, Copy)]
|
||||
pub enum MessageLoggingVerbosity {
|
||||
#[default]
|
||||
Off,
|
||||
Names,
|
||||
Contents,
|
||||
}
|
||||
Reference in New Issue
Block a user