Skip to content

Commit 3bc41ba

Browse files
committed
fix: Updated GUI to reflect PageMode setting changes
1 parent 55794ab commit 3bc41ba

File tree

1 file changed

+63
-30
lines changed

1 file changed

+63
-30
lines changed

src/manga2pdf_gui.py

Lines changed: 63 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import os
66
import sys
7+
import platform
78
import tkinter as tk
89
from tkinter import ttk
910
from tkinter import filedialog
@@ -17,20 +18,23 @@ def __init__(self, master):
1718
master.title("Manga PDF Converter")
1819
self.master.resizable(0, 0)
1920
self.processing_window = None
21+
self.system = platform.system()
2022

2123
# Create five frames
2224
path_frame =ttk.Frame(master)
2325
conversion_frame = ttk.Frame(master)
24-
pagelayout_frame = ttk.Frame(master)
2526
direction_frame = ttk.Frame(master)
27+
pagelayout_frame = ttk.Frame(master)
28+
pagemode_frame = ttk.Frame(master)
2629
button_frame = ttk.Frame(master)
2730

2831
# Set grid layout
2932
path_frame.grid(row=0, column=0, columnspan=3, sticky='we')
3033
conversion_frame.grid(row=1, column=0, sticky='nswe')
31-
pagelayout_frame.grid(row=1, column=1, sticky='nswe')
32-
direction_frame.grid(row=1, column=2, sticky='nswe')
33-
button_frame.grid(row=2, column=0, columnspan=3, sticky='we')
34+
direction_frame.grid(row=2, column=0, sticky='nswe')
35+
pagelayout_frame.grid(row=1, column=1, rowspan=2, sticky='nswe')
36+
pagemode_frame.grid(row=1, column=2, rowspan=2, sticky='nswe')
37+
button_frame.grid(row=3, column=0, columnspan=3, sticky='we')
3438

3539
# Add input path label and entry
3640
input_frame = ttk.Frame(path_frame)
@@ -44,7 +48,10 @@ def __init__(self, master):
4448
self.input_directory_button_text = {"en": "Select Directory", "ja": "フォルダ選択"}
4549
self.input_directory_button = ttk.Button(input_frame, text=self.input_directory_button_text[self.language], command=self.browse_input_directory)
4650
self.input_directory_button.pack(side="right", padx=10, pady=5)
47-
self.input_entry = ttk.Entry(path_frame, width=65)
51+
if self.system == "Windows":
52+
self.input_entry = ttk.Entry(path_frame, width=90)
53+
else:
54+
self.input_entry = ttk.Entry(path_frame, width=65)
4855
self.input_entry.grid(row=1, column=0, columnspan=3, padx=10, pady=5, sticky="ew")
4956

5057
# Add output path label and entry
@@ -59,13 +66,16 @@ def __init__(self, master):
5966
self.auto_output_button_text = {"en": "Auto", "ja": "自動設定"}
6067
self.auto_output_button = ttk.Button(output_frame, text=self.auto_output_button_text[self.language], command=self.auto_output_path)
6168
self.auto_output_button.pack(side="right", padx=10, pady=5)
62-
self.output_entry = ttk.Entry(path_frame, width=65)
69+
if self.system == "Windows":
70+
self.output_entry = ttk.Entry(path_frame, width=90)
71+
else:
72+
self.output_entry = ttk.Entry(path_frame, width=65)
6373
self.output_entry.grid(row=3, column=0, columnspan=3, padx=10, pady=5, sticky="ew")
6474

6575
# Create a LabelFrame for the conversion options
6676
self.conversion_label_text = {"en": "Conversion Options:", "ja": "圧縮方式:"}
6777
self.conversion_labelframe = ttk.LabelFrame(conversion_frame, text=self.conversion_label_text[self.language], padding=5)
68-
self.conversion_labelframe.grid(row=0, column=0, rowspan=10, sticky="nsew", padx=5, pady=1)
78+
self.conversion_labelframe.grid(row=0, column=0, rowspan=5, sticky="nsew", padx=2, pady=1)
6979

7080
self.conversion_var = tk.StringVar(value="none")
7181
self.conversion_text = {
@@ -79,12 +89,30 @@ def __init__(self, master):
7989
self.conversion_labelframe, text=conversion, variable=self.conversion_var, value=self.conversion_value[i]
8090
)
8191
self.conversion_radio.append(conversion_radio)
82-
conversion_radio.grid(row=i+1, column=0, sticky="nsew", padx=5, pady=1)
92+
conversion_radio.grid(row=i+1, column=0, sticky="nsew", padx=2, pady=1)
93+
94+
# Create a LabelFrame for the direction options
95+
self.direction_label_text = {"en": "Direction:", "ja": "綴じ方向:"}
96+
self.direction_labelframe = ttk.LabelFrame(direction_frame, text=self.direction_label_text[self.language], padding=5)
97+
self.direction_labelframe.grid(row=0, column=0, rowspan=5, sticky="nsew", padx=2, pady=1)
98+
99+
self.direction_var = tk.StringVar(value="R2L")
100+
self.direction_text = {
101+
"en": ["L2R", "R2L"],
102+
"ja": ["左綴じ", "右綴じ"],
103+
}
104+
self.direction_value = ["L2R", "R2L"]
105+
self.direction_radio = []
106+
for i, direction in enumerate(self.direction_text[self.language]):
107+
direction_radio = ttk.Radiobutton(
108+
self.direction_labelframe, text=direction, variable=self.direction_var, value=self.direction_value[i])
109+
self.direction_radio.append(direction_radio)
110+
direction_radio.grid(row=i+1, column=0, sticky="nsew", padx=2, pady=1)
83111

84112
# Create a LabelFrame for the page layout options
85113
self.pagelayout_label_text = {"en": "Page Layout:", "ja": "ページレイアウト:"}
86114
self.pagelayout_labelframe = ttk.LabelFrame(pagelayout_frame, text=self.pagelayout_label_text[self.language], padding=5)
87-
self.pagelayout_labelframe.grid(row=0, column=1, rowspan=10, sticky="nsew", padx=5, pady=1)
115+
self.pagelayout_labelframe.grid(row=0, column=0, rowspan=10, sticky="nsew", padx=2, pady=1)
88116

89117
self.pagelayout_var = tk.StringVar(value="TwoPageRight")
90118
self.pagelayout_text = {
@@ -98,25 +126,26 @@ def __init__(self, master):
98126
self.pagelayout_labelframe, text=pagelayout, variable=self.pagelayout_var, value=self.pagelayout_value[i]
99127
)
100128
self.pagelayout_radio.append(pagelayout_radio)
101-
pagelayout_radio.grid(row=i+1, column=1, sticky="nsew", padx=5, pady=1)
129+
pagelayout_radio.grid(row=i+1, column=0, sticky="nsew", padx=2, pady=1)
102130

103-
# Create a LabelFrame for the direction options
104-
self.direction_label_text = {"en": "Direction:", "ja": "綴じ方向:"}
105-
self.direction_labelframe = ttk.LabelFrame(direction_frame, text=self.direction_label_text[self.language], padding=5)
106-
self.direction_labelframe.grid(row=0, column=2, rowspan=10, sticky="nsew", padx=5, pady=1)
131+
# Create a LabelFrame for the page mode options
132+
self.pagemode_label_text = {"en": "Page Mode:", "ja": "ページモード:"}
133+
self.pagemode_labelframe = ttk.LabelFrame(pagemode_frame, text=self.pagemode_label_text[self.language], padding=5)
134+
self.pagemode_labelframe.grid(row=0, column=0, rowspan=10, sticky="nsew", padx=2, pady=1)
107135

108-
self.direction_var = tk.StringVar(value="R2L")
109-
self.direction_text = {
110-
"en": ["L2R", "R2L"],
111-
"ja": ["左綴じ", "右綴じ"],
136+
self.pagemode_var = tk.StringVar(value="UseNone")
137+
self.pagemode_text = {
138+
"en": ["UseNone", "UseOutlines", "UseThumbs", "FullScreen", "UseOC", "UseAttachments"],
139+
"ja": ["デフォルト表示", "アウトラインパネルを表示", "サムネイルパネルを表示", "フルスクリーンモード", "コンテンツパネルを表示", "添付ファイルパネルを表示"],
112140
}
113-
self.direction_value = ["L2R", "R2L"]
114-
self.direction_radio = []
115-
for i, direction in enumerate(self.direction_text[self.language]):
116-
direction_radio = ttk.Radiobutton(
117-
self.direction_labelframe, text=direction, variable=self.direction_var, value=self.direction_value[i])
118-
self.direction_radio.append(direction_radio)
119-
direction_radio.grid(row=i+1, column=2, sticky="nsew", padx=5, pady=1)
141+
self.pagemode_value = ["UseNone", "UseOutlines", "UseThumbs", "FullScreen", "UseOC", "UseAttachments"]
142+
self.pagemode_radio = []
143+
for i, pagemode in enumerate(self.pagemode_text[self.language]):
144+
pagemode_radio = ttk.Radiobutton(
145+
self.pagemode_labelframe, text=pagemode, variable=self.pagemode_var, value=self.pagemode_value[i]
146+
)
147+
self.pagemode_radio.append(pagemode_radio)
148+
pagemode_radio.grid(row=i+1, column=0, sticky="nsew", padx=2, pady=1)
120149

121150
# Add language toggle button
122151
self.language_button_text = {"en": "日本語表示に切替", "ja": "Display in English"}
@@ -164,14 +193,18 @@ def update_language(self):
164193
for i, conversion in enumerate(self.conversion_text[self.language]):
165194
self.conversion_radio[i].configure(text=conversion)
166195
self.conversion_var.set(self.conversion_var.get())
167-
self.pagelayout_labelframe.configure(text=self.pagelayout_label_text[self.language])
168-
for i, pagelayout in enumerate(self.pagelayout_text[self.language]):
169-
self.pagelayout_radio[i].configure(text=pagelayout)
170-
self.pagelayout_var.set(self.pagelayout_var.get())
171196
self.direction_labelframe.configure(text=self.direction_label_text[self.language])
172197
for i, direction in enumerate(self.direction_text[self.language]):
173198
self.direction_radio[i].configure(text=direction)
174199
self.direction_var.set(self.direction_var.get())
200+
self.pagelayout_labelframe.configure(text=self.pagelayout_label_text[self.language])
201+
for i, pagelayout in enumerate(self.pagelayout_text[self.language]):
202+
self.pagelayout_radio[i].configure(text=pagelayout)
203+
self.pagemode_var.set(self.pagemode_var.get())
204+
self.pagemode_labelframe.configure(text=self.pagemode_label_text[self.language])
205+
for i, pagemode in enumerate(self.pagemode_text[self.language]):
206+
self.pagemode_radio[i].configure(text=pagemode)
207+
self.pagelayout_var.set(self.pagelayout_var.get())
175208
self.language_button.configure(text=self.language_button_text[self.language])
176209
self.convert_button.configure(text=self.convert_button_text[self.language])
177210
self.quit_button.configure(text=self.quit_button_text[self.language])
@@ -270,7 +303,7 @@ def run_convert(self):
270303

271304
# Call MangaPdfConverter with the appropriate arguments
272305
try:
273-
converter = MangaPdfConverter(input_path=input_path, output_path=output_path, pagelayout=self.pagelayout_var.get(), pagemode='UseNone', direction=self.direction_var.get())
306+
converter = MangaPdfConverter(input_path=input_path, output_path=output_path, pagelayout=self.pagelayout_var.get(), pagemode=self.pagemode_var.get(), direction=self.direction_var.get())
274307

275308
# Ask user if they want to convert
276309
confirm_text = {"en": "Are you sure you want to convert?", "ja": "変換処理を開始しますか?"}

0 commit comments

Comments
 (0)