Skip to content

Commit 9bd61a1

Browse files
committed
Cleanup, bug squashing in open/save file dialogs
1 parent 944bfff commit 9bd61a1

3 files changed

Lines changed: 30 additions & 24 deletions

File tree

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pygubu==0.9.8.2
2626
PyPDF2==1.26.0
2727
```
2828

29-
Python 3.6 was used in development... I haven't checked for compatibility with lower versions, so your mileage my vary with anything starting 3.5 on downward.
29+
Python 3.6 was used in development I haven't checked for compatibility with lower versions, so your mileage my vary with anything starting 3.5 on downward.
3030

3131
## License
3232

@@ -45,7 +45,10 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
4545
- [ ] Write tests
4646
- [ ] Error checking user input
4747
- [ ] Error/Exception Handling
48+
- [ ] Failover to system PDF Tools (e.g. Poppler)
4849
- [ ] Stamp/Background/Number Tab
49-
- [ ] Rotate Pages
50+
- [X] Rotate Pages
51+
- [X] Menus
52+
- [ ] Persistent User Settings
5053
- [ ] Package via pyInstaller
5154
- [ ] Distribution via Releases on GitHub

mainwindow.ui

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@
150150
<child>
151151
<object class="ttk.Button" id="JoinAddButton">
152152
<property name="command">jointab_add_file</property>
153-
<property name="text" translatable="yes">Add...</property>
153+
<property name="text" translatable="yes">Add</property>
154154
<layout>
155155
<property name="column">0</property>
156156
<property name="padx">5</property>
@@ -222,7 +222,7 @@
222222
<child>
223223
<object class="ttk.Button" id="JoinSaveButton">
224224
<property name="command">jointab_save_as</property>
225-
<property name="text" translatable="yes">Save As...</property>
225+
<property name="text" translatable="yes">Save As</property>
226226
<layout>
227227
<property name="column">0</property>
228228
<property name="padx">10</property>
@@ -546,7 +546,7 @@
546546
<child>
547547
<object class="ttk.Button" id="RotateSaveButton">
548548
<property name="command">rotatetab_save_as</property>
549-
<property name="text" translatable="yes">Save As...</property>
549+
<property name="text" translatable="yes">Save As</property>
550550
<layout>
551551
<property name="column">0</property>
552552
<property name="padx">10</property>

pypdfbuilder.py

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def parent(self, val):
3131
self.__parent = val
3232

3333
def open_file(self):
34-
choose_split_file = self.parent.get_open_file(widget_title='Choose PDF to Split...')
34+
choose_split_file = self.parent.get_open_file(widget_title='Choose PDF to Split')
3535
if choose_split_file:
3636
self.split_filepath = choose_split_file
3737
with open(self.split_filepath, 'rb') as in_pdf:
@@ -41,7 +41,7 @@ def open_file(self):
4141

4242
def show_file_info(self):
4343
filename = os.path.basename(self.split_filepath)
44-
self.split_file_info.set(f'{filename[0:35]}...({self.pdf_pages} pages)')
44+
self.split_file_info.set(f'{filename[0:35]}({self.pdf_pages} pages)')
4545

4646
def save_as(self):
4747
if self.split_filepath:
@@ -87,7 +87,7 @@ def open_file(self):
8787
opens file dialog again and presses cancel. In this case, '' gets returned and would
8888
overwrite the old filepath
8989
'''
90-
chose_rotate_file = self.parent.get_open_file(widget_title='Choose PDF to Rotate...')
90+
chose_rotate_file = self.parent.get_open_file(widget_title='Choose PDF to Rotate')
9191
if chose_rotate_file:
9292
self.rotate_filepath = chose_rotate_file
9393
with open(self.rotate_filepath, 'rb') as in_pdf:
@@ -102,11 +102,11 @@ def show_rotate_pages(self):
102102

103103
def show_file_info(self):
104104
filename = os.path.basename(self.rotate_filepath)
105-
self.rotate_file_info.set(f'{filename[0:35]}...({self.pdf_pages} pages)')
105+
self.rotate_file_info.set(f'{filename[0:35]}({self.pdf_pages} pages)')
106106

107107
def save_as(self):
108108
page_range = (self.rotate_from_page.get()-1, self.rotate_to_page.get())
109-
save_filepath = self.parent.get_save_file(widget_title='Save New PDF to...')
109+
save_filepath = self.parent.get_save_file(widget_title='Save New PDF to')
110110
if self.rotate_filepath:
111111
in_pdf = PdfFileReader(open(self.rotate_filepath, "rb"))
112112
out_pdf = PdfFileWriter()
@@ -162,7 +162,7 @@ def enter_page_selection(self, event):
162162

163163
def show_file_info(self):
164164
file_data = self.files_tree_widget.item(self.selected_files[0], 'values')
165-
self.current_file_info.set(f'{file_data[PDF_FILENAME][0:25]}...({file_data[PDF_PAGES]} pages)')
165+
self.current_file_info.set(f'{file_data[PDF_FILENAME][0:25]}({file_data[PDF_PAGES]} pages)')
166166

167167
def show_selected_pages(self):
168168
file_data = self.files_tree_widget.item(self.selected_files[0], 'values')
@@ -174,7 +174,7 @@ def get_join_files(self):
174174
def parse_page_select(self, page_select):
175175
'''
176176
As this method deals with raw user input, there will have to be a whole lot of error checking
177-
built into this function at a later time. Really don't look forward to this... at all.
177+
built into this function at a later time. Really don't look forward to this at all.
178178
'''
179179
for page_range in page_select.replace(' ', '').split(','):
180180
if '-' in page_range:
@@ -184,9 +184,9 @@ def parse_page_select(self, page_select):
184184
yield tuple(sorted((int(page_range)-1, int(page_range))))
185185

186186
def add_file(self):
187-
add_filepaths = list(self.parent.get_open_files(widget_title='Choose PDFs to Add...'))
187+
add_filepaths = self.parent.get_open_files(widget_title='Choose PDFs to Add…')
188188
if add_filepaths:
189-
for filepath in add_filepaths:
189+
for filepath in list(add_filepaths):
190190
filename = os.path.basename(filepath)
191191
with open(filepath, 'rb') as in_pdf:
192192
pdf_handler = PdfFileReader(in_pdf)
@@ -196,7 +196,7 @@ def add_file(self):
196196

197197
def save_as(self):
198198
if len(self.get_join_files()) > 0:
199-
save_filepath = self.parent.get_save_file(widget_title='Save Joined PDF to...')
199+
save_filepath = self.parent.get_save_file(widget_title='Save Joined PDF to')
200200
if save_filepath:
201201
merger = PdfFileMerger()
202202
for f in self.get_join_files():
@@ -307,32 +307,35 @@ def rotatetab_open_file(self):
307307
def rotatetab_save_as(self):
308308
self.rotatetab.save_as()
309309

310-
def get_open_files(self, widget_title='Open Files...'):
310+
def get_open_files(self, widget_title='Open Files'):
311311
f = filedialog.askopenfilenames(
312312
initialdir=self.__current_dir,
313313
title=widget_title,
314314
filetypes=(("PDF File", "*.pdf"), ("All Files", "*.*"))
315315
)
316-
self.__current_dir = os.path.dirname(f[-1])
317-
return f
316+
if f:
317+
self.__current_dir = os.path.dirname(f[-1])
318+
return f
318319

319-
def get_open_file(self, widget_title='Open File...'):
320+
def get_open_file(self, widget_title='Open File'):
320321
f = filedialog.askopenfilename(
321322
initialdir=self.__current_dir,
322323
title=widget_title,
323324
filetypes=(("PDF File", "*.pdf"), ("All Files", "*.*"))
324325
)
325-
self.__current_dir = os.path.dirname(f)
326-
return f
326+
if f:
327+
self.__current_dir = os.path.dirname(f)
328+
return f
327329

328-
def get_save_file(self, widget_title='Save File...'):
330+
def get_save_file(self, widget_title='Save File'):
329331
f = filedialog.asksaveasfilename(
330332
initialdir=self.__current_dir,
331333
title=widget_title,
332334
filetypes=(("PDF File", "*.pdf"), ("All Files", "*.*"))
333335
)
334-
self.__current_dir = os.path.dirname(f)
335-
return f
336+
if f:
337+
self.__current_dir = os.path.dirname(f)
338+
return f
336339

337340
def quit(self, event=None):
338341
self.mainwindow.quit()

0 commit comments

Comments
 (0)