Canvas usage tracking and analysis system. More...
#include <canvas_usage_tracker.h>
Public Member Functions | |
CanvasUsageTracker ()=default | |
void | Initialize (const std::string &canvas_id) |
Initialize the usage tracker. | |
void | SetUsageMode (CanvasUsage usage) |
Set the current usage mode. | |
void | RecordInteraction (CanvasInteraction interaction, const std::string &details="") |
Record an interaction. | |
void | RecordOperation (const std::string &operation_name, double time_ms) |
Record operation timing. | |
void | UpdateCanvasState (const ImVec2 &canvas_size, const ImVec2 &content_size, float global_scale, float grid_step, bool enable_grid, bool enable_hex_labels, bool enable_custom_labels) |
Update canvas state. | |
const CanvasUsageStats & | GetCurrentStats () const |
Get current usage statistics. | |
const std::vector< CanvasUsageStats > & | GetUsageHistory () const |
Get usage history. | |
std::string | GetUsageModeName (CanvasUsage usage) const |
Get usage mode name. | |
ImVec4 | GetUsageModeColor (CanvasUsage usage) const |
Get usage mode color for UI. | |
std::vector< std::string > | GetUsageRecommendations () const |
Get usage recommendations. | |
std::string | ExportUsageReport () const |
Export usage report. | |
void | ClearHistory () |
Clear usage history. | |
void | StartSession () |
Start session. | |
void | EndSession () |
End session. | |
Private Member Functions | |
void | UpdateActiveTime () |
void | UpdateIdleTime () |
void | SaveCurrentStats () |
double | CalculateAverageOperationTime (const std::string &operation_name) const |
std::string | FormatDuration (const std::chrono::milliseconds &duration) const |
Private Attributes | |
std::string | canvas_id_ |
CanvasUsageStats | current_stats_ |
std::vector< CanvasUsageStats > | usage_history_ |
std::chrono::steady_clock::time_point | last_activity_ |
std::chrono::steady_clock::time_point | session_start_ |
std::vector< std::pair< CanvasInteraction, std::string > > | interaction_history_ |
std::unordered_map< std::string, std::vector< double > > | operation_times_ |
Canvas usage tracking and analysis system.
Definition at line 98 of file canvas_usage_tracker.h.
|
default |
void yaze::gui::canvas::CanvasUsageTracker::Initialize | ( | const std::string & | canvas_id | ) |
Initialize the usage tracker.
Definition at line 14 of file canvas_usage_tracker.cc.
References canvas_id_, current_stats_, last_activity_, yaze::gui::canvas::CanvasUsageStats::Reset(), yaze::gui::canvas::CanvasUsageStats::session_start, and session_start_.
void yaze::gui::canvas::CanvasUsageTracker::SetUsageMode | ( | CanvasUsage | usage | ) |
Set the current usage mode.
Definition at line 22 of file canvas_usage_tracker.cc.
References canvas_id_, current_stats_, GetUsageModeName(), yaze::gui::canvas::kModeChange, LOG_DEBUG, yaze::gui::canvas::CanvasUsageStats::mode_changes, RecordInteraction(), SaveCurrentStats(), and yaze::gui::canvas::CanvasUsageStats::usage_mode.
void yaze::gui::canvas::CanvasUsageTracker::RecordInteraction | ( | CanvasInteraction | interaction, |
const std::string & | details = "" |
||
) |
Record an interaction.
Definition at line 39 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::CanvasUsageStats::context_menu_opens, current_stats_, interaction_history_, yaze::gui::canvas::kContextMenu, yaze::gui::canvas::kModalOpen, yaze::gui::canvas::kModeChange, yaze::gui::canvas::kMouseClick, yaze::gui::canvas::kMouseDrag, yaze::gui::canvas::kToolChange, last_activity_, yaze::gui::canvas::CanvasUsageStats::modal_opens, yaze::gui::canvas::CanvasUsageStats::mode_changes, yaze::gui::canvas::CanvasUsageStats::mouse_clicks, yaze::gui::canvas::CanvasUsageStats::mouse_drags, and yaze::gui::canvas::CanvasUsageStats::tool_changes.
Referenced by RecordOperation(), and SetUsageMode().
void yaze::gui::canvas::CanvasUsageTracker::RecordOperation | ( | const std::string & | operation_name, |
double | time_ms | ||
) |
Record operation timing.
Definition at line 71 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::CanvasUsageStats::average_operation_time_ms, current_stats_, yaze::gui::canvas::kKeyboardInput, yaze::gui::canvas::CanvasUsageStats::max_operation_time_ms, operation_times_, RecordInteraction(), and yaze::gui::canvas::CanvasUsageStats::total_operations.
void yaze::gui::canvas::CanvasUsageTracker::UpdateCanvasState | ( | const ImVec2 & | canvas_size, |
const ImVec2 & | content_size, | ||
float | global_scale, | ||
float | grid_step, | ||
bool | enable_grid, | ||
bool | enable_hex_labels, | ||
bool | enable_custom_labels | ||
) |
Update canvas state.
Definition at line 99 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::CanvasUsageStats::canvas_size, yaze::gui::canvas::CanvasUsageStats::content_size, current_stats_, yaze::gui::canvas::CanvasUsageStats::enable_custom_labels, yaze::gui::canvas::CanvasUsageStats::enable_grid, yaze::gui::canvas::CanvasUsageStats::enable_hex_labels, yaze::gui::canvas::CanvasUsageStats::global_scale, yaze::gui::canvas::CanvasUsageStats::grid_step, and last_activity_.
|
inline |
Get current usage statistics.
Definition at line 138 of file canvas_usage_tracker.h.
References current_stats_.
|
inline |
Get usage history.
Definition at line 143 of file canvas_usage_tracker.h.
References usage_history_.
std::string yaze::gui::canvas::CanvasUsageTracker::GetUsageModeName | ( | CanvasUsage | usage | ) | const |
Get usage mode name.
Definition at line 120 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::kBitmapEditing, yaze::gui::canvas::kBppConversion, yaze::gui::canvas::kColorPainting, yaze::gui::canvas::kPaletteEditing, yaze::gui::canvas::kPerformanceMode, yaze::gui::canvas::kSelectRectangle, yaze::gui::canvas::kTilePainting, yaze::gui::canvas::kTileSelecting, and yaze::gui::canvas::kUnknown.
Referenced by ExportUsageReport(), and SetUsageMode().
ImVec4 yaze::gui::canvas::CanvasUsageTracker::GetUsageModeColor | ( | CanvasUsage | usage | ) | const |
Get usage mode color for UI.
Definition at line 135 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::kBitmapEditing, yaze::gui::canvas::kBppConversion, yaze::gui::canvas::kColorPainting, yaze::gui::canvas::kPaletteEditing, yaze::gui::canvas::kPerformanceMode, yaze::gui::canvas::kSelectRectangle, yaze::gui::canvas::kTilePainting, yaze::gui::canvas::kTileSelecting, and yaze::gui::canvas::kUnknown.
std::vector< std::string > yaze::gui::canvas::CanvasUsageTracker::GetUsageRecommendations | ( | ) | const |
Get usage recommendations.
Definition at line 150 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::CanvasUsageStats::average_operation_time_ms, yaze::gui::canvas::CanvasUsageStats::context_menu_opens, current_stats_, yaze::gui::canvas::CanvasUsageStats::modal_opens, yaze::gui::canvas::CanvasUsageStats::mode_changes, and yaze::gui::canvas::CanvasUsageStats::mouse_clicks.
Referenced by ExportUsageReport().
std::string yaze::gui::canvas::CanvasUsageTracker::ExportUsageReport | ( | ) | const |
Export usage report.
Definition at line 177 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::CanvasUsageStats::average_operation_time_ms, CalculateAverageOperationTime(), canvas_id_, yaze::gui::canvas::CanvasUsageStats::canvas_size, yaze::gui::canvas::CanvasUsageStats::content_size, yaze::gui::canvas::CanvasUsageStats::context_menu_opens, current_stats_, yaze::gui::canvas::CanvasUsageStats::enable_custom_labels, yaze::gui::canvas::CanvasUsageStats::enable_grid, yaze::gui::canvas::CanvasUsageStats::enable_hex_labels, FormatDuration(), GetUsageModeName(), GetUsageRecommendations(), yaze::gui::canvas::CanvasUsageStats::global_scale, yaze::gui::canvas::CanvasUsageStats::grid_step, yaze::gui::canvas::CanvasUsageStats::max_operation_time_ms, yaze::gui::canvas::CanvasUsageStats::modal_opens, yaze::gui::canvas::CanvasUsageStats::mode_changes, yaze::gui::canvas::CanvasUsageStats::mouse_clicks, yaze::gui::canvas::CanvasUsageStats::mouse_drags, operation_times_, session_start_, yaze::gui::canvas::CanvasUsageStats::tool_changes, yaze::gui::canvas::CanvasUsageStats::total_operations, and yaze::gui::canvas::CanvasUsageStats::usage_mode.
void yaze::gui::canvas::CanvasUsageTracker::ClearHistory | ( | ) |
Clear usage history.
Definition at line 246 of file canvas_usage_tracker.cc.
References current_stats_, interaction_history_, last_activity_, operation_times_, yaze::gui::canvas::CanvasUsageStats::Reset(), yaze::gui::canvas::CanvasUsageStats::session_start, session_start_, and usage_history_.
void yaze::gui::canvas::CanvasUsageTracker::StartSession | ( | ) |
Start session.
Definition at line 256 of file canvas_usage_tracker.cc.
References current_stats_, last_activity_, yaze::gui::canvas::CanvasUsageStats::session_start, and session_start_.
void yaze::gui::canvas::CanvasUsageTracker::EndSession | ( | ) |
End session.
Definition at line 262 of file canvas_usage_tracker.cc.
References canvas_id_, current_stats_, FormatDuration(), LOG_DEBUG, SaveCurrentStats(), session_start_, yaze::gui::canvas::CanvasUsageStats::total_operations, UpdateActiveTime(), and UpdateIdleTime().
|
private |
Definition at line 277 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::CanvasUsageStats::active_time, current_stats_, and last_activity_.
Referenced by EndSession(), and SaveCurrentStats().
|
private |
Definition at line 287 of file canvas_usage_tracker.cc.
References current_stats_, yaze::gui::canvas::CanvasUsageStats::idle_time, and last_activity_.
Referenced by EndSession(), and SaveCurrentStats().
|
private |
Definition at line 297 of file canvas_usage_tracker.cc.
References yaze::gui::canvas::CanvasUsageStats::active_time, current_stats_, yaze::gui::canvas::CanvasUsageStats::idle_time, yaze::gui::canvas::CanvasUsageStats::Reset(), yaze::gui::canvas::CanvasUsageStats::session_start, yaze::gui::canvas::CanvasUsageStats::total_time, UpdateActiveTime(), UpdateIdleTime(), and usage_history_.
Referenced by EndSession(), and SetUsageMode().
|
private |
Definition at line 313 of file canvas_usage_tracker.cc.
References operation_times_.
Referenced by ExportUsageReport().
|
private |
Definition at line 327 of file canvas_usage_tracker.cc.
Referenced by EndSession(), and ExportUsageReport().
|
private |
Definition at line 181 of file canvas_usage_tracker.h.
Referenced by EndSession(), ExportUsageReport(), Initialize(), and SetUsageMode().
|
private |
Definition at line 182 of file canvas_usage_tracker.h.
Referenced by ClearHistory(), EndSession(), ExportUsageReport(), GetCurrentStats(), GetUsageRecommendations(), Initialize(), RecordInteraction(), RecordOperation(), SaveCurrentStats(), SetUsageMode(), StartSession(), UpdateActiveTime(), UpdateCanvasState(), and UpdateIdleTime().
|
private |
Definition at line 183 of file canvas_usage_tracker.h.
Referenced by ClearHistory(), GetUsageHistory(), and SaveCurrentStats().
|
private |
Definition at line 184 of file canvas_usage_tracker.h.
Referenced by ClearHistory(), Initialize(), RecordInteraction(), StartSession(), UpdateActiveTime(), UpdateCanvasState(), and UpdateIdleTime().
|
private |
Definition at line 185 of file canvas_usage_tracker.h.
Referenced by ClearHistory(), EndSession(), ExportUsageReport(), Initialize(), and StartSession().
|
private |
Definition at line 188 of file canvas_usage_tracker.h.
Referenced by ClearHistory(), and RecordInteraction().
|
private |
Definition at line 189 of file canvas_usage_tracker.h.
Referenced by CalculateAverageOperationTime(), ClearHistory(), ExportUsageReport(), and RecordOperation().