Astro-Session-Watcher/ui/dialogs/instructions_dialog.py

152 lines
No EOL
6.6 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
InstructionsDialog - диалог с инструкцией на английском (tkinter)
"""
import tkinter as tk
from tkinter import ttk
class InstructionsDialog(tk.Toplevel):
"""Диалог с подробной инструкцией пользователя на английском"""
def __init__(self, parent):
super().__init__(parent)
self.parent = parent
self.title("Instructions")
self.geometry("750x600")
self.minsize(700, 500)
self.transient(parent)
self.grab_set()
self._create_ui()
self._center_window()
def _create_ui(self):
# Main frame
main_frame = ttk.Frame(self, padding="15")
main_frame.pack(fill='both', expand=True)
# Title
ttk.Label(main_frame, text="Astro Session Watcher - User Guide", font=('Segoe UI', 16, 'bold')).pack(pady=(0, 10))
# Text with scrollbar
text_frame = ttk.Frame(main_frame)
text_frame.pack(fill='both', expand=True)
scrollbar = ttk.Scrollbar(text_frame)
scrollbar.pack(side='right', fill='y')
self.text_widget = tk.Text(text_frame, yscrollcommand=scrollbar.set, wrap='word',
bg='#1e1e1e', fg='#e0e0e0', font=('Consolas', 10))
self.text_widget.pack(fill='both', expand=True)
scrollbar.config(command=self.text_widget.yview)
# Instructions text
instructions = """======================= ASTRO SESSION WATCHER =======================
The application automatically tracks new photos in the selected folder,
sorts them by observation targets and maintains detailed logs.
📸 WHAT IS IT FOR?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Automatically distribute shots into target folders
• Keep a log of each session
• Don't miss a single frame when changing targets
• Store equipment and celestial bodies history
🚀 HOW IT WORKS?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Select the folder where your camera saves photos
2. The app creates a session folder: "AstroSession_YYYY-MM-DD"
3. Each target gets its own subfolder inside the session folder
4. When you change target (press "New Target"), all accumulated files are moved
5. When you end the session, remaining files are moved to the last target
📝 STEP-BY-STEP GUIDE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ 1. FIRST LAUNCH (SETUP)
───────────────────────────────────────────────────────────────────
• Go to "File""Equipment" and add your cameras and lenses/telescopes
• Go to "File""Celestial Bodies" and add your observation targets
• All data is saved automatically in config files
█ 2. STARTING A SESSION
───────────────────────────────────────────────────────────────────
1. Click "Browse" and select the folder where your camera saves photos
2. Select camera and lens/telescope from dropdowns
3. Enter target name (or select from celestial bodies list)
4. Click "▶ Start Tracking"
✅ After launch:
• Status changes to "● ON AIR" with blinking
"New Target" button becomes active
• Session folder "AstroSession_date" is created
• Inside - folder with your first target
█ 3. CHANGING TARGET DURING SESSION
───────────────────────────────────────────────────────────────────
1. Click "New Target" button (or Ctrl+Shift+N)
2. Enter new target name
3. The app automatically moves all accumulated files to the previous target
4. Creates new folder for the next target
5. Resets file counter
6. Continues tracking
💡 IMPORTANT: If there are files in the watch folder before changing target,
they will NOT be lost - all will be moved!
█ 4. ENDING A SESSION
───────────────────────────────────────────────────────────────────
1. Click "■ Stop" (or Ctrl+X)
2. The app moves all remaining files to the last target
3. Writes final session log
4. Shows dialog with option to open session folder
5. Restores interface for new session
⌨️ HOTKEYS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ctrl + O → Select watch folder
Ctrl + E → Equipment management
Ctrl + B → Celestial bodies management
Ctrl + S → Start session
Ctrl + X → Stop session
Ctrl + F → Open current session folder
Ctrl + Shift+N → Create new target
F1 → About
F2 → This instruction
🔧 CONFIG FILES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📄 astro_settings.json ← cameras, lenses, last folder
📄 celestial_bodies.json ← list of celestial bodies
All files are stored in the program folder. You can edit them manually.
📧 TECHNICAL SUPPORT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Text me: norvicdev@gmail.com
Developer: Vic Sergeev
Version: 0.4.0-alpha
"""
self.text_widget.insert('1.0', instructions)
self.text_widget.config(state='disabled')
# Close button
ttk.Button(main_frame, text="Close", command=self.destroy).pack(pady=10)
def _center_window(self):
self.update_idletasks()
x = self.parent.winfo_x() + (self.parent.winfo_width() // 2) - (self.winfo_width() // 2)
y = self.parent.winfo_y() + (self.parent.winfo_height() // 2) - (self.winfo_height() // 2)
self.geometry(f'+{x}+{y}')