47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
import tkinter as tk
|
|
from tkinter import ttk
|
|
|
|
|
|
class CommitDialog(tk.Toplevel):
|
|
"""
|
|
A dialog window for entering a commit message.
|
|
"""
|
|
|
|
def __init__(self, parent):
|
|
super().__init__(parent)
|
|
self.title("Commit Message")
|
|
self.geometry("400x300")
|
|
self.result = None
|
|
self._setup_ui()
|
|
# Make the dialog modal
|
|
self.transient(parent)
|
|
self.grab_set()
|
|
|
|
def _setup_ui(self) -> None:
|
|
"""
|
|
Initializes the dialog components.
|
|
"""
|
|
label = ttk.Label(self, text="Enter the commit message for this package:")
|
|
label.pack(pady=10, padx=10, anchor="w")
|
|
self.text_area = tk.Text(self, wrap="word", height=8)
|
|
self.text_area.pack(padx=10, pady=5, fill="both", expand=True)
|
|
btn_frame = ttk.Frame(self)
|
|
btn_frame.pack(fill="x", pady=10)
|
|
ok_btn = ttk.Button(btn_frame, text="Confirm", command=self._on_confirm)
|
|
ok_btn.pack(side="right", padx=10)
|
|
cancel_btn = ttk.Button(btn_frame, text="Cancel", command=self.destroy)
|
|
cancel_btn.pack(side="right", padx=5)
|
|
|
|
def _on_confirm(self) -> None:
|
|
"""
|
|
Stores the message and closes the dialog.
|
|
"""
|
|
self.result = self.text_area.get("1.0", "end-1c").strip()
|
|
self.destroy()
|
|
|
|
def get_message(self) -> str:
|
|
"""
|
|
Waits for the user and returns the entered message.
|
|
"""
|
|
self.wait_window()
|
|
return self.result |