From 281c93efe30be5bd3dc1d2f9c798a07c28734ec7 Mon Sep 17 00:00:00 2001 From: David Sangrey Date: Sun, 6 Aug 2023 01:41:21 -0400 Subject: [PATCH 1/3] #510 Add Log File Opener to Help Menu --- EDMarketConnector.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index da7683ee..1fc43cb3 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -13,7 +13,7 @@ import sys import threading import webbrowser from builtins import object, str -from os import chdir, environ +from os import chdir, environ, system from os.path import dirname, join from time import localtime, strftime, time from typing import TYPE_CHECKING, Any, Literal, Optional, Tuple, Union @@ -699,6 +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.menubar.add_cascade(menu=self.help_menu) if sys.platform == 'win32': @@ -935,6 +936,8 @@ class AppWindow(object): self.help_menu.entryconfigure(3, label=_('Report A Bug')) # LANG: Help > Report A Bug self.help_menu.entryconfigure(4, label=_('Privacy Policy')) # LANG: Help > Privacy Policy self.help_menu.entryconfigure(5, label=_('Release Notes')) # LANG: Help > Release Notes + self.help_menu.entryconfigure(6, label=_('Open Log Folder')) # LANG: Help > Open Log Folder + else: self.menubar.entryconfigure(1, label=_('File')) # LANG: 'File' menu title self.menubar.entryconfigure(2, label=_('Edit')) # LANG: 'Edit' menu title @@ -957,6 +960,7 @@ class AppWindow(object): self.help_menu.entryconfigure(4, label=_('Release Notes')) # LANG: Help > Release Notes self.help_menu.entryconfigure(5, label=_('Check for Updates...')) # LANG: Help > Check for Updates... self.help_menu.entryconfigure(6, label=_("About {APP}").format(APP=applongname)) # LANG: Help > About App + self.help_menu.entryconfigure(7, label=_('Open Log Folder')) # LANG: Help > Open Log Folder # Edit menu self.edit_menu.entryconfigure(0, label=_('Copy')) # LANG: Label for 'Copy' as in 'Copy and Paste' @@ -1790,6 +1794,20 @@ 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') From 0d26fbfe8916d4769c7099454db64372b0085619 Mon Sep 17 00:00:00 2001 From: David Sangrey Date: Sun, 6 Aug 2023 13:36:05 -0400 Subject: [PATCH 2/3] #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()) From 7df1972423d854cae1a254f118b166bd49f9e3da Mon Sep 17 00:00:00 2001 From: David Sangrey Date: Sun, 6 Aug 2023 13:44:34 -0400 Subject: [PATCH 3/3] #510 Remove Unused Import --- EDMarketConnector.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index 1a9fb1b2..0b457c9c 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -13,7 +13,7 @@ import sys import threading import webbrowser from builtins import object, str -from os import chdir, environ, system +from os import chdir, environ from os.path import dirname, join from time import localtime, strftime, time from typing import TYPE_CHECKING, Any, Literal, Optional, Tuple, Union