Restructure the entire editor codebase to consistently match the message hierarchy

Closes #744
This commit is contained in:
Keavon Chambers
2022-08-05 05:38:11 -07:00
parent 78f07439db
commit e4306c30e2
154 changed files with 4199 additions and 4064 deletions
@@ -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,
);
}
+9
View File
@@ -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,
}