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:
36
main.py
36
main.py
@@ -2,7 +2,7 @@ from tkinter import *
|
||||
from tkinter import filedialog
|
||||
from zipfile import ZipFile as zf
|
||||
from PIL import Image, ImageTk
|
||||
import io,os
|
||||
import io,os, pickle
|
||||
|
||||
class MangaReader:
|
||||
def __init__(self, master):
|
||||
@@ -12,9 +12,22 @@ class MangaReader:
|
||||
self.file = 'None'
|
||||
self.img = ''
|
||||
self.dir = 'None'
|
||||
self.nextKey = '<Right>'
|
||||
self.backKey = '<Left>'
|
||||
self.quitKey = 'q'
|
||||
self.openKey = 'o'
|
||||
|
||||
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
|
||||
master.geometry("700x900")
|
||||
master.resizable(width=True, height=True)
|
||||
@@ -25,7 +38,7 @@ class MangaReader:
|
||||
item = Menu(self.menu)
|
||||
item.add_command(label="Open", command=self.open_menu)
|
||||
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)
|
||||
root.config(menu=self.menu)
|
||||
|
||||
@@ -53,9 +66,12 @@ class MangaReader:
|
||||
self.panel.bind('<Configure>', self.redraw)
|
||||
|
||||
# key bindings
|
||||
self.master.bind('<Right>', self.nextPage)
|
||||
self.master.bind('<Left>', self.backPage)
|
||||
self.master.bind('q', quit)
|
||||
self.master.bind(self.nextKey, self.nextPage)
|
||||
self.master.bind(self.backKey, self.backPage)
|
||||
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):
|
||||
# file dialog. reset page counts, call display Maanga passing in starting values
|
||||
@@ -109,7 +125,7 @@ class MangaReader:
|
||||
if self.page < self.total:
|
||||
self.displayManga(self.file, self.page)
|
||||
else:
|
||||
#reset self.page and doNothing
|
||||
#reset self.page and open file selection
|
||||
self.page = self.page - 1
|
||||
self.open_menu()
|
||||
|
||||
@@ -125,6 +141,14 @@ class MangaReader:
|
||||
if self.file != 'None':
|
||||
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
|
||||
root=Tk()
|
||||
app = MangaReader(root)
|
||||
|
||||
Reference in New Issue
Block a user