📅 Utilitários Pessoais#
O Codis embute três utilitários de produtividade pessoal que não dependem de projeto ou workspace aberto: Calendário, Calculadora e Relógio. Os três abrem como janelas independentes (Toplevel) e podem ficar abertos em paralelo ao editor.
Acesso: menu Ferramentas → Calendário & Pessoal.
📅 Calendário (src/ui/calendar_panel.py)#
Atalho de menu: Ferramentas → Calendário & Pessoal → 📅 Calendário.
Funcionalidades#
- Grade mensal navegável com visual polido e indicador do dia atual
- Mini-mapa de eventos: dias com eventos marcados ficam destacados no grid
- Anotações e lembretes associados a uma data específica
- Lista lateral de eventos com horário, cor e descrição
- Pesquisa de eventos por texto
- Lembretes com notificação popup quando a hora chega
Fluxo de uso#
- Abra o calendário pelo menu (janela de 900×640, redimensionável)
- Navegue entre meses pelos controles de seta no topo do grid
- Clique em um dia para ver/criar eventos daquela data
- Cada evento pode ter horário, cor de destaque e descrição livre
- Use a busca para localizar eventos por palavra-chave em qualquer mês
- Eventos com lembrete disparam um popup de notificação no horário configurado
A persistência dos eventos é local (não há sincronização em nuvem).
🔢 Calculadora (src/ui/calculator_panel.py)#
Atalho: Ferramentas → Calendário & Pessoal → 🔢 Calculadora · Ctrl+Alt+C.
Modos disponíveis#
| Modo | O que oferece |
|---|---|
| Básico | Operações aritméticas comuns com display grande |
| Científico | Funções trigonométricas, logarítmicas, potências, constantes (π, e) |
| Conversão de unidades | Comprimento, peso e temperatura |
Funcionalidades#
- Display elegante com histórico de expressão e resultado lado a lado
- Histórico persistente de cálculos (salvo em
calc_history.jsonna pasta de configuração do usuário), navegável com↑/↓no campo de expressão - Anotações livres associadas a cada entrada do histórico
- Campo de entrada aceita expressões Python completas (não apenas a sintaxe da calculadora), avaliadas em um sandbox restrito de builtins seguros (
abs,round, funções demath, etc.) - nenhuma chamada arbitrária do Python é permitida - Clique duplo em uma entrada do histórico para reutilizá-la
Sandbox de avaliação#
A calculadora não usa eval() aberto. Apenas um conjunto fixo de builtins matemáticos seguros é exposto ao avaliador, então não é possível executar código arbitrário do sistema através do campo de expressão.
🕐 Relógio, Alarmes e Cronômetro (src/ui/clock_panel.py)#
Atalho: Ferramentas → Calendário & Pessoal → 🕐 Relógio · Ctrl+Alt+K.
A janela do relógio tem três abas:
| Aba | Conteúdo |
|---|---|
| Relógio | Relógio analógico desenhado em Canvas com ponteiros suaves + relógio digital com fuso horário configurável |
| Alarmes | Múltiplos alarmes com rótulo próprio e som opcional, criados/editados em diálogo dedicado |
| Cronômetro | Start/stop/reset com registro de voltas (laps) e exportação dos tempos |
Alarmes#
- Cada alarme tem horário, rótulo de texto e um som opcional associado
- Vários alarmes podem coexistir e são listados na própria aba
- O diálogo de criação/edição de alarme é uma janela própria (
_AlarmDialog)
Cronômetro#
- Registra voltas individuais durante a contagem
- Os tempos de volta podem ser exportados para análise externa
- Independente do relógio principal - pode rodar em paralelo com o relógio analógico/digital visível
Relação com o menu#
Os três utilitários ficam agrupados na categoria Calendário & Pessoal dentro do menu Ferramentas, separados deliberadamente dos utilitários de desenvolvimento (Diff, Formatador, Regex etc.) e das ferramentas de sistema (Pip, Processos), já que não têm relação com o código do projeto aberto - ver Atalhos para a lista completa de combinações de teclado.