moved key bindings and previous directory to pickle file. Have shutdown method that saves pickle and watches for all methods of quitting program. Added keybind for open file box

This commit is contained in:
dan
2021-05-07 12:49:04 -04:00
parent b5f3fe3b25
commit 66e7fc9509

36
main.py
View File

@@ -2,7 +2,7 @@ from tkinter import *
from tkinter import filedialog from tkinter import filedialog
from zipfile import ZipFile as zf from zipfile import ZipFile as zf
from PIL import Image, ImageTk from PIL import Image, ImageTk
import io,os import io,os, pickle
class MangaReader: class MangaReader:
def __init__(self, master): def __init__(self, master):
@@ -12,9 +12,22 @@ class MangaReader:
self.file = 'None' self.file = 'None'
self.img = '' self.img = ''
self.dir = 'None' self.dir = 'None'
self.nextKey = '<Right>'
self.backKey = '<Left>'
self.quitKey = 'q'
self.openKey = 'o'
master.title("Manga Reader") master.title("Manga Reader")
#Load settings
settingLoad = pickle.load(open('manga.p', 'rb'))
self.dir = settingLoad['directory']
self.nextKey = settingLoad['nextKey']
self.backKey = settingLoad['backKey']
self.quitKey = settingLoad['quitKey']
self.openKey = settingLoad['openKey']
# tk window size and allow resize # tk window size and allow resize
master.geometry("700x900") master.geometry("700x900")
master.resizable(width=True, height=True) master.resizable(width=True, height=True)
@@ -25,7 +38,7 @@ class MangaReader:
item = Menu(self.menu) item = Menu(self.menu)
item.add_command(label="Open", command=self.open_menu) item.add_command(label="Open", command=self.open_menu)
item.add_separator() item.add_separator()
item.add_command(label="Exit", command=master.quit) item.add_command(label="Exit", command=self.shutdown)
self.menu.add_cascade(label="File", menu=item) self.menu.add_cascade(label="File", menu=item)
root.config(menu=self.menu) root.config(menu=self.menu)
@@ -53,9 +66,12 @@ class MangaReader:
self.panel.bind('<Configure>', self.redraw) self.panel.bind('<Configure>', self.redraw)
# key bindings # key bindings
self.master.bind('<Right>', self.nextPage) self.master.bind(self.nextKey, self.nextPage)
self.master.bind('<Left>', self.backPage) self.master.bind(self.backKey, self.backPage)
self.master.bind('q', quit) self.master.bind(self.quitKey, self.shutdown)
self.master.bind(self.openKey, self.open_menu)
master.protocol('WM_DELETE_WINDOW', self.shutdown)
def open_menu(self): def open_menu(self):
# file dialog. reset page counts, call display Maanga passing in starting values # file dialog. reset page counts, call display Maanga passing in starting values
@@ -109,7 +125,7 @@ class MangaReader:
if self.page < self.total: if self.page < self.total:
self.displayManga(self.file, self.page) self.displayManga(self.file, self.page)
else: else:
#reset self.page and doNothing #reset self.page and open file selection
self.page = self.page - 1 self.page = self.page - 1
self.open_menu() self.open_menu()
@@ -125,6 +141,14 @@ class MangaReader:
if self.file != 'None': if self.file != 'None':
self.displayManga(self.file, self.page) self.displayManga(self.file, self.page)
def shutdown(self,*event):
# Collect settings and pickle them. Then quit.
settingSave = {'directory': os.path.dirname(self.file), 'nextKey': self.nextKey, 'backKey': self.backKey,
'quitKey': self.quitKey, 'openKey':self.openKey}
pickle.dump(settingSave, open('manga.p', 'wb'))
quit()
#initalize tk #initalize tk
root=Tk() root=Tk()
app = MangaReader(root) app = MangaReader(root)