From 0d26fbfe8916d4769c7099454db64372b0085619 Mon Sep 17 00:00:00 2001 From: David Sangrey Date: Sun, 6 Aug 2023 13:36:05 -0400 Subject: [PATCH] #510 Add open log folder to prefs menu --- EDMarketConnector.py | 16 +--------------- prefs.py | 27 ++++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index 1fc43cb3..1a9fb1b2 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -699,7 +699,7 @@ class AppWindow(object): self.help_menu.add_command(command=lambda: self.updater.check_for_updates()) # Check for Updates... # About E:D Market Connector self.help_menu.add_command(command=lambda: not self.HelpAbout.showing and self.HelpAbout(self.w)) - self.help_menu.add_command(command=self.help_open_log_folder) # Open Log Folder + self.help_menu.add_command(command=prefs.help_open_log_folder) # Open Log Folder self.menubar.add_cascade(menu=self.help_menu) if sys.platform == 'win32': @@ -1794,20 +1794,6 @@ class AppWindow(object): webbrowser.open("https://github.com/EDCD/EDMarketConnector/issues/new?assignees=&labels=bug%2C+unconfirmed" "&template=bug_report.md&title=") - def help_open_log_folder(self, event=None) -> None: - """Open the folder logs are stored in.""" - logfile_loc = pathlib.Path(tempfile.gettempdir()) - logfile_loc /= f'{appname}' - if sys.platform.startswith('win'): - # On Windows, use the "start" command to open the folder - system(f'start "" "{logfile_loc}"') - elif sys.platform.startswith('darwin'): - # On macOS, use the "open" command to open the folder - system(f'open "{logfile_loc}"') - elif sys.platform.startswith('linux'): - # On Linux, use the "xdg-open" command to open the folder - system(f'xdg-open "{logfile_loc}"') - def help_privacy(self, event=None) -> None: """Open Wiki Privacy page in browser.""" webbrowser.open('https://github.com/EDCD/EDMarketConnector/wiki/Privacy-Policy') diff --git a/prefs.py b/prefs.py index 51c7bc47..034d451e 100644 --- a/prefs.py +++ b/prefs.py @@ -3,9 +3,12 @@ import contextlib import logging +import pathlib import sys +import tempfile import tkinter as tk import webbrowser +from os import system from os.path import expanduser, expandvars, join, normpath from tkinter import colorchooser as tkColorChooser # type: ignore # noqa: N812 from tkinter import ttk @@ -16,12 +19,12 @@ import myNotebook as nb # noqa: N813 import plug from config import applongname, appversion_nobuild, config from EDMCLogging import edmclogger, get_main_logger +from constants import appname from hotkey import hotkeymgr from l10n import Translations from monitor import monitor from theme import theme from ttkHyperlinkLabel import HyperlinkLabel - logger = get_main_logger() if TYPE_CHECKING: @@ -38,6 +41,21 @@ if TYPE_CHECKING: # May be imported by plugins +def help_open_log_folder() -> None: + """Open the folder logs are stored in.""" + logfile_loc = pathlib.Path(tempfile.gettempdir()) + logfile_loc /= f'{appname}' + if sys.platform.startswith('win'): + # On Windows, use the "start" command to open the folder + system(f'start "" "{logfile_loc}"') + elif sys.platform.startswith('darwin'): + # On macOS, use the "open" command to open the folder + system(f'open "{logfile_loc}"') + elif sys.platform.startswith('linux'): + # On Linux, use the "xdg-open" command to open the folder + system(f'xdg-open "{logfile_loc}"') + + class PrefsVersion: """ PrefsVersion contains versioned preferences. @@ -674,6 +692,13 @@ class PreferencesDialog(tk.Toplevel): self.loglevel_dropdown.configure(width=15) self.loglevel_dropdown.grid(column=1, sticky=tk.W, row=cur_row) + nb.Button( + config_frame, + # LANG: Label on button used to open a filesystem folder + text=_('Open Log Folder'), # Button that opens a folder in Explorer/Finder + command=lambda: help_open_log_folder() + ).grid(column=2, padx=(0, self.PADX), sticky=tk.NSEW, row=cur_row) + # Big spacer nb.Label(config_frame).grid(sticky=tk.W, row=row.get())